Condividi tramite


Privacy e sicurezza dei dati

La protezione e la gestione delle informazioni riservate in un'applicazione ADO.NET dipendono dai prodotti e dalle tecnologie sottostanti usati per crearlo. ADO.NET non fornisce direttamente servizi per la protezione o la crittografia dei dati.

Crittografia e codici hash

Le classi nello spazio dei nomi .NET Framework System.Security.Cryptography possono essere usate dalle applicazioni ADO.NET per impedire che i dati vengano letti o modificati da terze parti non autorizzate. Alcune classi sono wrapper per Microsoft CryptoAPI non gestito, mentre altre sono implementazioni gestite. L'argomento Servizi di crittografia offre una panoramica della crittografia in .NET Framework, descrive come viene implementata la crittografia e come è possibile eseguire attività di crittografia specifiche.

A differenza della crittografia, che consente di crittografare e decrittografare i dati, l'hashing dei dati è un processo unidirezionale. L'hashing dei dati è utile quando si desidera evitare manomissioni controllando che i dati non siano stati modificati: date stringhe di input identiche, gli algoritmi di hash producono sempre valori di output brevi identici che possono essere facilmente confrontati. Verifica dell'integrità dei dati con i codici hash descrive come generare e verificare i valori hash.

Crittografia dei file di configurazione

La protezione dell'accesso all'origine dati è uno dei principali obiettivi da raggiungere quando si imposta la sicurezza di un'applicazione. Una stringa di connessione presenta una potenziale vulnerabilità se non è protetta. Le stringhe di connessione salvate nei file di configurazione vengono archiviate in file XML standard per i quali .NET Framework ha definito un set comune di elementi. La configurazione protetta consente di crittografare le informazioni riservate in un file di configurazione. Sebbene sia progettato principalmente per le applicazioni ASP.NET, è anche possibile usare la configurazione protetta per crittografare le sezioni dei file di configurazione nelle applicazioni Windows. Per altre informazioni, vedere Protezione delle informazioni di connessione.

Protezione dei valori stringa in memoria

Se un String oggetto contiene informazioni riservate, ad esempio una password, un numero di carta di credito o dati personali, è possibile che le informazioni vengano rivelate dopo l'uso perché l'applicazione non può eliminare i dati dalla memoria del computer.

Un String è immutabile; il suo valore non può essere modificato una volta creato. Le modifiche che sembrano modificare il valore stringa creano effettivamente una nuova istanza di un String oggetto in memoria, archiviando i dati come testo normale. Inoltre, non è possibile prevedere quando le istanze di stringa verranno eliminate dalla memoria. Il recupero della memoria con stringhe non è deterministico con .NET Garbage Collection. È consigliabile evitare di usare le String classi e StringBuilder se i dati sono veramente sensibili.

La SecureString classe fornisce metodi per crittografare il testo usando l'API Protezione dati (DPAPI) in memoria. La stringa viene quindi eliminata dalla memoria quando non è più necessaria. Non esiste alcun ToString metodo per leggere rapidamente il contenuto di un oggetto SecureString. È possibile inizializzare una nuova istanza di SecureString senza valore o passandolo un puntatore a una matrice di Char oggetti. È quindi possibile usare i vari metodi della classe per lavorare con la stringa.

Vedere anche