Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Das Schützen und Verwalten vertraulicher Informationen in einer ADO.NET Anwendung hängt von den zugrunde liegenden Produkten und Technologien ab, die zum Erstellen verwendet werden. ADO.NET stellt keine Dienste zum Sichern oder Verschlüsseln von Daten bereit.
Kryptografie- und Hashcodes
Die Klassen im .NET Framework-Namespace System.Security.Cryptography können aus Ihren ADO.NET Anwendungen verwendet werden, um zu verhindern, dass Daten von nicht autorisierten Dritten gelesen oder geändert werden. Einige Klassen sind Wrapper für die nicht verwaltete Microsoft CryptoAPI, während andere verwaltete Implementierungen sind. Das Thema Kryptografiedienste bietet eine Übersicht über Kryptografie im .NET Framework, beschreibt, wie Kryptografie implementiert wird und wie Sie bestimmte kryptografische Aufgaben ausführen können.
Im Gegensatz zur Kryptografie, mit der Daten verschlüsselt und dann entschlüsselt werden können, ist das Hashing von Daten ein unidirektionales Verfahren. Hashingdaten sind nützlich, wenn Sie Manipulationen verhindern möchten, indem Sie überprüfen, ob Daten nicht geändert wurden: Bei identischen Eingabezeichenfolgen erzeugen Hashingalgorithmen immer identische kurze Ausgabewerte, die leicht verglichen werden können. Die Sicherstellung der Datenintegrität mit Hashcodes beschreibt, wie Sie Hashwerte generieren und überprüfen können.
Verschlüsseln von Konfigurationsdateien
Eines der wichtigsten Ziele beim Sichern einer Anwendung besteht darin, den Zugriff auf die Datenquelle zu schützen. Eine Verbindungszeichenfolge stellt ein potenzielles Sicherheitsrisiko dar, wenn sie nicht gesichert wird. In Konfigurationsdateien gespeicherte Verbindungszeichenfolgen werden in Standard-XML-Dateien gespeichert, für die das .NET Framework eine gemeinsame Gruppe von Elementen definiert hat. Mit geschützter Konfiguration können Sie vertrauliche Informationen in einer Konfigurationsdatei verschlüsseln. Obwohl sie in erster Linie für ASP.NET Anwendungen entwickelt wurden, können geschützte Konfigurationen auch zum Verschlüsseln von Konfigurationsdateiabschnitten in Windows-Anwendungen verwendet werden. Weitere Informationen finden Sie unter Schützen von Verbindungsinformationen.
Sichern von Zeichenfolgenwerten im Arbeitsspeicher
Wenn ein String Objekt vertrauliche Informationen enthält, z. B. ein Kennwort, eine Kreditkartennummer oder personenbezogene Daten, besteht das Risiko, dass die Informationen nach der Verwendung angezeigt werden können, da die Anwendung die Daten nicht aus dem Arbeitsspeicher des Computers löschen kann.
A String ist unveränderlich; der Wert kann nicht geändert werden, nachdem er erstellt wurde. Änderungen, die scheinbar den Zeichenfolgenwert ändern, erstellen tatsächlich eine neue Instanz eines String Objekts im Arbeitsspeicher, wobei die Daten als Nur-Text gespeichert werden. Darüber hinaus ist es nicht möglich, vorherzusagen, wann die Zeichenfolgeninstanzen aus dem Arbeitsspeicher gelöscht werden. Die Speicherbereinigung mit Zeichenfolgen ist mit .NET Garbage Collection nicht deterministisch. Sie sollten die Verwendung der String Klassen StringBuilder vermeiden, wenn Ihre Daten wirklich vertraulich sind.
Die SecureString Klasse stellt Methoden zum Verschlüsseln von Text mithilfe der Data Protection API (DPAPI) im Arbeitsspeicher bereit. Die Zeichenfolge wird dann aus dem Arbeitsspeicher gelöscht, wenn sie nicht mehr benötigt wird. Es gibt keine ToString Methode, um den Inhalt eines .SecureString Sie können eine neue Instanz SecureString ohne Wert initialisieren oder einen Zeiger an ein Array von Char Objekten übergeben. Anschließend können Sie die verschiedenen Methoden der Klasse verwenden, um mit der Zeichenfolge zu arbeiten.