SSL (Secure Socket Layer) Nedir? - Paylaşabildiklerim
SSL Internet Explorer 3.0 ve Nestcape Navigator 3.0 tarayıcılar ve üst versiyonlarında çalışabilir. Günümüzde, internet tarayıcılarının büyük çoğunluğu tarafından kullanılmaktadır. SSL güvenliğinin varlığını iki şekilde anlarız. Birincisi http:// nin https:// olmasından anlıyoruz. İkincisi ise, tarayıcıların altında çıkan kilit simgesinden anlarız. İnterner explorarda web tarayıcısında web sunucuyla SSL bağlantısı olduğunda tarayıcının sağ alt köşesinde bir kilit simgesi çıkar. SSL bağlantısı olmadığı zaman ise bu kilit simgesi görünmez. Netscape navigatorde ise SSL varlığında kapalı bir kilit, yokluğunda ise açık bir kilit simgesi görünür.
SSL’in Oluşturulma Kriterleri
Gizlilik: Ağ ortamında bir istemci veya bir sunucudan, başka bir istemci veya sunucuya şifrelenmiş bir mesaj gittiğinde, bu mesaj asıl hedefine ulaştığında, kaynak istemci yolladığı mesajı şifrelerken hedef istemcinin genel anahtarını kullandığı için mesaj başka bir istemci tarafından alınsa bile, bu istemci mesajın son hedefinin neresi olduğunu bilemez.
Doğruluk: Doğruluğu garantilemek için bir parça karmaşık şifreleme sistemi gerekmektedir. Burada kaynak istemci mesajı önce kendinin özel anahtarı ile daha sonra hedef istemcinin genel anahtarı ile şifreler. Mesaj, hedef istemcide önce kendi özel anahtarı ile daha sonrada kaynak istemcinin genel anahtarı ile çözülür. Böylece hedef istemci bu mesajın kaynak istemciden geldiğine emin olur.
Güvenilirlik: SSL’in güvenilirliği, gerekli karışık fonksiyon tablolarından elde edilen MAC (Message Authentication Code) kullanılmasıyla sağlanır. Mesaj oluşturulması esnasında karışık fonksiyonlardan elde edilen MAC, mesaj içerisine şifrelenir. Hedef istemcide mesajın geçerliliği, karışık fonksiyonların tersine çevrilmesi sonucu elde edilen MAC’in karşılaştırılması ile kontrol edilir. Bu iletilen mesajın üçüncü bir istemci tarafından değiştirilmesini engeller.
Kabul Edilebilirlik: İletilen mesajın güvenliği şifrelenen anahtara göre değişir. Eğer bu anahtar yanlış ellere geçerse, anahtar kolaylıkla kopyalanıp güvenliği aşmak için kullanılabilir. Tam güvenli bir sistem böyle sahtekârları fark edebilmeli veya şifre anahtarları kopyalanamamalıdır. SSL bunu kendisi tek başına desteklememektedir. Bu, donanım tabanlı eşsiz bir jeton kullanılarak sağlanmaktadır. Bu özelliği Fortezza ile birleşimi sonucu yapmaktadır.
Veri akışında kullanılan şifreleme yönteminin gücü kullanılan anahtar uzunluğuna bağlıdır. Anahtar uzunluğu bilginin korunması için çok önemlidir. Örneğin; 8 bit üzerinden bir iletimin çözülmesi son derece kolaydır. Bit, ikilik sayma düzeninde bir rakamı ifade eder. Bir bit, 0 veya 1 olmak üzere 2 farklı değer alabilir. 8 bit ise sadece 28=256 olası farklı anahtar içerir. Bir bilgisayar bu 256 farklı olasılığı sıra ile inceleyerek bir sonuca ulaşabilir. SSL protokolünde 40 bit ve 128 bit şifreleme kullanılmaktadır. 128 bit şifrelemede 2 değişik anahtar vardır ve bu şifrenin çözülebilmesi çok büyük bir maliyet ve zaman gerektirir.
SSL veri sıkıştırmayı dahili olarak desteklemektedir. Bu da bir mesaj kriptolandıktan sonra sıkıştırılamayacağı için önemli bir özelliktir (Sıkıştırma veri akışlarındaki yaygın kalıpları bulup fazlalıkları çıkartarak gerçekleştirilir, Kriptolama veriden tüm kalıpları çıkartarak yapılır ve bu sebeple sıkıştırılamaz hale gelir). Bir SSL bağlantısı kurulduğunda aşağıdakiler dahil tüm tarayıcıdan-sunucuya ve sunucudan-tarayıcıya yapılan haberleşme kriptolanır:
Tarayıcıdan sunucuya gönderilen çerezler (cookie).
Bilgisayarların birbirlerini “tanıma” işlemi, açık-kapalı anahtar tekniğine (public-private key encryption) dayanan bir şifreleme sistemi ile sağlanır. Bu sistemde, iki anahtardan oluşan bir anahtar çifti vardır. Bunlardan açık anahtar (public key) herkes tarafından bilinebilen ve gönderilen mesajı “şifrelemede” kullanılan bir dijital anahtardır. (Burada anahtar’dan kasıt, aslında bir şifreleme -kriptolama- algoritmasıdır. Bu algoritma (yani, anahtar) kullanılarak gönderilecek bilgi şifrelenir). Ancak, açık anahtar ile şifreelenen mesaj sadece bu anahtarın diğer çifti olan “kapalı anahtar” (private key) ile açılabilir (deşifre edilebilir). Kapalı anahtar da, sadece sizin bildiğiniz bir anahtar olduğundan, mesaj güvenliği sağlanmış olur. Örnek olarak, size mesaj göndermek isteyen birine kendi açık anahtarınızı gönderirsiniz. Karşı taraf bu anahtarı kullanarak mesajını şifreler ve size gönderir. Şifrelenen mesajı, sadece sizde olan ikinci bir anahtar (kapalı anahtar, private key) çözebilir ve bu anahtarı sadece siz bilirsiniz.
SSL, web sunucusunu tanımak için, dijital olarak imzalanan sertifikalar kullanır. Sertifika, aslında, o organizasyon hakkında bazı bilgiler içeren bir veri dosyasıdır. Aynı zamanda da, kuruluşun açık-kapalı anahtar çiftinin “açık” anahtarı da sertifika içinde yer alır. Sunucu sertifikası da, o sunucuyu işleten kuruma ait bilgiler içeren bir sertifikadır. Sertifikalar, “güvenilir” sertifika kuruluşları tarafından dağıtılır (VeriSign gibi).
Şekil 1: Sertifika Örneği
Şekil 2: Sertifika ile giden Açık Anahtar
Önceki Yazı Şifreleme Algoritmaları
Sonraki Yazı The Singleton Pattern