Autoryzacja fragmentem hasła

0

Cześć.

Mam pytanie, które od jakiegoś czasu zaczęło mnie nurtować.
W banku ING jest logowanie, które polega na wpisaniu nazwy użytkownika. W następnym kroku należy podać kilka losowo wybranych znaków z hasła przypisanego do danego konta.

W związku z tym narodziła się we mnie ciekawość: jak takie coś może zostać zaimplementowane? Wiadomo, że zawsze przechowujemy hasło w bazie danych w postaci "zahashowanej". Wówczas, możemy sprawdzić poprawność hasła w ogólnym przypadku przez

correct = (hash(plain_password) == hashed_password)

Jednak w przypadku ING nie znamy plain_password, a jedynie kilka znaków. Jak można takie coś zrealizować w bezpieczny sposób?

0

Może robią osobny hash dla tych konkretnych znaków. Czyli np. mam hasło alamakota - robią z tego hash. Ale dodatkowo robią hash z np. aama. Mogą też zrobić w ten sposób kilka kombinacji. Ciężko powiedzieć - ale ja bym to rozwiązał w ten sposób.

2

https://en.wikipedia.org/wiki/Shamir's_Secret_Sharing

Takie maskowanie hasła NIE zwiększa bezpieczeństwa , a przez to, że algorytm jest duzo bardziej skomplikowany niż zwykłe porównanie, to jeszcze to bezpieczeństwo zmniejsza bo łatwiej to zrobić źle.

Jedyny sens takiego rozwiązania jest taki, że bank może się chwalić jaki to on bezpieczny, bo na pierwszy rzut oka to faktycznie wydaje się bezpieczniejsze.

0

Pierwszy z brzegu problem to jak wylosować maskę.
Jeżeli osoba ma hasło 10. znakowe, a wylosujesz mu maskę z np 14. znakiem to co wtedy?
To może trzymać długość hasła w bazie?
No tak, ale wtedy jak baza wycieknie, to dużo łatwiej będzie to hasło odkodować.
To może sprawdzić ile najczęściej znaków ma hasło i z tego losować?
Też nie, bo problem zostaje, a pojawia się jeszcze ograniczenia siły hasła osób mających hasła dłuzsze.

Jest na to pewnie jakieś dobre rozwiązanie, ale chodziło mi tylko o to żeby pokazać, że ten mechanizm jest dużo bardziej skomplikowany i błędogenny.
Jeżeli wierzycie w testy i to, że bank stawiają na jakość, to polecam ten obrazek.
get in the bank+

A czy to ma jakieś zalety?
Jak masz malware na kompie, to i tak nic to nie da, bo kilka razy się zalogujesz i już większość hasła znana.
Jak użyjesz kompa w bibliotece/kawiarence to przecież malware nie potrzebuje całego hasła, tylko musi odczytać które znaki są wymagane a później tak długo odśwież stronę(zmieniając ip itd) aż trafi na maskę którą zapisał.

Żeby nie było, sam algorytm shamira jak najardiej ma sens, ale akurat nie w tym przypadku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1