Genel Bakış
TLS şifre takımı, bir TLS oturumunu birlikte yöneten dört kriptografik algoritmadan oluşan adlandırılmış bir kombinasyondur: anahtar değişim mekanizması, kimlik doğrulama algoritması, toplu şifreleme şifresi ve mesaj kimlik doğrulama kodu (MAC). TLS el sıkışması sırasında istemci desteklediği takımların listesini sunar ve sunucu bunlardan birini seçer. Bir sunucu, kriptografik açıdan bozulmuş ya da yetersiz güçlü temellere dayanan şifre takımlarını kabul edecek şekilde yapılandırıldığında, sertifikanın kendisi geçerli olsa bile ortaya çıkan bağlantı pasif şifre çözme, aktif müdahale veya oturum ele geçirme saldırılarına karşı savunmasız hale gelir.
Sensagraph, hedef sunucunun kabul ettiği şifre takımlarını otomatik olarak numaralandırır ve mevcut kriptografik standartlara göre zayıf ya da kullanımdan kaldırılmış olanları işaretler.
Nasıl çalışır?
TLS el sıkışması sırasında (TLS 1.3 için RFC 8446'da, önceki sürümler için ilgili RFC'lerde tanımlanan) sunucu, istemcinin sunduğu listeden bir şifre takımı seçer ya da önerir. Zayıflıklar dört bileşenden birinde veya birkaçında ortaya çıkar:
- Zayıf anahtar değişimi: Anonim Diffie-Hellman (ADH/NULL), RSA anahtar taşıma (öne yönelik gizlilik yok), ihracat sınıfı 512-bit DH veya RSA (FREAK ve Logjam saldırıları tarafından istismar edilir) ya da geçici anahtarlar olmadan statik ECDH.
- Bozuk toplu şifreler: RC4 (RFC 7465 kullanımını yasaklar — yanlılıklar düz metin kurtarmaya olanak tanır), DES ve 3DES (56-bit ve 112-bit efektif anahtar uzunlukları; 3DES CBC modunda Sweet32 doğum günü saldırısı geçerlidir), NULL şifreleme (hiç gizlilik yok) ve EXPORT sınıfı şifreler (40–56 bit anahtar uzunlukları).
- Zayıf MAC'ler: MD5 ve SHA-1 tabanlı MAC'ler (çarpışma güvenlik açıkları; BEAST saldırısı, TLS 1.0'da öngörülebilir IV'lerle CBC modunu istismar eder).
- Protokol sürümü bağımlılığı: SSL 2.0 ve 3.0 tamamen bozulmuş durumdadır (POODLE, DROWN). TLS 1.0 ve 1.1 bilinen zayıflıklara sahiptir ve 2021'de RFC 8996 ile resmi olarak kullanımdan kaldırılmıştır.
- Sürüm düşürme saldırıları: Bir sunucu hem güçlü hem de zayıf takımları destekliyorsa, aktif bir ağ saldırganı (örneğin TLS_FALLBACK_SCSV bypass yoluyla) daha zayıf bir takımın seçilmesini zorlamak için sürüm düşürme saldırısı gerçekleştirebilir.
Zayıf şifre takımı dizelerinin yaygın örnekleri arasında TLS_RSA_WITH_RC4_128_MD5, TLS_RSA_WITH_DES_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA ve _EXPORT_, _anon_ veya _NULL_ içeren tüm takımlar sayılabilir.
İş etkisi
Zayıf şifre takımlarının istismar edilmesi şu sonuçlara yol açabilir:
- Gizlilik ihlali: Ağa erişimi olan bir saldırgan (örneğin paylaşımlı bir ağda, ISP düzeyinde veya BGP ele geçirme yoluyla) oturum verilerini çözebilir; kimlik bilgilerini, oturum jetonlarını, kişisel verileri ve iş açısından hassas iletişimleri ele geçirebilir.
- Bütünlük kaybı: Zayıf MAC'ler veya NULL şifre yapılandırmaları, aktif saldırganların aktarımdaki verileri tespit edilmeden enjekte etmesine veya değiştirmesine izin verir.
- Düzenleyici ve uyumluluk cezaları: PCI DSS, kart sahibi veri ortamları için TLS 1.0 ve zayıf şifre takımlarını açıkça yasaklamaktadır. HIPAA, GDPR ve SOC 2 çerçeveleri yeterli şifreleme gerektirmektedir. Uyumsuzluk; para cezalarına, denetim başarısızlıklarına ve ödeme işleme haklarının kaybına yol açabilir.
- İtibar hasarı: Zayıf şifreleme yapılandırmalarının kamuoyuna açıklanması, özellikle finans, sağlık ve e-ticaret operatörleri için müşteri güvenini zedeler.
- Öne yönelik gizlilik kaybı: Geçici anahtar değişimi içermeyen şifre takımları (örneğin statik RSA), sunucunun özel anahtarının gelecekte ele geçirilmesi durumunda önceden yakalanan tüm trafiğin geriye dönük olarak deşifre edilmesine olanak tanır.
Nasıl düzeltilir?
- SSLv2, SSLv3, TLS 1.0 ve TLS 1.1'i devre dışı bırakın. Sunucuları yalnızca TLS 1.2 ve TLS 1.3'ü destekleyecek şekilde yapılandırın. RFC 8996, TLS 1.0 ve 1.1'i resmi olarak kullanımdan kaldırmıştır; büyük tarayıcıların çoğu bu sürümler için desteği kaldırmıştır.
- TLS 1.3 şifre takımlarını tercih edin. TLS 1.3, tasarım gereği zayıf temelleri ortadan kaldırır. Üç zorunlu şifre takımı (
TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256) hepsi öne yönelik gizlilikle birlikte AEAD şifrelemesi kullanır. - TLS 1.2 için geçici anahtar değişimine sahip güçlü AEAD takımlarıyla sınırlayın:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256veTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384gibi takımları önceliklendirin. Padding oracle riskleri nedeniyle mümkün olduğunda CBC modundaki takımlardan kaçının. - Zayıf takımları sunucu yapılandırmasından açıkça kaldırın: Tüm RC4, DES, 3DES, EXPORT, NULL ve anonim (anon) şifre takımlarını devre dışı bırakın. MD5 ve SHA-1 tabanlı MAC'leri kaldırın.
- TLS_FALLBACK_SCSV'yi etkinleştirin (RFC 7507), istemcilerin yanlışlıkla daha düşük protokol sürümlerine geri dönmesiyle oluşan protokol sürümü düşürme saldırılarını engellemek için.
- Sunucu taraflı şifre sırası tercihini kullanın (Apache'de
SSLHonorCipherOrder on; Nginx'tessl_prefer_server_ciphers on), sunucunun daha güçlü takımlarının zayıf istemci tercihlerine karşı seçilmesini sağlamak için. - Güçlü DH parametreleri kullanın. TLS 1.2 için DHE anahtar değişimi kullanıyorsanız, Logjam saldırısını önlemek amacıyla en az 2048 bit uzunluğunda özel bir DH parametre grubu oluşturun (
openssl dhparam -out dhparam.pem 2048). - Yetkili araçlarla doğrulayın. Yeniden yapılandırmanın ardından Qualys SSL Labs Sunucu Testi ile test edin (A veya A+ derecelendirmesini hedefleyin) ve OpenSSL kullanarak şifre listesini doğrulayın:
openssl s_client -connect host:443 -cipher 'RC4'komutu el sıkışma hatası döndürmelidir. - Mozilla'nın TLS yapılandırma oluşturucusuna başvurun — Apache, Nginx, HAProxy ve diğer yaygın sunucular için güncel önerilen yapılandırmalar için (Referanslar bölümünde bağlantı verilmiştir).
Referanslar
- OWASP Top 10 A02:2021 – Kriptografik Hatalar
- CWE-326: Yetersiz Şifreleme Gücü – MITRE
- CWE-327: Bozuk veya Riskli Kriptografik Algoritma Kullanımı – MITRE
- RFC 8446 – TLS Protokolü Sürüm 1.3 (IETF)
- RFC 7525 / BCP 195 – TLS ve DTLS'nin Güvenli Kullanımına İlişkin Öneriler (IETF)
- RFC 8996 – TLS 1.0 ve TLS 1.1'in Kullanımdan Kaldırılması (IETF)
- RFC 7465 – RC4 Şifre Takımlarının Yasaklanması (IETF)
- RFC 7507 – TLS Geri Dönüş Sinyalleme Şifre Takımı Değeri (SCSV) (IETF)
- Mozilla Sunucu Tarafı TLS Kılavuzu
- Mozilla SSL Yapılandırma Oluşturucu
- NIST SP 800-52 Rev. 2 – TLS Uygulamalarına İlişkin Kılavuzlar
- PCI Güvenlik Standartları Konseyi – PCI DSS