Qual è la differenza tra DHE e ECDH?

11

Ho appreso che il perfetto segreto in avanti è implementato attraverso DHE e ECDH, ma qual è la differenza tra questi 2 scambi di chiavi?

Qualcuno può anche spiegare come funziona il segreto perfetto? Ho trovato una varietà di risposte online che vanno da: c'è una chiave segreta di sessione che non è mai stata condivisa, c'è una chiave di sessione che cambia in base all'input casuale di entrambi gli utenti, e c'è una chiave di sessione derivata da un segreto condiviso che solo i 2 utenti lo sanno.

    
posta Matthew Clenney 11.12.2013 - 00:21
fonte

2 risposte

10

In primo luogo, le mie scuse per la matematica, e per semplificare eccessivamente la matematica!

La differenza tra DHE e ECDH in due punti elenco:

  • DHE utilizza aritmetica modulare per calcolare il segreto condiviso.
  • ECDH è come DHE ma, inoltre, utilizza curve algebriche per generare chiavi (una curva ellittica è un tipo di algebrica curva).

Il metodo generale in entrambi i casi è ancora Diffie-Hellman . (O lo chiamiamo Diffie-Hellman-Merkle in questi giorni?)

La perfetta segretezza in avanti si ottiene utilizzando coppie di chiavi temporanee per proteggere ogni sessione: vengono generate secondo necessità, conservate nella RAM durante la sessione e scartate dopo l'uso.

Le coppie di chiavi "permanenti" (quelle convalidate da un'autorità di certificazione) vengono utilizzate per la verifica dell'identità e la firma delle chiavi temporanee mentre vengono scambiate. Non per assicurare la sessione.

Questo spiega le cose un po 'meglio?

Modifica: per esaminare i tuoi esempi in dettaglio ...

secret session key that's never shared

Bene, questa è la definizione di scambio di chiavi DH, ma non è correlata alla perfetta segretezza in avanti. DH consente a entrambe le parti di calcolare in modo indipendente il segreto condiviso , senza trasmettere il segreto condiviso in chiaro, sul canale ancora non sicuro.

session key that changes based on random input from both users

... Certamente entrambi i lati della connessione useranno fonti locali di casualità per derivare le loro chiavi di sessione temporanee, ma penso che il fraseggio di cui sopra manchi il punto: la perfetta segretezza in avanti si ottiene scartando le chiavi della sessione dopo l'uso.

session key that is derived from a shared secret that only the 2 users know

Ormai stai pensando "In che modo questo fatto ci offre un perfetto segreto in avanti?" Per sottolineare il punto: il perfetto segreto in avanti si ottiene scartando le chiavi della sessione dopo l'uso.

    
risposta data 11.12.2013 - 01:26
fonte
1

Perfect forward secrecy (PFS) significa che il compromesso di un materiale di keying a lungo termine non compromette le chiavi di sessione che erano in precedenza derivate dal materiale a lungo termine. Ciò significa che un intercettatore che ha registrato tutte le precedenti esecuzioni del protocollo non può ricavare le chiavi della sessione passata anche se in qualche modo ha saputo della tua chiave a lungo termine che potrebbe essere una chiave privata RSA. Fortunatamente, quest'ultimo è utilizzato solo per ottenere l'autenticazione invece della derivazione della chiave di sessione effettiva (come nel protocollo STS o ECDH poiché DHE è vulnerabile agli attacchi man-in-the-middle).

Sia DHE che ECDH forniscono PFS a causa dell'ipotesi che sia difficile risolvere il problema matematico Diffie-Hellman (calcolo g ^ xy dato i valori di g, g ^ x e g ^ y) e il problema del logaritmo discreto (trovare k dato g ^ k e g) per DHE e il problema del logaritmo discreto della curva ellittica (trova n dato, nP e Q) per ECDH. Pertanto, anche con la chiave privata, un intercettatore non è in grado di derivare le chiavi di sessione a meno che non sia in grado di risolvere i problemi matematici "difficili". L'ECDH è una variante del protocollo Diffie-Hellman che utilizza la crittografia a curve ellittiche per ridurre i requisiti computazionali, di archiviazione e di memoria.

    
risposta data 11.12.2013 - 02:48
fonte

Leggi altre domande sui tag