Мы описали технические детали наших атак в нашей научной статье, Несовершенная секретность: Неудачи Diffie—Hellman на практике. В разделах ниже мы предоставили больше деталей о проведенном нами криптоанализе, вместе с доказательством концепции и наглядными примерами, которые демонстрируют атаки с использованием нашего криптоанализа.
-
Криптоанализ Топ 512-битных натуральных чисел Diffie Hellman
-
Атака II: DHE_EXPORT понижение и офлайн дешифрование фальстарта TLS
-
Атака III: DHE_EXPORT понижение и подражание посредника серверу
Криптоанализ топ 512-битных натуральных чисел Diffie Hellman
Наш криптоанализ состоит из выполнения предвычислений простых чисел, приведенных в двух известных наборах слабых параметров Diffie-Hellman. После выполнения этих предвычислений, мы можем взломать любой обмен ключей, используя простые числа в реальном времени. Эти параметры обычно используются в DHE_EXPORT шифрах – эти шифры были специально разработаны слабыми, чтобы удовлетворить требования стандартов в 90-х, и требовали, чтобы использованные простые числа pp были короткими (512-бит). Эта атака возможна только из-за слабых параметров.
Первый жестко закодированный в Apache httpd в версиях от 2.1.5 до 2.4.7, и случайная группа, используемая в 7% набора шифра DHE_EXPORT от Топ 1-го миллиона сайтов. Во всем Интернете это использует более 1 миллион HTTPS серверов (3% от всех HTTPS серверов). Эта группа впервые появилась в 2005 году.
Diffie-Hellman-Parameters: (512 bit) prime: 00:9f:db:8b:8a:00:45:44:f0:04:5f:17:37:d0:ba: 2e:0b:27:4c:df:1a:9f:58:82:18:fb:43:53:16:a1: 6e:37:41:71:fd:19:d8:d8:f3:7c:39:bf:86:3f:d6: 0e:3e:30:06:80:a3:03:0c:6e:4c:37:57:d0:8f:70: e6:aa:87:10:33 generator: 2 (0x2)
Вторая связана с библиотекой OpenSSL в файле dh512.pem. Это простое число, используемое программой OpenSSL s_server, как для DHE, так и для DHE_EXPORT шифров. Эта программа, в основном, используется в тестовых конфигурациях, а не в разработке сайтов. Эта группа впервые появилась в предшественнике OpenSSL, SSLeay 0.5.1a в 1995 году.
Diffie-Hellman-Parameters: (512 bit) prime: 00:da:58:3c:16:d9:85:22:89:d0:e4:af:75:6f:4c: ca:92:dd:4b:e5:33:b8:04:fb:0f:ed:94:ef:9c:8a: 44:03:ed:57:46:50:d3:69:99:db:29:d7:76:27:6b: a2:d3:d4:12:e2:18:f4:dd:1e:08:4c:f6:d8:00:3e: 7c:47:74:e8:33 generator: 2 (0x2)
Мы используем CADO-NFS для проведения двух недель предвычислений; одна неделя для каждого из простых чисел. Это позволяет нам вычислить секретный обмен ключами, используя Diffie-Hellman, путем вычисления дискретного логарифма конкретного сообщения обмена ключей всего за несколько минут. Кроме того, поскольку простое число Apache используется многими серверами, расходы на вычисления могут быть амортизированы компрометацией подключений к любым из этих серверов.
Атака I Офлайн дешифровка слабых DHE соединений
Атака.
Эта атака подразумевает, что сервер по умолчанию использует обмен ключами Diffie-Hellman с 512-битными параметрами. В этой атаке присутствует пассивный нарушитель сети, который может подслушивать и способен получить расшифровку коммуникации между клиентом и сервером.
Видео внизу, записанное в апреле 2015 года, показывает, что соединение с tips.fbi.gov может быть расшифровано подслушивающим. Соединение использует OpenSSL 512-битную Diffie-Hellman группу, для который мы уже провели предвычисления. Так как группа небольшая, без предвычислений только этот процесс займет неделю. С нашими предвычислениями мы можем взломать обмен ключами Diffie-Hellman за несколько минут. Это позволяет нам вычислить ключи соединения и быстро расшифровать записанный разговор.
Восприимчивость.
Эта атака работает во всех известных браузерах и TLS библиотеках. К примеру, Firefox, Chrome, Internet Explorer на Windows 8.1 и более ранних версиях, Safari, OpenSSL, и JSSE все являются уязвимыми. Некоторые клиенты были в безопасности потому, что они отказались от достаточно малых простых чисел. Например, IE на Windows 10 отказалась от чисел короче 1024-бит, а GnuTLS отказалась от чисел короче 728-бит.
Предотвращение.
По состоянию на май 2015 года www.fbi.gov заблокировали все наборы DHE шифров, чтобы предотвратить подобные атаки. Этой атаки также можно избежать, если в браузере отказаться от коротких 512-битных параметров. 512-бит DHE позади своих простых чисел.
Хотим отметить, что www.fbi.gov является одним из многих сайтов, подвергшихся Logjam атаке. В то время, как сайты достаточно просто пропатчить, для организации атаки требуется серьезный опыт, и, вероятно, поэтому она не была слишком широко использована.
Атака II DHE_EXPORT понижение и офлайн дешифровка фальстарта TLS
Атака.
Эта атака всего лишь требует, чтобы сервер поддерживал 512-битные параметры, но у нее более серьезные запросы по отношению к взломщику и пользователю. В данном случае серверу необходимо только поддерживать наборы шифра DHE_EXPORT или использовать 512-битные параметры в не экспортируемом шифре DHE. Пользователь должен использовать расширение TLS False Start; т.е. клиент отправляет данные приложения до получения готового сообщения от сервера в TLS handshake. И, наконец, взломщик становится человеком-по-середине, способным перехватывать, изменять и пересылать сетевой траффик.
Атака проходит в несколько шагов:
-
Браузер подключается к www.networksolutionsemail.com и предлагает использовать не экспортируемые DHE шифры.
-
Нарушитель вмешивается с просьбой и предлагает использовать только DHE_EXPORT шифры.
-
Сервер выбирает DHE_EXPORT шифр.
-
Взломщик вмешивается с ответом таким образом, что это выглядит как не экспортируемый DHE.
-
Сервер отправляет export-grade параметры Diffie-Hellman с 512-битным модулем.
-
Пользователь заканчивает обмен ключей Diffie-Hellman и просит подтверждение сервера.
-
Пользователь отправляет данные приложения False Start до получения подтверждения от сервера.
-
Взломщик получает данные False Start и закрывает соединение между клиентом и сервером.
-
Если пользователь подключается заново, то нарушитель позволяет подсоединиться к серверу.
В конце этой последовательности, взломщик записал все данные соединения, включая эфемерные открытые ключи пользователя и сервера. Нарушитель может получить секретные ключи, используемые для расшифровки передаваемых данных, путем вычисления дискретного логарифма одного из этих открытых ключей. Если секретный ключ был получен однажды, то взломщик может расшифровать данные приложения. В видео это позволит злоумышленнику украсть учетные данные пользователя.
Видео внизу показывает, как соединение с интерфейсом почты Network Solutions было перехвачено атакой посредника с целью кражи учетных данных пользователя.
В видео выше, вычисление дискретного логарифма заняло несколько минут на ноутбуке. Это может быть сделано намного быстрее, но в данном сценарии у взломщика был офлайн доступ к данным, и, таким образом, он не был ограничен во времени, необходимом для вычисления дискретных логарифмов и получения ключа дешифровки.
Восприимчивость.
В видео выше используется uses Firefox 35: последняя версия Firefox, которая разрешает False Start для набора шифров DHE. Атаке могут подвергнуться все браузеры, использующие False Start для любых наборов шифра DHE, такие как Google Chrome 41 на всех ОС, кроме Linux. Internet Explorer также разрешает False Start для наборов шифра DHE и является уязвимым к данной атаке, но он поддерживает только DHE с сертификатами DSA, которые редко используются на серверах в интернете.
Предотвращение.
Пользователи могут избежать этой атаки отключением коротких параметров Diffie-Hellman. Сервера могут защититься путем блокирования DHE_EXPORT и использования сильных параметров для не экспортируемого DHE.
Хотим отметить, что www.networksolutionsemail.com был одним из многих сайтов, подвергшихся Logjam атаке. В то время как сайты достаточно просто пропатчить, для организации атаки требуется серьезный опыт, и, вероятно, поэтому она не была слишком широко использована.
Атака III DHE_EXPORT понижение и подражание посредника серверу
Атака.
Эта атака является онлайн-версией Атаки ІІ. Требования к атаке такие же с одним исключением. В данном случае вместо необходимости использования TLS False Start пользователем мы просим, чтобы клиент был готов подождать значительное количество времени до завершения handshake. Это делается потому, что производящий атаку доложен вычислить ключ соединения во время процесса handshake, но вычисления ключа требует нескольких минут. У некоторых пользователей короткое время ожидания, из-за чего соединение прервется до того, как взломщик вычислит ключ. Если клиент оставляет соединение открытым достаточно долго, производящий атаку может полностью выдать себя за сервер клиенту.
Атака проходит следующим образом:
-
Клиент подключается к www.tcl.tk и предлагает хотя бы один шифр DHE, и не предлагает ни одного шифра DHE_EXPORT.
-
Производящий атаку вмешивается с запросом и предлагает только шифр DHE_EXPORT.
-
Сервер выбирает шифр DHE_EXPORT.
-
.Атакующий посредник вмешивается с ответом таким образом, что это выглядит как не экспортируемый шифр DHE.
-
Сервер отправляет export-grade параметры Diffie-Hellman с 512-битным модулем.
-
Взломщик читает открытый Diffie-Hellman ключ сервера и начинает вычисление его дискретного логарифма.
-
Проводящий атаку закрывает соединение к серверу.
-
Пользователь завершает обмен ключами Diffie-Hellman и просит сервер о подтверждении.
-
Как только взломщик заканчивает вычисление дискретного логарифма, он получает ключ соединения и подделывает подтверждение.
-
Клиент принимает подделанное подтверждение. С этого момента проводящий атаку может выдавать себя за сервер пользователю.
Видео внизу показывает популярный метод автоматической установки, используемый взломщиком, чтобы обмануть пользователя, заставляя его скачать и использовать случайный код.
Восприимчивость.
Вычисление дискретного логарифма может занять несколько минут. Клиент является уязвимым, пока он продолжает ждать и оставляет соединение открытым, пока вычисляется дискретный логарифм. Отправляя фейковые TLS предупреждения, мы смогли держать handshake соединение открытым на протяжении 11 минут в Firefox. Но это нереалистично, т.к. пользователи, вряд ли, будут ждать 11 минут, пока загрузится страница. Более реально это выглядит в видео, где мы смогли провести атаку на небраузерные клиенты OpenSSL, такие как curl и git. Эти приложения, которые обычно используются для загрузки блоков данных, обычно запущены в фоновом режиме, и по этой причине готовы ждать соединения долгое количество времени. С другой стороны, атака может быть реализована в отношении подключения, открытого в фоновом режиме уже загруженной страницы. Хотим отметить, что наше исполнение не является идеальным, так что производительность может быть улучшена
Предотвращение.
И снова, пользователи могут избежать этой атаки отключением коротких параметров Diffie-Hellman. Пока короткое время ожидания насильно блокирует эти атаки, каждый год аппаратные и алгоритмические улучшения уменьшают время, необходимое для вычисления дискретного логарифма, учитывая предвычисления. Короткое время ожидания, вряд ли, сможет предотвратить эти атаки в будущем.
Хотим отметить, что www.tcl.tk был одним из многих сайтов, подвергшихся Logjam атаке. В то время как сайты достаточно просто пропатчить, для организации атаки требуется серьезный опыт, и, вероятно, поэтому она не была слишком широко использована.
Атака IV атака других слабых параметров Diffie-Hellman
Атака.
Эта атака против серверов, которые неудачно сгенерировали простые числа, и не полагаются на предвычисления. Эта атака была опубликована van Oorschot and Wiener в 1996 году. Не смотря на это, наши исследования выявили более 150 уязвимых хостов. Серверы могут быть уязвимы, если они не проверяют, есть ли у группы специальная безопасная форма (примеры включают в себя «безопасные» простые числа групп DSA) и дополнительно для любого клиента или сервера могут выбрать короткий частный порядок чисел, общую оптимизацию на стороне сервера. В подобном случае, взломщик может восстановить секретный порядок чисел, используя простые вычисления. Это позволяет проводящему атаку расшифровать данные приложения и полностью выдавать себя клиенту за сервер.
Видео ниже показывает, как соединение с веб-интерфейсом системы обмена сообщениями было перехвачено атакой посредника, чтобы украсть данные учетной записи пользователя.
Атака проходит следующим образом:
-
Браузер подключается к уязвимому сайту и предлагает наборы шифра DHE.
-
Взломщик отправляет запрос серверу.
-
Проводящий атаку читает эфемерный Diffie-Hellman ключ сервера, полученный в его ответе, и начинает вычисления дискретного логарифма.
-
Взломщик отправляет ответ пользователю.
-
Пользователь и сервер завершают DHE handshake, и согласовывают ключ подключения.
-
Клиент отправляет запрос на страницу входа в систему, и взломщик передает его на сервер.
-
Проводящий атаку отправляет ответ сервера клиенту.
-
Пользователь вводит свои учетные данные, и браузер отправляет зашифрованные учетные данные на сервер.
-
Взломщик закончил вычислять дискретный логарифм и получил ключ подключения. Проводящий атаку может выдавать себя за сервер, перехватывать и подделывать сообщения.
Сценарий похожий на Атаку I. Однако, т.к. параметры выбранные сервером слабые, вычисление дискретного логарифма займет у взломщика несколько секунд, без каких-либо заметных для пользователя задержек.
Восприимчивость.
Клиенты и серверы являются уязвимыми к этой атаке, если они используют короткий порядок с обменом ключей Diffie-Hellman, используя простые числа, не проверенные на «безопасность» или генерирование в составе группы DSA. «Безопасные» простые числа — это числа формулы p=2q+1p=2q+1 для некоторых чисел qq; DSA группа заставляет генерирующую программу создавать подгруппу большого порядка простых чисел. Для оптимизации вычислений, многие реализации Diffie-Hellman используют небольшой порядок, как например 160-битный при 1024-битном модуле простого числа. Это делается не для того, чтобы ослабить безопасность во время использования «защищенных» или DSA простых чисел (например, один был сгенерирован случайным образом без дальнейшей проверки свойств) это позволит проводящему атаку легко прервать обмен ключами.
Предотвращение.
Эта атака может быть предотвращена использованием «безопасных» простых чисел или хорошо сгенерированных DSA групп. Реализации могут смягчить атаку, используя полноразмерные порядки чисел, которые являются безопасными, даже когда используются в комбинации со случайно сгенерированными «не-безопасными» простыми числами.
Перевод: Анна Давыдова
Источник weakdh.org