Possiamo controllare la versione SSL per ClientHello

2

Possiamo controllare la versione SSL per ClientHello (come passare la versione minore e quella massima supportata)?

Sto usando un client Java per connettermi al server App. Attualmente il mio client supporta TLSv1.0 e il server App supporta SSLV3, TLSV1.1 e TLSv1.2 ma TLSv1.0 è stato disabilitato a causa della sua vulnerabilità all'attacco BEAST.

Quindi volevo collegarmi al server dell'app tramite SSLv3 invece di TLSV1.0

Posso ottenere lo stesso risultato con il client Java?

    
posta Ashutosh 09.01.2014 - 15:14
fonte

3 risposte

1

Sì. Almeno in Firefox (sto eseguendo 26.0). Apri una scheda su about: config. Filtra per tls.version e imposta il valore min / max in modo appropriato. Ecco la ripartizione del significato dei valori .

Puoi anche pasticciare con le suite di crittografia accettate tramite le opzioni (filtro about: config per: security.ssl3).

Puoi testare le opzioni SSL / TLS del tuo browser visitando: HowsMySSL.com

Buona fortuna.

(Naturalmente, se, invece, stai cercando una risposta generale / OpenSSL, la documentazione dell'API è tua amica. :-D)

    
risposta data 09.01.2014 - 16:18
fonte
1

Questa domanda non può essere esaudita senza sapere quale sia il software client coinvolto. Il client decide che cosa va in ClientHello . Alcuni (molti) browser Web possono essere configurati per utilizzare o non utilizzare una versione specifica di SSL / TLS. Ad esempio, con Firefox, puoi utilizzare l'URL about:config per accedere alle opzioni di configurazione interne, in particolare security.tls.version.min e security.tls.version.max .

Tuttavia, possiamo ancora dire che una tale modifica non può essere forzata dall'esterno (ad esempio un firewall o un proxy) perché l'handshake termina con i messaggi di controllo (chiamati " Finished ") il cui contenuto sono verificati dal peer (il server verifica il contenuto di Finished dal client e viceversa); i contenuti sono in realtà un valore hash calcolato sul contenuto completo di tutti i precedenti messaggi di handshake. Ciò garantisce che il client e il server abbiano realmente visto gli stessi messaggi, fino all'ultimo bit. Se modifichi un ClientHello in transito, i messaggi Finished alla fine della connessione non corrisponderanno e l'handshake non avrà esito positivo.

(Il termine generico per forzare un client e un server SSL ad utilizzare una versione inferiore rispetto a quello che entrambi vorrebbero è un della versione ; SSL / TLS include protezioni efficaci contro questo, in particolare i contenuti dei messaggi Finished .)

    
risposta data 09.01.2014 - 16:22
fonte
0

Puoi utilizzare openssl con l'opzione s_client per avviare la connessione SSL / TLS. In questo modo puoi influenzare il protocollo utilizzato con i parametri appropriati -ssl2 -ssl3 -tls1 -dtls1 . Puoi elencare le opzioni disponibili come questa

 openssl s_client --help
 ...
 -ssl2         - just use SSLv2
 -ssl3         - just use SSLv3
 -tls1         - just use TLSv1
 -dtls1        - just use DTLSv1
 ...
    
risposta data 09.01.2014 - 16:31
fonte

Leggi altre domande sui tag