2009-08-07 7 views
6

Gibt es Best Practices zum Speichern von Anmeldeinformationen in einer .NET Windows-Anwendung, sei es eine integrierte API oder nur ein empfohlener Verschlüsselungsalgorithmus?Speichern von Benutzeranmeldeinformationen in einer Windows-Anwendung

Entlang den gleichen Linien wie Tortoise SVN, Spotify und Skype.

Bearbeiten: Meine Absicht ist es, einen Webdienst zu verwenden, der ein Token von seinem Authentifizierungsdienst zurückgibt. Die anderen Dienste akzeptieren dann dieses Token als Parameter. Das Token läuft jedoch nach 30 Minuten ab, so dass das Speichern des Tokens selbst für diese Aufgabe sinnlos ist.

+0

Nur für den Fall, dass Sie es nicht schon einmal begegnet: [Entwerfen eines Authentifizierungssystems: ein Dialog in vier Szenen] (http://web.mit.edu /kerberos/www/dialogue.html) ist ein großartiger Artikel über Kerberos-Prinzipien; Ich denke, es kann im Zusammenhang mit der Erstellung Ihres Authentifizierungsdienstes interessant sein. – Regent

Antwort

12

Es scheint, dass die Verwendung ProtectedData (die die Windows Data Protection API umschließt) meine beste Wette ist, da es die Option hat, basierend auf dem aktuell angemeldeten Benutzer zu verschlüsseln.

byte[] dataToEncrypt = new byte[] { ... }; 

// entropy will be combined with current user credentials 
byte[] additionalEntropy = new byte { 0x1, 0x2, 0x3, 0x4 }; 

byte[] encryptedData = ProtectedData.Protect(
    dataToEncrypt, additionalEntropy, DataProtectionScope.CurrentUser); 

byte[] decryptedData = ProtectedData.Unprotect(
    encryptedData, additionalEntropy, DataProtectionScope.CurrentUser); 
0

Best Practice ist nie, Anmeldeinformationen zu speichern, nur Kerberos-Token ... leider nicht jede Ressource ermöglicht eine solche Authentifizierung.

+0

Ich hätte genauer sein sollen. Siehe mein Update. –

0

Es gibt eine ganze Menge von recomendations Re-Kennwörter in MSDN. Sie müssen einen verwalteten Wrapper für CryptProtectData finden

+1

System.Security.Cryptography.ProtectedData * ist * ein verwalteter Wrapper für CryptProtectedData. Siehe meine Antwort oben. –

Verwandte Themen