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

Wie die meisten Objekte im .NET-Framework, stellt auch die Securestring-Klasse eine Tostring-Methode bereit. Allerdings ist die Tostring-Methode aus der Systemobject-Klasse abgeleitet und in Securestring nicht außer Kraft gesetzt. In der Folge wird, wenn man die Tostring-Methode der Securestring-Klasse aufruft, lediglich der Objekttyp angezeigt (System.Security.Securestring), aber keine tatsächlichen Daten.

Das Komplizierte an der Arbeit mit der Securestring-Klasse ist das Abrufen der darin gespeicherten Daten. Da hier die Cryptography Services von Windows genutzt werden, muss der System.Runtime-Namensraum genutzt werden. Die folgende C#-Zeile ist der erste Schritt zum Abrufen des Wertes. Sie kopiert den Inhalt der Securestring-Klasse in ein langes Pointer-Objekt.


Wenn das Pointer-Objekt bestückt ist, wird der Pointer über die System.Runtime.Interopservices.Marshal-Klasse in eine Zeichenfolge umgewandelt, wie es der folgende C#-Code tut:


Das Microsoft-Handbuch gibt an, dass bei der Umwandlung des Objekts in einen Pointer der für eine Zeichenfolge benötigte, nicht verwalte Speicher zugewiesen wird – man sollte also stets das Pointer-Objekt durch Aufrufen der Zerofree-BSTR-Methode freisetzen, wie dies mit dem folgenden C#-Code geschieht:

System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(bstr);

Um den Inhalt zu speichern und anzuzeigen, verbindet der folgende C#-Code das Beispiel zur Ablage von Daten in einem Securestring-Objekt mit dem Aufrufen.

Listing C


Es folgt der entsprechende VB.NET-Code:

Listing D


Daten mit Securestring schützen

Die Securestring-Klasse bietet die Funktionen, die man benötigt, um innerhalb einer .NET-Anwendung mit sensiblen Daten arbeiten zu können. Zur Verschlüsselung der Daten müssen weder die Cryptography Services noch besonders umfangreicher Code verwendet werden. Die Securestring-Klasse erlaubt es auch, auf der Windows-Plattform in einfacher Weise Zeichenfolgen zu speichern und abzurufen. Das ist ein großer Vorteil, da die String-Klasse für die Arbeit mit sensiblen Daten nicht sehr attraktiv ist.

Themenseiten: .NET, Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Securestring-Klasse: Sensible Daten in .NET 2.0 besser schützen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *