OpenSSL: abilita le suite di crittografia per versione di protocollo

2

C'è un modo per configurare esplicitamente OpenSSL per consentire AES (o in generale, cifrari a blocchi) solo per i client che usano una versione TLS > = 1.1?

Questo proteggerebbe dall'attacco BEAST, permettendo comunque l'uso di cifre più sicure rispetto all'RC4 antico.

soluzione alternativa suggerita per OpenSSL (applica l'ordine di preferenza di crittografia del server, preferisci AES-GCM su RC4 su AES-CBC) esclude tutti i client che non supportano le suite di crittografia GCM, anche se sono perfettamente in grado di utilizzare AES-CBC in modo sicuro a causa di le correzioni in TLS 1.1.

Sembra che molti siti popolari abbiano scelto di usare RC4 per tutto, il che non sembra una buona idea (RC4 ha molti punti deboli noti e molte implementazioni di TLS have soluzioni alternative anche per TLS < = 1.1 ). Mi chiedo se un lato server "usa AES, ma solo se è sicuro" -flag potrebbe migliorare la situazione.

    
posta lxgr 09.09.2013 - 18:24
fonte

1 risposta

4

Da uno sguardo superficiale nel codice sorgente di OpenSSL, no, la libreria non è all'altezza di ciò che vuoi. La selezione della suite di crittografia sembra essere eseguita in ssl3_choose_cipher() (in ssl/s3_lib.c ) e quella funzione funziona con un elenco di "suite di crittografia supportate". L'elenco è potato a seconda della versione negoziata (OpenSSL non selezionerà una suite di crittografia che non è supportata per la versione che verrà utilizzata), ma l'elenco non contiene preferenze specifiche della versione.

A livello di programmazione, sarebbe possibile creare un filtro di input sui dati in entrata, che riconosce un messaggio ClientHello e regola dinamicamente le impostazioni di OpenSSL in base alla versione massima annunciata in quel messaggio. Sarebbe un hack piuttosto terrificante, che "funzionerebbe". Tuttavia, non lo avrai solo con la configurazione.

Almeno il protocollo supporta ciò che desideri ottenere. Questo non sarebbe vero nella direzione opposta: poiché il client annuncia in un messaggio la versione massima accetta e l'elenco di suite di crittografia che supporta, non c'è modo per il client di dire "AES- CBC, ma solo per TLS 1.1 + ".

    
risposta data 09.09.2013 - 19:45
fonte

Leggi altre domande sui tag