Wie sicher sind kryptografische Windows-Container?

8

Ich verwende benutzerspezifische Win32-Verschlüsselungsschlüssel-Container (über .Net RSACryptoServiceProvider class), um einen privaten Schlüssel zu speichern, der zum Entschlüsseln gespeicherter Kennwörter in einem Kennwortmanager verwendet wird.

Wie sicher ist dieser private Schlüssel gespeichert? Offensichtlich kann jedes Programm, das von demselben Benutzerkonto ausgeführt wird, darauf zugreifen. Aber ist der Schlüssel tatsächlich basierend auf dem Passwort des Benutzers verschlüsselt?

Kann ich davon ausgehen, dass der private Schlüssel nur dann zugänglich ist, wenn der Benutzer angemeldet ist? only ? Oder kann ein Dienst (oder ein anderes Konto) den Schlüssel noch extrahieren? Kann der Computeradministrator das Passwort des Benutzers nicht herausfinden? Kann der Schlüssel extrahiert werden, indem das Passwort des Benutzers mit einem Administratorkonto zurückgesetzt wird? Wenn der Computer gestohlen wird und der Angreifer auf die Festplatte zugreifen kann (aber das Kennwort des Benutzers nicht kennt), kann er den privaten Schlüssel extrahieren? Wenn der Benutzer die Sitzung gesperrt hat, kann ein Angreifer den Schlüssel mit einem Administratorkonto / Kernel-Treiber aus dem Speicher extrahieren?

P.S. Ich kenne das "Hauptschlüssel" -Muster, aber es ist in meinem Fall nicht akzeptabel, deshalb muss ich die Passwörter so sicher wie möglich speichern.

    
Ivan Shcherbakov 08.01.2013, 17:03
quelle

1 Antwort

2

Die privaten Schlüssel eines Benutzers sollten nur dann zugänglich sein, wenn der Benutzer angemeldet ist und nicht einfach durch Zurücksetzen des Benutzerkennworts und anschließendes Anmelden mit dem Zurücksetzungskennwort zugegriffen werden kann (tatsächlich gibt es vor dem Zurücksetzen eines Benutzerkennworts Warnungen, dass der Benutzer Benutzer verliert den Zugriff auf verschlüsselte Daten usw.) Siehe: Ссылка

Sobald jedoch der Benutzer angemeldet ist, besteht die Möglichkeit, dass die Prozesse anderer Benutzer auf demselben Rechner mit ausreichenden Privilegien (im Allgemeinen nur für Verwaltungs- / Systemkonten) auf die gespeicherten Schlüssel zugreifen, z. durch Einfügen von Code in einen Benutzerprozess, der ausgeführt wird, bin ich der Kontext des Benutzers und bin somit in der Lage, alles zu tun, was der Benutzer mit dem Schlüssel tun könnte (benutze ihn zum Entschlüsseln, Signieren oder Exportieren des Schlüssels usw.) / p>

Die Aktivierung eines starken Schutzes für private Schlüssel kann einige dieser Probleme abmildern, indem der Benutzer bei jeder Verwendung ein Kennwort für den Schlüssel eingeben muss. Selbst mit diesem Verfahren ist es wahrscheinlich weiterhin möglich, dass bösartiger Code das Kennwort des Schlüssels abfängt.

    
Iridium 08.01.2013, 19:07
quelle

Tags und Links