it-swarm.dev

Qual è la differenza tra DHE ed ECDH?

Ho imparato che la perfetta segretezza diretta è implementata attraverso DHE ed ECDH ma qual è la differenza tra questi 2 scambi chiave?

Qualcuno può anche spiegare come funziona il segreto perfetto? Ho trovato una varietà di risposte online che vanno da: c'è una chiave di sessione segreta che non è mai stata condivisa generata, 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.

16
Matthew Clenney

Innanzitutto, mi scuso per la matematica, e per semplificare eccessivamente la matematica!

La differenza tra DHE ed 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 curva algebrica).

Il metodo globale in entrambi i casi è ancora Diffie – Hellman . (O lo stiamo chiamando Diffie – Hellman-Merkle in questi giorni?)

La perfetta segretezza in avanti si ottiene usando coppie di chiavi temporanee per proteggere ogni sessione: vengono generate secondo necessità, mantenute in 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 per firmare le chiavi temporanee mentre vengono scambiate. Non per proteggere la sessione.

Questo spiega le cose un po 'meglio?

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

chiave di sessione segreta che non è mai stata condivisa

Bene, questa è la definizione di scambio di chiavi DH, ma non è correlata alla perfetta segretezza diretta. DH consente ad entrambe le parti di calcolare indipendentemente il segreto condiviso sarà , senza trasmettere il segreto condiviso in chiaro, sul canale ancora insicuro.

chiave di sessione che cambia in base all'input casuale di entrambi gli utenti

... Certamente entrambe le parti della connessione useranno fonti locali di casualità per ricavare le loro chiavi di sessione temporanee, ma penso che la frase precedente non risponda al punto: la perfetta segretezza in avanti si ottiene scartando le chiavi di sessione dopo l'uso.

chiave di sessione derivata da un segreto condiviso che solo i 2 utenti conoscono

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

12
scuzzy-delta

Perfect forward secrecy (PFS) significa che il compromesso di un materiale di codifica a lungo termine non compromette le chiavi di sessione che sono state precedentemente derivate dal materiale a lungo termine. Ciò significa che un intercettatore che ha registrato tutte le esecuzioni del protocollo precedente non può derivare le chiavi di sessione precedenti anche se ha in qualche modo imparato a conoscere la chiave a lungo termine che potrebbe essere una chiave privata RSA. Fortunatamente, quest'ultimo viene utilizzato solo per ottenere l'autenticazione anziché la 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 del presupposto che sia difficile risolvere il problema matematico Diffie-Hellman (calcolare g ^ xy dati i valori di g, g ^ x e g ^ y) e il problema logaritmico discreto (trova 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 ricavare le chiavi di sessione se non è in grado di risolvere i "difficili" problemi matematici. ECDH è una variante del protocollo Diffie-Hellman che utilizza la crittografia a curva ellittica per ridurre i requisiti di calcolo, archiviazione e memoria.

2
jingyang