Condividi tramite


Scambi di chiavi di sessione manuali

Nota

La procedura descritta in questa sezione presuppone che gli utenti (o i client CryptoAPI) dispongano già del proprio set di coppie di chiavi pubbliche/private e abbiano ottenuto le chiavi pubbliche .

 

Nella figura seguente viene illustrato come utilizzare questa procedura per inviare un messaggio crittografato.

l'invio di un messaggio crittografato

Questo approccio è vulnerabile ad almeno una forma comune di attacco. Un intercettazione può acquisire copie di uno o più messaggi crittografati e delle chiavi crittografate. Quindi, in un secondo momento, il intercettazione può inviare uno di questi messaggi al ricevitore e il ricevitore non avrà modo di sapere che il messaggio non è venuto direttamente dal mittente originale. Questo rischio può essere ridotto tramite timestamp di tutti i messaggi o usando i numeri di serie.

Il modo più semplice per inviare messaggi crittografati a un altro utente consiste nell'inviare il messaggio crittografato con una chiave di sessione casuale insieme alla chiave di sessione crittografata con la chiave pubblica di scambio di chiavi ricevitore.

Di seguito sono riportati i passaggi per l'invio di una chiave di sessione crittografata.

Per inviare una chiave di sessione crittografata

  1. Creare una chiave di sessione casuale usando la funzioneCryptGenKey.
  2. Crittografare il messaggio usando la chiave di sessione. Questa procedura viene descritta in Crittografia dei dati e decrittografia.
  3. Esportare la chiave di sessione in unBLOB di chiavi con la funzione CryptExportKey, specificando che la chiave deve essere crittografata con la chiave pubblica di scambio delle chiavi dell'utente di destinazione.
  4. Inviare sia il messaggio crittografato che il BLOB della chiave crittografata all'utente di destinazione.
  5. L'utente di destinazione importa il BLOB della chiave nel provider di servizi di configurazione usando la funzioneCryptImportKey. In questo modo la chiave di sessione verrà decrittografata automaticamente, purché la chiave pubblica di scambio delle chiavi dell'utente di destinazione sia stata specificata nel passaggio 3.
  6. L'utente di destinazione può quindi decrittografare il messaggio usando la chiave di sessione, seguendo la procedura descritta in Crittografia dati e Decrittografia.