Genel Bakış
ROBOT Saldırısı (Return Of Bleichenbacher's Oracle Threat), Daniel Bleichenbacher tarafından 1998'de tanımlanan kriptografik bir zafiyetin pratik olarak kullanılmasıdır. RSA ile PKCS#1 v1.5 dolgusu kullanan TLS sunucularını hedef alır. Neredeyse yirmi yıl önce keşfedilmesine karşın, araştırmacılar 2017'de bu zafiyeti büyük ticari TLS uygulamalarında aktif biçimde mevcut olarak yeniden tespit etmiştir.
Temel sorun, bazı sunucuların farklı hata mesajları, zamanlama farkları veya davranışsal tutarsızlıklar aracılığıyla RSA şifreli bir metnin geçerli PKCS#1 v1.5 dolgusu içerip içermediğini açığa çıkarmasıdır. Bu bilgi sızıntısı, bir saldırganın sunucunun özel anahtarına hiç sahip olmadan düz metni yeniden oluşturmak veya imzaları taklit etmek için binlerce ile milyonlarca kez sorgulayabileceği bir oracle oluşturur.
Nasıl çalışır?
RSA PKCS#1 v1.5 (RFC 2313 ve sonrasında RFC 8017'de tanımlanmıştır), dolgulu bir iletinin 0x00 0x02 bayt dizisiyle başlaması, ardından sıfır olmayan rastgele dolgu baytları ve bir 0x00 ayırıcı içermesi gerektiğini belirtir. TLS RSA anahtar değişiminde istemci, sunucunun RSA genel anahtarını kullanarak bu dolgu şemasıyla ön-ana sır'ı şifreler.
Bleichenbacher'ın uyarlamalı seçili şifreli metin saldırısı şu şekilde işler:
- Oracle tespiti: Saldırgan, hedef sunucunun gönderilen bir RSA şifreli metnin PKCS#1 v1.5 dolgu kurallarına uygun çözülüp çözülmediğine göre farklı yanıtlar (farklı uyarı türü, farklı zamanlama veya bağlantı davranışı) verdiğini belirler.
- Şifreli metin körleme: Saldırgan, meşru bir RSA şifreli metni (örneğin bir TLS el sıkışmasından yakalanan) ele geçirir ve sunucunun ortak modülü n üzerinde seçilmiş körleme faktörleriyle çarpar; böylece sunucunun çözeceği değiştirilmiş şifreli metinler üretir.
- Yinelemeli daraltma: Saldırgan, binlerce ile milyonlarca özel hazırlanmış şifreli metni göndererek ve oracle yanıtlarını gözlemleyerek, aralık aritmetiği kullanarak olası düz metin değerlerinin aralığını giderek daraltır ve sonunda özgün düz metni kurtarır.
- İmza sahteciliği: RSA imzalama ve şifre çözme matematiksel olarak eşdeğer işlemler olduğundan, aynı oracle keyfi iletiler için geçerli RSA imzaları üretmek ve sunucuyu taklit etmek amacıyla kullanılabilir.
- Özel anahtar gerekmez: Saldırının tamamı yalnızca sunucunun genel anahtarı ve oracle kullanılarak gerçekleştirilir; özel anahtar hiçbir zaman doğrudan ele geçirilmez.
2017'de tespit edilen modern varyantlar, uygulamaya özgü zamanlama yan kanalları sayesinde, özgün teorik analizde tahmin edilen ~1.000.000 sorguya kıyasla yalnızca ~17.000 oracle sorgusu gerektirmiştir. Bazı durumlarda zafiyetler, kurumsal yük dengeleyiciler ve TLS sonlandırma cihazlarında on yılı aşkın süredir var olan hatalı hata işleme kodundan kaynaklanmıştır.
Saldırı yalnızca RSA anahtar değişimini kullanan TLS şifre paketlerini etkiler (örn. TLS_RSA_WITH_AES_128_CBC_SHA). İleri gizlilik sağlayan Diffie-Hellman veya ECDHE anahtar değişimini kullanan şifre paketlerini etkilemez.
İş etkisi
Başarılı bir ROBOT saldırısının birkaç ciddi sonucu vardır:
- Pasif oturum şifre çözümü: Zafiyetli bir RSA anahtar değişimiyle şifrelenmiş TLS trafiğini kaydetmiş bir saldırgan, bu trafiği geriye dönük olarak çözebilir; kimlik bilgileri, oturum belirteçleri ve hassas uygulama verileri açığa çıkar.
- Aktif ortadaki adam saldırısı: TLS oturumlarının gerçek zamanlı çözülmesi, iletişimlerin fark edilmeden ele geçirilip değiştirilmesine olanak tanır.
- RSA imza sahteciliği: Saldırganlar TLS sunucu imzalarını taklit edebilir; bu durum sunucu kimlik doğrulamasını baltalayarak istemcilere yönelik kimlik avı saldırılarına zemin hazırlar.
- Mevzuat riski: Kriptografik hata nedeniyle şifreli verilerin ifşa edilmesi, GDPR, PCI-DSS, HIPAA ve benzer çerçeveler kapsamında ihlal bildirimi yükümlülüklerini tetikleyebilir.
- İtibar kaybı: Üretim sistemlerinde 20 yıllık geçmişe sahip köklü bir kriptografik zafiyetin kamuoyuna duyurulması ciddi itibar riski taşır.
Nasıl düzeltilir?
- RSA anahtar değişimi şifre paketlerini devre dışı bırakın: TLS yapılandırmanızdan tüm
TLS_RSA_*şifre paketlerini kaldırın. Bu paketler saldırının ön koşuludur. Yalnızca ileri gizlilik de sağlayan geçici Diffie-Hellman (DHE) veya eliptik eğri Diffie-Hellman (ECDHE) anahtar değişimini kullanan şifre paketlerini etkin bırakın. - Satıcı yamalarını uygulayın: RSA anahtar değişimini hemen devre dışı bırakmak mümkün değilse, TLS uygulamanız veya cihazınız için yayımlanan tüm satıcı yamalarını uygulayın. Ürününüze özgü CVE listesine (F5 BIG-IP, Citrix NetScaler, Cisco ACE vb.) başvurun.
- Sabit zamanlı RSA şifre çözümü uygulayın: TLS kütüphanesi geliştiricileri için RSA PKCS#1 v1.5 şifre çözme hataları, rastgele üretilmiş bir ön-ana sır yedeğiyle sabit zamanlı biçimde işlenmelidir (RFC 5246 Bölüm 7.4.7.1 ve RFC 8446'daki güncel rehbere uygun olarak).
- TLS 1.3'e geçin: TLS 1.3 (RFC 8446), RSA anahtar değişimini protokol kapsamından tamamen kaldırır ve ileri gizlilik sağlayan anahtar değişimini zorunlu kılar; bu sayede söz konusu zafiyet sınıfı tasarım gereği ortadan kalkar.
- TLS yapılandırmasını düzenli olarak denetleyin: Yapılandırma değişikliklerinin veya yazılım yükseltmelerinin ardından hiçbir RSA anahtar değişimi şifre paketinin etkin kalmadığını doğrulamak için otomatik tarama kullanın. Sensagraph bu zafiyeti otomatik olarak tespit eder.
- Sertifika kullanımını gözden geçirin: RSA sertifikanız zafiyetli şifre paketleriyle birlikte kullanıldıysa ve bir saldırganın trafiği kaydetmiş olabileceğinden şüpheleniliyorsa sertifikayı yenilemeyi ve eskisini iptal etmeyi değerlendirin; ancak bu işlemin oracle aracılığıyla çözülebilecek önceden kaydedilmiş oturumları korumadığını unutmayın.
Kaynaklar
- ROBOT Saldırısı – Resmi Araştırma Sitesi (Böck, Somorovsky, Young 2017)
- USENIX Security 2018 – Return Of Bleichenbacher's Oracle Threat (ROBOT)
- Bleichenbacher, D. (1998) – RSA Şifreleme Standardı PKCS#1'e Karşı Seçili Şifreli Metin Saldırıları (ACM CCS)
- MITRE CWE-203 – Gözlemlenebilir Tutarsızlık
- MITRE CWE-326 – Yetersiz Şifreleme Gücü
- OWASP Top 10 A02:2021 – Kriptografik Hatalar
- RFC 8446 – TLS Protokolü Sürüm 1.3
- RFC 8017 – PKCS #1: RSA Kriptografi Belirtimleri Sürüm 2.2
- RFC 5246 Bölüm 7.4.7.1 – TLS 1.2 RSA Ön-Ana Sır İşleme Karşı Önlemi
- NVD – CVE-2017-13099 (WolfSSL ROBOT)