Niedawno przeszliśmy na lepszą strategię przechowywania haseł, która przyniosła wszystkie dobre rzeczy:
- Hasła są przechowywane po przejściu przez bCrypt
- Użytkownik otrzymuje link aktywacyjny podczas tworzenia konta w celu potwierdzenia własności adresu
- Zapomniałem hasła bez pytania zabezpieczającego, link jest wysyłany na ich adres e-mail.
- Link wygasa po 24 godzinach, kiedy to będą musieli poprosić o nowy.
- Jeśli konto zostało utworzone przez naszych pracowników, wysyłany jest e-mail z losowym silnym hasłem. Po zalogowaniu się użytkownik musi zresetować go do czegoś, czego nie wiemy i jest to bCrypt.
Teraz jest to zgodne z „najlepszymi praktykami”, ale znacznie zwiększyło to naszą prośbę o wsparcie od zwykłych użytkowników, którzy nie rozumieją tego wszystkiego, chcą się tylko zalogować.
Często otrzymujemy zapytanie od użytkowników, którzy narzekają na:
- Niepoprawne hasło (z tego, które muszą zresetować, często wklejają je ze spacją na końcu). Mówią nam, z czego korzystają, ale nie możemy powiedzieć im, jakie jest ich rzeczywiste hasło.
- Mówiąc, że nie otrzymują wiadomości e-mail, którą im wysyłamy (aktywacja, reset itp.). Często tak się nie dzieje, po wielu rozwiązywaniach problemów zwykle okazało się, że popełnili literówkę w wiadomości e-mail, że nie sprawdzają właściwego konta e-mail lub że po prostu poszło do folderu ze spamem.
Oczywiście nie możemy tego wypróbować, ponieważ nie mamy hasła. Rejestrujemy nieudane próby, ale usuwamy również hasło, którego użyli, ponieważ prawdopodobnie jest to hasło używane dla innego konta i nie chcieliśmy przechowywać w zwykłym pliku dziennika. To pozostawia nam prawie nic, co może im pomóc, gdy zgłaszają problemy.
Jestem ciekawy, jak większość ludzi radzi sobie z takimi problemami?
źródło
Odpowiedzi:
Można to naprawić, dołączając link z jednorazowym identyfikatorem GUID, który loguje je i zmusza do zresetowania hasła. Nie zmuszaj użytkownika do kopiowania-wklejania. (Dlaczego też nie usunąć białych znaków na końcu hasła w formularzu).
Upewnij się, że wychodząca wiadomość e-mail nie jest spamowana (być może skonfiguruj konta testowe w niektórych popularnych usługach pocztowych), zaloguj wszystko, co się stanie, a może zgłoś to użytkownikowi, jeśli spróbuje poprosić o nowy reset (np. Poczta do johndoee @ gmail .com nie powiodło się, użytkownik nie został znaleziony, czy poprawnie go przeliterowałeś?). Należy również wyraźnie informować użytkowników o problemach z pisownią i spamem.
Również OpenID i inne uwierzytelnienia stron trzecich są również opcją, jak powiedzieli inni.
źródło
Powiedziałbym, że użyj metody uwierzytelniania innej firmy, takiej jak Facebook, OpenID, Google ... cokolwiek jest odpowiednie dla twoich użytkowników. Jeśli jednak użytkownicy nie pamiętają hasła, być może nie będą mogli korzystać z zewnętrznego systemu uwierzytelniania ...
W zależności od sytuacji możesz użyć innego systemu, takiego jak certyfikaty klienta SSL (zdecydowanie są one trudne do zainstalowania dla użytkowników końcowych, ale jeśli jest to firma i możesz zautomatyzować jej instalację, to świetnie), Windows SSO, aplikacja mobilna itp.
źródło
Czy ty w ogóle musisz to robić? Pierwszą rzeczą, którą musisz to zrobić, określ, przed czym chronisz i przed kim ją chronisz. Może po prostu nie jest to warte kosztu najlepszej praktyki, a może najlepsza praktyka nawet nie powstrzyma atakującego.
Jeśli walczysz z NSA i masz coś, czego chcą, poddaj się i ułatw użytkownikom życie. Jeśli masz numery kart kredytowych, będziesz musiał pogodzić się z problemami wymaganymi przez wymagany poziom bezpieczeństwa, ponieważ są tam źli faceci, którzy ich chcą i będą wydawać pieniądze i czas, aby je zdobyć. To dostęp do rodzinnego albumu fotograficznego, czy potrzebujesz całego bezpieczeństwa.
Przeczytaj o działaniach Buce Scheiners (Sekrety i kłamstwa), które stanowią dobry początek zrozumienia bezpieczeństwa.
źródło
Pierwszą rzeczą, która wyskakuje, jest to, że twoje e-maile trafiają do śmieci. Konfigurowanie wiadomości e-mail, aby była rozpoznawana jako prawdziwa, nie jest trywialna. Sugeruję, aby zastanowić się, jak zatrzymać nieprawidłowe oznaczanie wiadomości e-mail (osobne pytanie na temat SO?)
Drugą rzeczą, którą poleciłbym, jest udostępnienie użytkownikom witryny internetowej / aplikacji, która inicjuje hasło do odzyskiwania wiadomości e-mail. Odmowa zrobienia tego w jakikolwiek inny sposób niż e-mail, jest niepewny i stanowi zły precedens.
źródło
Fakt, że są skłonni do ciebie zadzwonić i głośno powiedzieć swoje hasło, mówi ci, że dla tych użytkowników hasło i informacje, które chroni, nie są aż tak duże. Nigdy bym tego nie zrobił z moim hasłem bankowym. Ale istnieje wiele witryn, które wymagają haseł do rzeczy, które naprawdę na nie nie zasługują. Mam jedno standardowe hasło, którego używam dla wszystkich, i im więcej „hej, to nie jest silne hasło” lub „zrobimy ci hasło i zmuszymy do regularnej zmiany” i tak dalej, tym mniej chcę używać ta usługa. Przeprowadziłbym krótką rozmowę z ludźmi o „wartości biznesowej” w twoim życiu, aby przekonać się, czy w rzeczywistości lepszym rozwiązaniem byłoby pozostawienie im zwykłego tekstu w bazie danych i wysłanie ich e-mailem do osób na żądanie.
Jeśli tak naprawdę powinno to być tak bezpieczne, możesz spróbować tego, co zrobił jeden z moich klientów z systemem, który dla nich napisaliśmy. Podczas rozmowy z tą osobą przejdź do bazy danych i zmień jej adres e-mail na swój. Następnie przejdź do Internetu i kliknij opcję Nie pamiętam hasła. Poczekaj na wiadomość e-mail i użyj jej do zalogowania się. Korzystając ze strony internetowej, zmień hasło na Hasło lub coś innego, co ustnie zgadzasz się z klientem. Zmień ich adres e-mail z powrotem na własny i powiedz im „wszystko gotowe, nowe hasło jest teraz aktywne!” Zadowolony klient i nie musisz im wyjaśniać, co się dzieje.
źródło
Ostatnią metodą stosowaną przeze mnie w systemie z niepiśmiennymi użytkownikami było skierowanie użytkownika na ekran, na którym otrzymali numer telefonu i numer potwierdzenia. Zadzwonili na numer telefonu, zweryfikowali swoją tożsamość ręcznie, a następnie przeczytali potwierdzenie. osoba obsługująca zalogowała się w osobnym systemie, wprowadziła numer i otrzymała drugi numer, aby zwrócić go klientowi. klient użył drugiego kodu, aby przejść do strony resetowania hasła. wersja strony klienta nie mogła działać z podsieci personelu wsparcia, a ekran wsparcia nie mógł działać z klientów.
nie jest kuloodporny, ponieważ osoba obsługująca może używać VPN do uruchamiania obu końców z jednej lokalizacji, ale wystarczyło to do kontroli, ponieważ konto wsparcia zostało zarejestrowane jako odpowiedzialne za działanie
źródło
Może poprzez wdrożenie zasad bezpieczeństwa, które nie są SZKODLIWE. W ten sposób wszystko, co dostajesz, to tak naprawdę mniejsze bezpieczeństwo, ponieważ system jest tak trudny w użyciu, że Twoi klienci ponownie sprawdzają hasła dla Ciebie i ich przyjaciół, aby go uruchomić!
Nie możesz po prostu wysłać im NORMALNYCH łączy, a następnie hasła poniżej. Jeśli link zostanie uszkodzony przez klienta poczty e-mail, po prostu wyświetl formularz z jednym polem „kod aktywacyjny” ... ”wpisz kod aktywacyjny, który masz w wiadomości e-mail„ ... 5 cyfr, aby nie pomyliły 0 z O, itp. 4 cyfry są odpowiednie dla kart kredytowych i potrzebujesz tak skomplikowanych zasad dla prostego logowania? Jeśli kod nie działa, powtórz sprawdzanie z ciągiem TRIMmed? Myślę, że to nie sprawi, że będzie mniej bezpieczne, prawda? :)
Dla mnie to też często się zdarza ... dwukrotnie klikam hasło, a miejsce końcowe zostaje skopiowane. To dla mnie niewiarygodne, dlaczego peple nie jest w stanie po prostu usunąć kończących się białych znaków, gdy sprawdzenie się nie powiedzie, i powtórzyć proces? Może może TOGGLE, aby sprawdzić, czy przypadkowo nie nacisnąłem przycisku CL.
Tak bardzo to skomplikowałeś. To nie jest „zresetuj hasło” i „hasło początkowe” ... ale „Kod potwierdzający” i „Wpisz numer potwierdzenia, który wyślemy ci na e-mail”, „Nie masz e-maila? Zostało wysłane na [email protected], sprawdź ponownie spam, nadal go nie masz? Wyślij wiadomość e-mail z potwierdzeniem ”. W treści HTML link. http://xxx.com/conf-12345-mymail-gmail-com.html . Żaden klient pocztowy tego nie zepsuje.
źródło