Sorun doğrudan TLS spesifikasyonunda mevcut ve yalnızca DH anahtar değişim protokolüne (Diffie-Hellman, TLS_DH_*") dayalı şifreleri kullanan bağlantıları etkiliyor. ECDH şifreleri ile sorun yaşanmaz ve güvende kalırlar. Yalnızca sürüm 1.2'ye kadar olan TLS protokolleri savunmasızdır; TLS 1.3 sorundan etkilenmez. Güvenlik açığı, DH gizli anahtarını farklı TLS bağlantılarında yeniden kullanan TLS uygulamalarında ortaya çıkıyor (bu davranış, Alexa Top 4.4M sunucularının yaklaşık %1'ünde meydana geliyor).
OpenSSL 1.0.2e ve önceki sürümlerde, SSL_OP_SINGLE_DH_USE seçeneği açıkça ayarlanmadığı sürece DH birincil anahtarı tüm sunucu bağlantılarında yeniden kullanılır. OpenSSL 1.0.2f'den bu yana, DH birincil anahtarı yalnızca statik DH şifreleri ("DH-*", örneğin "DH-RSA-AES256-SHA") kullanıldığında yeniden kullanılır. Bu dal DH birincil anahtarı ve statik DH şifreleri kullanmadığı için güvenlik açığı OpenSSL 1.1.1'de görünmüyor.
DH anahtar değişimi yöntemini kullanırken, bağlantının her iki tarafı da hangi genel anahtarların (ga mod p ve gb mod p) hesaplanıp gönderildiğine bağlı olarak rastgele özel anahtarlar (bundan sonra anahtar "a" ve anahtar "b" olarak anılacaktır) oluşturur. Her bir taraf genel anahtarları aldıktan sonra, oturum anahtarlarını oluşturmak için kullanılan ortak bir birincil anahtar (gab mod p) hesaplanır. Raccoon saldırısı, sürüm 1.2'ye kadar olan TLS spesifikasyonlarının, birincil anahtarın tüm önde gelen boş baytlarının, onu içeren hesaplamalardan önce atılmasını gerektirdiği gerçeğine dayanarak, yan kanal analizi yoluyla birincil anahtarı belirlemenize olanak tanır.
Kesilmiş birincil anahtar dahil olmak üzere, farklı veriler işlenirken farklı gecikmelere sahip karma işlevlerine dayanan oturum anahtarı oluşturma işlevine iletilir. Sunucu tarafından gerçekleştirilen anahtar işlemlerin zamanlamasının doğru bir şekilde ölçülmesi, saldırganın birincil anahtarın sıfırdan başlayıp başlamadığına karar vermesini mümkün kılan ipuçlarını (oracle) belirlemesine olanak tanır. Örneğin, bir saldırgan istemci tarafından gönderilen genel anahtarı (ga) ele geçirebilir, sunucuya yeniden iletebilir ve
ortaya çıkan birincil anahtarın sıfırdan başlayıp başlamadığı.
Tek başına anahtarın bir baytını tanımlamak hiçbir şey vermez, ancak saldırgan, bağlantı anlaşması sırasında istemci tarafından iletilen "ga" değerini yakalayarak "ga" ile ilişkili bir dizi başka değer oluşturabilir ve bunları sunucuyu ayrı bağlantı anlaşması oturumlarında. Saldırgan, "gri*ga" değerleri üretip göndererek, sunucu yanıtındaki gecikmelerdeki değişiklikleri analiz ederek, sıfırdan başlayarak birincil anahtarların alınmasına yol açan değerleri belirleyebilir. Saldırgan bu değerleri belirledikten sonra aşağıdakiler için bir dizi denklem oluşturabilir:
OpenSSL güvenlik açıkları
Ek sorunlar ayrı ayrı not edilmiştir (
Kaynak: opennet.ru