Aktarım Katmanı Güvenliği ( TLS ) veya "Güvenlik taşıma katmanı" ve selefi Güvenli Yuva Katmanı ( SSL ) "Katman veya yuva güvenli" olan protokoller için ticaret güvenliği bilgisayar ağlarının da dahil olmak üzere internet . SSL protokolü orijinal olarak Netscape Communications Corporation tarafından tarayıcısı için geliştirilmiştir . Standartlar kuruluşu IETF , onu Taşıma Katmanı Güvenliği (TLS) olarak yeniden adlandırarak geliştirmeye devam etti . Bazen SSL veya TLS'yi kayıtsız bir şekilde belirtmek için SSL/TLS'den bahsederiz .
TLS (veya SSL ) bir moda çalışır istemci sunucuya . Aşağıdaki güvenlik hedeflerini karşılar:
Gibi uygulama katmanı protokolleri, gerçeğiyle protokol yaygın kullanılır ve bunun uygulanması kolaylaştırılır HTTP , büyük ölçüde güvenli bir bağlantı için değiştirilmesi gereken, ancak yalnızca bunun üzerine uygulanan yoktur. SSL / TLS , kendisi için HTTP , HTTPS protokolünü verdi .
Özel bir IETF çalışma grubu oluşturulmasına destek TLS ve UDP bağlantısız mod eşdeğer , DTLS . IETF tarafından devralındığından beri , TLS protokolü dört versiyondan geçmiştir : 1999'da TLS v1.0 , 2006'da TLS v1.1 , 2008'de TLS v1.2 ve 2018'de TLS v1.3 .
Gibi internet büyüdü, daha fazla ticari şirketler bireyler için online alışveriş sunmaya başladı. Arz istikrarlı bir şekilde büyüdü, ancak e-ticaret geliri , müşteriler kredi kartıyla ödeme konusunda yeterli güvene sahip olana kadar mütevazı kaldı. Bu ödemeyi güvence altına almanın yollarından biri, SSL gibi kimlik doğrulama ve şifreleme protokollerini kullanmaktı. Tarafından ödeme yaparken kart numarası: şifreli oturum ağı üzerinden geçen hassas verileri ele geçirmesini bir üçüncü taraf önlemek için kullanılan banka kartı , şifre zaman bir sitede kullanıcı tanımlar kendisi vs.
Bir SSL sistemiyle, internet ödemesinin hala gelişmekte olan bir teknoloji olduğu günlere kıyasla güvenlik önemli ölçüde iyileştirildi ve müşteriye yönelik risk büyük ölçüde azaldı. Herhangi bir şifreleme sistemi gibi, SSL / TLS hiçbir zaman tamamen kusursuz olamasa da, çok sayıda banka ve e-ticaret sitesinin müşterilerinin işlemlerini korumak için bunu kullanması, esnekliğinin kanıtı olarak görülebilir. kötü niyetli saldırılar.
2009 itibariyle, TLS çoğu web sunucusu tarafından kullanılmaktadır . İnternet kullanıcısı, bir işlemin birkaç işaretle şifrelendiğini anlayabilir :
SSL'nin piyasaya sürülen ilk sürümü olan SSL 2.0, daha zayıf şifreleme algoritmalarının kullanımını zorlama olasılığı veya bir saldırganın kesme saldırıları gerçekleştirme olasılığı da dahil olmak üzere bir dizi güvenlik açığına sahipti. PCT 1.0 protokolleri, ardından SSL 3.0, bu sorunların büyük bir kısmını çözmek için geliştirildi, ikincisi hızla İnternet'teki alışverişleri güvence altına almak için en popüler protokol haline geldi.
TLS, SSL'nin 3. sürümünden yapısal olarak farklı değildir, ancak karma işlevlerinin kullanımındaki değişiklikler , iki protokolün doğrudan birlikte çalışamayacağı anlamına gelir. Ancak TLS, SSLv3 gibi, önceki sürümlerle geriye dönük bir uyumluluk mekanizması içerir, yani müzakere aşamasının başlangıcında, istemci ve sunucu, protokolün hepsi için mevcut olan "en iyi" sürümü üzerinde anlaşırlar. 2011'de yayınlanan RFC 6176'da ayrıntılı olarak açıklanan güvenlik nedenleriyle, TLS'nin SSL sürüm 2 ile uyumluluğu terk edilmiştir.
Nesil simetrik anahtarların ölçüde algoritmanın hiçbir adım üzerinde sadece güvenir olarak biraz daha güvenli TLS içinde SSLv3 içinde daha MD5 olan zayıflıklar kriptanaliz ortaya çıkmıştır .
TLS 1.3'ün ilk profesyonel sürümü, Mayıs 2017'de piyasaya sürülen wolfSSL'dir .
TCP / IP'de çalışan modern endüstriyel ağlar, TLS güvenliğini giderek daha fazla kullanıyor. Böylece IEC-61850, IEC-60870 ve DNP3 gibi elektrik şebekelerinin kontrol komutuna yönelik protokoller, siber saldırılara karşı koruma sağlamak için TLS'yi birleştirir.
Çoğu tarayıcı aynı zamanda TLS istemcisidir. Varsayılan olarak en son TLS 1.2 sürümünü destekleyen web tarayıcıları şunlardır:
Başlıca web tarayıcı geliştiricileri, 2020 baharından itibaren TLS 1.1 ve önceki sürümlere verdikleri desteği sonlandıracaklarını duyurdular.
HTTPS Everywhere bir olan uzatma için web tarayıcısı belirli sitelerde SSL / TLS kullanımını genişletmek için izin verir. Normalde devre dışı bırakıldığı sayfalarda şifrelemeyi etkinleştirir. Bu, yalnızca söz konusu site zaten TLS'yi destekliyorsa işe yarayabilir. Uzatma, Tor projesi ve EFF tarafından 2010'dan beri ortaklaşa sürdürülmektedir .
Çoğu durumda, kullanıcı bağlandığı TLS sunucusunun kimliğini doğrular. Bu kimlik doğrulama, bir sertifika yetkilisi (CA) tarafından verilen bir X.509 dijital sertifikasının kullanılmasıyla sağlanır . Web uygulamaları, TLS kullanarak istemci iş istasyonu kimlik doğrulamasını kullanabilir. Daha sonra istemci ve sunucu arasında karşılıklı kimlik doğrulaması sunmak mümkündür. İstemci sertifikası, istemci iş istasyonunda yazılım biçiminde saklanabilir veya bir donanım aygıtı ( akıllı kart , USB belirteci) tarafından sağlanabilir . Bu çözüm, güçlü kimlik doğrulama mekanizmaları sunmayı mümkün kılar .
Bir kullanıcı TLSv1.2 (veya daha düşük) kullanan bir web sitesinde oturum açtığında aşağıdaki adımlar gerçekleşir:
İsteğe bağlı: sunucu ayrıca istemcinin kimlik doğrulamasını gerektiriyorsa, istemci oturum anahtarıyla birlikte ona kendi sertifikasını gönderir. Daha sonra sunucu, istemcinin sertifikasının geçerli olduğunu doğrulamak için 3. maddede ayrıntılı olarak anlatıldığı gibi ilerler.
TLSv1.3 olduğundan , oturum anahtarının değişimi eliptik eğrilerle ( ECDHE ) Diffie-Hellman aracılığıyla yapılmalıdır : RSA artık bunun için kullanılamaz.
2001 yılında Serge Vaudenay , SSL'ye karşı bir yardımcı kanal saldırısı keşfetti . Standart güncellemenin bir sonucu olarak, bu saldırı artık tamamen geçersizdir ve artık kullanılamaz. Bu saldırı, girdiler değişken boyutta olduğunda kullanılan yetersiz bir dolgu uygulamasından yararlandı. Şifreleme modu CBC ( şifre bloğu zinciri ), aynı boyut ait çok sayıda blok veri bölmek ve sıralı bir şekilde (derecesi, daha sonra şifreleme kullanılmaktadır) şifrelemek için bir. Vaudenay saldırısı, doldurma sırasında hata olması durumunda sunucuların yanıt sürelerini kullandı. Şans eseri, gönderilen son verileri bulmak ve geri almak mümkündü. Ancak saldırı, RC4 tipi şifreleme ile etkisizdi ve yalnızca belirli koşullar altında geçerliydi. Her şeye rağmen, aynı verileri birkaç kez gönderen belirli "web postalarına" karşı başarıyla kullanıldı .
Mart 2014'te OpenSSL kitaplığında bir yazılım güvenlik açığı keşfedildi: Heartbleed , yanlışlıkla iki yıl önce OpenSSL'ye yapılan bir güncellemede tanıtıldı . Bu kusur, genel medya da dahil olmak üzere geniş çapta duyuruldu, çünkü seni seviyorum solucanı özellikle 2000 yılındaydı.
15 Ekim 2014'te Google'daki bir araştırma ekibi, SSLv3'ün tasarımında içeriğin şifresinin çözülmesine izin veren bir kusur tespit etti. Bu saldırı, Padding Oracle On Downgraded Legacy için POODLE olarak adlandırıldı . Yalnızca SSLv3'te bulunur.
2 Mart 2016'da araştırmacılar, DROWN adlı kusuru detaylandırdılar . TLS v1.2 teknolojisinin şifresini çözmek için eski SSL v2 sürümünü kullanmaktan ibarettir.
DANE protokolünün amacı, özellikle MIMT tipi saldırılar için TLS'deki belirli zayıflıkları düzeltmektir .
7 - uygulama katmanı | HTTP , SMTP , FTP , SSH , IRC , SNMP , SIP ... |
6 - sunum katmanı | |
5 - oturum katmanı | TLS, SSL, SSH kullanıcısı , NetBIOS |
4 - taşıma katmanı | TCP , UDP , SCTP , RTP , DCCP ... |
3 - ağ katmanı | IPv4 , IPv6 , ARP , IPX ... |
2 - bağ katmanı | Ethernet , 802.11 WiFi , Token ring , FDDI , ... |
1 - fiziksel katman | Kablo, fiber optik , radyo dalgaları ... |
TCP/IP protokol yığınında SSL, uygulama katmanı ( HTTP , FTP , SMTP vb. gibi) ile TCP taşıma katmanı arasında bulunur .
Bununla birlikte, en yaygın kullanımı HTTP'nin altında kalır. SSL, iki sonucu olan yığının oturum katmanı tarafından uygulanır :
Sunucu ve istemci kimlik doğrulaması, elektronik sertifikalar veya önceden paylaşılan sırlar (veya Önceden paylaşılan anahtar) aracılığıyla yapılabilir . Kimlik doğrulama isteğe bağlıdır.
TLS aracılığıyla alınıp verilen mesajlara kayıt denir . Tipik olarak, bu mesajlar TCP datagramlarında kapsüllenir. UDP'de bir varyant var ve DTLS olarak adlandırılıyor . Dört tür kayıt vardır:
Güvenlik, bir yandan sunucunun genel anahtarının doğrulanmasından sonra , istemci ile sunucu arasında paylaşılan bir sırrın oluşturulmasına izin veren RSA şifrelemesi gibi asimetrik şifreleme ile sağlanırken, diğer yandan Simetrik bir şifreleme ile sağlanır. (asimetrik şifrelerden çok daha hızlı), veri alışverişi aşamasında kullanılan AES gibi , simetrik şifreleme anahtarları paylaşılan sırdan hesaplanır. Diğer şeylerin yanı sıra, veri bütünlüğünü ve kimlik doğrulamasını (örneğin HMAC aracılığıyla ) sağlamak için SHA-1 gibi bir karma işlevi de kullanılır .
Daha kesin olarak, Uygulama veri mesajları , bir şifreleme anahtarı ve AES 128 gibi simetrik bir blok şifreleme algoritması veya CHACHA20 gibi akış başına şifrelenir . Bir HMAC işlevi aracılığıyla veya doğrudan simetrik blok şifrelemenin çalışma modu aracılığıyla kimlikleri doğrulanır .
Şifreleme anahtarları ve HMAC anahtarları, iki eş arasında değiş tokuş edilen bir sırdan ( master öncesi sır) , el sıkışma aşaması sırasında değiş tokuş edilen rastgele verilerden ve HMAC'ye dayalı bir anahtar türetme işlevinin kullanımından üretilir. Bu gizli değişim, DSA veya RSA algoritması gibi bir dijital imza algoritması kullanılarak doğrulanabilir (veya yapılmayabilir) .
Toplamda, bir TLS oturumu sırasında kullanılan beş tür şifreleme anahtarı vardır:
Kullanılan kriptografik takımlar aşağıdaki formata sahiptir:
burada KE bir gizli değişim algoritmasını, CIPHER bir simetrik şifreleme algoritmasını ve HASH bir karma işlevi gösterir . HMAC işlevi, karma işlevinden türetilmiştir.
Örneğin, şifreleme paketi TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, eşin ECDSA imza algoritması, GCM modunda AES 128 simetrik şifreleme algoritması ve SHA256 karma işlevi tarafından kimliği doğrulanan eliptik eğriler üzerinde Ephemeral Diffie-Hellman anahtar değişimi algoritmasını kullanabileceğini gösterir .
1.2 sürümünde, gizli değişim algoritması RSA veya Diffie-Hellman algoritmasının bir varyantı olabilir (doğrulanmış veya edilmemiş, kısa ömürlü veya değil, eliptik eğriler üzerinde veya değil), sürüm 1.3 için yalnızca geçici Diffie-Hellman algoritmasına izin verilir ve dijital imza işlevi, Handshake aşamasının ClientHello, ServerHello ve HelloRetryRequest mesajlarının uzantılarında belirtilir .