Techniken zur Bedrohungsminderung

Es gibt eine Reihe von Techniken zur Bedrohungsminderung, die Sie verwenden können, um Kennwörter besser zu schützen. Diese Techniken werden mithilfe einer oder mehrerer der folgenden primären Technologien implementiert.

Technologie Beschreibung
Kryptografie: Next Generation (CNG) CNG ist die bevorzugte kryptografische API für Windows Entwicklung. Es unterstützt moderne Algorithmen, Schlüsselisolation und Krypto-Agilität. Weitere Informationen finden Sie unter CNG-Features.
Zugriffssteuerungslisten Eine Zugriffssteuerungsliste (ACL) ist eine Liste der Sicherheitsschutzmechanismen, die für ein Objekt gelten. Ein Objekt kann eine Datei, ein Prozess, ein Ereignis oder ein anderes Objekt sein, das über einen Sicherheitsdeskriptor verfügt. Weitere Informationen zu ACLs finden Sie unter Access Control Listen.
Datenschutz-API (DPAPI) DPAPI bietet Funktionen zum Verschlüsseln und Entschlüsseln vertraulicher Daten, die an das Benutzerkonto oder den Computer gebunden sind: CryptProtectData, CryptUnprotectData, CryptProtectMemory und CryptUnprotectMemory.
Windows Anmeldeinformationsverwaltung Bietet einen sicheren Speicher für Benutzeranmeldeinformationen (Kennwörter, Zertifikate und andere geheime Schlüssel). Verwenden Sie CredWrite und CredRead für den programmgesteuerten Zugriff. Zugriff auch über CredUIPromptForWindowsCredentials.

Note

CryptoAPI (die Legacyfunktionen Crypt* ) wird weiterhin für die Abwärtskompatibilität unterstützt, aber neuer Code sollte CNG -APIs (Kryptografie: Nächste Generation) für die unterstützung moderner Algorithmus und verbesserte Sicherheitsarchitektur verwenden.

Die folgenden Techniken zur Bedrohungsminderung verwenden eine oder mehrere der oben genannten Technologien.

Abrufen von Kennwörtern vom Benutzer

Wenn Sie zulassen, dass der Benutzer ein Kennwort einrichtet, erzwingen Sie die Verwendung sicherer Kennwörter. Fordern Sie beispielsweise an, dass Kennwörter eine Mindestlänge wie acht Zeichen oder mehr aufweisen. Kennwörter sollten auch erforderlich sein, um Groß- und Kleinbuchstaben, Zahlen und andere Tastaturzeichen wie das Dollarzeichen ($), Ausrufezeichen (!), oder größer als (>) enthalten.

Nachdem Sie ein Kennwort erhalten haben, verwenden Sie es schnell (mit so wenig Code wie möglich), und löschen Sie dann alle Reste des Kennworts. Dadurch wird die Zeit minimiert, die einem Eindringling zur Verfügung steht, um das Kennwort "abfangen" zu können. Der Kompromiss mit dieser Technik ist die Häufigkeit, mit der das Kennwort vom Benutzer abgerufen werden muss; Der Grundsatz sollte jedoch wo möglich eingesetzt werden. Informationen zum ordnungsgemäßen Abrufen von Kennwörtern finden Sie unter Anfordern des Benutzers nach Anmeldeinformationen.

Vermeiden Sie die Bereitstellung von "Kennwort merken"-Benutzeroberflächenoptionen. Häufig fordern Benutzer diese Option an. Wenn Sie es angeben müssen, stellen Sie mindestens sicher, dass das Kennwort sicher gespeichert wird. Weitere Informationen finden Sie im Abschnitt "Kennwörter speichern" weiter unten in diesem Thema.

Beschränken Sie die Kennworteingabe. Nach einer bestimmten Anzahl von Versuchen ohne Erfolg sperren Sie den Benutzer für eine bestimmte Zeitspanne. Verlängern Sie optional die Antwortzeit für jeden Versuch über ein Maximum. Diese Technik zielt darauf ab, einen Erratenangriff zu besiegen.

Speichern von Kennwörtern

Warnung

Speichern Sie Niemals Kennwörter in Nur-Text (unverschlüsselt) – nicht in Dateien, in der Registrierung, konfiguration oder im Quellcode. Das Verschlüsseln von Kennwörtern erhöht ihre Sicherheit erheblich.

Informationen zum Speichern verschlüsselter Kennwörter finden Sie unter CryptProtectData. Informationen zum Verschlüsseln von Kennwörtern im Speicher finden Sie unter CryptProtectMemory. Speichern Sie Kennwörter an so wenigen Stellen wie möglich. Je mehr Orte ein Kennwort gespeichert werden, desto größer ist die Wahrscheinlichkeit, dass ein Eindringling es finden könnte. Speichern Sie niemals Kennwörter auf einer Webseite oder in einer webbasierten Datei. Das Speichern von Kennwörtern auf einer Webseite oder in einer webbasierten Datei ermöglicht es ihnen, leicht kompromittiert zu werden.

Nachdem Sie ein Kennwort verschlüsselt und gespeichert haben, verwenden Sie sichere ACLs, um den Zugriff auf die Datei zu beschränken. Alternativ können Sie Kennwörter und Verschlüsselungsschlüssel auf Wechselmedien speichern. Durch das Speichern von Kennwörtern und Verschlüsselungsschlüsseln auf einem Wechselmedium, z. B. einer Smartcard, wird ein sichereres System erstellt. Nachdem ein Kennwort für eine bestimmte Sitzung abgerufen wurde, kann die Karte entfernt werden, wodurch die Möglichkeit entfernt wird, dass ein Eindringling Darauf zugreifen kann.