Witam.
Problem jest następujący:
Jest sobie aplikacja (uruchamiana na komputerze użytkownika), która korzysta z bazy danych (baza danych siedzi sobie w sieci lokalnej).
Z aplikacji korzysta wielu różnych użytkowników. Rzecz jasna muszą się oni uwierzytelnić (standardowo: login/hasło). Tutaj z przechowywaniem haseł nie ma problemu - w BD zapisujemy jedynie hash hasła, bo nigdy nie trzeba tego deszyfrować. Uwierzytelniamy porównując to, co zapisane w BD z hashem tego, co wpisał użytkownik. Proste.
Jednak, żeby odczytać, co jest zapisane w BD, musimy najpierw uwierzytelnić się przed samą bazą danych - podać nazwę użytkownika i hasło. I tutaj jest problem - bo na komputerze użytkownika końcowego to hasło musi być przecież zapisane, i to w formie deszyfrowalnej!
W małej skali mogę sobie, rzecz jasna, pozwolić na zapisanie tego hasła w pliku zaszytym gdzieś głęboko w strukturze katalogów, i mieć zaufanie do użytkowników (albo nadzieję, że żaden z nich nie będzie próbował szukać). Albo użycie jakiegoś prostego, odwracalnego szyfru. Albo zapisanie tego hasła 'na sztywno' w aplikacji. W żadnym jednak przypadku nie jestem raczej w stanie zabezpieczyć go nawet nie przed atakiem hakerskim, tylko przed dociekliwością nieco bardziej świadomego użytkownika.
W jaki sposób jest to rozwiązane w przypadku "poważnych" aplikacji?