Dopo che la vulnerabilità di Poodle è stata rivelata di recente, il nostro team ha deciso di passare da SSLv3. Ma prima della completa rimozione, vogliono avvisare gli utenti quotidiani che il loro browser utilizza SSLv3 obsoleto. Quindi, ci è venuta l'idea di
- Rileva il protocollo (SSLv3, TLS1 ecc ...) dall'offload SSL front-end (usiamo nginx)
- Passare tali informazioni (protocollo SSL) tramite intestazione HTTP a Apache-backend.
Quindi il nostro codice di backend elaborerà quell'intestazione e avviserà se il client utilizza SSLv3 .
Sono consapevole che nginx ha funzionalità proxy_set_header
. Quindi questo sarebbe semplice
proxy_set_header X-HTTPS-Protocol $something;
Ora, il problema è: ovviamente nginx conosce il protocollo utilizzato dal client, ma come posso passare quelle informazioni al back-end tramite intestazione HTTP?
Grazie
Come sottolineato da un thread simile Apache reindirizza l'utente se sta usando SSLv3 , questa idea potrebbe diventare una pessima idea.
Il motivo è che l'handshake TLS si verifica prima che il traffico HTTP venga inviato attraverso il tunnel TLS. Quando il nostro back-end rileva il protocollo SSL, il client potrebbe aver inviato dati privati nella sua prima richiesta. Per soluzioni permanenti ea lungo termine dovremmo considerare di disabilitare SSLv3.