Dela via


Sekretess och datasäkerhet

Valv att skydda och hantera känslig information i ett ADO.NET program är beroende av de underliggande produkter och tekniker som används för att skapa den. ADO.NET tillhandahåller inte direkt tjänster för att skydda eller kryptera data.

Kryptografi- och hashkoder

Klasserna i .NET Framework-namnområdet System.Security.Cryptography kan användas från dina ADO.NET program för att förhindra att data lässkyddas eller ändras av obehöriga tredje parter. Vissa klasser är omslutningar för den ohanterade Microsoft CryptoAPI, medan andra är hanterade implementeringar. Avsnittet Cryptographic Services innehåller en översikt över kryptografi i .NET Framework, beskriver hur kryptografi implementeras och hur du kan utföra specifika kryptografiska uppgifter.

Till skillnad från kryptografi, som gör att data kan krypteras och sedan dekrypteras, är hashning av data en enkelriktad process. Hashning av data är användbart när du vill förhindra manipulering genom att kontrollera att data inte har ändrats: med identiska indatasträngar genererar hashalgoritmer alltid identiska korta utdatavärden som enkelt kan jämföras. Att säkerställa dataintegritet med Hash-koder beskriver hur du kan generera och verifiera hashvärden.

Kryptera konfigurationsfiler

Att skydda åtkomsten till din datakälla är ett av de viktigaste målen när du skyddar ett program. En anslutningssträng utgör en potentiell säkerhetsrisk om den inte är skyddad. Anslut ionssträngar som sparats i konfigurationsfiler lagras i xml-standardfiler som .NET Framework har definierat en gemensam uppsättning element för. Med skyddad konfiguration kan du kryptera känslig information i en konfigurationsfil. Även om den främst är utformad för ASP.NET program, kan skyddad konfiguration också användas för att kryptera konfigurationsfilavsnitt i Windows-program. Mer information finns i Skydda Anslut ionsinformation.

Skydda strängvärden i minnet

Om ett String objekt innehåller känslig information, till exempel ett lösenord, kreditkortsnummer eller personliga data, finns det en risk att informationen kan avslöjas efter att den har använts eftersom programmet inte kan ta bort data från datorminnet.

A String är oföränderlig. Dess värde kan inte ändras när det har skapats. Ändringar som verkar ändra strängvärdet skapar faktiskt en ny instans av ett String objekt i minnet och lagrar data som oformaterad text. Dessutom går det inte att förutsäga när stränginstanserna kommer att tas bort från minnet. Minnesåtertagning med strängar är inte deterministisk med .NET-skräpinsamling. Du bör undvika att använda klasserna String och StringBuilder om dina data verkligen är känsliga.

Klassen SecureString innehåller metoder för att kryptera text med hjälp av DATASKYDDS-API :et (DPAPI) i minnet. Strängen tas sedan bort från minnet när den inte längre behövs. Det finns ingen ToString metod för att snabbt läsa innehållet i en SecureString. Du kan initiera en ny instans av SecureString utan värde eller genom att skicka en pekare till en matris med Char objekt. Du kan sedan använda de olika metoderna i klassen för att arbeta med strängen.

Se även