bilgiz.org

T. C. İStanbul tekniK ÜNİversitesi

  • 1 Giriş 1.1 Dağıtık Sistem Tanımı
  • 1.2 Dağıtık Sistem Örnekleri
  • 2.1 Erişim Kontrolü (Nesnelerin Korunması)
  • 2.1.1 Koruma Alanı (Protection Domain)
  • 2.1.2 Yetenekler (Capabilities)
  • 2.1.3 Erişim Kontrol Listeleri
  • 2.1.4 Ehliyet (Credentials)
  • 2.2 Süreçlerin ve aralarındaki etkileşimin güvenli hale getirilmesi
  • 2.2.2 SSL (Secure Sockets Layer)
  • 2.3.1 Servisin Reddi (Denial of Service)
  • 2.3.2 Gezici Kod (Mbile Code)



  • Tarih04.07.2017
    Büyüklüğü62.24 Kb.

    Indir 62.24 Kb.



    T. C.

    İSTANBUL TEKNİK ÜNİVERSİTESİ

    Fen Bilimleri Enstitüsü

    Bilgisayar Mühendisliği Anabilim Dalı

    BBL 601 AĞ GÜVENLİĞİ



    Prof. Dr. Bülent ÖRENCİK
    Dağıtık Sistemlerde Güvenlik”

    Pınar Karagülle

    504041530


    1 Giriş 3

    1.1 Dağıtık Sistem Tanımı 3

    1.2 Dağıtık Sistem Örnekleri 3

    2 Güvenlik 4

    2.1 Erişim Kontrolü (Nesnelerin Korunması) 5

    2.1.1 Koruma Alanı (Protection Domain) 6

    2.1.2 Yetenekler (Capabilities): 6

    2.1.3 Erişim Kontrol Listeleri 7

    2.1.4 Ehliyet (Credentials) 8

    2.2 Süreçlerin ve aralarındaki etkileşimin güvenli hale getirilmesi 8

    2.2.1 Kerberos 9

    2.2.2 SSL (Secure Sockets Layer) 13

    2.3 Diğer Tehlikeler: 13

    2.3.1 Servisin Reddi (Denial of Service) 13

    2.3.2 Gezici Kod (Mbile Code) 13

    3 Kaynaklar 14




    1 Giriş




    1.1 Dağıtık Sistem Tanımı


    Dağıtık sistem, farklı bilgisayarlardaki donanım ve yazılım bileşenleri arasında haberleşme ve koordinasyonunun sadece mesajlaşma yoluyla sağlanabildiği ağ olarak tanımlanır.
    Dağıtık sistemi diğer bilgisayar ağlarından farklı kılan özelliğin, ağın varlığı ve işlevinin kullanıcıya görünmemesi olduğu söylenebilir. Örneğin kullanıcı bir program çalıştırdığında, en iyi işlemciyi seçmek, giriş dosyalarını bu işlemciye aktarmak ve dönen sonuçları uygun yere koymak işlemcinin yürüttüğü işlerdir. Çok işlemcili bir dağıtık sistemde çalışmakta olmasına rağmen, kullanıcıya görünen ise tek bir sanal işlemcidir. Diğer ağlarda, kullanıcının kendisi bir makineye bağlanır, iş isteğinde bulunur, dosya gönderir vs. Diğer bir deyişle, ağ yönetim işlemleri kullanıcı tarafından yürütülür.
    Dağıtık sistem, bir ağ üzerine kuruludur. Yazılımla, ağdaki bileşenler arası işlevsel uyumluluk ve kullanıcı açısından saydamlık sağlanır. Dolayısıyla, dağıtık sistemin diğer ağlardan farkı donanım değil, yazılım katmanından –özellikle işletim sisteminden- kaynaklanmaktadır.
    Dağıtık sistemlerin var oluş amacı, kaynakları paylaşmaya duyulan gerekliliktir. Bu kaynaklar donanımsal bileşenler (disk, yazıcı) olabileceği gibi, dosyalar, veri tabanı, nesneler gibi yazılım varlıkları da olabilir.

    1.2 Dağıtık Sistem Örnekleri



    Internet
    Internet, geniş bir dağıtık sistemdir. Internet kullanıcıları WWW, e-posta, dosya transferi servislerinden yararlanırlar.

    İç Ağlar (Intranet)



    Şekil 1. İç Ağ

    Şekil 1’de, birkaç yerel ağdan oluşan bir iç ağ görülmektedir. İç ağlarda kaynak paylaşımı sağlayan ve sıklıkla kullanılmakta olan sunucular, şekilde gösterilmiştir. (Her yerel ağ, tüm bu sunucuları içermeyebilir.)



    2 Güvenlik


    Bir dağıtık sistemin güvenliği, süreçleri ve aralarındaki etkileşim için kullanılan kanalları güvenli hale getirmek ve süreçlerin kapçıkladığı nesneleri izinsiz erişime karşı korumakla sağlanır.

    2.1 Erişim Kontrolü (Nesnelerin Korunması)




    Şekil 2

    Sunucu süreç, bir takım nesneleri yönetir. İstemci programlar, sunucunun nesneler üzerinde işlemler yürütmesini gerektirecek istekler gönderirler. Sunucu, her bir istek için gerekli işlemleri yürütür ve sonucu (yanıtı) istemciye gönderir.


    Nesneler, farklı kullanıcılar tarafından farklı şekillerde kullanılırlar. Bazı nesneler, web sayfaları gibi paylaşılan verileri tutarken, bazıları ise posta kutusu gibi, kullanıcıya özel verileri tutabilir. Bu durumu desteklemek için, “erişim hakları” tanımlanmıştır. Erişim hakları, kullanıcıların nesneler üzerinde hangi haklara sahip olduklarını belirler. (Okuma, yazma hakkı gibi…)
    Sunucu, bir isteğin arkasındaki otoritenin, söz konusu nesne üzerinde istenen işlemi yapmaya erişim hakkı olup olmadığının kontrol edilmesinden ve izin verilmeyen işlemlerin yürütülmemesinden sorumludur.

    Dağıtık sistemlerde erişim kontrolü, tarihsel olarak, sunucuya giden mesajlar aşağıdaki gibi biçimlendirilerek gerçekleşmiştir.




    Burada işlem, kaynaktan gerçekleştirmesi istenen işlem, otorite (principal) isteği yapanın kimliği ve kaynak da işlemin uygulanacağı kaynaktır.
    Otorite, bir süreç olabileceği gibi, bir kullanıcı da olabilir.
    Aşağıda basit ve bileşik otoritelere bazı örnekler verilmiştir.
    Basit Otorite:

    İsimlendirilmiş otoriteler:

    İnsanlar (Ahmet, Mehmet)

    Makineler (VAXSN12345, 4thFloorPrinter)


    Roller (Yönetici, sekreter, NFS server)
    Otorite gruplarından oluşan isimlendirilmiş otoriteler

    Servisler (SRC-NFS, x-server)

    Gruplar (DEC çalışanları)
    Doğrudan iletişimde bulunabilen otoriteler:

    Hatlar veya giriş/çıkış kapıları (Terminal 14)

    Şifrelenmiş kanallar (#239430 anahtarıyla DES şifreleme)

    Ağ adresleri (IP adresi 16.4.0.32)


    Bileşik otorite:

    Rol atama (Yönetici olarak Ahmet)

    Vekalet (Delegasyon) (Ahmet için Mehmet)

    Birleşme (Ahmet ve Mehmet)




    2.1.1 Koruma Alanı (Protection Domain)


    Koruma alanı, bir grup süreç tarafından paylaşılan ve ikililerinden oluşan çalıştırma ortamıdır.

    Bir koruma ortamında çalışan tüm süreçler, listelenen kaynaklar üzerinde, belirtilen haklara sahiptirler.

    Bir koruma alanı genelde bir otoriteyle ilişkilendirilir. Örneğin kullanıcı otorite olarak düşünülürse, oturum açıldığında kullanıcının kimliği asılanır ve bu kullanıcının yürüteceği süreçler için bir koruma alanı oluşturulur. Kavramsal olarak bu alan, kullanıcının sahip olacağı tüm erişim haklarını tutar. Yani bu haklara, çeşitli gruplara üye olmaktan doğan haklar da dahildir.
    Örnek: UNIX’te, bir sürecin koruma alanı hakları, oturum açma işlemi sırasında bu sürece iliştirilen kullanıcı ve grup tanımlayıcılarıyla belirlenir.

    Bu şekilde, örneğin bir dosya üzerinde, bazı süreçlere sadece okuma hakkı verilirken; bazılarına okuma ve yazma hakkı verilir.


    Koruma alanı, soyut bir kavramdır. Bu kavram, dağıtık sistemlerde iki yöntemle gerçeklenmektedir: Yetenekler ve erişim kontrol listeleri.

    2.1.2 Yetenekler (Capabilities):


    Her süreç tarafından, bulunduğu alana göre bir yetenekler kümesi tutulur. Yetenek, belirli bir kaynak üzerinde belirli operasyonlara erişilmesine olanak veren bir ikili (binary) değerdir. Dağıtık sistemlerde yetenekler, taklit edilemez olmaları gerektiğinden, aşağıdaki gibi kullanılırlar.

    Kaynak ID: Hedef kaynağın tanımlayıcısı

    İşlemler: Kaynak üzerinde yapılmasına izin verilen işlemlerin listesi. Kaynak üzerinde tanımlı işlemlerin bir alt kümesidir ve genelde Bitmap şeklinde kodlanır.

    Asılama Kodu: İstemcinin sayısal imzası (taklidi önlemek için)


    Servisler ancak, istemcilerin iddia ettikleri koruma alanına dahil olduklarını asıladıktan sonra istemcilere yetenekler sağlarlar.
    Yetenekler kullanıldığında, istekler şeklindedir. Yani, isteğin içerisinde, istemcinin sadece kimliği yerine hakları da vardır. Böylece, sunucuya istemcinin kendi üzerinde hangi haklara sahip olduğu da doğrudan gönderilmiş olur. Böylece, bir istek alındığında yapılacak tek erişim kontrol işlemi, yeteneklerin geçerliliğinin kontrol edilmesi ve gerçekleştirilmek istenen işlemin yetenekler arasında olup olmadığıdır. Bu özellik, “yetenekler”i kullanmanın en büyük avantajıdır: Kendini içeren (self-contained) erişim anahtarları oluştururlar. (Fiziksel anahtarlar gibi…)
    Yetenekler, fiziksel anahtarların iki sakıncasını barındırır.

    Anahtar Çalınması: Anahtara sahip olan herkes –izin verilen kişiler olmasalar bile- binaya girebilir. Anahtarların çalınması, yetkisiz kişilerin binaya sızması anlamına gelir.

    İptal Sorunu: Anahtar tutma yetkisi, zamanla değişebilir. Örneğin binada görevli bir kişi işten çıkarıldığında artık binaya girme yetkisi yoktur ancak hala anahtarı olabilir; anahtarı çoğaltmış olabilir.
    Dağıtık sistemlerde bu sorunlar, istemciyi tanımlayan bilgi tutulması, yeteneklerin geçerlilik süresi olması ve iptal edilen yeteneklerin listelerinin tutulmasıyla aşılabilir.

    Yetenekler yöntemi, yapısının karmaşıklığına rağmen önemli bir teknik olmaya devam etmektedir. Erişim kontrol listeleriyle birlikte, bir kaynağa yinelenen erişim kontrolünde optimizasyon sağlamakta kullanılır. Ayrıca delegasyonun uygulanması için en muntazam düzenektir.


    Yeteneklerle sertifika arasındaki benzerlik dikkat çekicidir. Sertifikanın yeteneklerden farkı, izin verilen operasyonların listesini taşımaması ve yetenekleri üretenin tanımlanmasıdır. Bazı durumlarda bu iki yapı birbirinin yerine kullanılabilir. Örneğin sertifika, bir banka hesabı üzerinde, hesap sahibinin -asılandığı durumda- tüm hesap işlemlerini yapmasını sağlayacak bir erişim anahtarı olarak düşünülebilir.

    2.1.3 Erişim Kontrol Listeleri

    Her kaynak,



    Şeklinde girişler (entry) tutar.

    İşlemler: İzin verilen işlemler

    Alan: Koruma alanı. Bir otorite kimliği de olabilir, grup üyeliği belirleyen bir ifade de. Örneğin, “bu dosyanın sahibi”, istemci otoritenin kimliğiyle dosya sahibinin kimliğini karşılaştırarak değerlendirilebilecek bir ifadedir.


    UNIX ve Windows NT dahil olmak üzere, bir çok dosya sisteminde bu yapı kullanılmaktadır. Her dosya için erişim izin bitleri tutulmaktadır ve izinlerin verildiği alanlar, dosyada saklanan sahiplik bilgisine referansla tanımlanmışlardır.
    Uygulama

    Sayısal imza, ehliyet ve açık anahtarlı sertifikalar, güvenli erişim kontrolünün kriptografik temelini oluşturur. Güvenli kanallar, çoklu isteklerin otoriteler ve ehliyetler tekrar tekrar kontrol edilmeden işlenmesini sağlayarak performans arttırırlar.


    CORBA ve Java, temel amaçlarından biri erişim kontrolünü desteklemek olan güvenlik API’leri geliştirmişlerdir.

    Java, dağıtık nesnelerin kendi erişim kontrollerini yapabilmeleri için otorite, imzalayıcı ve ACL (erişim kontrol listesi) sınıfları bulundurmanın yanı sıra, asılama, sertifika ve şifreleme desteği de sağlamaktadır. Mobil kod içeren Java programlarının erişim kontrolü de koruma alanı kavramıyla gerçeklenmektedir: yerel kod ve indirilen kod farklı koruma alanlarına dahildir. Bazı Download kaynaklarının daha güvenilir olması durumunda kaynağa göre de koruma alanı değişebilir.



    2.1.4 Ehliyet (Credentials)

    Ehliyet, bir kaynağa erişmek isteyen otorite tarafından sağlanan kanıtlardır.

    Örneğin otoritenin kimliğini bildiren bir sertifika yeterli bir kaynaktır ve erişim kontrol listesinden asilin haklarını kontrol etmek için kullanılabilir. Genelde beklenen ve sağlanan da budur. Ancak kavram daha karmaşık gereklilikleri karşılamak için genişletilebilir.
    Kullanıcıların, korunan bir kaynak üzerinde işlem yapmaya her ihtiyaç duyduklarında kendilerini asılamak üzere sistemle etkileşimde bulunmalarını istemek uygun değildir. Bunun yerine, “ehliyet otorite adına konuşur (speak for)” kavrayışı tanıtılmıştır. Kullanıcının açık anahtarlı sertifikası, kullanıcı adına konuşur. Kullanıcının gizli anahtarıyla imzalanmış bir istek alan her süreç, isteğin kullanıcı tarafından yaratıldığını varsayabilir.
    “Adına konuşma” kavramının çözdüğü bir durum, belli bir işleme kullanıcı grubunda sadece iki kişiye izin verilmesi ve işlemin gerçeklenmesi için ikisinin de onayının gerektiği durumdur. Bu durumda, işlem isteğinde bulunan kişi, kendi kimliğinin yanı sıra diğer otoritenin de ehliyetini bulundurmak zorundadır.
    Ayrıca, organizasyonlar ve özellikle görev bölümü gerektiren işler için, rol tabanlı ehliyetler kullanılmaktadır. Örneğin, bir genel seçim organizasyonunda, oy verme isteği yollanırken kullanıcıyı tanımlayan sertifikanın yanı sıra, seçmen sertifikası da gönderilmelidir.
    Delegasyon:

    Yararlı bir ehliyet türü, bir asile veya sürece, başka bir otoritenin izinleriyle hareket etme hakkını veren ehliyettir.

    Bir servisin, istemcinin istediği işlemi tamamlayabilmek için korunan bir kaynağa erişmek zorunda kalması, delegasyon gerektiren bir durumdur.

    Örneğin, bir dosya basma isteği baskı sunucusuna geldiğinde, sunucu bu dosyayı kopyalamaz; istemcideki dosyaya erişip okur. Ancak dosya okumaya kapalı (read-protected) ise, sunucunun okuma iznine ihtiyacı vardır.


    Delegasyon, sertifika ve yetenekler kullanılarak gerçeklenebilir. Sertifika, isteği yapan otorite tarafından imzalanır ve başka bir asilin (baskı sunucusu) kaynağa (basılacak dosya) erişimine yetki verir. Yetenekler kullanıldığındaysa asillerin tanımlanmasına gerek yoktur. Sunucuya istek gönderilirken, gerekli kaynağa erişim için yetenek de gönderilir. Bu şekilde gönderilen yeteneklerin kötüye kullanımının önlenmesi için geçerlilik süresi kısıtlaması yapılır.

    2.2 Süreçlerin ve aralarındaki etkileşimin güvenli hale getirilmesi

    Süreçler, birbirlerine mesajlar yollayarak etkileşimde bulunurlar. Bu mesajlar saldırılara uğrayabilir; çünkü kullanılan ağ ve haberleşme servisi, herhangi iki süreç çiftinin haberleşebilmesi için, açıktır.


    Süreçlere saldırılar:

    İsteklere cevap vermek üzere tasarlanmış bir süreç (sunucu süreç), bir dağıtık sistemdeki tüm diğer süreçlerden istek almaya açıktır. Aldığı isteği göndereni belirlemesi de beklenmez. Ancak zaten belirlemeye kalksa bile, gönderici süreç sahte bir IP adresi kullanıyor olabilir.
    İletişim kanallarına saldırılar:

    Araya giren, mesajları sadece izlemek isteyebilir, değiştirip hedef adrese yollayabilir, kopyalayıp bir süre sonra tekrar yollayarak “tekrar saldırısı” düzenleyebilir.
    Bahsedilen türlerde saldırılara karşı dağıtık sistemlerde kullanılan bazı mekanizmalar, bu bölümde anlatılacaktır.

    2.2.1 Kerberos


    Kerberos, bir iç ağdaki istemci ve sunucuların asıllanmasını sağlamak için tasarlanmış bir güvenlik sistemidir. Needham-Schroder asıllama protokolüne dayanır.
    1980’lerde, MIT’de kullanıcıların yerleşke ağındaki kaynaklara güvenli erişimini sağlamak üzere geliştirilmiştir. Deneyimler ve kullanıcı organizasyonlarından alınan geri dönüşler ışığında birçok düzeltme ve geliştirme aşamasından geçerek, bugün yaygın olarak kullanılmakta olan halini almıştır.
    Bu kısımda, Kerberos v5 anlatılacaktır. Birçok üniversite ve şirketin iç ağında kullanılmakta olan bu sürüm, “Internet Standarts Track”te (RFC 1510) bulunmaktadır. OSF Distributed Computing Environment (DCE)’a ve varsayılan asıllama servisi olarak Microsoft Windows 2000 işletim sistemine de dahil edilmiştir.
    Sistem Mimarisi

    Şekil 3
    Temel kavramlar
    Bilet: Bilet sağlama servisi tarafından, ağdaki belli bir sunucuya sunulmak üzere istemcilere verilen ve istemcinin Kerberos tarafından asıllanmış olduğunu belirten mesaj.
    Asıl: İstemcinin, kendi kimliğini ve iletişimin yeniliğini sunucuya kanıtlamak için gönderdiği mesaj. Sunucunun adını ve zaman damgasını içeren, oturum anahtarıyla şifrelenmiş mesaj.
    Oturum anahtarı: Kerberos tarafından rasgele üretilen ve belli bir sunucuyla haberleşmek üzere istemciye verilen anahtar.
    İstemciler, haberleştikleri tüm sunucular için birer bilet ve oturum anahtarına sahiptirler. Bir sunucuyla kuracağı her etkileşim için, istemcinin yeni bir anahtar ve bilet alması, pratik bir yol değildir. Bu yüzden biletler istemcilere, belli bir süre kullanılmak üzere sağlanırlar. Yani biletlerin geçerlilik süreleri vardır.
    Kerberos sunucusu, anahtar dağıtım merkezi olarak bilinir. Bu merkezde, bir asıllama sunucusu (AS) ve bir bilet dağıtım merkezi (TGS) bulunur. AS, oturum açma işlemi sırasında kullanıcının asıllanması ve TGS ile haberleşmede kullanacağı bilet ile oturum anahtarının sağlanmasından sorumludur. Bu işlemlerden sonra, orijinal istemci süreç ve bunun alt süreçleri (descendants), belli sunucularla haberleşmek için ihtiyaç duyacakları anahtar ve biletleri, TGS’den alırlar.

    Needham-Schroder asıllama protokolünü takip eden Kerberos’ta, farklı olarak “nonce” yerine zaman damgası kullanılır. Zaman damgası kullanımının iki amacı vardır:



    1. Tekrarı önlemek,

    2. Biletlere bir yaşama süresi vererek, sistemin süresi dolan kullanıcı haklarını iptal etmesini sağlamak.


    Protokol

    Bu bölümde, Kerberos protokolünde istemci, AS, TGS ve sunucu arasında gidip gelen mesajların içerikleri ve işlevleri anlatılacaktır. Öncelikle notasyonla ilgili bir kaç açıklama verilmiştir.


    C: istemci, S: sunucu

    A: AS, T: TGS

    n: nonce

    t : zaman damgası

    t1: Biletin geçerlilik süresi başlangıcı

    t2: Biletin geçerlilik süresi sonu

    bilet(C,S): C, S, t1, t2, KCS

    asıl(C): C,t
    Şekil 1.1’de gösterilen adım ve mesaj etiketleri burada kullanılanlara karşılık gelmektedir.



    A. Kerberos oturum anahtarı ve TGS bileti alma (Her login oturumu için bir kez)

    Başlık: Mesaj: Açıklama:



    1. C  A:

    TGS bileti isteği



    C, T, n

    İstemci C, T ile iletişime geçmek için A’dan anahtar ister. Bu sırada, alacağı yanıtın geçerliliğini sınamak için mesaja bir “nonce” ekler.

    2. A  C:

    TGS oturum anahtarı ve bileti



    {KCT, n}Kc ,

    {bilet(C,T)}Kt



    A, bileti ve oturum anahtarını gönderir. Bu arada, n’nin Kc ile şifrelenmesi sayesinde, C yanıtın A’dan geldiğinden emin olmuş olur.

    İkinci mesaja “meydan okuma” (challange) da denir. Çünkü mesajı alanın KCT’yi öğrenebilmesi için tek yol KC’yi bilmesidir. Böylece, 1. mesajı göndererek C’yi taklit etmek isteyen biri, 2. mesajdan ileri gidemez.


    Otoritenin bir kullanıcı olması durumunda, Kc kullanıcı şifresidir.
    İstemci, 2. adım sonunda elde ettiği bileti –geçerlilik süresi dolana kadar- TGS ile haberleşmede kullanır.


    B. S sunucusu için bilet alma (Her istemci-sunucu oturumu için bir kez)

    3. C  T:

    S servisi için bilet isteği



    {asıl(C)}Kct,

    {bilet(C,T)}Kt,

    S,

    N


    C, S servisiyle haberleşebilmek için TGS’den bilet ister.

    4. T  C:

    S servisi içi bilet



    {KCS, n}Kct,

    {bilet(C,S)}Ks,



    T bileti kontrol eder. Geçerliyse, rasgele bir oturum anahtarı oluşturur ve bir biletle beraber C’ye verir.

    C, biletini kullanarak S’ye mesaj yollayabilir.




    C. Bileti kullanarak sunucu isteği yayınlama

    5. C  S:

    Servis isteği



    {asıl(C)}Kcs,

    {bilet(C,S)}Ks,

    istek,

    n


    C, sunucuya kendini asıllar ve servis isteği gönderir. Gizlilik gerekliyse, istek Kcs ile şifrelenir.

    İstemcinin de sunucunun kimliğinden emin olabilmesi için, istek mesajındaki nonce oturum anahtarıyla şifrelenerek gönderilebilir.




    D. Sunucuyu asıllama (İsteğe bağlı)

    6. S  C:

    Sunucu aslı



    {n}Kcs





    Kerberos’un Uygulanması

    MIT iç ağında, kullanıcıların ve diğer otoritelerin asıllanması Kerberos’la yapılır. Her sunucu, her istemci-sunucu etkileşiminin başında bilet ister. Bunlar arasında dosya sunucuları (NFS ve Andrew File System), elektronik posta, uzaktan bağlanma ve baskı sunucuları bulunur.


    Kerberos’ta oturum açma

    Yukarıda A adımında belirtilen mesajlaşma, kullanıcının bulunduğu makinada çalışan oturum açma programıyla Kerberos sunucusundaki AS arasında gerçekleşir. Login programı, kullanıcı adını sunucuya göndererek bilet ve oturum anahtarını içeren mesajı alır. Aldığı mesajı, kullanıcı şifresini kullanarak deşifre etmeye çalışır. Şifre doğruysa, “nonce” ve diğer bilgiler elde edilir. TGS bileti, diğer sunuculara erişimde kullanılmak üzere kaydedilir.


    Dikkat edilirse bu sistemde kullanıcı şifresi her yeni servis isteği sırasında değil, sadece Kerberos sunucusuyla oturum açma işlemi sırasında kullanılmaktadır. Böylece kullanıcı şifresinin ele geçirilmesi olasılığı büyük ölçüde azaltılmış olur.
    Kerberos’un gerçeklenmesi

    Şifrelemede DES algoritması kullanılır, ancak ayrı bir modülde yapıldığı için algoritma kolayca değiştirilebilir.


    Kerberos, ölçeklenebilir yapıya sahiptir. Tüm uygulama alanı, ayrı asıllama otoritesi alanlarına bölünebilir. Bu alanlara “ülke” (realm) denmektedir. Her bir ülkenin kendi Kerberos sunucusu vardır. Çoğu istemci sadece bir ülkede kayıtlıdır ancak TGS’lar tüm ülkelerde kayıtlıdır. İstemciler, kendilerini diğer ülkelerdeki sunuculara, yerel TGS’leri sayesinde asıllarlar.
    Bir ülkede -aynı asıllama veri tabanına sahip olacak şekilde- birkaç AS bulunabilir. Veritabanı, basit bir efendi-köle tekniğiyle çoğaltılır. Veri tabanı güncellemeleri sadece ana kopya üzerinde, yine ana makinede çalışan Kerberos Database Management System (KDBM) tarafından yapılır. KDBM, otorite ekleme/çıkarma ve şifre değişimi gibi işlemlerden sorumludur.
    TGS biletlerinin ömrü, alt yapı kullanıcılara saydam olacak şekilde ayarlanmalıdır. Yani, TGS biletlerinin ömrü, mümkün en uzun oturum açma oturumu kadar olmalıdır. Çünkü süre dolduğunda servis istekleri reddedilecek ve kullanıcı tekrar oturum açmak zorunda kalacaktır. Bilet ömrü genelde 12 saat civarındadır.

    2.2.2 SSL (Secure Sockets Layer)

    Şifreleme ve asıllama ile oluşturulan ve iki süreci birbirine bağlayan haberleşme kanalına, güvenli kanal denir. Özellikleri:



    1. Haberleşen süreçler, birbirinin kimliğinden emindir.

    2. Mesajların gizliliği ve bütünlüğü garantidedir.

    En yaygın güvelik kanalı oluşturma yöntemi, SSL protokolünü kullanmaktır.

    Birçok web tarayıcı tarafından desteklenen ve genelde e-ticaret uygulamalarında kullanılan SSL protokolü, aşağıdaki ihtiyaçları karşılamak üzere, Netscape Corp. tarafından geliştirilmiştir.


    • Şifreleme ve asıllama algoritmalarının karşılıklı anlaşılarak seçilmesi.

    • Önceden anlaşmayı ya da üçüncü partilerden destek almayı gerektirmeden güvenli kanalın kurulabilmesi: Haberleşmenin ilk aşamalarındaki mesajlar şifreli değildir, sonraki aşamada açık anahtar kullanılır ve sonra kapalı anahtara geçilir.


    2.3 Diğer Tehlikeler:




    2.3.1 Servisin Reddi (Denial of Service)


    Sunuculara sürekli istek göndermek suretiyle sunucunun hizmet kapasitesinin doldurulup kilitlenmesidir. Ağa çok fazla mesaj gönderilerek fiziksel kaynakların (bant genişliği gibi) tüketilmesi, istemcilerin hizmet almasının engellenmesi veya yavaşlatılması da bu tip bir saldırıdır.

    2.3.2 Gezici Kod (Mbile Code)


    En yaygın gezici kod örneği, applet’lerdir. Bir tarayıcı çalıştırmış olan kullanıcı, kodu web sunucusunda tutulan bir appletin linkini seçerse, kod kullanıcının makinesine indirilerek çalıştırılır; bu makinedeki kaynaklara erişir.

    Gezici kod, sunucuların yükünü azaltmak açısından avantajlıdır. Ancak kullanıcının kaynaklarına zarar verecek şekilde kötüye kullanılabileceğinden, bir güvenlik tehdididir.



    3 Kaynaklar


    [1] Distributed Systems Concepts and Design, Coulouris, Dollimore, Kindberg

    [2] Computer Networks, Tanenbaum

    [3] Authentication in Distributed Systems:Theory and Practice, Lampson, Abadi, Burrows, Wobber, Digital Equipment Corporation

    [4] The Protection of Information in Computer Systems, Saltzer and Schroder, IEEE Invited Paper






        Ana sayfa


    T. C. İStanbul tekniK ÜNİversitesi

    Indir 62.24 Kb.