Die OP erklärt sie die Anmeldeinformationen an einen anderen Dienst übergeben müssen, die als Passwort Speicherung und Verifizierung ein völlig anderes Thema.
Je nachdem, wie viel Kontrolle Sie über den Partner-Service haben oder was sie verfügbar machen, beinhalten die besten Lösungen einen Anbieter oder Industriestandard-Ansätze wie Kerberos, SAML oder andere stabile, sichere Bearer-Token bedeutet Vertrauensstellung. Dies ist ein tiefgehendes Thema.
Aber nehmen wir an, Sie Anmeldeinformationen über Grund Auth SSL/TLS übergeben müssen. Jetzt müssen Sie sie sicher auf reversible Weise aufbewahren. Um dieses Problem zu lösen, hatte ich Erfolg mit dem geheimen Schlüssel, der unter Verwendung eines privaten Zertifikatschlüssels vermittelt wurde. Dies bietet einen gewissen Schutz Ihres geheimen durch das Betriebssystem und ermöglicht OPS Leute die Schlüssel zu verwalten, was wünschenswert ist. Dem Konto, mit dem Ihr Prozess ausgeführt wird, müssen Rechte zum Anzeigen des privaten Schlüssels gewährt werden, wodurch die Vertrauenskette im Betriebssystem beendet wird.
Sie könnten noch über die Schlüsselrotation denken, die Sie benötigen, eine Versionsnummer mit dem Chiffretext zu speichern.Möglicherweise ist SecureString von Interesse, aber bis alle .NET APIs zulassen, dass SecureString als Teil eines Berechtigungsnachweises übergeben wird, kann es vorkommen, dass Sie am Ende eine Zeichenfolge auf dem verwalteten Heap haben, die Sie nicht zerstören können.
Wie auch immer, dies ist kein Löffel gefüttert Antwort mit Code, aber aus Erfahrung, habe ich festgestellt, dass die Verwaltung der Kette von Geheimnissen immer ein Problem ist, und wenn Sie nicht auf einer gehärteten Infrastruktur wie Active Directory, Zertifikate beenden können sind die nächstbeste Sache.
Sieht gut aus, aber was ist ein IV? Ich dachte, ich brauche nur einen 16-Byte-Schlüssel? – Chris
http://en.wikipedia.org/wiki/Initialization_vector. Sie können die Stärke erhöhen, wenn Sie zufälliges Zeug hineinlegen, aber Sie könnten auch Nullen verwenden. –
Ich brauche die Passwörter, um sie an einen anderen Dienst weiterzugeben. – Chris