Używanie Https to właściwa odpowiedź.
Dodam wyjaśnienie na temat znaczenia obliczenia skrótu po stronie serwera. Funkcja mieszania to funkcja jednokierunkowa przekształcająca dane wejściowe na wartość klucza przechowywaną na serwerze. Jeśli ktoś włamie się na serwer i otrzyma zakodowane dane wejściowe (wartość klucza), nie będzie w stanie wydedukować wartości wejściowej, aby podszywać się pod Ciebie.
Jeśli obliczysz wartość klucza po stronie klienta i na serwerze nie zostanie przeprowadzona jednostronna tranformacja, jest to równoważne przechowywaniu haseł w postaci zwykłego tekstu. Ktoś, komu udało się uzyskać kopię wartości klucza przechowywanej na serwerze, może łatwo podszyć się pod Ciebie, wysyłając wartość klucza.
Stosowanie po stronie serwera do zabezpieczania bazy danych haseł wymaga zastosowania kryptograficznie bezpiecznej funkcji jednokierunkowej (tj. Asha6) z solą/losowym nasieniem na zgłoszonym haśle.
Zakażenie wysłanego hasła przez jego skasowanie, oprócz haszowania po stronie serwera, nie pomoże w rozwiązaniu problemu, jeśli wysłana wartość hashowana jest zawsze taka sama. Jednak szpiegowanie danych przesyłanych przez połączenie SSL nie jest banalne.
Istnieje jednak znacząca korzyść z hashowania hasła po stronie klienta. Atak brute force na serwerze, próbując odgadnąć hasło za pomocą popularnego słownika hasłowego, stałby się beznadziejny, ponieważ hashowanie po stronie klienta randomizowało hasło.
Możemy dodać sól do skrótu, aby zabezpieczyć się przed używaniem hashowanego słownika haseł. Kiedy użytkownik wpisze swój identyfikator użytkownika, poproś o podanie konkretnej wartości soli dla serwera. Następnie użyj zwróconej wartości salt lub hash, aby wygenerować hashowane hasło po stronie klienta.
Brutalne wymuszanie hasła może być utrudnione po stronie serwera przez zwiększenie odstępu czasu między ponownymi próbami. Ale na ogół działa to dla jednego konkretnego połączenia. Atakujący może połączyć się ponownie po każdych dwóch próbach. Następnie wymagane jest śledzenie adresów IP w celu rozpoznania tego typu ataków.
Dziękuję, więc używam HTTPS i dla małych aplikacji, w których bezpieczeństwo nie jest dużym problemem Chyba zarządzam moimi administratorami baz danych i użytkownikami baz danych (czytnikami), więc referencje administratora serwera nigdy nie są używane to dobre rozwiązanie ? – Arnaud