Mam aplikację ASP.Net C#, która musi łączyć się z zewnętrznym API przy użyciu WebServices co 5 minut.Najlepsza praktyka przechowywania i aktualizacji zewnętrznych haseł API
Wymagania Webservice Zewnętrznych są następujące:
- Nazwa użytkownika i hasło są wymagane
- muszę przekazać nazwę użytkownika i hasło przy każdym żądaniu Zestawienie
- Hasła wygasają co 90 dni i musi być zmienił się przed datą wygaśnięcia
- Hasła nie mogą być zmieniane ręcznie (przez człowieka), moja aplikacja musi połączyć się z oddzielną usługą zmiany hasła, aby zmienić hasło.
- Moja aplikacja musi generować każde nowe hasło w oparciu o zestaw reguł.
- Hasła nigdy nie zostaną ponownie wykorzystane.
- SSL Certyfikaty i firewall IP ograniczenia są wymagane
zbudowałem wszystkie poprzednie, ale obecnie mam jeden problem. Jaka jest najlepsza praktyka przechowywania aktualnych i historycznych haseł?
Oczywiście przechowywanie hasła w postaci zwykłego tekstu jest złym rozwiązaniem. Muszę mieć możliwość odczytywania hasła przez moją usługę internetową i przesyłania jej przy każdym żądaniu. Muszę też mieć dostęp do wszystkich historycznych haseł, aby upewnić się, że moje nowo wygenerowane hasło nie jest duplikatem.
Idealnie chciałbym przechowywać każde (zaszyfrowane) hasło w mojej bazie danych i odszyfrować je, gdy tylko będę musiał połączyć się z serwisem internetowym. Czy istnieje najlepsza praktyka, którą powinienem śledzić? Czy należy szyfrować każde hasło przy użyciu Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.Cryptographer.EncryptSymmetric (..)?
Uwaga: Niestety, nie mam dostępu, aby zmienić sposób działania zewnętrznego interfejsu API. Muszę przestrzegać podanych zasad.
trzymać licznik 5-cyfrowy na końcu hasła, a liczba miesięcy od roku 2010? –