Crittografia
L'articolo offre una panoramica delle funzionalità di crittografia disponibili per app piattaforma UWP (Universal Windows Platform). Per informazioni dettagliate su attività specifiche, vedere la tabella alla fine di questo articolo.
Terminologia
La terminologia seguente viene comunemente usata nella crittografia e nell'infrastruttura a chiave pubblica (PKI).
Termine | Descrizione |
---|---|
Crittografia | Processo di trasformazione dei dati tramite un algoritmo di crittografia e una chiave. I dati trasformati possono essere recuperati solo usando lo stesso algoritmo e la stessa chiave (simmetrica) o correlata (pubblica). |
Decrittografia | Processo di restituzione di dati crittografati nel formato originale. |
Testo non crittografato | Originariamente si riferiva a un messaggio di testo non crittografato. Attualmente si riferisce a tutti i dati non crittografati. |
Testo crittografato | Originariamente si riferisce a un messaggio di testo crittografato e quindi illeggibile. Attualmente si riferisce a tutti i dati crittografati. |
Hashing | Processo di conversione dei dati in un valore a lunghezza variabile in lunghezza fissa, in genere più piccolo. Confrontando gli hash, è possibile ottenere una garanzia ragionevole che due o più dati siano uguali. |
Firma | Hash crittografato dei dati digitali in genere usati per autenticare il mittente dei dati o verificare che i dati non siano stati manomessi durante la trasmissione. |
Algoritmo | Procedura dettagliata per la crittografia dei dati. |
Chiave | Numero casuale o pseudorandom usato come input per un algoritmo di crittografia per crittografare e decrittografare i dati. |
Crittografia a chiave simmetrica | Crittografia in cui la crittografia e la decrittografia usano la stessa chiave. Questa operazione è nota anche come crittografia a chiave privata. |
Crittografia a chiave asimmetrica | Crittografia in cui la crittografia e la decrittografia usano una chiave diversa ma matematicamente correlata. Questa operazione è detta anche crittografia a chiave pubblica. |
Codifica | Processo di codifica dei messaggi digitali, inclusi i certificati, per il trasporto attraverso una rete. |
Provider di algoritmi | DLL che implementa un algoritmo di crittografia. |
Provider di archiviazione chiavi | Contenitore per l'archiviazione del materiale della chiave. Attualmente, le chiavi possono essere archiviate in software, smart card o nel modulo TPM (Trusted Platform Module). |
Certificato X.509 | Un documento digitale, in genere emesso da un'autorità di certificazione, per verificare l'identità di un individuo, un sistema o un'entità ad altre parti interessate. |
Namespaces (Spazi dei nomi)
Gli spazi dei nomi seguenti sono disponibili per l'uso nelle app.
Windows.Security.Cryptography
Contiene la classe CryptographicBuffer e i metodi statici che consentono di:
- Convertire i dati da e verso stringhe
- Convertire i dati da e verso matrici di byte
- Codificare i messaggi per il trasporto di rete
- Decodificare i messaggi dopo il trasporto
Windows.Security.Cryptography.Certificates
Contiene classi, interfacce ed enumerazioni che consentono di:
- Creare una richiesta di certificato
- Installare una risposta al certificato
- Importare un certificato in un file PFX
- Specificare e recuperare le proprietà della richiesta di certificato
Windows.Security.Cryptography.Core
Contiene classi e interfacce ed enumerazioni che consentono di:
- Crittografare e decrittografare dati
- Dati hash
- Firmare i dati e verificare le firme
- Creare chiavi di importazione ed esportazione
- Usare provider di algoritmi a chiave asimmetrica
- Usare provider di algoritmi a chiave simmetrica
- Usare i provider di algoritmi hash
- Usare i provider di algoritmi MAC (Machine Authentication Code)
- Usare i provider di algoritmi di derivazione delle chiavi
Windows.Security.Cryptography.DataProtection
Contiene classi che consentono di:
- Crittografare e decrittografare in modo asincrono i dati statici
- Crittografare e decrittografare in modo asincrono i flussi di dati
Funzionalità dell'applicazione Crypto e PKI
L'interfaccia di programmazione dell'applicazione semplificata disponibile per le app consente le funzionalità di crittografia e infrastruttura a chiave pubblica (PKI) seguenti.
Supporto della crittografia
È possibile inoltre eseguire le seguenti attività di crittografia. Per altre informazioni, vedere lo spazio dei nomi Windows.Security.Cryptography.Core.
- Creare chiavi simmetriche
- Eseguire la crittografia simmetrica
- Creare chiavi simmetriche
- Eseguire la crittografia asimmetrica
- Derivare chiavi basate su password
- Creare codici di autenticazione dei messaggi (MAC)
- Contenuto dell'hash
- Firmare digitalmente il contenuto
L'SDK offre anche un'interfaccia semplificata per la protezione dei dati basata su password. È possibile usare questo per eseguire le attività seguenti. Per altre informazioni, vedere lo spazio dei nomi Windows.Security.Cryptography.DataProtection.
- Protezione asincrona dei dati statici
- Protezione asincrona di un flusso di dati
Supporto per la codifica
Un'app può codificare i dati crittografici per la trasmissione attraverso una rete e decodificare i dati ricevuti da un'origine di rete. Per altre informazioni, vedere i metodi statici disponibili nello spazio dei nomi Windows.Security.Cryptography.
Supporto PKI
Le app possono eseguire le seguenti attività PKI. Per altre informazioni, vedere lo spazio dei nomi Windows.Security.Cryptography.Certificates.
- Creare un certificato
- Creare un certificato autofirmato
- Installare una risposta al certificato
- Importare un certificato in formato PFX
- Usare i certificati e le chiavi delle smart card (set di funzionalità sharedUserCertificates)
- Usare i certificati dall'archivio MY dell'utente (set di funzionalità sharedUserCertificates)
Inoltre, è possibile usare il manifesto per effettuare le seguenti azioni:
- Specificare i certificati radice attendibili per ogni applicazione
- Specificare i certificati attendibili per peer dell'applicazione
- Disabilitare in modo esplicito l'ereditarietà dal trust di sistema
- Specificare i criteri di selezione del certificato
- Solo certificati hardware
- Certificati concatenati tramite un set specificato di autorità emittenti
- Selezionare automaticamente un certificato dall'archivio applicazioni
Articoli dettagliati
Gli articoli seguenti forniscono altri dettagli sugli scenari di sicurezza:
Argomento | Descrizione |
---|---|
Attestati | Questo articolo illustra l'uso dei certificati nelle app UWP. I certificati digitali vengono utilizzati nella crittografia a chiave pubblica per associare una chiave pubblica a una persona, un computer o un'organizzazione. Le identità associate vengono spesso utilizzate per eseguire l’autenticazione di un'entità in un'altra. Ad esempio, i certificati vengono spesso usati per autenticare un server Web a un utente e un utente a un server Web. È possibile creare richieste di certificati e installare o importare certificati emessi. È anche possibile registrare un certificato in una gerarchia di certificati. |
Chiavi di crittografia | Questo articolo illustra come usare le funzioni di derivazione delle chiavi standard per derivare le chiavi e come crittografare il contenuto usando chiavi simmetriche e asimmetriche. |
Protezione dei dati | Questo articolo spiega come usare la classe DataProtectionProvider nello spazio dei nomi Windows.Security.Cryptography.DataProtection per crittografare e decrittografare dati digitali in un'app UWP. |
MAC, hash e firme | Questo articolo illustra come utilizzare i codici di autenticazione dei messaggi (MAC), gli hash e le firme nelle app UWP per rilevare la manomissione dei messaggi. |
Limitazioni di esportazione sulla crittografia | Usare queste informazioni per determinare se l'app usa la crittografia in modo da impedirne l'inserimento in Microsoft Store. |
Attività di crittografia comuni | Questi articoli forniscono codice di esempio per le attività di crittografia UWP comuni, ad esempio la creazione di numeri casuali, il confronto di buffer, la conversione tra stringhe e dati binari, la copia da e verso matrici di byte e la codifica e la decodifica dei dati. |