Securestring-Klasse: Sensible Daten in .NET 2.0 besser schützen

Die Securestring-Klasse ist im System.Security-Namensraum zu finden. Das Microsoft-Handbuch sagt über die Securestring-Klasse, dass sie Text darstellt, der vertraulich behandelt werden soll und im Speicher verschlüsselt ist. Die Securestring-Klasse hat die folgenden Merkmale:

  • Text-Werte werden verschlüsselt im Speicher abgelegt. Da die Data Protection API (DPAPI) verwendet wird, kommen nur NT-basierte Systeme in Frage.
  • Die Securestring-Klasse implementiert die Idisposable-Schnittstelle.
  • Der verschlüsselte Text kann nicht ohne weiteres abgerufen werden; das heißt, es gibt keine Tostring-Klasse, mit der man den Inhalt leicht auslesen kann.

Der Konstruktor der Securestring-Klasse ist überladen und erlaubt so zwei Möglichkeiten zum Erzeugen von Instanzen in der Klasse, wie es hier beschrieben ist:

  • Securestring(): Initialisiert eine neue Instanz der Securestring-Klasse.
  • Securestring(Char*, Int32): Initialisiert eine neue Instanz der Securestring-Klasse, der ein Unterarray von System.Char-Objekten und ihre Länge zugewiesen werden.

Wenn das Objekt initialisiert ist, kann man die unterschiedlichen Methoden und Eigenschaften der Klasse verwenden, um mit deren Inhalten zu arbeiten. Die folgende Liste bietet einen Überblick über die wichtigeren Eigenschaften und Methoden, die zur Verfügung stehen:

  • AppendChar: Fügt am Ende der aktuellen sicheren Zeichenfolge ein Zeichen an.
  • InsertAt: Fügt in dieser sicheren Zeichenfolge an der angegebenen Indexposition ein Zeichen ein.
  • RemoveAt: Entfernt das Zeichen an der angegebenen Indexposition aus dieser sicheren Zeichenfolge.
  • SetAt(int, char): Ersetzt das an der angegebenen Indexposition vorhandene Zeichen durch ein anderes Zeichen.
  • Clear: Löscht den Wert der aktuellen sicheren Zeichenfolge.
  • Copy: Erstellt eine Kopie der aktuellen sicheren Zeichenfolge.
  • Dispose: Gibt alle vom aktuellen Securestring-Objekt verwendeten Ressourcen frei.
  • Length: Gibt die Länge der sicheren Zeichenfolge zurück.
  • MakeReadOnly: Legt den Textwert dieser sicheren Zeichenfolge als schreibgeschützt fest. Kann nicht widerrufen werden.
  • IsReadOny: Gibt an, ob diese sichere Zeichenfolge als schreibgeschützt markiert ist.

Der folgende C#-Code schafft eine Instanz der Securestring-Klasse und speichert einen Datenwert darin.

Listing A

Der Code sichert den Wert der Zeichenfolge mittels der Make-Read-Only-Methode, nachdem das letzte Zeichen eingegeben wurde. Dies bedeutet, dass der Wert nicht geändert werden kann. Wenn man versucht, die Daten zu ändern, nachdem diese schreibgeschützt wurden, wird eine Fehlermeldung ausgegeben. Der Code zeigt, wenn er ausgeführt wird, lediglich den Namen der Klasse an (System.Security.Securestring). Es folgt der entsprechende VB.NET-Code:

Listing B

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google kündigt Android 16 für Juni an

Die finale Version von Android 16 erscheint damit wahrscheinlich mindestens drei Monate früher die Vorgängerversion.…

2 Tagen ago

Chrome 134 schließt 14 Sicherheitslücken

Einen Bug stuft Google als besonders schwerwiegend ein. Unbefugte erhalten unter Umständen Zugriff auf Speicherinhalte…

2 Tagen ago

Firefox 136 bringt vertikale Tab-Leiste

Sie verlagert die Tabs in die neue Seitenleiste von Firefox 136. Das Update stopft auch…

2 Tagen ago

Google schließt Zero-Day-Lücken in Android

Betroffen sind alle unterstützten Android-Versionen. Den Patch für eine Zero-Day-Lücke stellt Google auch als Google…

2 Tagen ago

Technologie-Fragmentierung der Cybersecurity setzt Unternehmen zu

Studie von Palo Alto Networks: Deutsche Unternehmen konsolidieren ihre Cyberlösungen unterdurchschnittlich, vertrauen aber der KI.

7 Tagen ago

Bericht: Microsoft schaltet ab Mai 2025 Skype ab

Ein Hinweis findet sich im Code einer Vorabversion von Skype für Windows. Darin rät Microsoft…

7 Tagen ago