Se ECDH-RSA
viene utilizzato per lo scambio di chiavi, questo è ciò che accade:
Il server ha il suo parametro ECDH
pubblico incorporato nel suo certificato. Il client genera il suo parametro pubblico ECDH
, estrae il parametro ECDH
pubblico del server e genera il% segreto condiviso di% co_de. Questo segreto viene quindi utilizzato come segreto premaster.
Se viene utilizzato lo scambio di tasti ECDH
, questo è ciò che accade:
Il server ha la sua chiave pubblica incorporata nel suo certificato. Il client genera il segreto premaster, lo crittografa con la chiave pubblica del server e lo invia al server.
Nessuna delle cifrarie offre Perfect Forward Secrecy, quindi qual è il vantaggio di usare una ciphersuite basata su RSA
su una ECDH-RSA
?
Ho fatto alcune valutazioni, utilizzando 2048 chiavi RSA e 256 chiavi ECDH. Nella tabella seguente, presento il numero di istruzioni della CPU (in milioni) utilizzate dal client e dal server per eseguire lo scambio di chiavi con ciascun algoritmo:
+--------+------+----------+
| | RSA | ECDH-RSA |
+--------+------+----------+
| Client | 4.5 | 54.5 |
| Server | 75.5 | 27.5 |
+--------+------+----------+
Ciò significa che in uno scambio di chiavi RSA
, il client utilizza 4,5 milioni di istruzioni della CPU, mentre il server utilizza 75,5 milioni di istruzioni della CPU. Allo stesso modo, in uno scambio di chiavi RSA
, il client utilizza 54,5 milioni di istruzioni della CPU, mentre il server utilizza 27,5 milioni di istruzioni della CPU.
Se eleviamo il livello di sicurezza alle 7680 chiavi RSA e 409 -bit ECDH, otteniamo i seguenti risultati:
+--------+------+----------+
| | RSA | ECDH-RSA |
+--------+------+----------+
| Client | 15.5 | 89.5 |
| Server | 1503 | 44.5 |
+--------+------+----------+
In ECDH-RSA
, il costo sul lato server aumenta bruscamente. Ciò può essere spiegato dal fatto che il server utilizzerà una chiave RSA privata molto grande per decifrare il segreto premaster. Nota come ora il server utilizza 1503 milioni ( i.e 1,5 miliardi) di cicli CPU per eseguire uno scambio di tasti RSA
.
Poiché non viene offerta alcuna sicurezza aggiuntiva quando viene utilizzato RSA
, i principali vantaggi che sono riuscito a trovare sono legati ai costi e non avvantaggiano entrambe le parti:
-
Il costo totale è molto più piccolo quando il livello di sicurezza viene aumentato.
-
Aiuta a "anche i costi", per ridurre al minimo le differenze di utilizzo delle risorse tra i peer.
-
C'è un aumento minore dei costi totali all'aumentare del livello di sicurezza. Questo porta vantaggi al server (specialmente per livelli di sicurezza più elevati).
Il client è, tuttavia, sempre in uno svantaggio di costo quando viene utilizzato lo scambio di tasti ECDH-RSA
invece di ECDH-RSA
. Supponendo che io sia un utente egoista che sta navigando sul Web, non avrebbe più senso per me preferire sempre lo scambio di tasti RSA
?