Наш опыт показывает, что современное использование протокола Diffie-Hellman не настолько надежное, как предполагалось ранее. В данной статье вы узнаете, как правильно использовать Diffie-Hellman на вашем сервере.

Есть три способа корректного использования Diffie-Hellman для TLS:

  1. Отключить экспорт шифров (Export Cipher Suites). Не смотря на то, что современные браузеры больше не поддерживают экспорт наборов, атаки FREAK и Logjam позволяют атакам посредника обмануть браузер и использовать export-grade, после чего соединение TLS может быть расшифровано. Экспорт шифров является отголоском политики эры 90-х, которая заключалась в предотвращении вывода мощных криптографических протоколов за пределы США. Современные пользователи не полагаются на экспорт шифров и поэтому есть небольшой недостаток в их отключении.

  2. Использование (Эфимерной) эллиптической кривой Diffie-Hellman (ECDH). Ключ обмена эллиптической кривой Diffie-Hellman обходит всем известные реальные криптоаналитические атаки, также современные браузеры предпочитают ECDH ограниченному пространству Diffie-Hellman. Дискретные логарифмические алгоритмы, которые мы используем для атаки стандартных групп Diffie-Hellman, не получают сильных преимуществ от предварительных вычислений, и индивидуальным серверам не нужно генерировать уникальные эллиптические кривые.

  3. Используйте сильную группу Diffie Hellman. Несколько 1024-битных групп используются миллионами серверов, что делает их идеальной целью для предвычислений и прослушивания. Администраторам следует использовать 2048-битные или более сильные группы Diffie-Hellman с «безопасными» простыми числами.

Пункты (1) и (2) могут быть выполнены одновременно настройкой вашего сервера, таким образом, чтобы он использовал только современные наборы шифров. Ниже мы описываем, как определить современные шифры и создать группу Diffie-Hellman для известных серверов. Вы можете проверить свой сервер здесь или, используя Qualsys SSL Server Test.Если вы знаете другие способы, пожалуйста, сообщите нам.

Использование сильной DH группы

Сначала вам нужно создать новую группу Diffie-Hellman, независимо от того, какое программное обеспечение используется на сервере. Современные браузеры, включая Google Chrome, Mozilla Firefox и Microsoft Internet Explorer, увеличили минимальный размер группы до 1024 бит. Мы рекомендуем создать 2048-битную группу. Простейший способ создания новой группы это OpenSSL:

Общие серверные продукты

Для каждого серверного продукта мы предоставляем две опции конфигурации: (1) безопасные наборы шифра, которые вам следует использовать и (2) как определить параметры Diffie Hellman, которые вы сгенерировали выше.

Apache HTTP Server (mod_ssl)

SSL параметры могут быть глобально установлены в httpd.conf или в пределах особого виртуального хоста.

Наборы шифра

Отключите поддержку SSLv2 и SSLv3, включите поддержку TLS, таким образом, разрешая/запрещая особые шифры в приведенном порядке:

Параметры DH

В более новых версиях Apache (2.4.8 and newer) и OpenSSL 1.0.2 или более поздних, вы можете точно определить параметры DH (далее DHparams) следующим образом:

Если вы используете Apache с LibreSSL, или Apache 2.4.7 и OpenSSL 0.9.8a или более поздние версии, вы можете добавлять созданные ранее DHparams к концу вашего файла сертификата.

Перезагрузите конфигурацию

nginx

Для размещения в конфигурацию сайта server/block in/etc/nginx/sites-enabled/default:

Набор шифров

Параметры DH

Перезагрузите конфигурацию

Microsoft IIS

  1. Откройте Group Policy Object Editor (т.е. запустите gpedit.msc в командной строке).

  2. Раскрыть Настройки Компьютера, Административные шаблоны, Сеть, и затем выберете настройки конфигурации SSL.

  3. Согласно настройкам конфигурации SSL, откройте настройки порядка набора шифра SSL.

  4. Установите строгий порядок набора шифра. Посмотрите список шифров, поддерживаемых Microsoft, и инструкции конфигурации Mozilla TLS .

Lighttpd

Изменения должны быть сделаны в  /etc/lighttpd/lighttpd.conf

Наборы кодов

Параметры DH

Перезагрузите конфигурацию

Apache Tomcat

В server.xml (для JSSE)

Наборы шифра

Примечание: чтобы использовать 256-битные шифры AES, необходимо установить JCE Unlimited Strength Jurisdiction Policy Files, которые можно найти здесь.

Postfix SMTP

Оба параметра должны быть установлены в  /etc/postfix/main.cf.

Наборы шифра

Параметры DH

Перезагрузите конфигурацию

Sendmail

Эти изменения могут быть произведены в разделе LOCAL_CONFIG вашего  /etc/mail/sendmail.mc

Наборы шифра

Параметры DH

O DHParameters={path to dhparams.pem}

Перезагрузите конфигурацию

Dovecot

Эти изменения должны быть произведены в  /etc/dovecot.conf

Наборы шифра

Параметры DH

#regenerates every week

Перезагрузите конфигурацию

HAProxy

Эти изменения должны быть произведены в глобальном разделе вашей конфигурации.

Наборы шифра

Параметры DH

Добавьте файл параметра DH, созданный с помощью OpenSSL, к вашему сертификату (crt файл).

Примечание: Так как для установки максимального размера первичных файлов, используемых для DHE, существует опция конфигурации под названием tune.ssl.default-dh-param , размещение стандартных параметров в вашем сертификате файла обнуляет его.

Перезагрузите конфигурацию

Amazon Elastic Load Balancing

Последний набор встроенных параметров SSL (2015-05) использует не DHE, а ECDHE шифры, и поэтому не является уязвимым к Logjam. Смотрите документацию Amazon.

OpenSSH

Протокол SSH не подвержен LogJam атаке, в которой активный взломщик может прервать соединение с криптографией export-grade. Однако, многие применения SSH, вместе с OpenSSH используют фиксированные простые числа, включая 1024-bit Oakley Group 2. Есть пара опций. Первая и самая легкая опция — это заставить пользователей использовать эллиптическую кривую Diffie-Hellman. Особенно кривую 25519. Это может быть выполнено настройкой вашего алгоритма обмена ключами следующим образом:

Если вы хотите продолжать поддерживать неэллиптическую кривую Diffie-Hellman, по крайней мере, вам следует отключить поддержку Group 1, удалив diffie-hellman-group1-sha1 Key Exchange. Можете оставить diffie-hellman-group14-sha1, который использует 2048-битное простое число.

Существует еще одна опция для создания новых групп Diffie-Hellman:

Затем вам необходимо установить moduli-2048 на ваш системный модульный файл. В Debian/Ubuntu, он находится в /etc/ssh/moduli. SSH выбирает из этого файла (практически хаотично), поэтому вам следует заменить существующий модульный файл на новые группы, которые вы создали, вместо добавления этих новых групп.

Перевод: Анна Давыдова

Источник: weakdh.org

Похожие темы

Делаем локальный сайт (на localhost) доступным для... До открытия доступа на локалхост, рекомендуется установить ModSecurity (mod_security) на Apache. Эта статья для тех, у кого есть сайт на локальном ...
Как в интерактивном режиме анализировать и просмат... Работаете ли вы в бизнесе веб-хостинга, или самостоятельно запускаете несколько сайтов на VPS, скорее всего, вы хотите отобразить статистику посещен...
Включение в WordPress возможности редактировать и ... Вторая вещь, которая меня поражает в WordPress — это невозможность даже для зарегистрированных пользователей редактировать свои комментарии (п...
Как установить Apache, MariaDB/MySQL и PHP на Cent... Если вас интересует, как установить сервер на Windows, то вам сюда "Установка Apache, PHP, MySQL, phpMyAdmin на Windows". Apache, Mari...
Отслеживание FREAK атаки Я как то упустил из виду событие, произошедшее в 2015 году. После прочтения этого обзора, появилось желание поделиться с общественностью. Кто подвер...