Significato della suite di crittografia mod_ssl messa insieme e ordine di preferenza

0

Ho letto la descrizione della suite di crittografia di mod_ssl , e ho compreso il significato di alias e parole chiave come ! + ecc. Ma non sono in grado di capire come leggere ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW completamente specialmente quando si tratta di priorità usando + .

Quando provo a usare openssl per capire come ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW è interpretato da Apache, non c'è ancora molto aiuto, perché ALL: mi suggerisce che TUTTE le cifre dovrebbero venire, ma non lo è.

Inoltre, nel sotto o / p la suite di cifratura è elencata in ordine di preferenza, verrebbe scelta da Apache?

[apache1@hagrawal conf.d]$ openssl ciphers -v 'ALL!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW'
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
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  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
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
KRB5-DES-CBC3-MD5       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) Mac=MD5 
KRB5-DES-CBC3-SHA       SSLv3 Kx=KRB5     Au=KRB5 Enc=3DES(168) 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
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
KRB5-RC4-MD5            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=MD5 
KRB5-RC4-SHA            SSLv3 Kx=KRB5     Au=KRB5 Enc=RC4(128)  Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
KRB5-DES-CBC-MD5        SSLv3 Kx=KRB5     Au=KRB5 Enc=DES(56)   Mac=MD5 
KRB5-DES-CBC-SHA        SSLv3 Kx=KRB5     Au=KRB5 Enc=DES(56)   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
DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1

Seconda domanda:
Generalmente in Apache Cipher Suite viene specificato come SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW , ma può essere specificato come SSLCipherSuite TLS_RSA_WITH_RC4_128_SHA , il che significa invece di specificare l'alias e collegarli, specificando direttamente la cifra che voglio usare. Se ci provo, può soffiare qualcosa sul mio Apache?

Ho provato a usare SSLCipherSuite TLS_RSA_WITH_RC4_128_SHA e ho ricevuto l'errore. Almeno Apache avrebbe dovuto iniziare, no?

[Tue Aug 18 07:53:02 2015] [info] Configuring server for SSL protocol
[Tue Aug 18 07:53:02 2015] [error] Unable to configure permitted SSL ciphers
[Tue Aug 18 07:53:02 2015] [error] SSL Library Error: 336646329 error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match

Sto cercando di creare la seguente preferenza delle suite di crittografia.

SSL3-RSA-RSA-NONE-0-MD5
SSL3-RSA-RSA-NONE-0-SHA
SSL3-RSA-RSA-RC4-128-MD5
SSL3-RSA-RSA-RC4-128-SHA
SSL3-RSA-RSA-DES-56-SHA
SSL3-RSA-RSA-DES3-168-SHA
TLS1.0-RSA-RSA-AES-128-CBC-128-SHA
TLS1.0-RSA-RSA-AES-256-CBC-256-SHA
TLS1.2-RSA-RSA-NONE-0-SHA256
TLS1.2-RSA-RSA-AES-128-CBC-128-SHA256
TLS1.2-RSA-RSA-AES-256-CBC-256-SHA256
    
posta hagrawal 18.08.2015 - 13:18
fonte

2 risposte

6

Non scrivere, generare.

Utilizza Mozilla SSL Configuration Generator

Dettagli gori

Ottieni 20 linee di pacchetti di crittografia. Sulla mia versione di OpenSSL ottengo molte più suite di crittografia. Ad oggi, ho un totale di 139 tra cui scegliere:

$ openssl version
OpenSSL 1.0.2d 9 Jul 2015

$ openssl ciphers -V 'ALL' | wc -l
131

$ openssl ciphers -V 'ALL:COMPLEMENTOFALL' | wc -l
139

Sì. ALL non significa infatti "Tutto".

Ora costruiamo l'elenco di cifratura una dopo l'altra e vediamo come cambiano i numeri:

$ openssl ciphers -V 'ALL' | wc -l
131

$ openssl ciphers -V 'ALL:!ADH' | wc -l
117

$ openssl ciphers -V 'ALL:!ADH:!EXPORT' | wc -l
110

$ openssl ciphers -V 'ALL:!ADH:!EXPORT:!SSLv2' | wc -l
106

$ openssl ciphers -V 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA' | wc -l
106

$ openssl ciphers -V 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH' | wc -l
106

$ openssl ciphers -V 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM' | wc -l
106

$ openssl ciphers -V 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW' | wc -l
106

I numeri non sono cambiati affatto per le ultime 5 opzioni. Quindi questo mi suggerisce che quella stringa di codice è stata costruita per una versione diversa dalla mia. E / o è solo sbagliato / inutile.

EDIT2015-08-19: Sbagliato. Come ha sottolineato @ dave-thompson-085: il conteggio della suite di crittografia non dovrebbe cambiare per nessuna parola chiave con il segno + in primo piano. Ordina solo ciò che è già lì. (Ho pensato erroneamente che sia aggiunto e quindi ordinato.)

Ma di nuovo non ho idea di cosa intendesse fare l'autore originale della stringa della suite di crittografia.

OpenSSL Cookbook

Ivan Ristic di SSL Labs pubblica online un capitolo del suo "Bulletproof SSL e TLS". Questo è chiamato OpenSSL Cookbook (archiviato qui ) e fa un buon lavoro di spiegazione della temuta serie di suite di cifratura nella sezione Cipher Suite Selection .

TLS_RSA_WITH_RC4_128_SHA

If I try this can it blow something on my Apache?

Sì. Potrai bloccare chiunque abbia bloccato il lato client RC4. (Come Google Chrome. Anche Firefox si sta muovendo in quella direzione.) Non è una buona idea. Ma facilmente risolto. Basta inserire la vecchia stringa e riavviare Apache.

A proposito: l'analisi delle opzioni da riga di comando di OpenSSL è terribile.

$ openssl ciphers 'RC4'
ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:AECDH-RC4-SHA:ADH-RC4-MD5:ECDH-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:RC4-MD5:PSK-RC4-SHA:EXP-ADH-RC4-MD5:EXP-RC4-MD5:EXP-RC4-MD5

$ openssl ciphers 'RC4:!OPENSSL:+OPTION:PARSING:!MAKES:+ME:A:!BIT:+SAD:SOMETIMES'
ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:AECDH-RC4-SHA:ADH-RC4-MD5:ECDH-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:RC4-MD5:PSK-RC4-SHA:EXP-ADH-RC4-MD5:EXP-RC4-MD5:EXP-RC4-MD5

Sì, è lo stesso risultato entrambe le volte. E nessun messaggio di errore.

EDIT 2015-08-19: come ottenere i nomi di Cipher Suite

Hai elencato alcuni nomi di suite di crittografia che in realtà non esistono.

Ecco la ricetta generale su come ottenere i nomi OpenSSL: elenca tutto e poi grep per i bit che vuoi. Ad esempio:

SSL3-RSA-RSA-NONE-0-MD5

$ openssl ciphers -V ALL:COMPLEMENTOFALL | grep -i 'kx=rsa' | grep -i 'au=rsa' | grep -i 'Enc=None' | grep -i 'mac=md5'
      0x00,0x01 - NULL-MD5                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=MD5

Quindi l'unica suite di crittografia che soddisfa questi criteri è NULL-MD5 . (Questo è il nome OpenSSL. Il nome IANA ufficiale di questo sarebbe stato TLS_RSA_WITH_NULL_MD5 .)

Ecco un altro esempio:

SSL3-RSA-RSA-NONE-0-SHA

$ openssl ciphers -V ALL:COMPLEMENTOFALL | grep -i 'kx=rsa' | grep -i 'au=rsa' | grep -i 'Enc=None' | grep -i 'mac=sha1'
      0x00,0x02 - NULL-SHA                SSLv3 Kx=RSA      Au=RSA  Enc=None      Mac=SHA1

E così via.

    
risposta data 18.08.2015 - 13:46
fonte
1

La risposta a una delle mie domande è la seguente:

I prefissi disponibili sono:

  1. (+): sposta la cifra corrispondente nella posizione corrente nell'elenco.
  2. (-): rimuove la cifra corrispondente dall'elenco (può essere aggiunta in seguito).
  3. (!): elimina la cifra corrispondente dall'elenco (non può essere aggiunta in seguito).

La stringa di cifratura predefinita in Apache v2.2 è ALL:! ADH: RC4 + RSA: + HIGH: + MEDIUM: + LOW: + SSLv2: + EXP e possono essere letti come :

  • Inizia con tutte le cifre (TUTTO :)
    • Ricorda che le specifiche di cifratura sono separate da due punti
  • Rimuovi tutti i cifrari diffie-hellman anonimi (! ADH)
  • Aggiungi tutti RC4 e RSA
  • Aggiungi cifre di alta, media e bassa intensità
  • Aggiungi SSLv2 ed esportare le cifre nell'elenco, alla fine.
risposta data 19.08.2015 - 12:51
fonte

Leggi altre domande sui tag