Wie kann ich die (Speicher-) Exposition einer unverschlüsselten Zeichenfolge beschränken, die in einer Datenbank gespeichert ist, wenn sie von der Datenbank an eine lokale Variable SecureString
übertragen wird?Konvertieren einer Zeichenfolge aus der Datenbank in SecureString
Ist die Zeichenkette, nachdem sie von der Datenbank kommt, aber bevor sie konvertiert wird, genauso verwundbar, als wenn sie nur in eine Zeichenkettenvariable verschoben und dann konvertiert wird? Und gibt es einen anderen Weg, dies zu tun?
Hier ist Code Abrufen von Daten aus MSSQL-Datenbank, wo es als unverschlüsselte varchar gespeichert:
SecureString str = ((string)command.Parameters["@ssn"].Value).ConvertToSecureString();
Wo ConvertToSecureString()
ist diese Erweiterung Methode:
public static SecureString ConvertToSecureString(this string str)
{
var secureStr = new SecureString();
if (str.Length > 0)
{
foreach (var c in str.ToCharArray()) secureStr.AppendChar(c);
}
secureStr.MakeReadOnly();
return secureStr;
}
Ich versuche, die belichten von abzuwenden Daten zu einigen Speicher-Profiling-Viren/Hacks/Dumps etc. Eg Walmart memory hack und sei so sicher wie möglich insgesamt.