Übergabe von SSL-Protokollinformationen an das Backend über HTTP-Header

13

Nachdem kürzlich eine Pudel-Sicherheitslücke aufgedeckt wurde, entschied sich unser Team, von SSLv3 zu wechseln. Vor dem vollständigen Entfernen möchten sie die täglichen Benutzer warnen , dass ihr Browser veraltetes SSLv3 verwendet. Also kamen wir auf die Idee

  • Ermitteln Sie das Protokoll (SSLv3, TLS1 usw.) aus dem Front-End-SSL-Offloading (wir verwenden Nginx)
  • Übergeben Sie diese Informationen (SSL-Protokoll) per HTTP-Header an Apache-Backend.

Dann verarbeitet unser Backend-Code diesen Header und gibt eine Warnung aus, wenn der Client SSLv3 verwendet .

Mir ist bewusst, dass Nginx eine Funktion hat proxy_set_header. Also dieser wäre so einfach

proxy_set_header X-HTTPS-Protocol $something;

Das Problem ist nun: Natürlich kennt Nginx das vom Client verwendete Protokoll, aber wie kann ich diese Informationen über den HTTP-Header an das Backend übergeben?

Vielen Dank


Wie von Apache-Umleitungsbenutzern mit ähnlichem Thread gezeigt, wenn sie SSLv3 verwenden , wurde diese Idee möglicherweise zu einer sehr sehr schlechten Idee.

Der Grund dafür ist, dass TLS-Handshake auftritt, bevor HTTP-Verkehr durch den TLS-Tunnel gesendet wird. Bis unser Backend das SSL-Protokoll erkennt, hat der Client möglicherweise in seiner ersten Anfrage private Daten gesendet. Für eine dauerhafte und langfristige Lösung sollten wir in Betracht ziehen, SSLv3 zu deaktivieren.

tpml7
quelle

Antworten:

14

Nginx verwendet viele Variablen, die in config verwendet werden können. Diese Seite lieferte die vollständige Liste der Variablen. Die Variable, die das Protokoll in einer HTTPS-Anforderung enthält, lautet ssl_protocol. Zitat:

$ssl_protocol

Gibt das Protokoll einer eingerichteten SSL-Verbindung zurück.

Deine proxy_set_headerKonfiguration wäre also

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

Ein weiterer Hinweis: hier

masegaloeh
quelle
Fehlendes Semikolon am Ende von $ ssl_protocol (kann nicht geändert werden, da serverf * l das Ändern von 6 Zeichen erfordert).
danger89
@ danger89 das getan
Sanmai