Bezpieczeństwo danych i poufności informacji
Sejf ochrona poufnych informacji i zarządzanie nimi w aplikacji ADO.NET zależy od podstawowych produktów i technologii używanych do ich tworzenia. ADO.NET nie zapewnia bezpośrednio usług zabezpieczania ani szyfrowania danych.
Kryptografia i kody skrótów
Klasy w przestrzeni nazw programu .NET Framework System.Security.Cryptography mogą być używane z aplikacji ADO.NET, aby zapobiec odczytywaniu lub modyfikowaniu danych przez nieautoryzowane osoby trzecie. Niektóre klasy są otokami niezarządzanych interfejsów Microsoft CryptoAPI, podczas gdy inne są implementacjami zarządzanymi. Temat Usług kryptograficznych zawiera omówienie kryptografii w programie .NET Framework, opis sposobu implementowania kryptografii oraz sposobu wykonywania określonych zadań kryptograficznych.
W przeciwieństwie do kryptografii, która umożliwia szyfrowanie danych, a następnie odszyfrowywanie, skrótowanie danych jest procesem jednokierunkowym. Tworzenie skrótów danych jest przydatne, gdy chcesz zapobiec manipulacji, sprawdzając, czy dane nie zostały zmienione: biorąc pod uwagę identyczne ciągi wejściowe, algorytmy tworzenia skrótów zawsze generują identyczne krótkie wartości wyjściowe, które można łatwo porównać. Zapewnianie integralności danych za pomocą kodów skrótów opisuje sposób generowania i weryfikowania wartości skrótu.
Szyfrowanie plików konfiguracji
Ochrona dostępu do źródła danych jest jednym z najważniejszych celów podczas zabezpieczania aplikacji. Parametry połączenia przedstawia potencjalną lukę w zabezpieczeniach, jeśli nie jest ona zabezpieczona. ciągi Połączenie ion zapisane w plikach konfiguracji są przechowywane w standardowych plikach XML, dla których program .NET Framework zdefiniował wspólny zestaw elementów. Konfiguracja chroniona umożliwia szyfrowanie poufnych informacji w pliku konfiguracji. Mimo że przeznaczona głównie dla aplikacji ASP.NET, chroniona konfiguracja może być również używana do szyfrowania sekcji plików konfiguracji w aplikacjach systemu Windows. Aby uzyskać więcej informacji, zobacz Ochrona informacji o Połączenie ion.
Zabezpieczanie wartości ciągów w pamięci
String Jeśli obiekt zawiera poufne informacje, takie jak hasło, numer karty kredytowej lub dane osobowe, istnieje ryzyko ujawnienia informacji po jego użyciu, ponieważ aplikacja nie może usunąć danych z pamięci komputera.
Element jest String niezmienny. Nie można modyfikować jej wartości po jej utworzeniu. Zmiany, które wydają się modyfikować wartość ciągu, faktycznie tworzą nowe wystąpienie String obiektu w pamięci, przechowując dane jako zwykły tekst. Ponadto nie można przewidzieć, kiedy wystąpienia ciągu zostaną usunięte z pamięci. Odzyskiwanie pamięci z ciągami nie jest deterministyczne w przypadku odzyskiwania pamięci platformy .NET. Należy unikać używania String klas i StringBuilder , jeśli dane są naprawdę poufne.
Klasa SecureString udostępnia metody szyfrowania tekstu przy użyciu interfejsu API ochrony danych (DPAPI) w pamięci. Ciąg jest następnie usuwany z pamięci, gdy nie jest już potrzebny. Nie ToString
ma metody szybkiego odczytywania zawartości obiektu SecureString. Możesz zainicjować nowe wystąpienie obiektu SecureString
bez wartości lub przekazując go do tablicy Char obiektów. Następnie możesz użyć różnych metod klasy do pracy z ciągiem.