Per DHE_RSA_ .. Cipher Suites a cosa serve RSA?

3

Oltre a raggiungere PFS con DHE, vogliamo che il meno possibile venga rivelato quando viene rivelata la chiave privata del server. Quindi, a cosa serve RSA nelle suite di crittografia DHE_RSA? Che cosa firma il server durante lo scambio di chiavi?

    
posta OregonTrail 01.12.2013 - 08:39
fonte

2 risposte

5

In una suite di crittografia come "TLS_DHE_RSA_WITH_AES_256_CBC_MD5" RSA viene utilizzato per autenticazione , mentre AES (256 bit) in modalità CBC viene utilizzato per crittografia .

L'autenticazione è necessaria poiché Diffie-Hellman è vulnerabile agli attacchi Man-in-the-Middle. Un attaccante potrebbe facilmente scambiare il parametrico Diffie-Hellmann e sarebbe quindi in grado di intercettare la comunicazione più tardi. Il parametro Diffie-Hellman così firmato garantisce che venga rilevato un attacco Man-in-the-Middle. Esiste una variante dello scambio di chiavi Diffie-Hellman chiamato anonimo Diffie-Hellman (DH_anon) che non usa l'autenticazione.

Il server firma il parametro Diffie-Hellman (tramite RSA) da cui deriva il cosiddetto segreto pre-master. Dal segreto pre-master viene successivamente calcolato il master secret, da cui a sua volta viene generata la chiave simmetrica AES a 256 bit. Ricorda che il parametro Diffie-Hellman scambiato è pubblico, quindi non sono crittografati con RSA. Hanno appena firmato.

Ho preso la maggior parte di questo da qui che è un bel riassunto dell'intero argomento. Sfortunatamente è solo in tedesco, ma forse le figure ti aiutano ancora. Puoi trovare informazioni più dettagliate in RFC 5246 .

    
risposta data 02.12.2013 - 11:20
fonte
3

Invece di dire L'autenticazione è necessaria dal momento che Diffie-Hellman è vulnerabile agli attacchi Man-in-the-Middle , che è senza dubbio una dichiarazione valida, un altro modo di guardare a questo è iniziare con TLS_RSA_WITH_AES_256_CBC_SHA256 che è ancora in uso oggi, vedere il problema con esso e come DHE lo risolve. Qui, la crittografia a chiave pubblica RSA viene utilizzata per 2 cose:

    a) for client to authenticate the server and
    b) key exchange, where the client generates
       a session key and encrypts it [1] with the server's public key.

Un problema sorge perché RSA è usato sia per l'autenticazione che per lo scambio di chiavi. Se un avversario memorizza le sessioni crittografate finché non acquisiscono in qualche modo la chiave privata RSA, ora possono decodificare la chiave di sessione crittografata e decrittografare le comunicazioni. La soluzione è utilizzare RSA solo per l'autenticazione e utilizzare Diffie-Hellman 2 per lo scambio di chiavi. Una volta che il client ha autenticato il server utilizzando RSA, scambia le chiavi pubbliche Diffie-Hellman e calcola in modo indipendente la chiave di sessione. Qualsiasi man-in-the-middle può vedere le chiavi pubbliche di Diffie Hellman ma non può calcolare la chiave di sessione in quanto non esiste una soluzione efficiente per il problema del logaritmo discreto. Dato che la sessione è di breve durata e ogni sessione utilizza coppie di DH-pubblico-privato-chiave diverse e per distinguerla dal certificato di chiave pubblica DH in cui viene utilizzata una coppia di chiavi pubbliche / private fisse, viene utilizzato il termine DHE E sta per effimero. Ora, anche se un avversario acquisisce la chiave privata RSA, non possono decodificare le comunicazioni crittografate precedenti perché non possono calcolare la chiave di sessione --- questo è il inoltro in PFS . Forse avrebbero dovuto chiamarlo Perfect Prior Security !

Riguardo a " Cosa firma il server durante lo scambio di chiavi ", tra le altre cose, il server firma i valori diffie-hellman (che fanno parte del messaggio Server Key Exchange) con la sua chiave privata .

Hai menzionato " vogliamo il meno possibile da rivelare quando viene rivelata la chiave privata del server ". Nota che se un avversario acquisisce la chiave privata RSA può essere molto dannoso per nuove comunicazioni . Potrebbero essere in grado di impersonare il server e ingannare il cliente fornendo credenziali di accesso. L'avversario può anche agire come man-in-the-middle dove c'è una connessione tra il client e l'avversario e un altro dal avversario al server originale. In entrambi i casi, non importa se DHE è usato o meno.

Note:

  1. In realtà una chiave premaster è crittografata e la chiave di sessione derivata da quella
  2. Dovrebbe chiamarsi Diffie-Hellman-Merkle
risposta data 04.03.2014 - 15:00
fonte

Leggi altre domande sui tag