Last updated on 21 Aralık 2018
SSL network üzerindeki bilgi transferi sırasında güvenlik ve gizliliğin sağlanması amacıyla Netscape tarafından geliştirilmiş bir güvenlik protokolüdür. SSL 1994 yılında Netscape Navigator tarayıcısının ilk sürümü ile tanıtıldı. Navigator’un haberleşmeyi kriptolayabilmesi Netscape’in seçilmesinde ana etkendi. SSL teknolojisi TCP/IP protokolü üzerinde çalışır ve web sunucusu ile web tarayıcısı arasındaki tüm bilgi akışını korur.1996 yılında 3.0 versiyonunun çıkarılmasıyla hemen hemen bütün popüler web sunucuları ve web tarayıcılarının (Microsoft Explorer, Netscape Navigator vb.) desteklediği bir standart haline gelmiş ve çok geniş uygulama alanları bulmuştur.
SSL’in üç adet sürümü vardı. SSL 1.0, Netscape içerisinde dâhili olarak kullanıldı ve bazı ciddi hatalar içerdiğinden piyasaya sürülmedi. SSL 2.0 Netscape 1.0 ile 2.x sürümleri içerisine dahil edildi fakat ‘man-in-the-middle’ saldırıları ile ilgili bazı zayıflıklar içeriyordu. Ek olarak iki üniversite öğrencisi Netscape’in rastgele sayı üreticisindeki bir açıktan yararlanarak SSL 2.0’ı dakikalar içerisinde kırdı. SSL’ in güvenliği konusunda oluşan endişelerden yararlanmak isteyen Microsoft 1996 yılında Internet Explorer’ın ilk sürümünde rakip protokol PCT’yi sundu. Netscape karşılık olarak 2.0 daki problemlerin giderildiği ve (Diffie-Hellman anonim anahtar değiş-tokuşu ve Fortezza akıllı kart desteği gibi) yeni özelliklerin eklendiği SSL 3.0′ı sundu. Bu noktada Microsoft geri adım atarak Internet yazılımlarının tüm sürümlerinde SSL’ i desteklemeye karar verdi (geriye uyumluluk için halen PCT desteği bulunuyor). SSL v3.0 Netscape Navigator 3.0 ve yukarısı sürümlerde ve Internet explorer 3.0 ve yukarısında bulunuyor. SSL daha sonra Internet Engineering Task Force (IETF) tarafından Internet standartları aktivitelerinde odak noktası oldu. TLS, önerilen Transport Layer Security protokolü SSL v3.0’ dan türetilmiştir ve farklı mesaj özeti ve kriptolama algoritmaları kullanır.
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.
SSL’in Özellikleri
SSL gönderilen bilginin kesinlikle ve sadece doğru adreste deşifre edilebilmesini sağlar. Bilgi gönderilmeden önce otomatik olarak şifrelenir ve sadece doğru alıcı tarafından deşifre edilebilir. Her iki tarafta da doğrulama yapılarak işlemin ve bilginin gizliliği ve bütünlüğü korunur.
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:
- İstek yapılan dokümanın URL‘si
- İstek yapılan dokümanın içeriği
- Doldurulup gönderilen form’ların içeriği
- Tarayıcıdan sunucuya gönderilen çerezler (cookie).
- Sunucudan browser’a gönderilen çerezler.
- HTTP başlığının içeriği
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
Bölüm 1: Kriptoloji Nedir?
Bölüm 2: Kriptografide Kullanılan Teknikler ve Kriptografik Uygulamalar
Bölüm 3: Gizli Anahtarlı Kriptografi
Bölüm 4: Açık Anahtarlı Kriptografi
Bölüm 5: Sayısal İmza
Bölüm 6: Şifreleme Algoritmaları
Bölüm 7: SSL (Secure Socket Layer) Nedir?
Not: Bu yazı dizisindeki bilgiler güncelliğini yitirmiş olabilir. Bu yazıları hazırladığım zaman kaynakları yazmadığım için burada belirtemedim.
İlk Yorumu Siz Yapın