Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
CMS/PKCS #7 include la classe EnvelopedCms che consente di proteggere digitalmente i messaggi.
Proteggere digitalmente un messaggio significa applicarvi un servizio di protezione denominato riservatezza dei dati.
La protezione digitale utilizza la crittografia per mantenere il messaggio riservato. Viene generata una chiave della sessione, che viene utilizzata per crittografare il messaggio. La stessa chiave della sessione viene quindi crittografata utilizzando la chiave pubblica del destinatario. La combinazione di messaggio crittografato e di chiave della sessione crittografata costituisce la protezione digitale. Quando il messaggio viene recapitato, la chiave della sessione viene decrittografata utilizzando la chiave privata del destinatario. Il messaggio viene quindi decrittografato mediante la chiave della sessione. La chiave della sessione può essere utilizzata sia per crittografare sia per decrittografare il messaggio, poiché è una chiave simmetrica.
Utilizzare la classe EnvelopedCms in qualsiasi applicazione che deve assicurare la massima riservatezza dei dati. La posta elettronica che utilizza lo standard di protezione S/MIME rappresenta un esempio di implementazione della classe EnvelopedCms a scopo di protezione. Oltre ad altri servizi di protezione, S/MIME specifica la capacità di crittografare un messaggio di posta elettronica per più destinatari. La protezione digitale è concepite appositamente per tale esigenza.
Utilizzare uno dei metodi Encrypt della classe EnvelopedCms per crittografare un messaggio. Con il metodo System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient), l'applicazione deve innanzitutto impostare le caratteristiche del destinatario del messaggio costruendo un oggetto CmsRecipient. La classe CmsRecipient archivia il certificato X509 del destinatario e la tecnica in base alla quale viene stabilita la chiave della sessione fra il mittente e il destinatario del messaggio. Il metodo System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt visualizza una finestra di dialogo per consentire all'utente di selezionare il certificato del destinatario appropriato.
La classe EnvelopedCms supporta la protezione digitale di un messaggio per più destinatari. Impostare il gruppo di destinatari in un insieme CmsRecipientCollection da utilizzare come input per il metodo System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection).
Per stabilire la chiave della sessione fra il mittente e il destinatario di un messaggio sono disponibili due tecniche. Gli algoritmi di trasporto della chiave in genere utilizzano l'algoritmo RSA (https://go.microsoft.com/fwlink/?LinkId=98038 (informazioni in lingua inglese) https://go.microsoft.com/fwlink/?LinkId=98038), in cui un creatore utilizza una chiave di crittografia condivisa con un destinatario, generando tale chiave e quindi trasportandola al destinatario. Gli algoritmi di scambio di chiave in genere utilizzano l'algoritmo di scambio di chiave Diffie-Hellman (https://go.microsoft.com/fwlink/?LinkId=98039 (informazioni in lingua inglese) https://go.microsoft.com/fwlink/?LinkId=98039). In questo algoritmo due parti stabiliscono una chiave di crittografia condivisa partecipando entrambe alla sua generazione e, per definizione, concordano su tale chiave.
Le informazioni per ogni destinatario di un messaggio EnvelopedCms sono disponibili nella proprietà System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos. Le informazioni relative a un destinatario che stabilisce la chiave della sessione con il mittente tramite un algoritmo di trasporto della chiave sono disponibili in un oggetto KeyTransRecipientInfo. Le informazioni relative a un destinatario che stabilisce la chiave della sessione con il mittente tramite un algoritmo di scambio di chiave sono disponibili in un oggetto KeyAgreeRecipientInfo.
Un messaggio EnvelopedCms può includere attributi non protetti. Questi attributi non sono crittografati e pertanto non garantiscono la riservatezza dei dati. Sono archiviati nella proprietà System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes.
Utilizzare uno dei metodi Decrypt della classe EnvelopedCms per decrittografare un messaggio protetto digitalmente. Il messaggio EnvelopedCms contiene le informazioni di identificazione dei destinatari necessarie per la decrittografia. Tali informazioni sono contenute nella proprietà RecipientInfos.
Per esempi di codice in cui vengono utilizzati messaggi EnvelopedCms, vedere Utilizzo di System.Security.Cryptography.Pkcs.
Vedere anche
Attività
Procedura: proteggere un messaggio digitalmente per un destinatario
Procedura: proteggere un messaggio digitalmente per più destinatari
Riferimenti
CmsRecipient
CmsRecipientCollection
EnvelopedCms
KeyAgreeRecipientInfo
KeyTransRecipientInfo
Concetti
Procedura: firmare e proteggere digitalmente un messaggio
Tipi di messaggi CMS/PKCS #7
.gif)
Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.