Передача інформації про протокол SSL в бекенд через HTTP-заголовок


13

Після виявлення вразливості Пуделя нещодавно наша команда вирішила перейти з SSLv3. Але доти, доки всі, вони хочуть , щоб попередити про щоденних користувачів , що їх використання браузера застаріле SSLv3. Отже, ми прийшли до ідеї

  • Виявити протокол (SSLv3, TLS1 тощо ...) з SSL-вивантаження переднього кінця (ми використовуємо nginx)
  • Передайте цю інформацію (протокол SSL) через заголовок HTTP в Apache-сервер.

Тоді наш резервний код обробить цей заголовок і подасть попередження, якщо клієнт використовує SSLv3 .

Я знаю, що nginx має особливість proxy_set_header. Так що це було б просто

proxy_set_header X-HTTPS-Protocol $something;

Тепер проблема полягає в тому, що, очевидно, nginx знає протокол, який використовується клієнтом, але як я можу передати цю інформацію до бекенда через HTTP-заголовок?

Спасибі


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

Причина полягає в тому, що рукостискання TLS відбувається до того, як трафік HTTP буде відправлений через тунель TLS. На той час, коли наш сервіс виявляє протокол SSL, клієнт, можливо, надіслав приватні дані у своєму першому запиті. Для постійного та довгострокового рішення нам слід відключити SSLv3.

Відповіді:


14

Nginx використовує багато змінних, які можна використовувати в конфігурації. На цій сторінці представлений повний перелік змінних. Змінна, що містить протокол у запиті HTTPS, є ssl_protocol. Цитування:

$ssl_protocol

повертає протокол встановленого з’єднання SSL;

Отже, ваша proxy_set_headerконфігурація була б

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

Ще одна довідка: тут


Відсутня крапка з комою в кінці $ ssl_protocol (я не можу її змінити, оскільки serverf * l потребує 6 символів).
небезпека89

@ небезпека89 зробила це
sanmai
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.