данни за новата (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 също сториха подобно наборите от шифри DH и DHE в библиотеката NSS, използвана в Firefox. От версия Firefox 78 проблемните шифри са деактивирани. В Chrome поддръжката на DH бе прекратена още през 2016 година. Библиотеките BearSSL, BoringSSL, Botan, Mbed TLS и s2n не са уязвими, тъй като не поддържат шифри DH или статични варианти на шифри DH.
Отделно се отбелязват допълнителни проблеми () в TLS стека на устройствата F5 BIG-IP, които правят атаката по-реалистична. По-специално са открити отклонения в поведението на устройствата при наличие на нулев байт в началото на основния ключ, които могат да се използват вместо измерване на точното време на закъснение при изчисления.
Източник: opennet.ru
