информация за новата (CVE-2020-1968) в TLS протокола, наречен
и позволява в редки случаи да се определи предварителният основен ключ (pre-master), който може да се използва за декриптиране на TLS връзки, включително HTTPS, при прихващане на транзитен трафик (MITM). Изтъква се, че атаката е много сложна за практическа реализация и е по-скоро теоретична. За извършването на атаката е необходимо специфично конфигуриране на TLS сървъра и възможност за много точно измерване на времето за обработка на операции от сървъра.
Проблемът присъства директно в спецификацията TLS и засяга единствено връзките, използващи шифри, основани на протокола за размяна на ключове DH (Diffie-Hellman, TLS_DH_*). С ECDH шифрове проблемът не се проявява, и те остават сигурни. Уязвими са единствено TLS протоколите до версия 1.2 включително; TLS 1.3 не е податлив на проблема. Уязвимостта се проявява в реализации на TLS, които многократно използват тайния ключ DH в различни TLS връзки (такова поведение наблюдава се на около 4.4% от сървърите в класацията на Alexa Top 1M).
В OpenSSL 1.0.2e и по-ранни версии основният ключ DH се използва повторно при всички сървърни връзки, освен ако опцията SSL_OP_SINGLE_DH_USE не е зададена. Започвайки от OpenSSL 1.0.2f, основният ключ DH се използва повторно единствено при използването на статични DH шифри («DH-*», например «DH-RSA-AES256-SHA»). В OpenSSL 1.1.1 уязвимостта не се проявява, тъй като в тази версия не се използва основният ключ DH и не се прилагат статични DH шифри.
При използване на метода за размяна на ключове DH, и двете страни на връзката генерират случайни закрити ключове (ключ «a» и ключ «b»), на базата на които се изчисляват и изпращат публични ключове (ga mod p и gb mod p). След получаване на публичните ключове всяка страна изчислява общия основен ключ (gab mod p), който се използва за формиране на сесийни ключове. Атаката Raccoon позволява определянето на основния ключ чрез анализ на информация от странични канали, като се отразява на факта, че в спецификациите TLS до версия 1.2 е предписано да се отхвърлят всички начални нулеви байтове на основния ключ преди изчисленията с него.
Включително, съкратеният основен ключ се предава на функцията за генериране на сесионен ключ, основана на хеш функции с различни забавяния при обработката на различни данни. Точното измерване на времето за операциите на сървъра с ключа позволява на нападателя да определи подсказки (oracle), които дават възможност да се прецени дали основният ключ започва с нула или не. Например, нападателят може да прихване изпратения от клиента публичен ключ (ga), да го изпрати отново на сървъра и да определи
дали резултатният основен ключ започва с нула.
Само по себе си определянето на един байт от ключа не дава нищо, но като прихване предадената по време на преговорите от клиента стойност „ga“, нападателят може да създаде набор от други стойности, свързани с „ga“, и да ги изпрати на сървъра в отделни сесии на преговорите. Като формира и изпраща стойности „gri*ga“, нападателят може чрез анализ на промяната в закъснението на отговора от сървъра да определи стойностите, които водят до получаване на основни ключове, започващи с нула. След като определи такива стойности, нападателят може да състави набор от уравнения за и да изчисли оригиналния основен ключ.

В OpenSSL уязвимостите имат ниско ниво на опасност, а корекциите се състоят в преместването на проблемни криптографски алгоритми „TLS_DH_*“ в категория с недостатъчен ниво на защита („weak-ssl-ciphers“) по подразбиране. Разработчиците на Mozilla също приложиха подобен подход, като в библиотеката NSS, използвана в Firefox, наборите от DH и DHE криптографски алгоритми. От Firefox 78 проблемните криптографски алгоритми са изключени. Поддръжката на DH в Chrome беше спряна още през 2016 година. Библиотеките BearSSL, BoringSSL, Botan, Mbed TLS и s2n не са засегнати от проблема, тъй като не поддържат DH криптографски алгоритми или статични версии на DH криптографските алгоритми.
Специално внимание заслужават допълнителни проблеми () в TLS стека на устройства F5 BIG-IP, които правят атаката по-реалистична. По-специално, бяха открити отклонения в поведението на устройствата при наличие на нулев байт в началото на основния ключ, които могат да бъдат използвани вместо точното измерване на времето на закъснението при изчисления.
Източник: opennet.ru
