(3.2)

Что нужно знать об уязвимости TLS Raccoon Attack

Raccoon - это временная уязвимость в спецификации TLS, которая влияет на HTTPS и другие сервисы, использующие SSL и TLS. Эти протоколы позволяют всем пользователям Интернета просматривать веб-страницы, использовать электронную почту, совершать покупки в Интернете и отправлять мгновенные сообщения, при этом третьи стороны не имеют возможности прочитать сообщение.

Raccoon позволяет злоумышленникам при определенных условиях взломать шифрование и прочитать конфиденциальные сообщения. Уязвимость действительно сложно использовать и зависит от очень точных измерений времени и от конкретной конфигурации сервера, которую можно использовать.

Обзор атаки

Обмен ключами Diffie-Hellman (DH) - это хорошо зарекомендовавший себя метод обмена ключами в соединениях TLS. При использовании Diffie-Hellman оба TLS-партнера генерируют приватные ключи случайным образом (a и b) и вычисляют свои открытые ключи: ga mod p и gb mod p. Эти открытые ключи посылаются в сообщениях в обмене ключами TLS. После получения обоих ключей и клиент, и сервер могут вычислить общий ключ gab mod p - называемый premaster secret (главным секретом) - который используется для получения всех сеансовых ключей TLS с определенной функцией производной ключей.

Атака Raccoon использует побочный канал спецификации TLS; TLS 1.2 (и все предыдущие версии) предписывает, что все начальные нулевые байты в главном секрете удаляются перед использованием в дальнейших вычислениях. Поскольку полученный в результате главный секрет используется в качестве входных данных для функции получения ключа, которая основана на хэш-функциях с различными профилями синхронизации, точные измерения времени могут позволить злоумышленнику создать оракул с сервера TLS. Этот оракул сообщает злоумышленнику, начинается ли вычисленный главный секрет с нуля или нет. Например, злоумышленник может перехватить сообщение ga, отправленное клиентом, повторно отправить его на сервер и определить, начинается ли полученный в результате главный секрет с нуля или нет.

Изучение одного байта из главного секрета не сильно поможет злоумышленнику. Однако здесь атака становится интересной. Представьте, что злоумышленник перехватил сообщение ClientKeyExchange, содержащее значение ga. Теперь злоумышленник может создавать значения, связанные с ga, и отправлять их на сервер в отдельных сообщениях TLS. Более конкретно, злоумышленник конструирует значения gri * ga, которые приводят к главным секретам gri * b * gab. Основываясь на поведении сервера по времени, злоумышленник может найти значения, ведущие к главным секретам, начиная с нуля. В конце концов, это помогает злоумышленнику построить набор уравнений и использовать средство решения проблемы скрытых чисел (HNP) для вычисления исходного главного секрета, установленного между клиентом и сервером.


FAQ

Что могут получить злоумышленники?

В случае (редких) обстоятельств Raccoon позволяет злоумышленнику расшифровать соединение между пользователями и сервером. Обычно сюда входят, помимо прочего, имена пользователей и пароли, номера кредитных карт, электронные письма, сообщения и конфиденциальные данные.

Кто уязвим?

Атака обычно нацелена на обмен ключами Диффи-Хеллмана в TLS 1.2 и ниже. Есть две предпосылки для атаки:

Сервер повторно использует открытые ключи DH в рукопожатии TLS. Это происходит, если сервер настроен на использование статических наборов шифров TLS-DH или если сервер использует эфемерные наборы шифров (TLS-DHE) и повторно использует эфемерные ключи для нескольких подключений. К счастью, это уже считалось плохой практикой до нападения, поскольку не обеспечивает прямой секретности.

Злоумышленник может выполнить точные измерения времени, которые позволяют ему / ей выяснить, начинается ли первый байт общего секретного ключа DH с нуля или нет.

Так насколько практична атака?

Это отличный вопрос, на который, вероятно, нет удовлетворительного ответа. Криптографические(!) атаки на TLS, как правило, мало используются реальными злоумышленниками, насколько мы знаем. Атакующему нужны особые обстоятельства, чтобы атака "енотов" сработала. Он должен быть близко к целевому серверу для выполнения высокоточных измерений времени. Ему нужно подключение жертвы для использования DH(E) и сервера для повторного использования эфемерных ключей. И, наконец, атакующий должен наблюдать за оригинальным соединением. Для настоящего злоумышленника это очень много. Однако, по сравнению с тем, что атакующему нужно сделать, чтобы сломать современные криптографические примитивы, такие как AES, атака уже не выглядит сложной. Но, тем не менее, реальный злоумышленник, скорее всего, будет использовать другие векторы атаки, более простые и надежные, чем эта атака.

Является ли мой сайт уязвимым?
Возможно. Вы можете проверить это, используя такие инструменты, как:

www.ssllabs.com, ваш сервер может быть уязвим, если "Параметр (Ys) публичного сервера DH" скажет "да".
Является ли мой браузер/клиент уязвимым?
Уязвимость на самом деле не является уязвимостью со стороны клиента. Клиент ничего не может с этим поделать, кроме как не поддерживать наборы шифров DH(E). Современные браузеры не должны больше поддерживать эти наборы шифров. Насколько нам известно, Firefox был последним крупным браузером, который поддерживал DHE, и отказался от его поддержки в Firefox 78 в июне 2020 года (к настоящему времени большинство клиентов должны запустить хотя бы эту версию, если не более поздние версии).
А как же другие протоколы?
Как вы можете себе представить, существует множество протоколов, использующих обмен ключами DH. Например, мы можем подтвердить, что SSH также удаляет лидирующие нулевые биты. Однако, согласно Springall и др. al SSH лучше старается избежать повторного использования ключей, чем TLS, и поэтому атака не может быть использована в SSH.

XML шифрование и IPsec сохраняют ведущие нулевые байты.

JSON Web Encryption предлагает только ECDH ключ соглашения. Установленный разделяемый секрет должен быть обработан, как описано в NIST Special Publication 800-56A. В данном документе рекомендуется сохранять ведущие нулевые байты, см. приложение С.1 и С.2.

Существует множество других протоколов, использующих обмен ключами DH. Их анализ часто бывает сложным, так как в документах нет информации о том, как работать с установленными разделяемыми секретами, поэтому необходим анализ исходного кода или ручные тесты. Также было бы интересно посмотреть, будут ли подобные атаки в стиле Raccoon применимы к новейшим пост-квантовым схемам.




Подписка оформлена!
Подпишись на новости и получи персональную скидку!

Возврат к списку


5 шагов к безопасному сайту с SSL
Заказать SSL сертификат
Создать CSR запрос
Пройти валидацию
Получить SSL сертификат
Установить SSL сертификат
sectigo_trust