Атака Raccoon может взломать TLS: как защититься?

Объединенная группа международных ученых из Рурского университета, Тель-Авивского университета, Университета Падерборна и Федерального управления по информационной безопасности Германии обнаружила метод раскрытия секрета в алгоритме Диффи-Хеллмана при использовании в TLS. Уязвимость сложно эксплуатировать, но все же риски ее не нулевые. Успешная атака приведет к перехвату и утечке любой конфиденциальной информации, передаваемой между сервером и клиентом внутри криптографического туннеля.

Алгоритм обмена ключами Диффи-Хеллмана используется для получения сторонами закрытого ключа симметричного шифрования по незащищенному каналу связи. Он использует метод обмена открытыми ключами и выработки общего сессионного ключа на основании закрытого и открытого ключей. Кстати, создателей у алгоритма все же трое: Уитфилд Диффи (Whitfield Diffie), Мартин Хеллман (Martin Hellman), а также независимо от них Ральф Меркл (Ralph Merkle).

Атака основана на свойствах вычислительных средств тратить разное фактическое время на криптографические операции – временная атака или Timing side-channel attack. В данном случае ученым удалось восстановить премастер-ключ, который используется дальше для базовых криптографических операций. То есть с его получением возможен перехват всей зашифрованной информации. Высокоуровнево шаги атаки выглядят так:

  • Злоумышленник записывает весь процесс рукопожатия и обмена открытыми ключами жертвы: TLS handshake, включая открытые ключи Диффи-Хеллман (далее – DH).

  • Злоумышленник инициирует новое рукопожатие к тому же серверу. Поэтому с тем же закрытым серверным ключом, используя у себя случайные параметры ключа. И таким образом получает рабочее уравнение, из которого может вычислить свой секретный ключ.

  • Для каждого шага атакующий измеряет время ответа сервера. Для некоторых величин модулей DH секрет с ведущими нулями будет рассчитываться более быстро и давать более быстрый серверный ответ.

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

  • С полученным ключом злоумышленник может восстановить все перехваченные ранее данные жертвы.

Для осуществления атаки необходимо:

  • перехватывать канал в Man-In-The-Middle режиме, причем близко к серверной стороне для выполнения измерений тайминга,

  • версия TLS 1.2 или ниже,

  • выполнить несколько обменов ключами по алгоритму Диффи-Хеллман с тем же серверным ключом.

Указанные условия маловероятно реализуемы на практике. Но все же в некоторых случаях имеет смысл обратить внимание на этот возможный риск.

Как защититься от подобной атаки:

  • Перестать использовать устаревшие протоколы: SSL 3.0, TLS 1.0 и 1.1 и другие.

  • Установить необходимые патчи: Microsoft (CVE-2020-1596), Mozilla, OpenSSL (CVE-2020-1968) и F5 Networks (CVE-2020-5929) и т. д.

  • Отключить повторное использование ключа DH.

  • Уравнять время отклика сервера, независимо от скорости криптографических операций, например, отключив использование начальных 0-вых байт в ключе. Для SSH это можно сделать через mpint. Или установив константным размер секретного ключа.