Perché la chiave pubblica del soggetto non viene utilizzata per la crittografia in SSL? [duplicare]

10

Per quanto comprendo il funzionamento di SSL - il client genera il segreto pre-master e lo invia al server crittografato utilizzando la chiave pubblica del server. Ora, entrambe le parti eseguono alcuni passi per generare il segreto principale e la chiave di sessione. Questa chiave di sessione viene utilizzata per la crittografia simmetrica da ora in poi (ad esempio comunicazione in HTTPS).

La mia domanda è, dato che stiamo inviando la chiave pubblica del server al client - e viene anche autenticata e verificata usando le firme digitali delle autorità di certificazione - perché non usiamo solo questa chiave pubblica per la crittografia?

È perché la crittografia asimmetrica è meno efficiente? Si tratta di un compromesso tra un'operazione un tempo meno efficiente (invio di pre-master secret e generazione di master secret) durante l'handshake piuttosto che una crittografia asimmetrica multipla? Qualche idea?

Precisazione: la mia domanda non suggerisce l'uso della crittografia asimmetrica per le chiavi di sessione, ma non chiedevo assolutamente nulla sulle chiavi di sessione, cioè basta usare la chiave pubblica inviata al client per la crittografia. Vedi la mia risposta per ottenere la mia domanda.

    
posta tapananand 09.11.2015 - 11:31
fonte

3 risposte

5

Semplicemente non possiamo farlo. Lasciami spiegare:

Se utilizziamo la chiave pubblica per la crittografia, si verificheranno i seguenti problemi:

  1. Tutto funzionerà bene dal client al server - il client invierà il messaggio crittografato - il server decodificherà usando la sua chiave privata.
  2. Il problema si verificherà quando il server deve inviare qualcosa - quale chiave utilizzerà per la crittografia - non può usare la sua chiave privata perché la sua chiave pubblica è all'esterno.

Una soluzione potrebbe essere che il client possa anche inviare la sua chiave pubblica e il server crittograferà usando la chiave pubblica del client. Bene, allora è meglio usare il metodo corrente invece di aggiungere altri passaggi per autenticare la chiave pubblica del client. Inoltre è vulnerabile come spiegato qui

    
risposta data 09.11.2015 - 11:56
fonte
17

Ci sono diversi motivi per questo. Il principale è la performance: la crittografia asimmetrica è SLOW.

Inoltre, molti di questi algoritmi hanno una dimensione massima fissa per i dati che possono crittografare (RSA, come definito in PKCS # 1, ha un massimo di 245 byte per le dimensioni della chiave comunemente utilizzate).

Inoltre, non è possibile implementare la sicurezza avanzata in questo modo: chiunque ottenga una copia della chiave privata sarà in grado di decodificare qualsiasi messaggio passato.

Infine, c'è semplicemente il fatto che è più flessibile negoziare lo schema di crittografia che costringerlo a usare quello che è stato usato per firmare il certificato.

    
risposta data 09.11.2015 - 11:46
fonte
1

Secondo questa risposta , il punto non è che la crittografia asimmetrica sarebbe " meno efficiente ", è solo che ha proprietà diverse e quindi usi diversi rispetto alla crittografia simmetrica.

SSL che richiede proprietà da entrambi i mondi, quindi combina naturalmente cifrature asimmetriche e simmetriche.

    
risposta data 09.11.2015 - 11:42
fonte

Leggi altre domande sui tag