З статті, яку ви пов’язали , є три рекомендовані кроки, щоб захистити себе від цієї вразливості. У принципі ці кроки стосуються будь-якого програмного забезпечення, яке ви можете використовувати з SSL / TLS, але тут ми розглянемо конкретні кроки щодо їх застосування до Apache (httpd), оскільки це саме програмне забезпечення.
- Вимкнути експорт набір шифрів
Розглянемо зміни в конфігурації, які ми внесемо в нижченаведене (нижче !EXPORT
в кінці SSLCipherSuite
рядка - як ми відключимо експорт набір шифрів)
- Розгортання (ефемерне) еліптично-кривої Діффі-Гелмана (ECDHE)
Для цього вам необхідно змінити кілька параметрів в конфігураційних файлах Apache - а саме SSLProtocol
, SSLCipherSuite
, SSLHonorCipherOrder
щоб мати «передові методи» установку. Буде достатньо чогось наступного:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
Примітка. Що стосується того, який SSLCipherSuite
параметр слід використовувати, це завжди змінюється, і корисно звернутися до таких ресурсів, як цей, щоб перевірити наявність останньої рекомендованої конфігурації.
3. Створити сильну унікальну групу Діффі Хеллмана
Для цього можна запуститись
openssl dhparam -out dhparams.pem 2048
.
Зауважте, що це спричинить значне навантаження на сервер під час генерації парам - ви завжди можете обійти цю потенційну проблему, генеруючи парами на іншій машині та використовуючи scp
або подібне для передачі їх на відповідний сервер для використання.
Щоб використовувати ці новогенеровані dhparams
в Apache, з документації Apache :
Для створення спеціальних параметрів DH використовуйте команду openssl dhparam. Крім того, ви можете додати наступні стандартні 1024-бітні параметри DH з RFC 2409, розділ 6.2, до відповідного файлу SSLCertificateFile :
(наголос мій)
після чого слід стандартний 1024-бітний параметр DH. З цього можна зробити висновок, що створені на замовлення параметри DH можуть бути просто додані до відповідних SSLCertificateFile
питань.
Для цього виконайте щось подібне до наступного:
cat /path/to/custom/dhparam >> /path/to/sslcertfile
Крім того, згідно з підрозділом Apache статті, з якою ви спочатку зв’язані, ви також можете вказати створений вами спеціальний файл dhparams, якщо ви не бажаєте змінювати сам файл сертифіката, таким чином:
SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"
в будь-яких конфігураціях Apache, що стосуються вашої конкретної реалізації SSL / TLS - як правило, conf.d/ssl.conf
або, conf.d/vhosts.conf
але це буде відрізнятися залежно від способу налаштування Apache.
Варто зазначити, що відповідно до цього посилання ,
Перед Apache 2.4.7 параметр DH завжди встановлюється на 1024 біт і не може бути налаштований користувачем. Це було зафіксовано в mod_ssl 2.4.7, що Red Hat підтримав у своєму розподілі RHEL 6 Apache 2.2 за допомогою httpd-2.2.15-32.el6
На Debian Wheezy оновлення apache2 до 2.2.22-13 + deb7u4 або пізнішої версії та openssl до 1.0.1e-2 + deb7u17. Вищезгаданий SSLCipherSuite не працює ідеально, замість цього використовуйте наступне в цьому блозі :
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA
Ви повинні перевірити, чи ваша версія Apache пізніше цих номерів версій залежно від вашого розповсюдження, а якщо ні - оновіть її, якщо це можливо.
Після виконання вищезазначених кроків для оновлення конфігурації та перезапуску служби Apache для застосування змін слід перевірити, чи потрібна конфігурація, запустивши тести на SSLLabs та статтю, пов’язану з цією вразливістю.