Czy to hasło jest lepsze niż inne naiwne schematy generujące hasła, takie jak Texas89, ddddd, zxczxc, Judges12: 6, purple1 czy 65432? Tak, dużo lepiej. Czy poleciłbym to znajomemu? Prawdopodobnie nie.
Dobry schemat generowania haseł równoważy priorytety bilionów lub większej liczby unikalnych haseł (nie tylko tysięcy), a także jest łatwy do zapamiętania i wpisania. Ten schemat haseł, szczególnie opisany przez BBC, sprawia, że utworzenie niezabezpieczonego hasła jest zbyt łatwe do zapamiętania.
Jaki jest nasz model zagrożeń?
- Czy haker wykorzystuje hasło, które wyciekło z innego miejsca, aby sprawdzić, czy zostało ono użyte ponownie? Sugerowany schemat ułatwia generowanie wielu niezapomnianych, unikalnych haseł niż inne schematy (np. Dodawanie 0 do dowolnego słowa), więc możesz się tutaj zabezpieczyć, o ile pamiętasz setki haseł, które tworzysz.
- Czy znajomy, kolega lub inżynier społeczny próbuje odgadnąć Twoje hasło na podstawie swojej wiedzy o Tobie? W takim przypadku prawdopodobnie nigdy nie odgadną hasła, nawet jeśli odgadli, że jest to oparte na jednej z Twoich ulubionych piosenek.
- Czy haker próbuje złamać Twoje hasło offline (np. Po wycieku bazy danych)? To jest najbardziej niebezpieczne zagrożenie i to, które ma najbardziej złożone konsekwencje dla polityki haseł. Omówimy to bardziej szczegółowo.
- Istnieją również metody, takie jak phishing, przejmowanie resetowania hasła i kradzież bazy danych w postaci zwykłego tekstu. We wszystkich tych zagrożeniach nie ma znaczenia, jak skomplikowane jest Twoje hasło; i tak zniknęło.
Warto jednak zauważyć, że efektywne użycie menedżera haseł jest lepszym rozwiązaniem dla wszystkich powyższych zagrożeń, chociaż wprowadza niewielkie dodatkowe zagrożenie wyciekiem bazy danych menedżera haseł.
Jakie korzyści daje używanie tylko pierwszej litery?
W języku angielskim są tysiące słów i tylko dwadzieścia sześć liter. Nawet naturalne angielskie, nieprzypadkowe frazy dają więcej entropii niż zbiór ich pierwszych liter (więcej informacji poniżej). „ijamwnsasth” może oznaczać „Jestem tylko mężczyzną, który potrzebował kogoś i gdzieś do ukrycia”, „to po prostu najwspanialsza nowa koszula i spódnica, jakie miał” lub „wyobraź sobie, że każdy może pracować w pobliżu Seattle i pokazać im tutaj”, „w sposób, który zadowalał ją i wydawał się jej” lub setki innych fraz.
Oczywiście osoby do łamania haseł mają czasami bazy danych tekstów piosenek, z których mogą czerpać, więc ten sugerowany schemat haseł prawdopodobnie do omijania ataków opartych na takich bazach danych. Problem polega na tym, że znacznie zmniejszają złożoność procesu. Możesz wzmocnić hasło, usuwając litery (na przykład letein jest lepsze niż niezwykle powszechne hasło letmein), ale ten sugerowany schemat wydaje się usuwać zbyt dużo przypadkowości, aby hasło było silniejsze.
Jedynym realistycznym powodem, dla którego widzę, aby używać tego schematu zamiast pełnych słów, jest to, że używana usługa ma maksymalną długość hasła. Ponieważ złamanie zabezpieczeń wielu haseł odbywa się za pomocą metod innych niż łamanie offline, firmy czasami uważają wysoką maksymalną długość hasła za niepotrzebną. Wiele firm nadal ma 16 znaków lub mniej dla maksymalnej długości hasła, pomimo zaleceń OWASP w tej sprawie.
Entropia hasła
Ludzie nie potrafią stwierdzić, jak skomplikowane jest hasło, patrząc na nie, więc nie ufaj tylko własnej ocenie. Możemy mierzyć złożoność hasła w bitach entropii i jest na to kilka sposobów. Najbardziej naiwnym sposobem jest założenie, że osoba atakująca próbuje siłą wymusić hasło, używając wszystkich dozwolonych znaków z zestawu znaków, w którym to przypadku długość hasła i zestaw znaków są jedynymi kryteriami. Z drugiej strony, entropia z pełną wiedzą zakłada najgorszy scenariusz, w którym atakujący w pełni rozumie Twój schemat generowania haseł. W praktyce prawdziwa trudność twojego hasła zwykle leży gdzieś pomiędzy nimi, zwykle bliżej entropii pełnej wiedzy ze względu na wyrafinowanie współczesnych crackerów.
Jeśli chodzi o ślepą entropię, ten schemat wydaje się wystarczający, gdy długie hasło jest używany. Jednak artykuł BBC nie zawiera żadnych sugestii dotyczących długości hasła , co uważam za poważne niedopatrzenie. Ponieważ trudność w łamaniu haseł rośnie wykładniczo, zwłaszcza w przypadku brutalnego użycia dużego zestawu znaków, dodanie tylko dwóch losowych znaków do hasła może sprawić, że złamanie hasła będzie 1000 razy trudniejsze. Zarówno hasło sugerowane tutaj, jak i na stronie BBC mają co najmniej dziesięć znaków, co zapewnia dużą ilość entropii.
Czy pierwsza litera jest naprawdę lepsza niż całe słowo?
wiem z Claude Shannon i bardziej współczesnych wyników, że język angielski ma co najmniej 1,1 bitu entropii na znak niebędący spacją, prawdopodobnie nawet 1,75 bitu (patrz także tutaj). Inne badania pokazują, że można oszacować, że każde słowo dodaje 5,97 bitu entropii.
Dla porównania, entropia losowych liter alfabetu angielskiego wynosi 4,7 bitów, a entropia pierwszych liter wynosi około 4,1 bitów na literę. Oznacza to, że pierwsze litery w losowo wybranej 6-słowowej frazie są mniej więcej tak samo losowe, jak pierwsze cztery całe słowa w tej samej frazie lub że nawet jedna przypadkowa litera jest tak złożona, jak około czterech liter normalnej frazy. (Zwróć uwagę, że liczby te nie mają zastosowania, gdy poszczególne słowa są wybierane losowo, jak w schemacie xkcd.)
Ale czy słowa piosenek nie są bardziej przewidywalne? Niewiele bardziej przewidywalne niż inne wyrażenia angielskie, o ile teksty są wybierane losowo. Dokładna analiza rozkładu częstotliwości zbioru danych MusixMatch w stosunku do innych angielskich korpusów pokazuje, że różnice nie są ogromne, a niektóre z nich można prawdopodobnie przypisać różnicom w metodach liczenia. . Zobacz tabelę poniżej. Jednak wszystko to przy założeniu, że wybieramy nasze frazy całkowicie losowo z każdego źródła. Jeśli wybierzesz jedną z popularnych fraz, możesz zostać wykluczony.
Podsumowując, nawet jeśli atakujący wie, że wybierasz 10 dość losowych liter, a twój sąsiad wybiera 10 całych słowa z tekstu, hasło sąsiada jest bardziej złożone, zakładając, że teksty są wybierane losowo. Zmiana wielkości liter lub używanie zwykłego zastępowania znaków tylko maskuje ten problem.
Po co zastępować cyfry znakami i zmieniać wielkość liter?
Możesz powiedzieć sobie: „26-znakowy angielski to zdecydowanie za mały zestaw znaków. Zastąpię tylko znak @ a, a atakujący będzie zmuszony użyć dziesiątek symboli w zestawie znaków”. W rzeczywistości hakerzy wiedzą, że dokonasz takich podmian, więc p @ ssw0rd jest nadal okropnym hasłem. Więc tak, losowa zmiana wielkości liter i podstawianie znaków sprawi, że Twoje hasło będzie bardziej losowe, ale nie spodziewaj się, że twoje hasło będzie więcej niż 2-4 razy trudniejsze do odgadnięcia na znak przy użyciu obu tych metod.
Biorąc to pod uwagę, większość usług wymusza teraz używanie alfanumerycznego hasła, co zapewnia spełnienie tych ograniczeń. Jednak obawiam się używania symboli jako podstawowej metody wymuszania złożoności hasła, ponieważ znacznie utrudniają one zapamiętanie hasła, hakerzy wiedzą, że zamierzasz dokonać tych podstawień, a kilka badań wykazało, że zwiększenie długości, a nie złożoność znaków jest często lepszym sposobem generowania bezpiecznych haseł. (zobacz to badanie lub to)
Rzeczywiste łamanie hasła
Twoje hasło w schemacie BBC prawdopodobnie zostałoby złamane przy użyciu zwykłego brutalna siła. Hasło jest zwykle łamane, uruchamiając każdą kombinację zestawu reguł kompozycji dla każdego zaszyfrowanego hasła w skradzionej bazie danych. Reguły tworzenia haseł obejmują słowniki popularnych słów, liczb i podstawień znaków. Możesz dowiedzieć się więcej tutaj.
Na przykład, jeśli użyłeś kilku całych słów, a twoje hasło było wystarczająco krótkie, osoba atakująca może je złamać za pomocą ataku słownikowego. W książce Financial Cryptography and Data Security, badacze przeprowadzili eksperyment, w którym 37% ich złamanych haseł pasowało do tekstu, ale tylko 5% tych haseł lirycznych nie zostało znalezionych przy użyciu ataków słownikowych lub innych baz danych haseł.
Ponieważ jednak twoje postacie są dość przypadkowe, nie sądzę, aby jakakolwiek z powszechnie używanych reguł była tutaj pomocna. Najlepszym podejściem byłaby brutalna siła nad zestawem znaków alfanumerycznych i typowych symboli zastępczych, takich jak @. Nie jestem ekspertem w szacowaniu czasu złamania, ale na podstawie wyników takich jak te każde takie hasło składające się z 6 lub mniej znaków byłoby bardzo niebezpieczne, ale każde hasło w tym schemacie składające się z 11 lub więcej znaków powinno być w porządku dla przeciętnego użytkownika. Takie hasło byłoby tak trudne do brutalnego wymuszenia, że atakujący musiałby uruchamiać niestandardowy sprzęt, mieć dużo czasu / pieniędzy i / lub łamać niezabezpieczony hash, taki jak md5.
Podsumowując: tak, jeśli wybierzesz teksty piosenek tak losowo, jak to możliwe i upewnisz się, że są wystarczająco długie, ten schemat sugerowany przez BBC wygeneruje bezpieczny (ale trudny do zapamiętania ) hasło. To lepsze niż większość naiwnych schematów, których przeciętny człowiek używa do tworzenia haseł. Opiera się jednak na pewnych niepewnych zasadach, takich jak założenie, że pierwsza litera jest lepsza niż całe słowo, a artykuł BBC pomija niektóre z najważniejszych punktów, takich jak znaczenie długości. Istnieją lepsze sposoby tworzenia haseł i zarządzania nimi. Nie poleciłbym tego znajomemu.