Problem birbaşa TLS spesifikasiyasında mövcuddur və yalnız DH açarlarının mübadiləsi protokoluna (Diffie-Hellman, TLS_DH_*") əsaslanan şifrələrdən istifadə edən əlaqələrə təsir göstərir. ECDH şifrələri ilə problem baş vermir və onlar təhlükəsiz olaraq qalırlar. Yalnız 1.2 versiyasına qədər olan TLS protokolları həssasdır; TLS 1.3 problemdən təsirlənmir. Zəiflik müxtəlif TLS bağlantılarında DH məxfi açarını təkrar istifadə edən TLS tətbiqlərində baş verir (bu davranış Alexa Top 4.4M serverlərinin təxminən 1%-də baş verir).
OpenSSL 1.0.2e və əvvəlki buraxılışlarda, SSL_OP_SINGLE_DH_USE seçimi açıq şəkildə təyin edilmədiyi halda, DH əsas açarı bütün server bağlantılarında təkrar istifadə olunur. OpenSSL 1.0.2f-dən bəri, DH əsas açarı yalnız statik DH şifrələrindən ("DH-*", məsələn, "DH-RSA-AES256-SHA") istifadə edildikdə təkrar istifadə olunur. Zəiflik OpenSSL 1.1.1-də görünmür, çünki bu filial DH əsas açarından istifadə etmir və statik DH şifrələrindən istifadə etmir.
DH açarlarının mübadiləsi metodundan istifadə edərkən əlaqənin hər iki tərəfi təsadüfi şəxsi açarlar (bundan sonra açar “a” və açar “b”) yaradır, buna əsasən açıq açarlar (ga mod p və gb mod p) hesablanır və göndərilir. Hər bir tərəf açıq açarları aldıqdan sonra sessiya açarlarını yaratmaq üçün istifadə olunan ümumi əsas açar (gab mod p) hesablanır. Yenot hücumu 1.2 versiyasına qədər TLS spesifikasiyalarının onunla bağlı hesablamalardan əvvəl əsas açarın bütün aparıcı null baytlarının ləğv edilməsini tələb etdiyinə əsaslanaraq, yan kanal təhlili vasitəsilə əsas açarı müəyyən etməyə imkan verir.
Kəsilmiş əsas açar daxil olmaqla, müxtəlif məlumatların işlənməsi zamanı müxtəlif gecikmələrlə hash funksiyalarına əsaslanan sessiya açarı yaratmaq funksiyasına ötürülür. Server tərəfindən yerinə yetirilən əsas əməliyyatların vaxtının dəqiq ölçülməsi təcavüzkara əsas açarın sıfırdan başlayıb-başlamadığını mühakimə etməyə imkan verən ipuçlarını (oracle) müəyyən etməyə imkan verir. Məsələn, təcavüzkar müştəri tərəfindən göndərilən açıq açarı (ga) ələ keçirə, onu yenidən serverə ötürə və müəyyən edə bilər.
nəticədə yaranan əsas açarın sıfırdan başlaması.
Öz-özünə açarın bir baytını təyin etmək heç nə vermir, lakin əlaqə danışıqları zamanı müştəri tərəfindən ötürülən "ga" dəyərini tutaraq, təcavüzkar "ga" ilə əlaqəli bir sıra digər dəyərlər yarada və onları göndərə bilər. serveri ayrı-ayrı əlaqə danışıqları seanslarında. Təcavüzkar “gri*ga” dəyərlərini yaradaraq və göndərməklə, server cavabında gecikmələrdəki dəyişiklikləri təhlil edərək, sıfırdan başlayaraq əsas açarların alınmasına səbəb olan dəyərləri müəyyən edə bilər. Belə dəyərləri təyin edərək, təcavüzkar üçün tənliklər toplusu yarada bilər
OpenSSL zəiflikləri
Əlavə problemlər ayrıca qeyd olunur (
Mənbə: opennet.ru