Czy “ często cytowany schemat XKCD […] nie jest już dobrą radą ”?

Potknąłem się i natknąłem się na ten esej Brucea Schneiera, twierdząc, że schemat haseł XKCD był faktycznie martwy.

Nowoczesne narzędzia do łamania haseł łączą różne słowa ze swoich słowników : […]

Dlatego często cytowany schemat XKCD do generowania haseł – ciągi pojedyncze słowa, takie jak ” correcthorsebatterystaple ” – nie jest już dobrą radą. Osoby do łamania haseł zajmują się tą sztuczką.

Atakujący wprowadzi wszelkie dane osobowe, do których ma dostęp, a które dotyczą twórcy haseł, do narzędzi do łamania haseł. Dobry program do łamania haseł przetestuje nazwiska i adresy z książki adresowej, znaczące daty i wszelkie inne posiadane dane osobowe. […] jeśli Twój program kiedykolwiek zapisał go w pamięci, ten proces go złapie.

Wydaje się, że jego twierdzenie jest takie, ponieważ jest znane że ludzie mogą konstruować swoje hasła w taki sposób, że będzie można je zaatakować, ale wydaje się, że siła leży wyłącznie w sile wykładników. Zakładam, że nawiązuje on do ludzi, którzy nie wybierają słów naprawdę przypadkowo, co może nie jest „nie całkiem nieszczere, ponieważ kilka razy przerzucałem ponownie, aby uzyskać coś, co nie jest wszystkimi przysłówkami i przymiotnikami. Jednak zakładam, że obniżenie entropii o współczynnik 2–10 nie jest naprawdę znaczące (jeśli lista słów jest podwojona do 4000, nie aż tak ciężko, strata jest większa niż odzyskana).

Drugi żart na temat „, jeśli twój program kiedykolwiek przechował go w pamięci ” jest trochę niepokojące … czy nie wszystkie hasła są przechowywane w pamięci w takim czy innym czasie? To wydaje się trochę za szerokie; o czym on właściwie mówi do?

Komentarze

  • Dyskusja z 123 komentarzami na ten temat jest dostępna pod adresem reddit.com/r/technology/comments/1yxgqo/ …
  • Po najechaniu kursorem myszy tytuł obrazu ujawnia – ” każdemu, kto rozumie informacje teoria i bezpieczeństwo i prowadzi irytującą kłótnię z kimś, kto tego nie robi (prawdopodobnie z mieszanymi przypadkami), szczerze przepraszam. ” To by ci pomogło:)
  • Ten wykład TED zawiera interesujące badania różnych schematów tworzenia haseł, w tym xkcd: ted.com/talks/…
  • Tak dla przypomnienia: jeśli Twoje hasło faktycznie było correcthorsebatterystaple, jest teraz dużo mniej bezpieczne!
  • Jeśli używasz hasła takiego jak correcthorsebatterystaple, pamiętaj, aby nie ' logować się do systemu, który po cichu je obcina! Hasło takie jak correcth jest prawdopodobnie łatwiejsze do odgadnięcia niż N#y;f8eR.

Odpowiedź

Święta wojna

Myślę, że przekonasz się, że właściwy sposób generowania haseł może rozpocząć świętą wojnę, w której każda grupa myśli, że druga bardzo proste błędy matematyczne lub brak sensu. Jeśli zgromadzisz 10 specjalistów ds. Bezpieczeństwa komputerowego w pokoju i zapytasz ich, jak wymyślić dobre hasła, otrzymasz 11 różnych odpowiedzi.

Nieporozumienie

Jednym z wielu powodów jest brak spójnej porady na temat haseł, wszystko sprowadza się do problemu modelowania zagrożeń . Przed czym dokładnie próbujesz się bronić?

Na przykład: czy próbujesz chronić się przed napastnikiem, który atakuje Ciebie i zna Twój system generowania haseł? A może jesteś tylko jednym z milionów użytkowników w jakiejś wyciekłej bazie danych? Czy bronisz się przed łamaniem haseł w oparciu o GPU, czy tylko słabym serwerem WWW? Czy jesteś na hoście zainfekowanym złośliwym oprogramowaniem [1]?

Myślę, że powinieneś założyć, że osoba atakująca zna dokładną metodę generowania haseł przez Ciebie i właśnie Cię atakuje. [2] Komiks xkcd zakłada w obu przykładach, że wszystkie szczegóły pokolenia są znane.

Matematyka

Matematyka w komiksie xkcd jest poprawna i nie zmieni się .

W przypadku haseł, które muszę wpisać i zapamiętać, używam skryptu Pythona , który generuje hasła w stylu xkcd, które są naprawdę losowe. Mam słownik 2 ^ 11 (2048) popularnych, łatwych do przeliterowania, angielskich słów. Mógłbym dać atakującemu pełny kod źródłowy i kopię mojej listy słów, nadal będzie 2 ^ 44 możliwych haseł.

Jak mówi komiks:

1000 domysłów / s Prawdopodobny atak na słabą zdalną usługę internetową. Tak, złamanie skradzionego skrótu jest szybsze , ale nie o to powinien martwić się przeciętny użytkownik.

To zapewnia dobrą równowagę między łatwym do zapamiętania a trudnym do złamania.

A co by było, gdybyśmy spróbowali większej mocy ?

Jasne 2 ^ 44 jest w porządku, ale łamanie GPU jest szybkie i będzie tylko szybsze. Hashcat może złamać słaby hash [3] tej wielkości w ciągu kilku dni, a nie lat. Poza tym mam setki haseł do zapamiętania. Nawet w stylu xkcd staje się to trudne po kilku.

Tutaj pojawiają się menedżerowie haseł. Lubię KeePass , ale jest wiele innych, które są w zasadzie takie same. Następnie możesz wygenerować tylko jedno dłuższe hasło xkcd, które możesz zapamiętać (powiedz 10 słów). Następnie tworzysz unikalne, 128-bitowe, prawdziwie losowe hasło dla każdego konta (szesnastkowe lub bazowe 64 są dobre). 128-bitowe wystarczy do Jeśli chcesz być paranoikiem, nie ma dodatkowej pracy, aby wygenerować 256-bitowe hasła szesnastkowe.


[1] W tym miejscu pamięć Jeśli jesteś na zhakowanym hoście, który straciłeś. Nie ma znaczenia, czy go wpiszesz, czy użyjesz programu takiego jak KeePass do skopiowania i wklejenia, jeśli atakujący może logować klucze / odczytywać pamięć.

[2] Zamiast słabszego (ale bardziej prawdopodobne) założenie, że osoba atakująca właśnie torrentowała słownik o nazwie ” Top Passw0rdz 4realz 111! „.

[3] Jasne, że wszyscy powinniśmy używać PBKDF2 itd., Ale wiele witryn jest nadal na SHA1. (I są dobre)

Komentarze

  • @ Dick99999 nowoczesne procesory graficzne mogą mieć 6 GB pamięci na jednej karcie (chociaż zajęłoby to 2 gniazda) i mogą z łatwością przechowywać słownik zawierający kilka tysięcy słów.
  • @NateKerkhofs To jest przerażające i niesamowite w tym samym czasie. Moja pierwsza (programowalna) maszyna miała 1 MHz i 64 kb pamięci RAM i mówisz o 6 GB pamięci wideo …
  • ” 128-bitowe prawdziwie losowe hasło … ” Naprawdę losowe? Czy nie ' czy to nadal pseudolosowe?
  • To powinno być zaakceptowana odpowiedź, jeśli nie z innego powodu niż część Świętej Wojny.
  • @Doorknob Gdy wybierzesz sensowne kombinacje, większość entropii znika. Wygrałem ', nie próbując oszacować, ile zdań możesz wybrać, ale jest to prawdopodobnie bliższe jednemu na miliard niż jednym na 2 ^ 44.

Odpowiedź

Schneier pisze to:

Oto dlaczego Często cytowany schemat XKCD do generowania haseł – łączenie pojedynczych słów, takich jak „correcthorsebatterystaple” – nie jest już dobrą radą. Łamacze haseł zajmują się tą sztuczką.

, ale klucz do zrozumienia, czego naprawdę szuka, znajduje się nieco dalej w jego eseju:

Nadal istnieje jeden schemat, który działa. W 2008 r. opisałem „schemat Schneiera „

, więc to wszystko. Ole „Bruce chce zapewnić, że jego schemat jest Jedynym, najlepszym, zwycięzcą, ostatecznym schematem. Dlatego musi mówić lekceważąco o” konkurentach „, niezależnie od tego, czy takie twierdzenia są naukowo uzasadnione lub nie.

W tym przypadku zawsze zakładano , że metoda generowania hasła jest znana atakującemu. To jest cały punkt obliczeń entropii ; zobacz analizę . To, że napastnicy „wpadają na tę sztuczkę”, nie zmienia nic (gdy atakujący zna metodę generowania hasła, obliczenie entropii opisuje dokładnie siłę hasła; gdy atakujący jest niekompetentny i nie zna metody generowania haseł, siła hasła jest tylko wyższa, o kwotę, która jest prawie niemożliwa do oszacowania).

Kwestia „haseł w pamięci” jest po prostu bardziej niespójnym bełkotem. Hasła koniecznie trafiają w pewnym momencie do pamięci RAM, niezależnie od tego, czy je wpisujesz, czy kopiujesz i wklejasz z sejfu na hasła, czy coś podobnego.

Domyślam się, że Bruce był pijany.

: Schneier został specjalnie poproszony o skomentowanie jego potępienia za hasło w AMA Reddit , które odbyło się 2 sierpnia 2016 r. W dalszym ciągu opowiadał się za swoim systemem tworzenia haseł jako lepsza alternatywa dla haseł losowych. Schneier powiedział, że jego schemat „daje więcej entropii na zapamiętany znak niż inne metody”, co jest prawdziwe w porównaniu ze znakami tworzącymi słowa. Ale jest to również nieistotne, gdy system opiera się na zapamiętywaniu słów, a nie znaków, a tobie wolno połączyć wystarczającą liczbę słów, aby wygenerować odpowiednią „entropię” dla całego hasła.

Komentarze

  • Tak, pomyślałem, że jego komentarze były dziwnym odstępstwem od typowych dobrych rad.Jego zalecany schemat prawdopodobnie nie jest ' zły, ale nie ' nie został poddany wielu faktycznym testom. Podejście oparte na haśle jest dość łatwe do przetestowania w porównaniu, a ' myślisz, że spodoba się kryptografowi w nim. Może właśnie przejrzał wiadomości o łamaniu haseł w języku naturalnym i nie ' nie dostrzegł różnicy między tymi hasłami a przypadkowymi hasłami.
  • Twoja argumentacja, że musi oczernianie konkurencji nie udaje się, ponieważ zaraz po opisaniu swojego schematu mówi ” Jeszcze lepiej jest użyć losowych, niezapomnianych alfanumerycznych haseł (z symbolami, jeśli strona na to pozwala), a menedżerem haseł, takim jak Password Safe, do ich tworzenia i przechowywania „.
  • @wfaulk Password Safe to Bruce Schneier ' s, więc jego spór o konkurencję wciąż trwa. Twoje stwierdzenie porażki zawodzi 😉
  • @AviD: Całkowicie tego nie wiedziałem. 😳
  • To, czego ' brakuje, i najwyraźniej również Schneiera, to brak ” sztuczki ” to ” złapać „. Bezpieczeństwo Diceware zakłada już, że atakujący wie o schemacie , w rzeczywistości zakłada, że sam słownik jest znany. ' nie ma znaczenia, czy atakujący ma twój dokładny słownik i liczbę słów: jest po prostu zbyt wiele kombinacji, przez które można przejść, aby wykonać jakikolwiek udany atak, zanim słońce wybuchnie.

Odpowiedź

[Ujawnienie: pracuję dla AgileBits, twórców 1Password]

Jednym z powodów, dla których opowiadałem się za schematem podobnym do XKCD (zanim został nazwany) w W kierunku lepszych haseł głównych w 2011 r. Jest właśnie to, że jego siła tak nie polegaj na tym, że napastnik wie, jakiego schematu użyłeś. Jeśli mogę zacytować siebie

Wspaniałą rzeczą w Diceware jest to, że wiemy dokładnie, jak bezpieczne jest nawet zakładając, że atakujący zna używany system. Bezpieczeństwo wynika z prawdziwej przypadkowości rzutu kośćmi. Użycie czterech lub pięciu słów powinno wystarczyć przeciwko prawdopodobnym atakom w ciągu następnych kilku lat biorąc pod uwagę obserwowaną szybkość łamania haseł [w stosunku do hasła głównego 1Password]

Komiks XKCD nie przekazuje efektywnie, że słowa muszą być (jednolicie) losowe . Jeśli poprosisz ludzi o losowe wybieranie słów, otrzymasz duże uprzedzenia dotyczące konkretnych rzeczowników. Takie uprzedzenia mogą i będą wykorzystywane.

Ile siły chcesz

W idealnym świecie chcielibyśmy, aby nasze hasło było tak silne, jak klucze, którymi chronimy to. Powiedz 128 bitów. Ale pomimo tych technik, ludzie nie są w stanie tego osiągnąć. Spójrzmy więc realistycznie na ataki i co możemy zrobić naszym małym mózgom.

Z oryginalną listą słów Diceware zawierającą 7776 wpisów, otrzymujesz około 12,9 bitów na słowo, którego używasz. Więc jeśli chcesz mieć co najmniej 64 bity jako hasło, wystarczy pięć słów.

Zgadywanie haseł jest wolniejsze niż odgadywanie kluczy.

W tej sekcji dochodzę do z koperty szacuje, że przy stałej kwocie dolarów testowanie hasła jest 2 ^ 13 razy wolniejsze niż testowanie klucza AES.

Należy pamiętać, że testowanie hasła jest dużo wolniejsze niż testowanie klucz. Jeśli stosowane są odpowiednie schematy haszowania haseł, większość atakujących można ograniczyć do mniej niż 100 000 prób na sekundę. Więc chociaż możemy nigdy nie chcieć używać 50-bitowych kluczy, używanie 50-bitowych haseł może nadal mieć sens.

Jeśli nie zamierzamy ograniczać się do rzucania kośćmi, jak w oryginalny schemat Diceware z 1995 roku, wtedy możemy użyć dłuższej listy słów. Generator silnych haseł w 1Password dla Windows używa listy 17679 angielskich słów o długości od 4 do 8 liter włącznie (pozbawionych tabu i słów zawierających apostrof lub łączniki). Daje to około 14 bitów na słowo. Więc cztery z nich dają 56 bitów, pięć daje 70.

Ponownie, musisz zwracać uwagę na szybkość pękania. Deep Crack w 1997 r. był w stanie wykonać 92 miliardy testów DES na sekundę. Zakładając, że wyspecjalizowany komputer klasy high-end może wykonać milion zgadnięć na sekundę w porównaniu z dość dobrze zaszyfrowanym hasłem, może zrobić milion próbnych prób na sekundę, to dzisiejsze hasła są o około 16 bitów trudniejsze do złamania niż klucze DES w 1997 roku.

Spójrzmy więc na szacunki wymiany stosów dla dwurdzeniowego procesora 3,8 GHz: 670 milionów kluczy na sekundę.Gdybyśmy przyjąć 5000 USD w sprzęt, z łatwością możemy przekroczyć 10 miliardów kluczy na sekundę. Tak więc przy podobnym koszcie sprzętu łamanie kluczy jest nadal ponad 2 ^ 13 razy szybsze niż łamanie haseł.

Zmienione cele dotyczące siły hasła

Pracując nad moim szacunkiem, że jest to 2 ^ 13 razy droższe, aby przetestować dobrze zaszyfrowane hasło niż test klucza AES, powinniśmy uznać, że dość dobrze zaszyfrowane hasło jest o 13 bitów silniejsze niż jego rzeczywista entropia w odniesieniu do łamania. Jeśli chcemy osiągnąć 90 bitów „efektywnej siły”, to 77 bitów siły hasła powinno to wystarczyć. Osiąga się to za pomocą sześciowyrazowego hasła Diceware (77,5-bitowego) z oryginalnej listy i 84,6-bitowego z sześcioma słowami dobranymi z listy 17679 słów.

Nie oczekuję, że większość ludzi będzie używać haseł, które Spodziewam się, że ludzie będą używać słów składających się z 4 lub 5 słów, ale jeśli naprawdę martwisz się, że NSA będzie szukać twoich haseł, sześć słów powinno wystarczyć, zakładając, że używasz przyzwoitego schematu mieszania haseł.

Tylko bardzo przybliżone szacunki

Nie spędziłem dużo czasu na badaniu kosztów i testów porównawczych. W moich szacunkach jest wiele rzeczy, z którymi można się spierać. Starałem się być konserwatywny (pesymistycznie nastawiony do schematu, za którym się opowiadam). „Nieokreślony byłem również w kwestii„ dobrze zakodowanych haseł ”. Ponownie, jestem bardzo konserwatywny w odniesieniu do haszowania haseł w 1Password. (W przypadku naszego nowego formatu danych napastników ograniczono do mniej niż 20 000 prób na sekundę, a w przypadku naszego starszego formatu danych osiągnęli 300 000 prób na sekundę dla wielu Maszyny GPU. W moich szacunkach „wybrałem 1 milion prób na sekundę dla„ dość dobrze zahaszowanego hasła ”).

Jeszcze kilka uwag historycznych

Ogółem Pomysł na hasła „podobne do XKCD” sięga przynajmniej czasów haseł jednorazowych S / Key z wczesnych lat 80. XX wieku. Użyto w nich listy 2048 haseł do czteroliterowych słów. Sześciowyrazowe hasło S / Key dało 66 bitów. Nie wiem, czy pomysł użycia losowo wybranych słów z listy jako hasła jest starszy niż S / Key.

W 1995 roku , Arnold Reinhold zaproponował Diceware . Nie wiem, czy był wtedy świadomy S / Key. Diceware zostało zaproponowane w kontekście tworzenia fraz hasła dla PGP. Było to również zanim większość komputerów miała odpowiednie kryptograficznie generatory liczb losowych. Więc w rzeczywistości wymaga to rzucania kośćmi. (Chociaż ufam CSPRNG na maszynach, których używam, nadal lubię „zwijać nowe hasło”).

W czerwcu 2011 r. Wznowiłem zainteresowanie Diceware w Toward Better Master Passwords z pewnymi dodatkowymi modyfikacjami. Zaowocowało to 15 minutami mojej sławy. Po wydaniu komiksu XKCD stworzyłem wydanie dla geeków , który pomógł przez część matematyki.

W lipcu 2011 r. Randall Monroe podchwycił schematy podobne do Diceware i opublikował swoje znane komiks . Ponieważ nie jestem wynalazcą tego pomysłu, w ogóle nie mam nic przeciwko temu, by komiks był przesłonięty. Rzeczywiście, jak powiedziałem w moim artykule uzupełniającym

Co prawie mnie zabrało 2000 słów do wypowiedzenia w terminach nietechnicznych, Randall Monroe był w stanie podsumować w komiksie. To tylko pokazuje potęgę matematyki …

Jest jednak jedna rzecz, która niepokoi mnie w sposobie interpretacji komiksu. Dla mnie i dla osób, które już zrozumiały schemat, jest jasne, że słowa muszą być wybierane w sposób niezawodnie jednolity i losowy. Wybieranie z głowy słów „na chybił trafił” to nie niezawodnie jednolity proces .

Komentarze

  • Wspaniale, że wspominasz o Diceware z perspektywy historycznej, a jednocześnie doceniasz wspaniałą pracę marketingową, jaką XKCD wykonał dla haseł. Jeśli chodzi o twój zmodyfikowany schemat, czy jest gdzieś wyjaśnione, dlaczego 3 lub 2-literowe słowa nie są zawarte na tych listach słów? zobacz blog.agilebits.com/2013/04/16/… . Czy to dlatego, że słowa takie jak ' wyłączone ' i ' wiersz ' może również zostać zaatakowany przez 1 słowo w trybie offline? Zobacz moje komentarze do postu Raestloz. Oryginalna lista Diceware zawiera wiele słów 1, 2 i 3 literowych.
  • Świetne pytanie! Mój (być może błędny) wtedy pomysł polegał na tym, że chciałem, aby hasła miały minimalną długość. Chciałem się upewnić, że jeśli ktoś użyje hasła składającego się z trzech słów, będzie ono przekraczać minimum 12 znaków. Zauważam, że S / Key dopuszcza również słowa złożone z 1, 2 i 3 liter.
  • Szybko sprawdziłem listę słów, których używa mój generator fraz hasła SimThrow i używany przez tester.Oryginalna lista Diceware zawiera co najmniej 1400 takich kolizji, takich jak ' ' ' jak ' i ' w każdym razie '. Może to spowodować degradację zdania składającego się z 4 do 3 słów, jeśli nie zostanie użyty separator. Jest to ' liczba kolizyjna, ponieważ lista zawiera wszystkie kombinacje liter i 2 liter. Wygląda więc na to, że dokonałeś właściwego wyboru, aby nie uwzględniać słów dwuliterowych. Diceware zaleca minimalną długość zdania 17. Mój generator szacuje czasy odtwarzania na podstawie słów i znaków, aby radzić sobie tylko z witrynami, które dopuszczają krótkie hasła (20).
  • Sprawdziłem również następujące listy słów. S / Key : > 93 kolizje, rozszerzone-dicelists USA : > 190 i moja lista holenderska: > 750. Sposobem na rozwiązanie tego problemu jest dodanie znaku separatora między słowami frazy.
  • Uwaga, rzucanie kostką nie jest całkowicie przypadkowe. forbes.com/sites/davidewalt/2012/09/06/… I insidescience.org/blog/2012/09/12/…

Odpowiedź

Schemat haseł XKCD jest tak dobry, jak zawsze. Bezpieczeństwo nie wynika z tego, że jest nieznany, ale z tego, że jest dobrym sposobem generowania łatwych do zapamiętania haseł z dużej przestrzeni wyszukiwania. Jeśli jednak wybierzesz słowa, których chcesz użyć, zamiast generować je losowo, ta zaleta zostanie utracona – ludzie nie radzą sobie z przypadkowością.

Kwestia pamięci jest słabo opisana, ale jest problemem: jeśli złośliwe oprogramowanie kradnące hasła kiedykolwiek dostanie się na Twój komputer, wyczyść wszystko, na przykład tekst z pamięci RAM i dysku twardego, aby użyć go w ukierunkowanym ataku na Twoje konta.

Komentarze

  • +1 Nie ' Nie sądzę, że technika XKCD jest martwa – to ' to nie ' sztuczka ' że crackerzy ' są na '. Możesz znać tę technikę od podszewki, ale to nie działa ' nie zwiększaj możliwości złamania go, jeśli ' jest wystarczająco losowy.
  • @PiTheNumber, jeśli ' używasz za mało słów lub małego słownika, więc nie ' w ogóle nie stosujesz techniki xkcd; ale nie, nawet w komiksie xkcd ' wyraźnie widać, że NOT tracisz przewagę, jeśli powiesz wszystkim ” hej, ja ' m używając poprawnego hasła w stylu klapy konia ” – ilość weryfikacji / entropii bitów jest większa niż większość zwykłych haseł, nawet jeśli metoda jest znana.
  • Pod warunkiem, że nie ', nie używaj również XKCD ' s generator liczb losowych (wygrałem ' t link, wszyscy to wiedzą).
  • @PiTheNumber koncepcja ' 11-literowe prawdziwie losowe hasło ' jest nieistotne, ponieważ nie jest rozsądną alternatywą dla haseł. Hasła są alternatywą dla haseł dających się zapamiętać i są one dokładnie tak słabe, jak opisuje xkcd. Oczywiście, jeśli używasz hasła przechowywanego w menedżerze haseł, pasują do nich całkowicie losowe hasła, ale w takim przypadku ' zasadniczo nie jest ' twoje hasło ' jak w czymś, czego Ty użyjesz lub zobaczysz, ale raczej ' wygenerowany automatycznie losowy klucz token ' podobny do kluczy ssh.
  • @PiTheNumber Słowa nie są wybierane przez człowieka, są wybierane losowo. Słownik, z którego wybierane są słowa, sam jest wybierany przez człowieka, ale to inna sprawa. Nie ma „najprawdopodobniej” – matematyka w komiksie xkcd jest poprawna.

Odpowiedź

Jak inni Powiedział, że atak opisany przez Brucea Schneiera jest skuteczny, gdy użytkownik sam wybiera wiele słów, a nie używa żadnego narzędzia. Schneier zazwyczaj pisze do ogółu odbiorców, co jest mało prawdopodobne, aby pojąć różnicę między wybranymi przez siebie „przypadkowymi” słowami a losowymi słowami wybranymi przez program.

Dodam, że nawet jeśli używasz skryptu lub inne narzędzie do losowego wybierania słów ze słownika, musisz użyć pierwszej sekwencji, którą daje . Jeśli zdecydujesz, ” Nie podoba mi się to i uruchamiam je ponownie, aż ci się spodoba, nie jest to już przypadkowe hasło , zostało wybrane przez człowieka.

Ponadto, nawet jeśli używasz skryptu i nawet jeśli nie zniszczysz losowości, wybierając ulubioną z wielu sekwencji, nadal istnieje możliwość, że osoba atakująca może wykorzystać Twoje PRNG (pseudolosowe generator liczb). Jeśli atakujący może dowiedzieć się, kiedy utworzyłeś hasło i jakiego PRNG użyłeś, a może inne informacje o twoim PRNG, takie jak ruch sieciowy, który został wygenerowany przy użyciu twojego PRNG w tym samym czasie, może to zmniejszyć efektywną entropię Twoje losowe hasło.

Może trochę ezoteryczne, ale jeśli twój PRNG jest możliwy do wykorzystania, wartość 2 ^ 44 nie zostanie w pełni zrealizowana. (A jeśli założysz „nikt nie będzie próbował wykorzystać mojego PRNG”, dlaczego zależy ci na używaniu naprawdę bezpiecznego hasła?)

Komentarze

  • +1 Interesujący punkt widzenia. Wykorzystanie PRNG jest oczywiste w kontekście szyfrowania klucze – to ' jest interesujące, że wydaje się, że jest to praktycznie refleksja. Myślę, że typowe hasła są tak złe że PRNG czują się bezpiecznie w porównaniu. Przypuszczalnie, jeśli osoba atakująca może ukraść listę zaszyfrowanych haseł, znalezienie pwdChangedTime lub odpowiednika byłoby trywialne? Kolejny powód, aby zakończyć praktykę przedawniania haseł?
  • Szybko cofnąć kopertę. Jeśli zaktualizujesz hasło w ciągu minuty od jego wygenerowania, a jedynym źródłem entropii w twoim PRNG jest czas systemowy, możesz chcieć zredukować rzeczy do 2 ^ 35 dla rozdzielczości nanosekundowej. Brzmi rozsądnie?
  • Przypuśćmy, że odrzucam frazę, ponieważ ' nie lubię żadnego słowa i robię to 1000 razy. Następnie zredukowałem słownik o 1000 słów. Czy wybór z tego zredukowanego słownika jest nadal przypadkowy? Jeśli nadal tak jest, to 4-wyrazowe zdanie z tak zredukowanego słownika Diceware o 7776 słów nadal daje (7776-1000) ^ 4 = 2,1E15 / 50,9 możliwości / bitów entropii, w dół z 3,7E15 / 51,7 możliwości / bitów entropii dla pełnej słownik. Nie jestem w stanie ocenić wpływu generatora losowego. Używam tego z www.random.org
  • @ Dick99999 Nie ' nie sądzę, żeby ' naprawdę o liczbie oferowanych opcji, które wykluczasz wybierając jedno hasło. To ' dotyczy wzorca fraz, które byś wykluczył, gdyby został przedstawiony. Osoba atakująca może zgadnąć, że użytkownik woli krótsze słowa, słowa łatwiejsze do wpisania na klawiaturze QWERTY oraz słowa bez wielkich liter i znaków interpunkcyjnych; ta strategia może znacznie zmniejszyć przestrzeń do zbadania haseł. Zasadniczo to ' to ten sam problem, co zwykłe odgadywanie nazw ulubionych drużyn sportowych, urodzin i dzieci '.
  • @wberry Nie ' nie sądzę, żeby matematyka na to działała. Załóżmy, że odrzucasz 1000 haseł, zanim znajdziesz takie, które Ci się podoba. Zatem ' to rozsądne oszacowanie, że podoba Ci się tylko 1/1000 możliwej przestrzeni na hasło. Załóżmy teraz, że atakujący jest w stanie całkowicie odgadnąć, która 1/1000 przestrzeni jest twoją ulubioną – to zmniejsza liczbę możliwości z 2 ^ 44 do 2 ^ 34, co jest istotne, ale nie na tyle, aby dodatkowe słowo mogło ' nie wyrównaj straty. Dodatkowo, jeśli ograniczysz liczbę odrzuceń, nawet to nie jest konieczne.

Odpowiedź

To zależy. Jedną rzeczą, którą musisz zrozumieć, jest to, że nie jest to zabezpieczanie przez zaciemnienie: wartości entropii użyte w komiksie zakładają, że atakujący już wie, że „używasz tej metody . Jeśli atakujący nie„ wie, jak ”generujesz hasło, wówczas entropia rośnie ogromnie.

Sztuczka w metodzie XKCD polega na tym, że musisz faktycznie użyć generatora liczb losowych i dobrej listy słów: nigdy nie wybieraj słów siebie, nawet „losowo” (w cudzysłowie, ponieważ ludzie są naprawdę słabi w losowym wybieraniu rzeczy, dlatego nie powinieneś tego robić). Diceware ma narzędzia, które Ci w tym pomogą, a nawet usuwa losowy element poza zasięg komputera za pomocą zwykłych kostek.

Przeciwko szerokiemu atakowi – rodzajowi sytuacji, w której osoba atakująca uzyskała listę haseł z witryny internetowej i nie wie nic o tym, czyje hasła znajdują się na tej liście – jest to tak silne, jak zawsze. Tak jak mówisz, jego siła pochodzi z potęgi wykładników (i dobrej listy słów).

Atak Schneiera może działać, ale tylko w zupełnie innym kontekście. Jego atak zakłada, że jesteś konkretnym celem napastnika, który już dużo o tobie wie .Na początku może się to nie wydawać szczególnie niepokojące, ponieważ stereotypowo zdeterminowany napastnik jest agentem wywiadu za ekranem, a większość z nas nie musi się tym zbytnio martwić: jest ich tylko tak wielu, a każdy może tylko stać na troskę o tak wielu ludzi. Ale w rzeczywistości jest to większy problem niż mogłoby się wydawać, dzięki pojawieniu się wyrafinowanego złośliwego oprogramowania. Instalacja złośliwego oprogramowania może sobie pozwolić na troskę o Ciebie, nawet jeśli osoba atakująca tego nie robi, więc nadal stajesz przed niezwykle zdeterminowanym napastnikiem. W rzeczywistości nawet bardziej zdeterminowany niż człowiek może być, choć znacznie mniej kreatywny.

Złośliwe oprogramowanie, które gromadzi informacje o Tobie, nada słowom, które wydają Ci się ważne, bardzo wysoki priorytet na liście słów. Dzieje się tak, ponieważ większość ludzi samodzielnie wybiera „przypadkowe” słowa, ale robiąc to, w rzeczywistości dość mocno skłaniają się ku słowom, które są dla nich najważniejsze: nadal może „wydawać się” przypadkowe, ale niektóre słowa są znacznie bardziej prawdopodobne pojawią się niż inne. Z tego powodu nadanie tym słowom wysokiego priorytetu często skutkuje stosunkowo szybkimi trafieniami, a to jest „sztuczka”, o której mówi Schneier.

Jednak nadal możesz udaremnić atak Schneiera, używając prawdziwej losowości . Połów jest taki, że wymaga to dyscypliny: wszystkie decyzje dotyczące tego, jakich słów użyć w haśle (oprócz wyboru dobrego słowa list) należy całkowicie wyrwać Ci z rąk. W tym przypadku mogą Ci pomóc narzędzia takie jak Diceware.

Komentarze

  • @Gilles: Powód, dla którego entropia spada, jeśli atakujący wie, że metoda polega na tym, że zmienia całą strukturę hasła. Jeśli ' nie znasz metody, ” poprawna zszywka baterii konia ” wygląda jak 216 symboli z alfabetu z dwoma symbolami: innymi słowy, 216 bitów. Jeśli wiesz, że to ' cztery angielskie słowa (i znasz XKCD

s lista słów), to wygląda jak 4 symbole z 2048-symbolowego alfabetu. 2048 ^ 4 jest duże, ale ' jest mniejsze niż 2 ^ 216, czyli tyle bajtów entropii miałby prawdziwie losowy ciąg bitów o tej długości. Ale roszczenie XKCD ' już to wyjaśnia: 2048 ^ 4 = 2 ^ 44.

  • Zakładając, że atakujący uważają, że hasła są ciągami bitów, które są jednolicie rozmieszczone to całkowicie nierealny model napastników. Znajomość metody uwzględnia tylko kilka bitów entropii.
  • Entropia nie jest definiowana na łańcuchach, ale na metodach generowania łańcuchów. XKCD opisuje metodę generowania ciągów, która ma 44 bity entropii. Domena tej metody zawiera ciągi o długości 27 znaków, a także ciągi o innej długości – ale długość łańcuchów nie jest ' interesująca z punktu widzenia bezpieczeństwa, tylko z perspektywa użyteczności.
  • Dlaczego miałbyś znać długość hasła, ale nie fakt, że angielskie słowa częściej niż przeciętnie pojawiają się w hasłach? Ponownie, Twój model atakującego jest całkowicie nierealny. Atakujący nie ' nie idą „hej, ja ' nie wygeneruję wszystkich możliwych 27-literowych haseł”. Mówią bardziej jak „hej, ja ' wygeneruję wszystkie możliwe hasła w kolejności malejącej według prawdopodobieństwa”.
  • @Giles Właściwie zarówno ciąg znaków, jak i metoda są istotne . Twierdzisz, że otwierający akapit The Spooniest ' jest błędny, jednocześnie przedstawiając argument, który wydaje się go powtarzać. Jeśli nie ' nie wiesz, w jaki sposób generowane jest hasło, entropia znacznie wzrośnie – ~ 166 bitów przy 27 znakach (górna, dolna, cyfra, interpunkcja). Mówisz, że atakujący mogą wykorzystać wiedzę o tym, jak generowane są hasła, aby to zmniejszyć. Wygląda na to, że spierasz się o to samo z przeciwnych stron. Również brak znajomości długości zwiększa entropię.
  • Odpowiedź

    Siła matematyka jest dość prosta, jeśli wybór słów jest przypadkowy: (liczba słów w słowniku) ^ (liczba słów w zdaniu), przy założeniu, że atakujący zna ich liczbę w słowniku. Zatem 5-wyrazowa fraza wykorzystująca znany ( przez atakującego !) 7776 słownika Diceware: ma 7776 ^ 5 = 2.8E19 czyli 64 bity entropii.

    Jest jeden element, o którym nie ma mowy w schemacie: dodanie tylko 1 (losowego) znaku w losowym miejscu w całej frazie zwiększa siłę o około 10 bitów , zobacz Diceware, akcesoria opcjonalne .

    Powyższa matematyka również nie uwzględnia symbolu separatora między słowami. To może dodać kolejne 5 bitów.

    Komentarze

    • Celem (lub przynajmniej jednego z nich) komiksu XKCD jest to, że dodanie jednej losowej postaci w losowym miejscu zwiększa trudność zapamiętywania hasła bardziej niż zwiększa trudność jego złamania.
    • Prawda w przypadku ogólnego zapamiętywania, a nie w przypadku hasła głównego do skarbca, jak sądzę. Uważam, że ' łatwe do wpisania ' jest główną zaletą. Coraz częściej spotykam się z sytuacjami, w których menedżerowie haseł nie mogą podać hasła (aplikacje, sieć gości WifI) i muszę je wpisać.
    • @Mark – dodatkowe losowe (lub po prostu nie-słownikowe) znaki mogą bądź taki sam we wszystkich hasłach, co oznacza, że wygrałeś ', żeby tego nie zapomnieć. ' zarobisz dodatkowe bity entropii przynajmniej do czasu, gdy kilka innych haseł zostanie przejętych, w którym to momencie hasło jest nadal xkcd-force …
    • @imsotiredicantsleep – to bardzo interesująca sugestia. Zawsze szukałem rozwiązania, które uczyniłoby tę technikę wzmacniającą łatwiejszą w użyciu. Można to nazwać bezpieczeństwem przez zaciemnienie, ponieważ napastnik może skorzystać z wiedzy o losowym charakterze i pozycji. Niewielki kompromis, myślę, że między łatwością użytkowania a bezpieczeństwem.
    • @ Dick99999 Absolutnie, to ' to kompromis. Ale dopóki stały składnik nie zostanie naruszony, pokona on ï ve atak słownikowy i znacznie spowolni bardziej wyrafinowany. Nie ' nie zgadzam się z tym, że ' jest zabezpieczony przez niejasność, ponieważ mogę Ci powiedzieć, że używam techniki bez utraty entropii, jaką dają mi możliwe wartości . Główną słabością jest to, że gdy znana jest stała część, poświęciłeś hasło do nieruchomości , które mogło zostać losowe.

    Odpowiedź

    Chciałbym również dodać tak , ale z innych powodów. To nie jest dobra rada [ogólnie] ze względu na ograniczenia długości:

    • Witryny takie jak Skype, ING, eBay, aw moim kraju Binckbank i KPN ograniczają hasła do 20 znaków. (Limit ten wynosi 15, ale stosowano autoryzację dwuskładnikową)
    • Ze średnią długością 4,5 znaków / słowo dla krótkiego słownika zawierającego 3000-8000 słów, który pozwala na użycie tylko 3-4 wyrazów.
    • W przypadku korzystania z dużych słowników średnia może wynosić 6-7: 3 słowa.
    • Jeśli witryna nalega na użycie symbolu i liczby w haśle, dostępnych jest tylko 18 znaków frazy.

    Te długości chronią tylko przed atakami online. W przypadku ataków off-line zależy od pochodzenia klucza i funkcji skrótu, liczby iteracji i sprzętu do łamania zabezpieczeń używanego przez witrynę aplikacji, czy wyrażenie składające się z 3-4 słów zapewnia wystarczającą ochronę.

    Komentarze

    • Witryny, które ograniczają długość haseł, są często doskonałym wskaźnikiem, że ich system przechowywania haseł jest bardzo niepewny. Uciec. Podsumowując, wymagania dotyczące siły hasła wydają się być bardziej szkodliwe niż pomocne, IMO (zarówno dla bezpieczeństwa, jak i łatwości zapamiętania).
    • Dodaj Suntrust do listy haseł ograniczonej do 15 znaków. Zastanawiam się, o co chodzi z tą branżą.
    • Z drugiej strony ' jest znacznie łatwiejsze wpisywanie ' correcthorsebatterystaple ' na smartfonie, zamiast przełączać się między małymi, wielkimi literami, cyframi i interpunkcją.
    • Niskie limity haseł nie ' t po prostu oznaczają niezabezpieczone metody przechowywania haseł – oznaczają, że hasła są przechowywane w postaci zwykłego tekstu lub są zaszyfrowane (nie zaszyfrowane). @ Á ngel Moje hasła do wszystkich kont Microsoft są dłuższe, więc dzwonię do BS. Wieki temu, przed NTLM, hasła systemu Windows były ograniczone do 16 znaków, iirc. To jest starsze niż XP i nie ma większego znaczenia.
    • @Zenexer Odnośnie kont Microsoft: Konta online Microsoft (live.com, Office 365 itp.) Są ograniczone do 16 znaków (litery, cyfry i niektóre symbole są dozwolone ).

    Odpowiedź

    Ważne jest, aby mieć właściwy kontekst. komiks xkcd porównuje Tr0ub4dor&3 przy założonej 28-bitowej entropii (chociaż ja obliczam to jako 34.6) do correcthorsebatterystaple, a jego zakładane 44 bity entropii (czterowyrazowy kod diceware ma 51,7 bitów … Ale jedno z tych słów nie jest narzędziem do gry w kości. Używając prostego słownika pisowni zawierającego 100 000 słów, obliczam, że ma 66,4 bitów).

    Po pierwsze, ułatwmy zrozumienie. Jest 94 drukowalne znaki. Jednoznakowe hasło ma log₂(94) = 6.55 bity entropii. Dwa znaki mają log₂(94²) = 13.10 bity entropii.Możesz podzielić końcową entropię schematu hasła przez 6,55, aby określić równoważną złożoność czysto losowego hasła mierzoną w znakach.

    Dlatego:

    • 28 bitów entropii ≈ 4,3-znakowe hasło (bardzo źle!)
    • 44 bity entropii ≈ 6,7-znakowe hasło (również złe)
    • 66,4-znakowe hasło entropii ≈ 10,1-znakowe hasło (w porządku na 2016 rok)

    Ufając liczbom xkcd, widać, dlaczego Schneier był zaniepokojony. Wydaje się to nieco przesadzone, ponieważ większość atakujących nadal się poddaje po około dziesięciu znakach [potrzebne źródło] – dla dużego klastra złamanie 10-znakowego zaszyfrowanego hasła MD5 powinno zająć kilka lat – chociaż oczywiście jeśli dobry atakujący zna Twój schemat, bezwzględna długość znaków nie jest problemem.

    Całkowita złożoność schematu jest najważniejsza. Musisz założyć najgorszy przypadek (że atakujący zna twój dokładny schemat) . To świetny pomysł, aby dodatkowo upewnić się, że Twoje hasło ma ponad 11 znaków ( jeśli jest dozwolone ), ale jest to priorytet drugorzędny (i jest dostępny za darmo w przypadku fraz hasła ).

     

    Utwórz frazy hasła z czterema słowami i kodem dostępu

    Oto moja rada dotycząca tworzenia haseł (z szacunkami entropii):

    • Stwórz bezsensowne „zdanie” składające się z 4+ słów po 4+ znaków każde (100 000⁴)
    • Żadne z tych słów nie może być połączone z Ty – lub siebie nawzajem – w jakikolwiek sposób
    • Użyj wielkości liter, spacji i co najmniej dwóch symboli lub znaków interpunkcyjnych (32²)
    • Co najmniej jedno słowo powinien nie sprawdzać pisowni (np. leetspeak, obce słowa, po 64)
    • Uwzględnij co najmniej jeden inny „błąd” (pisownia / gramatyka / składnia, nieznana entropia)
    • Między dwoma słowami, dodaj tradycyjne „losowe” hasło 7+ znaków (92⁷)

    Powinno to mieć co najmniej log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112 bity entropii (która jest bardzo silna, ≈17 znaków). Pominąłem wielkie litery (zakładam, że tylko pierwszy znak jest wielką literą) i jeden symbol (zakładam, że kończy się na ., ! lub ?, więc drugi symbol ma złożoność 3) i również założyłem, że „losowy” nie jest „całkiem przypadkowy” i obliczyłem kod jako odpowiednik pięciu znaków (ścisłe przestrzeganie powyższego wzór dałby ci ponad 128 bitów entropii przy ≈20 znakach).

     

    Ten ostatni punkt warto powtórzyć:

    Ludzie bardzo źle radzą sobie z generowaniem losowości

    Bardzo niewiele generowanych przez ludzi „losowych” kodów znaków, nawet podejście prawdziwej losowości. W kodzie będą występowały wzorce do klawiatury osoby, ulubionych liczb i / lub założenia, że pewne niejasne słowo jest niemożliwe do odgadnięcia.

    Zaprojektowałem ten schemat, aby był odporny na nieodłączny brak przypadkowości; zakładając ograniczone słownictwo (powiedz 2600 słów w Basi c angielski ), używanie pokrewnych słów (karane liczeniem tylko trzech słów) i hasło ograniczone tylko do entropii sześciu znaków alfanumerycznych, samo log₂(2600³ × 62⁶) jest nadal mocne na 70 bitów (≈10,6 znaków).

    Nie pozwól, aby to rozwodniło twoje hasło! Ta sekcja jest obecna, aby pokazać, że ten schemat ma pewną odporność na ograniczoną entropię człowieka wybory, a nie zachęcanie do złych wyborów.

    Jedynym prawdziwym problemem są ludzie, dla których cytat lub tekst jest jednym z czterech słów. Te frazy hasła są trywialnie pokonane, jeśli można odgadnąć cytat lub tekst (powiedzmy patrząc na twoje polubienia na Facebooku) lub w inny sposób miałyby entropię około 6 losowych znaków w czasie pęknięcia od 30 sekund (MD5) do 17 dni (PBKDF2) .

     

    Możesz użyć mojej tablicy entropii , aby obliczyć entropię swojego schematu hasła.

    (Nie przejmuj się faktem, że hasła na krótko żyją w pamięci , chyba że jesteś „programistą”)

    Komentarze

    • Należy również zauważyć, że nie ASCII są jak srebrne kule i automatycznie pokonują większość ataków. Hasło ••••••••• (dziewięć wypunktowanych znaków) jest zawstydzająco bezpieczne (i wygląda tak samo jak bez maski!) Ze względu na długość i niejasność, chociaż ' d byłby okropny pomysł, aby faktycznie polegać tylko na tym fakcie. Umieść znak spoza ASCII w swoim kodzie dostępu + 4 słowo, a złożoność gwałtownie wzrośnie (aby obliczyć, użyj wartości Unicode), choć być może kosztem przenośności (co jeśli ' używasz smartfona znajomego '?)

    Odpowiedź

    Nie, nie sądzę.

    Właściwa rada zawarta w komiksie xkcd to użycie mnemoników, które są łatwe do zapamiętania i wygeneruj hasło, o ile je pamiętasz . To są podstawowe porady dotyczące haseł wszędzie i zawsze będą prawdziwe (nawet przytoczona metoda Schneiera wykorzystuje te dwa podstawowe fakty). Rzeczywiście, w komiksie są używane popularne angielskie słowa, ale Twoja implementacja nie musi być. komiks sugeruje, że powinieneś.

    Oczywiście najbezpieczniejsze hasła to całkowicie losowe ciągi znaków, takie jak wygląd łańcucha MD5, i prawdopodobnie możesz użyć menedżera haseł do przechowywania wszystkich tych haseł, ale wtedy jakiego hasła będziesz używać dla tego menedżera? ¯ \ (ツ) / ¯

    Komentarze

    • ” Oczywiście najbezpieczniejsze hasła to całkowicie losowe ciągi znaków ” NIE, zobacz dla porównania pl.wikipedia.org/wiki/Password_strength#Random_passwords
    • Nie, że ' nie jest tym, co radzi xkcd, sugeruję przeczytanie go ponownie – i analizę w odpowiednim pytaniu tutaj (link powyżej).
    • Twój podpis ” ¯ \ (ツ) / ¯ ” to doskonałe hasło: krótkie, łatwe do zapamiętania, naprawdę trudne do złamania, trudne do wykrycia jako hasło log.
    • @Daniel Azuelos, … trywialne dodanie do listy powszechnie używanych ciągów …
    • @Raestloz Osoba mówiąca językiem, który nie ' Nie używaj znaków z zakresu ASCII i nie ' nie użyjesz hasła ASCII. Czy myślisz, że wszyscy ci ludzie w krajach azjatyckich używają dwóch klawiatur, jednej do codziennego pisania, a drugiej do haseł? W przeciwieństwie do trzydziestoletnich systemów operacyjnych, takich jak DOS, wszystkie nowoczesne systemy operacyjne ' obsługują Unicode i inne zestawy / strony znaków, a każda witryna powinna je obsługiwać (o ile programista nie ' nie koduje formularza przy użyciu losowego zestawu znaków za każdym razem lub pozwala przeglądarce wybrać). Hasła to po prostu bity, które coś znaczą dla ludzi.

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *