Secure Socket Layer (SSL) Nedir, Nasıl Kullanılır?

   7 Mayıs 2016   10 kere okundu.      Ipucu - Security

SSL (Secure Socket Layer), sunucu (genellikle web sunucu, web sitesi, e-posta sunucusu) ile istemci (web tarayıcı , e-posta istemci(Thunderbird, Outlook vb.)) arasında şifrelenmiş bir bağlantı oluşturmak amaçlı kullanılan bir güvenlik standandartıdır.

SSL aracılığı ile kredi kartı bilgileri, kimlik doğrulama bilgilieri (kullanıcı adı ve şifre) ve bu tarz hassas bilgiler güvenli bir şekilde, güvensiz bir ortam olan internet üzerinden gönderilebilmektedir. Normal şartlarda tarayıcı ve web sunucusu arasındaki trafik (http) açık olarak sağlanır ve bu da araya girme, dinleme yolu ile her türlü verinin başkalarının eline geçmesine sebep olmaktadır.

SSL bu güvenlik mekanizmasını sağlamak için, asimetrik ve simetrik şifreleme yöntemlerinin ikisinden de faydalanmaktadır. Asimetrik şifrelemeyi kullanırken de sunucunun public key kimliğinin doğrulanması için üçüncü  şahıslara ki bunlara sertifika otoriteleri denir güvenilmektedir. Dolayısıyla SSL için sertifika, asimetrik ve simetrik şifreleme yöntemlerinin kullanımı söz konusu olduğundan, bunları anlamak gereklidir.

Sertifika: SSL sertifikaları, public ve private olmak üzere iki adet anahtar içerir. Bu anahtarlar web web sitesi ve istemci arasında güvenli bağlantı oluşturmada kullanılacaktır. Ayrıca sertifikalar web sitesinin sahibine ait bilgileri de barındırır.

Sertifika sahibi olmak için web sunucusunun bir “Sertifika İmzalama İsteği (CSR)” oluşturması gereklidir. Bu CSR oluşturma süreci sunucuda public ve private anahtarların oluşturulmasını sağlayacaktır. Güvenilir bir sertifika sağlayıcısına gönderilen CSR dosyası, sunucuya ait public anahtarı barındırmaktadır. Sertifika otoritesi tarafından bu CSR dosyasına ait sertifikayı oluşturur ve bu sertifika web sunucusuna yüklenir.

Asimetrik Şifreleme: Şifreleme ve şifre çözmenin ayrı anahtarlar ile yapıldığı şifreleme türüdür. Burada herkes public(açık) anahtar ile şifreli mesaj gönderebilmekte, yalnız private (kapalı) anahtar sahibi tarafından bu mesajlar çözümlenebilmektedir. 1024 ve 2048 bitten oluşan asimetrik anahtarlarda güvenlik nedeniyle 2048 bitlik anahtarlar tercih edilmektedir.

Simetrik Şifreleme: Şifreleme ve şifre çözmenin daha önceden paylaşılmış bir anahtar ile yapıldığı  şifreleme türüdür.128 veya 256 bitlik anahtarlar kullanılabilir. Web sunucusu ve tarayıcı arasında SSL Handshake sırasında oluşturulan oturum anahtarı (session key), simetriktir.

Asimetrik ve simetrik şifrelemenin nasıl kullanıldığı aşağıda belirtilmiştir.

  1. Sunucu tarayıcıya asimetrik public anahtarını gönderir.
  2. Tarayıcı simetrik oturum anahtarını oluşturur ve sunucunun asimetrik anahtarı ile oturum anahtarını şifreler. Web sunucusuna gönderir.
  3. Sunucu kendi private anahtarı ile şifreyi çözer ve simetrik oturum anahtarını elde eder.
  4. Sunucu ve tarayıcı artık bu simetrik anahtarı kullanarak güvenli bir oturum başlatmış olur.

SSL sertifikası ile SSL bağlantısının nasıl sağlanacağı aşağıda anlatılmıştır.

Bir tarayıcı SSL ile korunan bir sunucuya bağlanmak istediğinde, sunucu ve tarayıcı arasında “SSL Handshake” denilen bir süreç başlatılmış olur. Bu süreç kullanıcılardan soyutlanmış anlık bir süreçtir. Bu süreçte üç adet anahtar kullanılmaktadır. Public, private ve simetrik oturum anahtarı. Asimetrik algoritmanın işlem gücünün maliyetli oluşu, sadece simetrik oturum anahtarının paylaşımında kullanılmasına sebep olmuştur. Bu aşamadan sonra güvenlik simetrik oturum anahtarı ile sağlanmaktadır.

  1. Tarayıcı SSL ile güvenliği sağlanan bir web sunucusuna (https) bağlanır ve sunucudan kendini tanıtmasını ister.
  2. Sunucu sahip olduğu SSL sertifikasının kopyasını ve açık anahtarını tarayıcıya gönderir.
  3. Browser gelen sertifikayı, sertifika sağlayıcısının güvenilir olduğunu, zamanının geçmediğini ve geçerli bir sertifika olduğu kontrollerini yapar. Tarayıcı sertifikanın bağlandığı siteye ait olduğunu teyit ederse, simetrik oturum anahtarını sunucunun public anahtarı ile şifreleyip gönderir.
  4. Sunucu şifreyi çözerek, simetrik oturum anahtarını elde ettiğine dair acknowledge bilgisini simetrik oturum anahtarı ile şifreleyerek tarayıcıya gönderir.
  5. Bu aşamadan sonra sunucu ve tarayıcı iletilen her türlü veriyi şifrelenmiş olarak gönderir.

SSL’in çalışma mantığı anlaşıldıktan sonra  SSL’i oluşturan protokollerin neler olduğu aşağıda açıklanmıştır.

SSL’i Oluşturan Protokoller:

SSL’ in iki önemli konsepti, SSL oturumu (SSL session) ve SSL bağlantısı (SSL Connection) dır.

SSL Bağlantısı: Peer-to-peer ilişkili, geçici ve bir oturumla ilişkili iletişimdir.

SSL Oturumu: İstemci ve Sunucu arasındaki birleşimdir. Oturumlar Handshake Protokolü ile oluşturulur. Oturumlar, birden fazla bağlantı arasında paylaşılabilen kriptografik güvenlik parametrelerinin tanımlanmasını sağlar. Oturumlar maliyetli olan her bağlantıda kullanılacak olan güvenlik parametreleri anlaşma işleminden kaçınmak için oluşturulmuştur.

SSL Oturumunun parametreleri: Oturum kimliği (Session Identifier), Sertifika (Peer certificate), Sıkıştırma metodu (Compression method), Şifreleme parametreleri (Cipher spec: Message Authentication Code (MAC) hesaplamaları parametreleri), Master Secret, Yeni bağlantılar için kullanılırlık durumu (Is resumable)

SSL Bağlantı Paramatreleri: Server and Client Random, Server write MAC secret, Client write MAC secret, Server write key, client write key, Initialization Vectors (IV, CBC block cipher kullanımı için), Sequence numbers

SSL_1

Şekil 1. SSL Protokol Yapısı

SSL’ i oluşturan protokoller Şekil 1’ de gösterilmiştir. SSL Handshake, SSL Change Cipher Spec, SSL Alert protokolleri üst katmanda, SSL Record Protokolü bir alt katmanda hizmet vermektedir.

SSL Record Protokolü: Gizlilik ve mesaj bütünlüğü sağlar. Uygulama katmanı verisi öncelikle boyutu belirli olan bloklara (214 bytes) ayrılır (fragmentation). Sonra bloklara isteğe bağlı olarak sıkıştırma (compression)  uygulanır. Simetrik anahtar ile MAC hesaplanır ve sıkıştırılmış veriye eklenir. MAC’li ve sıkıştırılmış veri bloğu simetrik (AES, DES, 3DES, Fortezza) olarak şifrelenir ve SSL Record Header bloğa eklenerek SSL Kayıt İşlemi (SSL Record Operation) tamamlanır.

SSL Record Header, İçerik Türü (Content Type – Üst katmandaki protokoller (change_cipher_spec, alert, handshake ve applicaiton)), Major Version (SSL v3 için 3 gibi), Minor Version (SSL v3 için 0 gibi), Compressed Length (Plaintext bloğunun veya compression kullanıldı ise sıkıştırılmış bloğun boyutu) alanlarını içermektedir. SSL Record Protokolüne ait format Şekil 2’ dedir.

SSL_2

Şekil 2. SSL Record Protokol Formatı

SSL Change Cipher Spec Protokolü: SSL e özel olan bu protokol sadece 1 byte lık 1 değerini tutan tek bir mesajdan oluşan bölümdür. Bekleyen durumu şimdiki (current state) duruma aktarılmasını sağlayarak, bağlantıdaki cipher suite güncellenmesini sağlar.

Alert Protokolü: Birer byte lık iki mesajdan oluşmaktadır.  Birinci mesaj alarmın seviyesini (fatal or warning), ikinci mesaj da hatanın türünü (unexpected_message, bad_record_mac, bad_certificate, no certificate, certificate_expired) belirtir. Fatal hatada SSL bağlantısı hemen sonlandırılır.

Handshake Protokolü: SSL protokolünün en karmaşık bölümüdür. Her mesaj tür, uzunluk ve içerik bilgilerini içerir. Dört aşamadan oluşmaktadır. Birinci aşama güvenlik yetenekleri belirlenmesi (client hello ve server hello), ikinci aşama sunucu kimlik doğrulama ve anahtar değişimi(sertifika, RSA, Diffie Hellman), üçüncü aşama İstemci kimlik doğrulama ve anahtar değişimi(anahtar değişimi, sertifikayı doğrulama), dördüncü aşama güvenli bağlantı oluşturmayı tamamlama (change cipher spec) aşamasıdır.


Yorum Yapmak İster Misiniz?

A

@

W