Jeśli hasła są przechowywane w stanie mieszanym, skąd komputer wiedziałby, że twoje hasło jest podobne do ostatniego, jeśli spróbujesz je zresetować?

11

Jeśli hasła są przechowywane w stanie mieszanym, skąd komputer wiedziałby, że twoje hasło jest podobne do ostatniego, jeśli spróbujesz je zresetować? Czy dwa hasła nie byłyby zupełnie inne, skoro jedno zostało zaszyfrowane i nie można go odwrócić?

Bob Larry
źródło
5
Komputer nie wiedziałby, czy są podobne. Będzie wiedział tylko, czy były identyczne (mieszając nowe hasło i porównując je z przechowywanym hashem oryginalnego hasła).
Robert Harvey
Istnieją jednak sposoby generowania skrótu, który przechwytuje część cech hasła. Dostępność takich skrótów jest jednak wielką luką, ponieważ osoby łamiące hasła mogą również wykorzystywać takie informacje, aby zawęzić wyszukiwanie przy użyciu siły brute force o wiele rzędów wielkości.
rwong
Jeśli musisz porównać hasła, nie będziesz używać skrótów. Prawdopodobnie użyjesz AES lub innych form szyfrowania symetrycznego
Laiv

Odpowiedzi:

15

Jednym ze sposobów realizacji tego jest zresetowanie hasła. Zazwyczaj użytkownik jest proszony o podanie starego hasła. W takiej sytuacji możesz po prostu użyć zwykłego porównania podobieństwa ciągów, ponieważ w tym momencie masz oba hasła w postaci zwykłego tekstu.

Innym sposobem realizacji tego jest normalizacja hasła, na przykład znaki akcentowane są znormalizowane do najbliższych angielskich alfabetów, spróbuj transkrybować tekst fonetycznie, usuwając liczby itp. Oraz wstępnie obliczając wiele wersji skrótów generowanych z hasła, które zostały znormalizowane na różne sposoby. Zauważ, że osłabia to mechanizm mieszania o nieokreśloną ilość. Nie uważałbym tego za najlepszą praktykę bezpieczeństwa.

Lie Ryan
źródło
„Resetuj hasło” ogólnie odnosi się do „Zapomniałem hasła i chcę je zresetować”, więc nie będziesz proszony o stare hasło. Druga połowa twojej odpowiedzi jest jednak dokładna.
casablanca
3
@casablanca: istnieje wiele systemów, w których „resetujesz” swoje hasło co X dni ....
whatsisname
1
@casablanca: pierwsza połowa jest również dokładna, „resetowanie hasła” może mieć oba znaczenia, terminologia nie jest tak sztywna. Musimy zapytać PO, co dokładnie mieli na myśli.
Doc Brown
12

Prosta odpowiedź jest taka, że ​​bezpieczny system nie wie, czy są podobne.

Jednak niektóre systemy celowo zmniejszają bezpieczeństwo określonego hasła, aby nowe hasła nie były starymi lub podobnymi do nich. Kompromis między korzyściami i kosztami polega na tym, że nowe hasło zostanie utworzone, zanim ktoś złośliwie złamie bieżące hasło, nawet przy podobieństwie.

  • Mogą przechowywać ostatnie N skrótów haseł, których użyłeś. Jeśli wpiszesz stare hasło, będzie to oczywiste, ponieważ nowy skrót hasła odpowiada staremu skrótowi hasła.
  • Używany mechanizm mieszania może zawierać mechanizm przybijania kciuka, a skrót może być przechowywany obok skrótu. Zasadniczo pewne wzory bitów w miniaturze skrótu wyrażają zestaw bardzo podobnych wzorów bitów w wartości bazowej.
  • Podobnie mogą trzymać z boku statystyki dotyczące Twojego hasła, co pozwoliłoby na dokładny pomiar podobieństwa.

Zasadniczo każda z tych technik zmniejsza bezpieczeństwo haseł.

  • Przechowywanie starych haseł zmniejsza bezpieczeństwo tych haseł. W przypadku złamania któregoś z tych haseł istnieje duże prawdopodobieństwo, że obecne hasło będzie podobne do nich, większość ludzi zmienia tylko liczbę.

  • Gwoździowanie kciukiem i statystyki mogą wyeliminować zgadywanie złych haseł szybciej niż próba skrócenia zgadywania i porównania. Wynika to z tego, że skróty, szczególnie bezpieczne, są trudne do obliczenia i podjęcia wysiłku, nawet jeśli są przyspieszane sprzętowo. Chociaż prostsze obliczenia, które mówią „zdecydowanie nie” lub „może” mogą wyeliminować większość z tych domysłów, po tym wszystkim wszystkie kontrole podobieństwa mają na celu powstrzymanie cię od używania podobnych haseł, a nie od użycia zupełnie nowego hasła, które nie wygląda podobnie jak stare.

Krótko mówiąc, uważaj na wszelkie strony, które wskazują na podobieństwo do twojego obecnego / starego hasła. Chyba że mówią, że nowe hasło jest starym hasłem.

Kain0_0
źródło
7

Jeśli hasła są przechowywane w stanie mieszanym, skąd komputer wiedziałby, że twoje hasło jest podobne do ostatniego, jeśli spróbujesz je zresetować? Czy dwa hasła nie byłyby zupełnie inne, skoro jedno zostało zaszyfrowane i nie można go odwrócić?

Generujesz wiele podobnych haseł z tego, które wprowadził użytkownik, i sprawdzasz, czy któryś z ich skrótów jest zgodny z jednym ze starych haseł.

Jörg W Mittag
źródło
Tak, ludzie są dość przewidywalni pod względem rodzaju zmian, jakie wprowadzą, więc może to być dobry sposób na zrobienie tego.
cyborg
To wybuchłoby naprawdę szybko pod względem przetwarzania wymaganego tylko przy najkrótszych hasłach. Nie wierzę więc, że to prawdziwa praktyka.
Martin Maat
Długo pracowałem w jednym miejscu, a kiedy wyszedłem, moje hasło było supersecurepassword39. (Tylko dwie ostatnie cyfry są prawdziwe). Oczywiste jest, że hasło zaczyna się lub kończy cyfrą, aby sprawdzić, czy poprzedni numer został użyty.
gnasher729
@MartinMaat Czy to by było? Możesz wykryć powiedzenie dodając lub zwiększając liczbę, usuwając znaki jeden po drugim z oryginalnego hasła. Tj. Dla „hasła”, hash „assword” (heehee), „pssword”, „password” itp. Możesz nawet uciec od korzystania ze słabszych dla nich ze względu na dodatkową złożoność konieczności wypróbowania 256 permutacji każdego z nich jeśli zdarzy ci się brutalizować siłę wtórnego skrótu. (Więcej, jeśli przechowujesz je w losowej kolejności i nie wiesz, która postać była uniesiona, w której z nich, to dla każdej z nich jest 256 * N).
millimoose
To sprawia, że ​​ustawienie nowego hasła N-razy droższe, gdy N jest długością hasła, nie uwzględniając kontroli podobieństwa, które powinny być znacznie tańsze niż mieszanie. Ale hashujesz hasła za każdym razem, gdy użytkownik się loguje, i to prawdopodobnie dzieje się dużo częściej niż zmiany hasła, więc wątpię, aby dodatkowe obciążenie było tak zauważalne.
millimoose
2

Innym wzorcem jest to, że Twój system hashuje niektóre charakterystyczne podzbiory hasła i przechowuje te skróty, aby sprawdzić, czy podzbiory nowego hasła pasują do któregokolwiek ze starych, np .: hasło: „Admin2018” i podzbiór: „Admin” = nie można wprowadzić „Admin2019” jako nowy.

Łukasz Matysiak
źródło
1

Jednym ze sposobów byłoby przechowywanie ostatnich pięciu zaszyfrowanych haseł w tabeli, takich jak „Historia haseł”, a gdy użytkownik próbuje ustawić nowe hasło, zaszyfrować je i porównać z hashowanymi hasłami w tabeli.

SKDev
źródło