Czy 5-cyfrowy PIN jest lepszy niż większość haseł?

To jest coś, co dręczy mnie od wielu lat: dlaczego Większość serwisów internetowych wysoko ceni entropię hasła , powołując się na to jako środek bezpieczeństwa i egzekwując go, gdy użytkownicy wybierają hasło?

Postanowiłem odpowiedzieć na to pytanie po przeczytaniu artykułu " czy silne hasła internetowe coś dają?" (i oczywiście klasyczna kreskówka Dilberta ).

Typowa Polityka witryny internetowej wymaga co najmniej 6 lub 8 cyfr upper+lowercase + numeric password. Długość ta jest w pewnym sensie istotna dla trudności ataku brute-force, aby np. odzyskać hasło z hasha. Ale typowy sposób zgadywania dzieje się online jest to, że ktoś próbuje zalogować się na serwer, który jest wolny odmówić po kilku próbach.

Wyobraźmy sobie na przykład, że chronimy jakąś usługę średniej wielkości za pomocą całkowicie cyfrowego kodu PIN. Od razu myśli się o 4-cyfrowych lub 6-cyfrowych pinach, ale to może nie być dobry pomysł, ponieważ zbyt wiele osób pokusi się, aby wprowadzić urodziny swoich dzieci, które są zasadniczo wiedzą publiczną.

Oto moja 5-cyfrowa sugestia. Zachowuję dla każdego użytkownika flagę "możliwy atak".
  1. użytkownik loguje się poprawnie - > OK
  2. W przeciwnym razie zachowaj sesję https i Zezwalaj na kolejne 2 próby.]}
  3. użytkownik loguje się - > OK
  4. w przeciwnym razie, pozwól 2 próbom z 5-minutową przerwą przed nimi
  5. użytkownik loguje się - > OK
  6. User breaks session - > set the flag
  7. użytkownik przerywa sesję, ale loguje się normalnie później: wyświetla użytkownika w oknie dialogowym i pozwala wyczyścić flagę
  8. użytkownik wyczerpuje powyższe próby: wyślij e-mail z linkiem; pozwól wyczyścić flagę
  9. Jeśli w ciągu miesiąca jest więcej niż 100 FLAG, Ustaw globalną flagę "możliwy atak", która wymaga, aby osoby, które nie mają pliku cookie, odpowiadały na pytania zabezpieczające]}
  10. automatycznie Wyczyść flagę użytkownika w niektórych przypadkach (np. ostatecznie zalogowany z tego samego komputera)

Załóżmy, że nazwy użytkowników są w jakiś sposób znane(zauważ, że nie będzie to prawdą dla większości witryn). Atak brute-force na jednego użytkownika jest beznadziejny - jesteś zablokowany po 5 próbach, więc masz szansę 1/200000. Jeśli spróbujesz odgadnąć hasło więcej niż 200 razy w miesiącu, flaga zniknie i nic nie dostaniesz. Jeśli spróbujesz

Rozmiar witryny ma znaczenie tylko w tym sensie, że nie otrzymujesz fałszywych alarmów, czyli użytkowników, którzy naprawdę zapominają hasła (powiedzmy 1% miesięcznie), odzyskują je, ale nie wyczyszczają flagi (powiedzmy 1% tych), A gdy nie możesz wyczyścić flagi automatycznie (powiedzmy 10% tych). Daje to 10 spodziewanych fałszywie pozytywnych FLAG miesięcznie na 106 użytkowników - - - co oznacza, że strona średniej wielkości ma w miarę niskie prawdopodobieństwo wejścia w tryb "paniki", który i tak nie jest taki zły.

Uważam, że ten schemat jest bardzo praktyczny. Oto kilka oczywistych pierwszych faktów na ten temat (aktualizacje):
  • korzyść : PIN jest łatwiejszy do zapamiętania. Uważam, że jest to duża korzyść, ponieważ teraz Można wymagać, aby użytkownik zapamiętał wygenerowane hasło. Wierzę, że większość ludzi znacznie lepiej zapamiętuje losowe cyfry 5 niż jakikolwiek inny rodzaj losowego hasła.
  • tradeoff : haszowanie niewiele pomoże, jeśli napastnik zna zarówno haszowany PIN, jak i sól. Jest to możliwe, jeśli ktoś włamał się do twojej bazy danych i dowie się, jaki jest twój proces solenia. Uważam jednak, że standardowa Entropia hasła również w tym przypadku nie pomaga.
  • korzyść : ludzie są o wiele szczęśliwsi pamiętając losowe 5 cyfr niż losowe hasła alfanumeryczne, dlatego o wiele łatwiej jest również wymagać, abyśmy wygenerowali Hasło, Nie użytkownik. Eliminuje to ataki słownikowe/osobiste.
Moje pytania to:
  1. jakie są inne korzyści / korzyści z mojego programu w porównaniu do tego, który opisałem jako typowy?
  2. czy większość średnich stron i organizacji nie będzie lepiej z moim schematem haseł?
  3. jakie są powody, dla których wybierają schemat, który mają?

Uwaga: nie jestem zwolennikiem posiadania krótkich haseł. Moje własne hasła internetowe to zazwyczaj losowo generowane i szyfrowane przez menedżera haseł (1Password) z 12-znakowym hasłem o wysokiej entropii. Ale myślę, że często powyższy schemat byłby lepszy od tego, co mamy w praktyce.

Author: ilya n., 2009-06-20

13 answers

Nie, mylisz się. Ataki Brute force to jedno, ale prawdziwym zagrożeniem są tabele tęczowe, które z wartości hash dają Ci hasło ze zwykłym tekstem.

Po pierwsze, nigdy nie przechowujesz niczego jako zwykłego tekstu. Jeśli ktoś naruszy Twoje bezpieczeństwo (lub nawet jeśli pracownik ma złośliwe intencje), nie chcesz ujawniać hasła użytkowników. Więc użyjesz odpowiednio solonego haszu.

Wtedy, z 5-cyfrowym pinem, jest zbyt krótki, aby chronić go za pomocą hasha. Są tęczowe stoły (a nawet Wyszukiwania Google), które pozwoliłyby komuś odzyskać hasło, jeśli dostanie hash.

 42
Author: Ksempac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-25 15:32:07

Należy pamiętać, że złośliwy użytkownik z 3.000 prób może skutecznie zablokować 1.000 kont w ciągu kilku minut. Inną rzeczą jest to, że może zmienić szanse na jedno udane logowanie, próbując tysiące różnych kont dziennie. Czy OpenID nie wchodzi w grę?

Update

Po prostu miałem trochę inspiracji na temat 5 cyfr. Jeśli 5 cyfr (10^5=100.000) są naprawdę łatwe do zapamiętania i bezpieczne w tym samym czasie, co z tymi przypadkami:
4 letters all lowercase (26^4 = 456.976) => abcd
3 letters with mixed cases (52^3 = 140.608) => aBc
3 letters lowercase + numbers (36^3 = 46.656) => ab1
 14
Author: merkuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-11 03:58:15

Hasła z solonymi hashami są najlepsze. Sól zapobiega większości ataków tęczy, a hasło jest znacznie trudniejsze do brutalnej siły. Nawet przy ataku słownikowym łatwiej byłoby uzyskać szybsze trafienia na 5-cyfrowy pin niż na hasło o podobnej długości.

 2
Author: Matthew Whited,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 22:08:02

Uwaga na obsługę Sesji

Nie wiem zbyt wiele na temat obsługi sesji, ale z tego, co wiem, większość czasu jest robiona przy użyciu plików cookie. Gdy masz taki schemat jak Twój, konieczne jest zapisanie fałszywych prób do bazy danych lub do specjalnych plików na twoim serwerze, ponieważ nie możesz polegać na obsłudze sesji (w Twoim opisie brzmi to trochę, ponieważ po prostu możesz "przytrzymać sesję", aby mieć całą prawdę...) -- ponieważ sesje przez internet są bardzo podatne. Jest to tylko konstrukcja plików cookie (które można usunąć) i/lub nazw stron (te również mogą być skażone). Jedyną rzeczą, na której możesz polegać, jest to, że użytkownik nadal utrzymuje sesję - tak naprawdę nie możesz zidentyfikować, czy jakieś (płynnie) nowe połączenie nie jest twoim starym użytkownikiem ...

W szczególności nie ma sensu różnicować między "Użytkownik ma wciąż sesję" a " użytkownik przerywa sesję "(twój punkt 7) jest to po prostu zaniedbana różnica i może również stać się zabezpieczeniem dziura.

Zapamiętywanie nie jest tak naprawdę łatwiejsze

Mówisz też, że zapamiętanie 5 cyfr jest łatwiejsze. To może być odpowiedni dla twojej karty kredytowej lub karty bankowej (w Niemczech mamy 4 cyfrowe piny) numer bezpieczeństwa, ale w przypadku stron internetowych zawsze masz problem, że te wiele stron internetowych ma hasła. Zapamiętywanie dziesiątek 5 cyfr jest tak trudne jak mnóstwo haseł.

 2
Author: Juergen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 22:27:40

Nadal nie rozumiem, dlaczego ludzie w ogóle ograniczają długość haseł. Czy nie byłoby mi łatwiej zapamiętać zdanie lub zdanie? Na przykład mogę chcieć, aby moje hasło brzmiało " this is my stackoverflow password". Miałbym poważne problemy z pamięcią, gdybym o tym zapomniał. Jego długość wynosi 34 znaki i używa tylko alfabetu 27 znaków, ale nadal byłoby zasadniczo niemożliwe odwrócenie hasha (4,6 x 1048 możliwe permutacje).

W połączeniu z Twoimi pomysłami dotyczącymi "flagi ataku" i odpowiednie techniki solenia/mieszania, byłoby to moim zdaniem idealne rozwiązanie.

 2
Author: John Rasch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 23:09:46

Prawdziwy problem? Osób.

Znam okręg szkolny z 4 hasłami: 1111, 2222, 3333 i 4444. Dlaczego? Użytkownicy zebrali się i zgodzili się to zrobić, aby zawsze mogli dostać się, gdy personel był w domu chory. Zbyt wiele bólu, by dostać się do zamkniętego komputera z pieniędzmi na lunch, gdy pracownik lunchu był chory.

O tak, widziałem komputer bez opieki wiele razy. I tak, możesz poprosić o zamianę salda na gotówkę w dowolnym momencie.

Użytkownicy są szaleni.

 2
Author: Nosredna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-11 04:04:42

Zgodnie z tą logiką, Jeśli 5 cyfr jest łatwiejsze do zapamiętania niż 8 znaków, ale zawiera wystarczającą entropię,to jedna cyfra i trzy małe litery powinny być łatwiejsze!

10**5 = 100,000
26**3 * 10 = 175,760

Teraz tylko cztery małe postacie, ale one przekazują więcej entropii!

Może użyję inicjałów, po których następuje cyfra 1 . . . Nie jestem tym, czego to dowodzi, poza tym, że istnieje duża wieloznaczna szara strefa między reductio ad absurdum a sarkazmem.
 2
Author: Marsh Ray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-29 03:55:34

Zaproponowałem schemat podobny do Twojego w przeszłości, ponieważ widziałem wiele przypadków, w których użytkownicy po prostu wypisują hasła na kartce samoprzylepnej obok monitora, powołując się na współudział jest zbyt trudne do zapamiętania. Twierdziłem, że hasła nie mają większego znaczenia, ponieważ haker jest bardziej skłonny znaleźć inne dziury w systemie, czy to za pośrednictwem aplikacji, czy po prostu przez trochę inżynierii społecznej.

Myślę, że niektórzy ludzie, zwłaszcza menedżerowie techniczni, którzy nie do końca uchwyć to, co mówisz, jak poczucie bezpieczeństwa. Duże skomplikowane hasło wydaje się silne. Jak gwarancja na pudełku, to sprawia, że czujesz się dobrze. Coś jak Zębowa Wróżka

"Tommy: skąd wiesz, że Zębowa Wróżka nie jest jakimś szalonym wąchaczem kleju. "Budując modele samolotów" - opowiada. Nie kupuję tego. Raz zakrada się do Twojego domu, to wszystko. Zanim się obejrzysz, stracisz pieniądze z szuflady, a twoja córka zapukała. w górę."

Ostatecznie, chociaż proste hasło, takie jak pin, może zostać złamane lub odgadnięte za pomocą popularnych kombinacji, i nie czuje się bezpiecznie. Pin w połączeniu z RSA SecurId jest tym, co wszyscy byliśmy w stanie uzgodnić.

 1
Author: Bob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 22:11:49

Piny vs hasła, hasła wygrywają, nie idealne, ale z silną Polityką, o wiele lepsze niż piny.

A kto powiedział, że wiele osób nie piszą swoje piny na kartkach samoprzylepnych, to łatwiej dla wielu zapamiętać kombinację słów niż 5-cyfrowy numer, osobiście pamiętam numery najłatwiejsze, a więc moje hasła są bardziej numeryczne niż Alfabetyczne.

 1
Author: BakerTheHacker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 22:37:02

Myślę, że łatwiej będzie zapamiętać " hasła biją piny każdego dnia!", który wytrzyma atak brutalną siłą przez jakieś 400 bilionów lat.

 1
Author: Instance Hunter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 22:46:11

Jako takie poleganie na blokadzie dla bezpieczeństwa jest złym doświadczeniem użytkownika i może prowadzić do zablokowania kilku kont przez atakującego, co prowadzi do niedogodności dla prawdziwych użytkowników. Zamiast tego używaj silniejszych haseł z solonym Hashem, które są trudniejsze do złamania przy użyciu brutalnej siły i nie są podatne na ataki Rainbow table, jeśli wybór jest między pinem a hasłem. Jeśli wybór należy do hasła, Hasła i kodu PIN. Polecam przejść z hasłem, a następnie hasło, a następnie PIN w malejąca kolejność preferencji. Hasło (>10 znaków) jest zwykle bezpieczniejsze niż hasło (od 6 do 8 znaków), ale nie zapewnia dużego doświadczenia, ponieważ użytkownik musi za każdym razem wpisywać hasło (>10 znaków)!! Dokonaj wyboru na podstawie tego, jak wrażliwe są dane i jak dobre jest doświadczenie użytkownika, które chcesz zapewnić. Chwileczkę.. Poznaj nowy obszar uwierzytelniania bez hasła za pomocą urządzenia mobilnego jako uwierzytelniania.

 1
Author: Mukesh Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-16 10:29:24

Eksperymentuję również z pinami a hasłami. Zależy to od ogólnego bezpieczeństwa aplikacji, którą próbujesz zbudować, ale hasła zazwyczaj wygrywają za każdym razem, jeśli włączysz pewne sprawdzanie bezpieczeństwa hasła. Rozumiem, że dobre hasło, które ma co najmniej 14+ znaków, może być nawet lepsze niż" typowe " hasło. Pozwala to ludziom wpisać coś, co łatwo zapamiętają, ale coś, co może być trudniejsze do powtórzenia w ataku. Tylko czysta liczba z postaci sam sprawia, że trudno się złamać.

Jeśli połączyłeś hasło z powyższym podejściem do blokady, możesz mieć bardziej bezpieczny system.

 0
Author: OverlordvI,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-29 01:57:05

Kolejnym czynnikiem do rozważenia jest łatwość wejścia. PIN jest prosty do wprowadzenia szybko na klawiaturze numerycznej, jak przejść do wielkiej złożoności łatwość wprowadzania kropli. Łatwość zależy od urządzenia. Na standardowej klawiaturze z klawiaturą dotykową mogę łatwo wprowadzać Symbole i UC. Na smartfonie trudno mi wprowadzić małe litery Alfabetycznie niezawodnie i symbole są trudne i powolne, aby wprowadzić, ponieważ klawiatura jest mniejsza. Pin numeryczny jest szybki do wprowadzenia, a ja pamiętam i wpisuję długi sekwencja cyfr łatwo. Ludzki obserwator łatwiej chwyci hasło, jeśli wpis jest powolny i używa nietypowych ruchów, które oddają to, co jest wprowadzane.

W skrócie trzeba wziąć pod uwagę nie tylko złożoność hasła i sposób jego przechowywania, ale także łatwość utrzymywania go w tajemnicy i łatwość wprowadzania.

 0
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-01 11:57:25