Відключення уразливого протоколу sslv3 на стороні сервера і клієнта

Протокол SSL і його наступник TLS - це криптографічні протоколи, призначені для забезпечення безпеки мережевих з'єднань в інтернет. Крім поширеного HTTPS. призначеного для веб-з'єднань, вони використовуються і багатьма іншими додатками. SSLv1 ніколи публічно не випускався, SSLv2 швидко опинився небезпечним. Був створений SSLv3. він все ще використовується для захисту транспортного рівня інтернет з'єднань разом з TLSv1 / 1.1 / 1.2.

Не так давно інженери Google виявили уразливість протоколі SSLv3, завдяки якій дана версія SSL схильна POODLE атаці. і його використання вкрай не бажано. Існує патч, але він не вирішує дану проблему повністю, оскільки виправлені повинні бути обидві сторони з'єднання, клієнт і сервер.

Протоколу SSLv3 майже 18 років, проте він все ще дуже поширений в мережі, не дивлячись на це, необхідно якомога швидше відмовитися від використання даної версії протоколу SSL, як на стороні сервера так і клієнта. Хоча існує невелика частина інтернет-користувачів, які використовують дуже застарілі системи і взагалі не підтримують TLS, в зв'язку з цим вони обмежені в можливості підключення до вашого сайту або сервісу.

Основні питання та відповіді стосовно протоколу SSLv3

Чому слід відключити SSLv3 на сервері?

Якщо ви власник або адміністратор сервера, вам дійсно потрібно відключити SSLv3 якомога скоріше, що-б убезпечити ваших користувачів. Після відключення протоколу SSLv3, клієнти не зможуть використовувати цю вразливу версію SSL протоколу для підключення і будуть змушені використовувати більш нову, більш безпечну альтернативу.

Чому потрібно відключити SSLv3 на клієнті?

Як користувач, ви повинні відключити SSLv3 в своєму браузері, щоб убезпечити себе при відвідуванні сайтів, які все ще підтримують SSLv3. Зробивши це, ви можете бути впевнені що ваше веб-додаток не буде намагатися встановити з'єднання з SSLv3 і буде використовувати більш безпечну альтернативу.

Чи є POODLE вразливістю реалізації, такий-же як вразливість OpenSSL Heartbleed?

Ні, POODLE це вразливість протоколу. Це означає, що це стосується внутрішньої роботи SSLv3, і ви не можете її виправити.

Чи потрібно відкликати сертифікати після POODLE?

Ні, вам не потрібно випускати нові сертифікати. Атака POODLE - це не витік пам'яті, це атака відновлення даних у відкритому тексті, яка націлена на HTTP заголовки і використовує слабкість протоколу SSLv3 при роботі з блочними шифрами.

Відключення SSLv3 в поширених веб серверах

Відключити SSLv3 на веб сервері Apache

Додати в файл конфігурації apache. або змінити якщо вже є але не відповідає, наступну директиву:

SSLProtocol All -SSLv2 -SSLv3

після чого перезагпустіть apache:

Відключити SSLv3 на веб сервері IIS

Створіть файл реєстру disable_ssl3.reg наступного змісту:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ SSL 3.0 \ Server]
"Enabled" = dword: 00000000

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ SSL 2.0 \ Server]
"Enabled" = dword: 00000000

і запустіть його.

Відключити SSLv3 на веб сервері nginx

Додайте в файл конфігурації nginx.conf директиву:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

якщо така вже є і відрізняється, виправте, після чого перезавантажте nginx

Відключити SSLv3 на веб сервері Lighttpd

Релізи Lighttpd сервера до версії 1.4.28 дозволяють відключати тільки SSLv2. Якщо ви використовуєте версію 1.4.29 і вище, пропишіть в конфіг:

ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"

після чого перезапустіть сервер

Відключення протоколу SSLv3 в основних веб браузерах

Chrome і Chromium

Якщо ви використовуєте Chrome 40 і вище, ви в безпеці, оскільки з версії 40 Chrome / Chromium повністю відключив підтримку SSLv3.

У Chrome і Chromium використовуються параметри, що дозволяють користувачеві самостійно вказувати бажаний протокол, однак багато хто помилково вважає що SSLv3 є більш свіжою версією ніж TLS 1.0, і помилково відключають останній.

Таким чином, поки не був оголошений браузер Google Chrome або Chromium з відключеним за замовчуванням SSLv3, необхідно запустити дані браузери з параметром командного рядка --ssl-version-min = tls1. Для цього можна змінити ярлик програми, що-б браузер запускався з потрібним параметром.

  1. Клацніть правою кнопкою миші по ярлику Google Chrome / Chromium на робочому столі, вкладка Properties.
  2. У рядку об'єкт, після останнього символу двокрапки, щоб додати пробіл а потім --ssl-version-min = tls1.
  3. Натисніть ОК і підтвердіть якщо будуть запитані права адміністратора.

Майте на увазі, що дана настройка захистить тільки сеанси браузера запущені ярликом на робочому столі, на сеанси запущені натисканням на посилання в документі або листі дана установка не впливає. Що-б це виправити потрібно відредагувати параметр реєстру HKEY_CLASSES_ROOT / ChromeHTML / shell / open / command. привівши його до такого виду:
"C: \ Program Files \ Google \ Chrome \ Application \ chrome.exe" --ssl-version-min = tls1 - "% 1"
переконайтеся що шлях до chrome.exe відповідає вашій системі.

Зміна символічних посилань на робочий стіл і меню додатків залежать від графічного оточення. Наприклад в Ubuntu потрібно відредагувати файл /usr/share/applications/google-chrome.desktop. дописавши параметр --ssl-version-min = tls1 в рядки починаються з "exec =". наприклад до зміни:

привести до такого виду:

Exec = / usr / bin / google-chrome-stable --ssl-version-min = tls1% U

тепер потрібно зберегти файл і перезапустити браузер.
Тільки для Chromium на стабільних релізах Debian і Ubuntu, потрібно в файл / etc / chromium-browser / default додати рядок:

На нестабільних версіях Debian потрібно створити файл /etc/chromium.d/disable-sslv3. що містить рядок:

do shell script "open '/ Applications / Google Chrome.app' --args --ssl-version-min = tls1"

потім зберегти як додаток і додати в Dock.

Mozilla Firefox

Internet Explorer

Перейти в меню Пуск >> Властивості оглядача.
Вкладка Додатково.
Зніміть прапорець Використовувати SSL 3.0.
Підтвердіть, натиснувши OK.

Якщо у вас встановлена ​​більш стара версія Windows, наприклад Windows XP, переконайтеся що інстальовано пакет оновлень 3 (SP3), щоб мати доступ до сайтів з відключеним протоколом SSLv3.

Якщо ви використовуєте Opera 12.17 або старше:

Натисніть ctrl + f12.
Перейдіть на вкладку "Додатково".
Натисніть "Безпека" в меню зліва.
Натисніть "Протоколи безпеки".
Зніміть прапорець "Включити SSL 3".
Натисніть ОК.

Відключення протоколу SSLv3 на поштових серверах

Відключити SSLv3 в Sendmail

Пропишіть наступні рядки в файл конфігурації sendmail.mc. в секцію LOCAL_CONFIG:

LOCAL_CONFIG
O CipherList = HIGH
O ServerSSLOptions = + SSL_OP_NO_SSLv2 + SSL_OP_NO_SSLv3 + SSL_OP_CIPHER_SERVER_PREFERENCE
O ClientSSLOptions = + SSL_OP_NO_SSLv2 + SSL_OP_NO_SSLv3

після чого перезавантажте sendmail

Відключити SSLv3 в Postfix

Пропишіть в файл конфігурації postfix або виправте наступні рядки:

smtpd_tls_mandatory_protocols =! SSLv2,! SSLv3
smtp_tls_mandatory_protocols =! SSLv2,! SSLv3
smtpd_tls_protocols =! SSLv2,! SSLv3
smtp_tls_protocols =! SSLv2,! SSLv3

Відключити SSLv3 в Dovecot

Пропишіть в файл конфігурації /etc/dovecot/local.conf наступний рядок, або виправте якщо є:

ssl_protocols =! SSLv2! SSLv3

Відключити SSLv3 в Courier-imap

Пропишіть в файл конфігурації / etc / courier / imapd-ssl. або виправте якщо є:

IMAPDSSLSTART = NO
IMAPDSTARTTLS = YES
IMAP_TLS_REQUIRED = 1
TLS_PROTOCOL = TLS1
TLS_STARTTLS_PROTOCOL = TLS1

Відключення протоколу SSLv3 в деяких інших мережевих сервісах

Відключити SSLv3 для Java

У контрольній панелі java перейти: Start -> Java -> Configure Java. вкладка Advanced. прокрутити вниз, зняти прапорець Use SSL 3.0.

Відключити SSLv3 для NodeJS

Якщо ви використовуєте NodeJS як веб сервера (не найкраща ідея), встановіть secureOptions:

Відключити SSLv3 для OpenVPN

OpenVPN використовує TLSv1.0 або, починаючи з версії 2.3.3, опціонально TLSv1.2, тому не схильний до POODLE атаці

Відключити SSLv3 для Puppet

Puppet агенти не схильні до POODLE атаці.
Якщо-ж ви все одно хочете відключити SSLv3, використовуйте stephenrjohnson / puppetmodule модуль для настройки майстер процесу який не використовує SSLv3.

Відключити SSLv3 для HAProxy

Відредагуйте директиву bind в файлі конфігурації /etc/haproxy.conf. додавши no-sslv3. Отримуємо щось на кшталт:

bind: 443 ssl crt ciphers no-sslv3

Онлайн сервіси для тестування SSL протоколу