2010-08-07 10 views
7

Większość informacji, które znalazłem i przeczytałem na temat prawidłowego przechowywania haseł w bazie danych, mówi, że powinienem skasować czysty tekst hasła z unikalną wartością soli dla każdego użytkownika, a następnie zapisać ten skrót w bazie danych. Ale ten proces nie działa na moje potrzeby ...Właściwe przechowywanie i pobieranie haseł dla kont usług?

Mam usługi okien napisany w C#, który musi połączyć się z innymi zdalnych maszyn w różnych centrach danych korzystających z konkretnych kont usług. Te konta usług są jak konta użytkowników domeny, ale nie ma za nimi prawdziwych ludzi i mają po prostu odpowiednie uprawnienia do wykonywania usługi na każdym serwerze. Informacje o liczbie usług są przechowywane w tabeli programu SQL Server, w tym hasło dla każdego konta. Obecnie używam szyfrowania symetrycznego (Rijndael) do zaciemniania haseł w tabeli DB. Klucz jest zapisywany w oddzielnym pliku konfiguracyjnym, który ma ścisłe uprawnienia dostępu.

Za każdym razem, gdy usługa ma zaplanowaną ładowność do uruchomienia na komputerze zdalnym, sprawdzam odpowiednie informacje o koncie usługi w tabeli i dekrypuję je za pomocą klucza. Istnieje również wewnętrzna strona internetowa, która jest w zasadzie front-endem do zarządzania różnymi ustawieniami dla tej usługi, a tam administrator może przeglądać i zmieniać hasła kont serwisowych.

Czy to dobre podejście do przechowywania rzeczy bezpieczne? Czy są jakieś oczywiste wady tego schematu?

+0

Czy wewnętrzna strona użyciu protokołu HTTPS podczas wysyłania haseł do back-end? Prawdopodobnie maszyna, na której działa usługa, jest bezpieczna przed wzrokiem ciekawskich. –

+0

Tak i tak ... Wewnętrzna strona internetowa działa za pośrednictwem protokołu HTTPS, a urządzenie serwisowe ma ograniczony dostęp. –

Odpowiedz

Powiązane problemy