Come mitigare la vulnerabilità legata all'intercettazione di informazioni personali sull'implementazione vettoriale del protocollo SSL / TLS di inizializzazione?

8

Dichiarazione di non responsabilità: non sono un amministratore di sistema, per favore prova a dare le tue risposte in un linguaggio sviluppatore amichevole;)

Sto testando una nuova immagine VPS con Nessus e ricevo il plugin 58751 . Ho provato a capire cosa fare e ho provato con diverse impostazioni di SSLCipherSuite nell'Apache ssl.conf ma continuo a ottenerlo.

L'immagine non include ancora openssl 1.0.1, quindi non supporta TLS 1.2.

Quali sono le impostazioni di lavoro consigliate? O cosa sto sbagliando?

Si prega di suggerire valori possibili per quel parametro di configurazione mod_ssl specifico, come:

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

Che non è buono, capisco.

    
posta markus-tharkun 25.05.2012 - 16:07
fonte

2 risposte

11

Che cosa significa questa assurdità? Che cosa posso fare sulla vulnerabilità di JavaScript javascript TLS 1.0 sul mio server?

A cosa dovrei passare? Devo ignorare l'exploit SSL BEAST e continuare a preferire AES?

Un'analisi approfondita delle diverse selezioni di cipher e del loro impatto: Quali codici devo usare nel mio server web dopo la configurazione il mio certificato SSL?

La stringa di codice

Prendiamo queste informazioni e ispezioniamo la stringa di codice Apache predefinita così com'è Scrivo questo:

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

Questo in pratica consente qualsiasi codice che si autentica. Gli scambi Anonimo Diffie-Hellman ( ADH ) sono esclusi dalla considerazione ( ! ), ma tutto il resto è solo ammassato lì. Infatti, dato il ALL all'inizio, solo !ADH sta avendo un effetto. Tutto è già incluso. Esportare cifre, cifrari di bassa qualità (40/56 bit, ecc.) Sono tutti giochi giusti per la negoziazione.

Se vogliamo essere molto semplici, RC4 (simmetrico), RSA (scambio e firma asimmetrici) e SHA1 (hash simmetrico) sono universalmente supportati. RC4 ha alcuni punti deboli accademici, ma è immune all'attacco BEAST ed è anche ciò che il mio browser negozia per parlare con Google.

SSLCipherSuite 'ECDHE-RSA-RC4-SHA:RC4+SHA1+RSA'

Verifica:

 $ openssl ciphers -v 'ECDHE-RSA-RC4-SHA:RC4+SHA1+RSA'
 ECDHE-RSA-RC4-SHA       SSLv3 Kx=ECDH     Au=RSA  Enc=RC4(128)  Mac=SHA1
 RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1

Che si occupa di impostarlo e dimenticarlo. Ho messo davanti ECDHE-RSA-RC4-SHA perché sono un fan dell'uso della perfetta segretezza in avanti , ma non è universalmente supportato.

Per riferimento futuro, tuttavia, ecco alcune altre cose da considerare se stai costruendo una stringa che specifica genericamente le cifre:

  • Nessuna "esportazione" debole: !EXP
  • Nessuna borsa Diffie-Hellman non autenticata: !ADH
  • Non stiamo utilizzando una chiave pre-condivisa, quindi !PSK

Aggiungi sui codici che ti interessano in seguito. Usa ulteriori esclusioni se devi limitare qualcosa. Seleziona combinazioni specifiche utilizzando il segno + invece dei due punti. Ad esempio:

$ openssl ciphers -v '!ADH:AES+DH'
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1

è diverso da:

$ openssl ciphers -v '!ADH:AES:DH'
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AECDH-AES256-SHA        SSLv3 Kx=ECDH     Au=None Enc=AES(256)  Mac=SHA1
ECDH-RSA-AES256-SHA     SSLv3 Kx=ECDH/RSA Au=ECDH Enc=AES(256)  Mac=SHA1
ECDH-ECDSA-AES256-SHA   SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
PSK-AES256-CBC-SHA      SSLv3 Kx=PSK      Au=PSK  Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AECDH-AES128-SHA        SSLv3 Kx=ECDH     Au=None Enc=AES(128)  Mac=SHA1
ECDH-RSA-AES128-SHA     SSLv3 Kx=ECDH/RSA Au=ECDH Enc=AES(128)  Mac=SHA1
ECDH-ECDSA-AES128-SHA   SSLv3 Kx=ECDH/ECDSA Au=ECDH Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
PSK-AES128-CBC-SHA      SSLv3 Kx=PSK      Au=PSK  Enc=AES(128)  Mac=SHA1
DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(256) Mac=SHA1
DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH       Au=DSS  Enc=Camellia(256) Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DHE-RSA-SEED-SHA        SSLv3 Kx=DH       Au=RSA  Enc=SEED(128) Mac=SHA1
DHE-DSS-SEED-SHA        SSLv3 Kx=DH       Au=DSS  Enc=SEED(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(128) Mac=SHA1
DHE-DSS-CAMELLIA128-SHA SSLv3 Kx=DH       Au=DSS  Enc=Camellia(128) Mac=SHA1
EDH-RSA-DES-CBC-SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1
EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=RSA  Enc=DES(40)   Mac=SHA1 export
EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=DSS  Enc=DES(40)   Mac=SHA1 export

È un problema degno di questo nome?

Stiamo soppesando le vulnerabilità accademiche. RC4 è accademicamente più debole di AES. AES è accademicamente più debole se si ottiene che il client esegua codice indesiderato.

È utile essere informati dei rischi, ma dopo aver fatto qualche ricerca, le persone si imbattono in questo problema a seguito delle scansioni PCI-DSS. L'auditor vede questo nel suo strumento automatico e reagisce. Se l'utente finale sta eseguendo codice indesiderato, si è verificato un problema di root più grande: il tuo sito è stato compromesso da qualcosa come XSS e devi risolvere il problema o il loro computer è stato violato (direttamente o in esecuzione da un altro sito) e l'autore dell'attacco può probabilmente eseguire ancora più software dannoso. I browser moderni dovrebbero adattarsi eliminando un pacchetto di un byte all'inizio della connessione per avviare il padding e annullare anche l'attacco.

In molti modi, è davvero sul client qui. Se hai intenzione di preoccuparti della privacy del cliente, assicurarti che il tuo sito non sia compromesso è il problema di ordine superiore nella mia mente. Dato che, SSL non fa molto per aiutare un client che sta eseguendo qualcosa di malevolo localmente, quindi ora stiamo tornando a guardare il più potente codice AES.

... ma per passare l'audit senza discutere e guardare i dorsi dei tuoi clienti (in pratica ciò che Google sta cercando di fare con un margine), RC4 ti porta lì oggi. Speriamo che una versione più alta di TLS arrivi lì tutti domani, ma che il progresso è praticamente glaciale.

    
risposta data 25.05.2012 - 17:02
fonte
1

stiamo usando questo SSLProtocollo tutto -SSLv2 -TLSv1

SSLCipherSuite ECDHE-RSA-AES256-SHA384:! AES:! AES256-SHA256:! AES256-SHA256: RC4: ALTO:! MD5:! SSLv2:! ADH:! aNULL:! eNULL:! NULL:! DH: ! ADH: EDH: AESGCM: DES-CBC3-SHA

Tuttavia, stiamo fallendo la scansione PCI 403labs (sembra che stiano usando lo stesso plugin / nessus), e il test dei laboratori Qualys SSL dice che siamo conformi PCI ... link

    
risposta data 25.05.2012 - 17:56
fonte

Leggi altre domande sui tag