Come passare l'elenco di cifrature a OpenSSL s_client

5

Come possiamo passare un elenco di cifrari al programma% s_set% di OpenSSL?

Possiamo passare un singolo codice da questo:

openssl s_client -cipher 'ECDHE-RSA-AES256-SHA' -connect www.google.com:443

Ma come passare un elenco di più cifre?

    
posta Rahul_cs12 05.07.2015 - 13:30
fonte

3 risposte

4

Sebbene la documentazione di OpenSSL manchi molto, questa parte è in realtà ben documentata. Dalla pagina man di s_client :

-cipher cipherlist

this allows the cipher list sent by the client to be modified. Although the server determines which cipher suite is used it should take the first supported cipher in the list sent by the client. See the ciphers command for more information.

E nella menzionata documentazione per i codici troverai effettivamente molti dettagli sul formato del elenco di crittografia, le stringhe di crittografia e i nomi delle suite di crittografia. In effetti la documentazione è così ampia che è molto meglio leggerla che includerlo in questa risposta.

    
risposta data 05.07.2015 - 14:24
fonte
4

Poiché Steffen Ullrich ha accennato , puoi passare un elenco di codici a l'opzione -cipher di s_client . Questo non è un singolo oggetto, ma una specifica e può anche essere usato per l'opzione ssl_ciphers di nginx, o l'Apache SSLCipherSuite opzione.

Puoi passare più codici utilizzando uno spazio, una virgola o un separatore di due punti. Esempio:

openssl s_client -cipher ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384 \
    -connect example.com:443

L'elenco precedente specifica due codici specifici. Può anche essere passato un gruppo di cifre. Ecco un esempio di una specifica dell'elenco di codici cifrati che richiede l'autenticazione ECDH empheral key agreement (ECDH), RSA per l'autenticazione e solo pacchetti di crittografia considerati di crittografia "alta":

openssl s_client -cipher ECDH+aRSA+HIGH -connect example.com:443

A cosa si espande? Il comando openssl ciphers può essere utilizzato a questo scopo:

$ openssl ciphers ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA

o più in modo verbale:

$ openssl ciphers -v ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-RSA-DES-CBC3-SHA  SSLv3 Kx=ECDH     Au=RSA  Enc=3DES(168) Mac=SHA1

Per ulteriori informazioni, leggi la % pagina manuale diciphers .

    
risposta data 05.07.2015 - 15:32
fonte
3

Ha esattamente la stessa sintassi, come ad es. % configurazione di configurazione SSLCipherSuite in Apache, o molte opzioni di configurazione simili. Lista di esempio: EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:!SSLv2:!SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA

Nota i personaggi importanti:

:
+
!
    
risposta data 05.07.2015 - 13:49
fonte

Leggi altre domande sui tag