La linea di condotta consigliata per impedire Logjam sui server Tomcat elimina realmente tutti i rischi di chiavi DH deboli?

9

Qualcuno può verificare questa correzione protegge contro Logjam vulnerabilità per Apache Tomcat?

Sono scettico riguardo all'efficacia, dal momento che non menziona come implementare il file di parametri DH 2048 bit definito dall'utente in Tomcat, ma il suo elenco di cifratura utilizza le crittografie "DHE". Ieri è stata citata un'impostazione "SSLDHParametersFile", ma è stata rimossa, probabilmente a causa di questo bug , dove dice che Tomcat può gestire solo le lunghezze della chiave DH da 1024 bit. Ma non sono un esperto in questo, forse mescolando le cose qui.

Al momento, il sito WeakDH dice che dovresti aggiungere questo elenco di cifrari alla Connector in server.xml file (per JSSE) per risolverlo:

ciphers="ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES256-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, DHE-DSS-AES128-SHA256, DHE-RSA-AES256-SHA256, DHE-DSS-AES256-SHA, DHE-RSA-AES256-SHA, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, AES128-SHA, AES256-SHA, AES, CAMELLIA, DES-CBC3-SHA"

    
posta Casper 21.05.2015 - 12:35
fonte

3 risposte

8

Quindi penso di aver interpretato correttamente la tua domanda. In caso contrario, sparare nei commenti.

Confusamente ci sono diversi fattori in diffie hellman: lo stai facendo su curve ellittiche o no, quale gruppo di dimensioni hai (assumiamo "strong" e "non strong") e se generi timpani pubblici / pubblici effimeri o no.

Il problema con logjam è questo: se hai una semplice variante del vecchio gruppo di DHE, allora se riesci a convincere il server a eseguire il downgrade al livello di esportazione (debole varietà), allora con alcune precomputazioni fatte prima di poter rompere il segreto generato per una sessione in pochi minuti.

Questo è subordinato alla possibilità di eseguire il downgrade della variabile delle dimensioni a una più piccola - se puoi farlo sopra la semplice variante DHE vecchia, allora sei in affari.

Ciò richiede che la suite di cipher abbia DHE_..._EXPORT_... in essa, come TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA . Ora che ha un sacco di altri problemi come DES a 40 bit e quant'altro, ma essenzialmente, potrebbero esserci dei server là fuori che supportano le varianti EXPORT di DHE con algoritmi simmetrici migliori. Oppure potrebbero effettivamente negoziare DES a 40 bit se persuasi.

Il punto è eseguire un attacco di downgrade. L'elenco di suite di crittografia che hai fornito non ammette crittografie di esportazione.

potresti disattivare tutte le varianti non CE di DH. Tuttavia, questo potrebbe limitare il supporto lato client. Che tu sia o meno così limitante, dipende solo da te. Ma "DHE" in sé e per sé va bene, a meno che non ci sia esportazione da qualche parte. Assicurati che i codici di esportazione siano disabilitati e segui i consigli di Thomas nella risposta che hai collegato.

Ora in SSLDHParametersFile - in DHE, il primo e il generatore del gruppo possono essere corretti in anticipo - il bit che è effimero è la chiave privata scelta in quel gruppo. In questo modo, impostando i parametri puoi controllare quale gruppo di dimensioni utilizza il tuo server.

Ad esempio, l'output di questo potrebbe essere:

openssl dhparam 2048 -text
<snip>
    PKCS#3 DH Parameters: (2048 bit)
    prime:
        00:bd:90:31:72:a5:bf:eb:96:b0:0e:1c:1e:3f:ff:
        cd:0a:e2:fc:14:72:50:19:f8:6d:e9:25:3c:3d:21:
        3b:3c:e3:93:9b:2e:a1:b5:98:dc:25:88:9c:9e:55:
        1a:78:36:a8:10:67:f2:f1:37:e7:6b:c7:b8:39:85:
        a7:ec:aa:e9:2f:4e:10:17:fd:72:e1:22:2e:ab:97:
        4b:bf:7b:a2:68:6d:94:a8:ae:df:e0:fb:66:ad:79:
        02:9c:09:ba:47:60:40:12:a8:27:46:ba:8f:a9:8b:
        bd:f5:d2:4e:67:0c:7a:49:f3:9d:80:98:50:4d:8c:
        72:38:47:91:4b:54:1f:3b:74:b5:81:30:c7:89:71:
        b0:87:8a:82:66:b0:06:f6:2e:a6:2b:e8:18:51:23:
        2d:09:d9:0a:87:03:7b:85:8a:27:c6:bd:fa:e9:16:
        70:b3:bf:ad:77:d5:55:72:22:e7:7c:6b:4e:31:2c:
        86:91:7a:51:11:ac:23:9d:5f:3d:f1:f2:83:02:98:
        72:a2:a4:c5:a8:26:40:25:02:59:00:80:22:37:ac:
        38:95:07:76:f5:31:3d:19:f6:81:36:6c:14:fa:d8:
        46:10:e1:b4:fa:5f:e2:9d:2f:a1:78:47:5d:9c:f9:
        ac:0c:06:83:dc:f4:2d:81:17:d4:34:1b:6f:c2:c7:
        2c:0b
    generator: 2 (0x2)

A dir poco, dal tuo bug di esempio, sembra che non sia ancora possibile utilizzare questi file di parametri con Tomcat. Non sono un esperto di Tomcat, quindi, non posso davvero dire ma se hai istruito le suite di crittografia a non consentire l'esportazione, OpenSSL dovrebbe essere impostato su un gruppo DH a 1024 bit, che è abbastanza buono per ora.

È quindi possibile, quando la patch è disponibile, aggiornare i parametri DH come si ritiene opportuno.

    
risposta data 21.05.2015 - 16:30
fonte
2

Come aggiunta alla testata elenco la mia pratica:

Per il momento non consentirei comunicazioni dirette con tomcat,  ma impostare una connessione proxy inversa usando nginx.

E avere nginx fa tutti i bit SSL. I principali vantaggi sono che nginx può essere configurato con migliori chiavi DH e supporto Cipher. come bonus se qualcuno sta cercando di "hackerare" la mia tomcat attraverso un'iniezione di troppo pieno. sarà propiabile solo al proxy nginx e non al tomcat stesso. (quindi un altro livello da sconfiggere per un attaccante)

    
risposta data 22.05.2015 - 02:32
fonte
-3

Disabilita qualsiasi cifratura in modalità CBC e protocolli SSL, abilita solo TLS 1.1 & 1.2 protocolli nel server.xml.

Mozilla ha anche una buona guida per i cifrari ammessi. link

    
risposta data 21.05.2015 - 13:34
fonte

Leggi altre domande sui tag