Da dove provengono le mie chiavi per le richieste su SSL? [duplicare]

1

Da quanto ho capito, quando invii informazioni a un sito web su SSL, crittografate le informazioni inviate con la loro chiave pubblica .

Tuttavia, se vuoi essere in grado di decifrare le informazioni con cui rispondere, avrai bisogno di una combinazione di chiavi privata / pubblica. Non ricordo mai di essere stato richiesto per una chiave RSA dal mio browser, o mi è stato richiesto di generarne uno; da dove viene questa chiave?

Se il tuo browser ne crea uno per te, viene generato una volta e quindi memorizzato sul tuo computer per sempre, oppure viene generata una nuova chiave per ogni sessione o sito?

    
posta IQAndreas 28.05.2014 - 21:11
fonte

3 risposte

2

Durante l'handshake TLS il client utilizzerà la chiave pubblica del server, che è stata trasmessa seguendo il messaggio ServerHello, per crittografare un segreto pre-master. È non l'intera chiave di sessione. Nel messaggio ClientHello e ServerHello, le due parti scambiano i valori casuali. Il server e il client ora utilizzano il segreto pre-master e i valori casuali per generare lo stesso segreto principale, che può essere utilizzato come chiave di sessione.

La chiave pubblica del server viene utilizzata perché nella crittografia asimmetrica l'unica persona che sarà in grado di decodificare il messaggio sarà il proprietario della chiave privata.

Dai un'occhiata alla pagina di wikipedia per maggiori dettagli sul handshake TLS .

    
risposta data 29.05.2014 - 06:22
fonte
0

Ci sono alcuni modi in cui questo può funzionare. Ma questo è il succo che le tue chiavi asimmetriche sono utilizzate più per la convalida dell'identità piuttosto che per la crittografia. Mentre in genere solo il server deve verificare la propria identità, a volte il server può richiedere di ripristinare l'identità del browser utilizzando un certificato client. Provalo qui se ti piace .

†: Startcom è un'autorità di certificazione famosa per fornire certificati gratuiti, ma anche per avere un sito Web totalmente inutilizzabile che le persone effettivamente pagano per i certificati comunque, solo così non devono usare il sito di startcom.

Una volta eliminate le identità, il client e il server stabiliscono una chiave di sessione per la crittografia effettiva. Pertanto, mentre le informazioni sull'identità del certificato utilizzano RSA, la crittografia della sessione effettiva generalmente utilizza AES o RC4 o Blowfish - crittografie simmetriche in cui la stessa chiave viene utilizzata per crittografare e decrittografare. Questi sono drammaticamente più veloci.

Ci sono un paio di modi per generare una chiave di sessione. Il modo in cui viene eseguito dipende da quali funzionalità sono supportate dal server e dal browser. Il vecchio approccio più ingenuo è semplicemente generare un numero casuale e inviarlo crittografato usando la chiave pubblica. Il problema è che se la sessione viene catturata da un utente malintenzionato che in seguito acquisisce la chiave privata, sarà in grado di decrittografare le sessioni precedenti.

Una soluzione migliore che sta ottenendo la trazione utilizza la negoziazione di chiavi Diffie-Helman per generare un segreto condiviso che non viene mai comunicato. La negoziazione utilizza ancora le chiavi asimmetriche per garantire che la chiave negoziata non sia corrotta da un man-in-the-middle, ma il punto importante è che la chiave non transita mai sul filo, non può essere derivata da qualcosa che viene comunicata . Ciò significa che quando la connessione si chiude e il client e il server dimenticano entrambi la chiave, i dati, se acquisiti, non possono mai essere nuovamente decrittografati. Questo argomento riceve molta attenzione qui su questo sito sotto il moniker Perfect Forward Secrecy .

    
risposta data 29.05.2014 - 09:21
fonte
-1

La loro chiave pubblica viene utilizzata per consentire al browser di inviare loro una chiave di sessione. Una volta raggiunto, il browser e il server conoscono entrambi la chiave di sessione e lo utilizzano per crittografare in entrambe le direzioni.

La chiave di sessione viene aggiornata al volo dal browser, una nuova per ogni sessione, nessuna interazione richiesta.

    
risposta data 28.05.2014 - 21:40
fonte

Leggi altre domande sui tag