Come verificare se un server non è vulnerabile a Logjam?

28

In risposta a Logjam voglio dimostrare di aver indurato i miei servizi. So che il parametro DH deve essere almeno 2048 bit e generato da sé. Ma non riesco a trovare un modo per verificarlo effettivamente per qualcosa di diverso da un sito HTTPS. ( questo posso fare qui ) Vorrei controllare anche i miei altri servizi protetti SSL per questo:

  • Posta (Postfix e Dovecot)
  • SSH
  • VPN
  • Qualsiasi altro

Sono arrivato fino a openssl s_client -starttls smtp -crlf -connect localhost:25 ma ciò ha prodotto:

CONNECTED(00000003) depth=3 C = SE, O = ME, OU = Also ME, CN = Me again verify error:num=19:self signed certificate in certificate chain

verify return:0 Server certificate

-SNIPED SOME VALUES-

--- SSL handshake has read 6118 bytes and written 466 bytes

--- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression:

NONE Expansion: NONE SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 6EAA8A5B22E8C18E9D0E78A0B08447C8449E9B9543601BC53F57CB2059597754
    Session-ID-ctx: 
    Master-Key: <MASTERKEY>
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1432213909
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
--- 250 DSN

Come posso testare i parametri DH? e cosa dovrei guardare per sapere se sono a rischio?

    
posta LvB 21.05.2015 - 16:10
fonte

3 risposte

19

Fai il test del fumo: (rubato dal blog OpenSSL . (archiviato qui .))

openssl s_client -connect www.example.com:443 -cipher "EDH" | grep "Server Temp Key"

The key should be at least 2048 bits to offer a comfortable security margin comparable to RSA-2048. Connections with keys shorter than 1024 bits may already be in trouble today. (Note: you need OpenSSL 1.0.2. Earlier versions of the client do not display this information.)

(Se le connessioni falliscono immediatamente, il server non supporta affatto Diffie-Hellman effimero ("EDH" in OpenSSL-speak, "DHE" altrove) e sei al sicuro da Logjam.)

[...]

Finally, verify that export ciphers are disabled:

$ openssl s_client -connect www.example.com:443 -cipher "EXP"

The connection should fail.

In altre parole:

  • get OpenSSL 1.0.2.
  • aggiungi l'opzione -cipher "EDH" alla tua stringa di connessione.
  • si assume la vulnerabilità se i codici di esportazione sono abilitati sul server
  • si assume la vulnerabilità se viene visualizzato 512 bit (o qualsiasi valore inferiore a 2048 bit)
risposta data 21.05.2015 - 16:25
fonte
4

Quindi ho deciso di inserire il mio commento nella risposta "StackzOfZtuff" in un nuovo post, in quanto è possibile analizzare in dettaglio lo scambio di chiavi con questo metodo. Questa risposta è copiata da questo post su superuser.com (quindi, grazie, vai Thomas Pornin) :

usa openssl con la sua opzione -msg restituisce le informazioni che ci stanno a cuore

openssl s_client -connect mail.example.com:143 -starttls imap -cipher EDH -msg

Questo mostra il messaggio TLS ServerKeyExchange completo come

<<< TLS 1.2 Handshake [length 030f], ServerKeyExchange 0c 00 03 0b 01 00 ff ff ff ff ff ff ff ff c9 0f da a2 21 68 c2 34 c4 c6 62 8b 80 dc 1c d1 29 02 4e 08 8a 67 cc 74 02 0b be a6 3b 13 9b 22 51 4a

secondo Thomas Pornin puoi leggerlo in questo modo (ho copiato il seguente testo):

  • 0c 00 03 0b: messaggio di tipo "ServerKeyExchange" (ovvero "0c") di lunghezza 0x00030B byte.
  • Il primo elemento è il modulo DH come un grande numero intero, con un'intestazione di lunghezza di due byte. Qui, la lunghezza è codificata come 01 00, che significa un intero codificato su 0x0100 byte. Sono 256 byte, quindi il modulo ha una lunghezza tra 2041 e 2048 bit.
  • I byte del modulo seguono, in ordine big-endian senza segno. I primi byte di quel modulo sono, in questo caso, ff ff ff ff .... Il modulo ha quindi una lunghezza esattamente di 2048 bit.

Utilizzando questo metodo puoi anche assicurarti che il tuo server non usi i gruppi DH predefiniti in RFC 3526 (che il mio Apache2.4.7 utilizza ancora Ubuntu 14.04, sebbene link afferma che questa versione deve utilizzare i parametri DH aggiunti al file SSLCertificate codificato PEM).

    
risposta data 22.05.2015 - 21:05
fonte
0

Dalle persone che hanno trovato la vulnerabilità

Un altro test online

Questi due mi danno risposte contrastanti. Penso che i ricercatori del link one riferiscano che il tuo sito è vulnerabile se esiste un modo in cui può essere configurato per consentirne l'utilizzo. Dove, come il secondo link mostra il più pragmatico, "è vulnerabile in questo momento?" informazioni.

    
risposta data 01.06.2015 - 16:46
fonte

Leggi altre domande sui tag