Was ist der beste Weg, um ein Passwort oder einen privaten Schlüssel auf einem Web-Host zu speichern?

8

Ich beziehe mich nicht auf Passwörter, die nicht verwendet werden müssen (wie Passwörter für andere Benutzer zu meiner Site - in diesem Fall bin ich wirklich nicht muss sie speichern (siehe Ссылка .), so dass Hashes einfach nicht gespeichert werden können.

Ich beziehe mich auf das Speichern von Passwörtern in einer SQL-Datenbank und einen privaten Schlüssel, den die Software auf dem gemeinsam genutzten Server verwenden muss.

Ich gehe davon aus, dass es keinen wirklich sicheren Weg gibt, dies zu tun. Ich möchte nur wissen, was in dieser Situation am besten ist .

Ich versuche, sie vor Hackern (auf demselben Web-Host oder nicht) zu schützen. Nicht von anderen, die die Dateien sehen dürfen.

Es ist ASP.Net CodeBehind, der sie verwenden wird.

    
ispiro 27.06.2012, 18:27
quelle

2 Antworten

1

Windows bietet die Data Protection API (DPAPI) speziell für diesen Zweck an. Schauen Sie in die ProtectedData Klasse, um sie von .NET zu verwenden.

Der Vorteil von DPAPI besteht darin, dass Ihre sensiblen Daten basierend auf den Anmeldeinformationen des Windows-Benutzers verschlüsselt werden. Dies bedeutet, dass sie sicher sind, sofern Ihr Windows-Konto nicht kompromittiert ist.

    
Douglas 27.06.2012, 18:42
quelle
3

Am besten speichern Sie das Passwort, indem Sie es nicht speichern. Verwenden Sie die integrierte (Windows-) Authentifizierung, um eine Verbindung mit SQL Server herzustellen. Dazu muss der IIS-App-Pool als bestimmter (Windows-) Benutzer ausgeführt und diesem Benutzer Zugriff gewährt werden um sich bei der Datenbank anzumelden und die benötigten Abfragen auszuführen.

Siehe auch Integrierter SQL Server-Authentifizierungsmodus

Abgesehen davon, dass es sicherer ist, funktioniert es besser. Die Verwendung von Verbindungszeichenfolgen pro Benutzer verhindert das Verbindungs-Pooling.

BEARBEITEN:

Wenn Sie das Passwort unbedingt speichern müssen, verwenden Sie Verschlüsselte Verbindungszeichenfolgen in ASP.NET ist der Weg zu gehen. Dies sorgt dafür, dass DPAPI verwendet wird, um die Verbindungszeichenfolge und den Maschinenschlüssel korrekt zu speichern, wodurch die Gefahr verringert wird, dass Sie es vermasseln und denken, dass Sie es gesichert haben, wenn Sie es nicht haben.

Auch: Verschlüsseln der Verbindungszeichenfolge in web.config

    
Chris Shain 27.06.2012 18:31
quelle

Tags und Links