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?
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?
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 lì che includerlo in questa risposta.
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
.
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:
:
+
!
Leggi altre domande sui tag openssl cipher-selection