FREAK

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

FREAK (англ. Factoring RSA Export Keys) — уязвимость в реализации TLS/SSL. Уязвимость заключается в недостаточной проверке при выполнении TLS Handshake на стороне клиента, что приводит к возможности понизить шифрование во время выполнения атаки «человек посередине» до использования 512-битных ключей RSA (RSA_EXPORT ключи), которые могут быть подобраны злоумышленником в течение нескольких часов.

Уязвимость была найдена в 2015 году, а сама ошибка существовала с 1990-х.

В начале 1990-х был изобретён протокол SSL в Netscape Communications. Примерно с середины XX века, в США действовал закон об ограничении экспорта стойких шифров за пределы страны. Разрешалось экспортировать только специально ослабленные версии шифров, например, с ключами 40 или 56 бит для симметричного и 512 бит для асимметричного шифрования. Для RSA разрешалось иметь 512-битный ключ.

Часть современных TLS клиентов (в их числе Apple TLS/SSL и OpenSSL) имеют ошибку. Эта ошибка позволяет TLS клиенту принимать RSA_EXPORT ключ, даже если клиент не запрашивал этот ключ. Используя данную уязвимость можно инициировать атаку «человек посередине» для ослабления уровня шифрования.

Атака «человек посередине» работает так:

  1. В клиентском Hello сообщении запрашивается стандартный RSA шифр.
  2. Злоумышленник изменяет сообщение, чтобы запрашивался RSA_EXPORT.
  3. Сервер отвечает с 512-битным RSA_EXPORT ключом, подписанным долгосрочным ключом.
  4. Злоумышленник перехватывает сообщение и отправляет клиенту ослабленный ключ.
  5. Клиент принимает ослабленный ключ, так как существует уязвимость в TLS/SSL.
  6. Злоумышленник факторизует RSA модули и выявляет соответствующий RSA ключ для дешифровки.
  7. Когда клиент шифрует «pre-master secret» и отправляет серверу, злоумышленник теперь может расшифровать это и получить TSL «master secret»
  8. С этого момента злоумышленник видит нешифрованный текст.

Подобрать 512-битный RSA ключ на веб-сервисе Amazon EC2 можно за 7-8 часов.

Уязвимые ПО

[править | править код]

Уязвимости подвержены как клиентские, так и серверные системы, а также разнообразное ПО. В их числе:

Firefox проблеме не подвержен, поскольку не использует OpenSSL.

Примечания

[править | править код]