Isang password na kinuha nang paisa-isang karakter mula sa cryptographic na pinagmumulan ng random ng browser mo. Ginawa ito matapos ma-load ang pahinang ito, sa tab na ito, at wala ito kahit saan pa — wala sa source ng pahina, wala sa log, wala sa mga server namin.
Tatlong bagay sa paggawa ng password ang madaling mamali, at kahit isa rito ay namamali sa karamihan ng generator. Ang pinagmumulan ng random ay dapat ang cryptographic, hindi ang karaniwan, na ang panloob na kalagayan ay mababawi mula sa maikling hanay ng sarili nitong output. Dapat walang kiling ang pagkuha: hindi nahahati ang 256 sa 26, kaya ang pagsalang ng random na byte sa alpabeto gamit ang tira ay nagbibigay sa a hanggang v ng tig-sampung pagkakataon at sa w hanggang z ng tig-siyam lamang — 11% na mas madalas lumabas ang unang dalawampu't dalawang letra kaysa sa huling apat. At ang "kahit isa sa bawat uri" ay dapat ipatupad sa pamamagitan ng muling pagkuha, hindi sa pagpalit sa unang ilang karakter — ipinapako ng bersiyong iyon ang kilalang uri ng karakter sa kilalang posisyon at itinatapon ang mismong entropy na sinasabi nitong idinaragdag.
Isinasaalang-alang ng bilang ng bits sa ibaba ang lahat ng iyon, kaya minsan ay bahagya itong mas mababa kaysa sa ipinapahiwatig ng haba at alpabeto lamang.
Hindi. Ginagawa ito ng sarili mong browser pagkatapos mag-load ng pahina, at walang kahilingang nagdadala nito. Hindi ito isinusulat sa page source, hindi itinatala at hindi iniimbak. Isara ang tab at mawawala ito — kaya kopyahin ito sa password manager mo bago ka umalis.
Your browser's cryptographic random number generator, which draws on entropy the operating system collects from hardware. The ordinary random function most scripts use is a predictable sequence — recover its internal state from a handful of outputs and every past and future value is known. It must never generate a password, and it does not here.
Ang bilang ng bits ng paghula na kakaharapin ng umaatake. Dinodoble ng bawat dagdag na bit ang gawain, kaya mabilis umakyat ang sukat: sa rate na ipinapalagay sa ibaba, ang 40 bits ay bumabagsak sa wala pang isang segundo, ang 60 bits ay tumatagal ng mga isang linggo, at ang 80 bits ay labinsiyam na libong taon. Sinusukat nito ang proseso na gumawa ng password, hindi ang mismong string — kaya ang password na inimbento mo ay mas mababa nang malayo ang halaga kaysa sa itsura nito.
Dahil may mga password itong tinatanggal. Ang pag-atas ng kahit isang digit ay nangangahulugang hindi na posible ang bawat password na walang digit, kaya mas kaunti ang huhulaan. Maliit ang epekto — mas mababa pa sa isang bit sa anumang makatuwirang haba — pero pagbaba ito, hindi pagtaas, at ang tapat na bilang ang sinasabi ng pahinang ito at hindi ang ipinapahiwatig ng haba at alphabet lamang.
Sa katagalan, oo, dahil ang haba ang tumataas nang walang hangganan. Ang pagdoble sa laki ng alphabet ay nagdaragdag ng eksaktong isang bit kada karakter, at may hangganan kung ilang beses mo itong madodoble; ang bawat dagdag na karakter ay nagdaragdag ng isa pang log2(alphabet) na bits, at hindi ito nauubos. Ang talaan sa pahinang ito ang paglalarawan — ang 12 karakter na gumagamit ng apat na set ay katumbas ng 77.5 bits, at ang 20 payak na maliit na letra ay 94.
Isang trilyong hula kada segundo — isang offline na atake, sa nakalaang hardware, laban sa password na nakaimbak sa mahinang hash. Sadyang pesimistiko ang bilang na ito. Napakalayong mas mabagal ang isang maayos na serbisyong naglilimita ng subok, pero wala kang paraan para malaman kung alin ang hinaharap mo.
Malaking i, maliit na L at isa; malaking O, maliit na o at zero. Nagkakamukha ang anim na ito sa karamihan ng typeface, kaya ang password na may ganito ay mali ang matitipa mo mula sa screen o sa naka-print. Ang pag-alis sa kanila ay nagpapaliit sa alphabet at may kaunting halaga sa entropy — sulit kung kailangan mong basahin ang password, hindi kung hindi.
Sa isang trilyong hula kada segundo, sa karaniwan. Dinodoble ng bawat dagdag na bit ang numero, kaya ang dalawampung bits sa pagitan ng 60 at 80 ay isang milyong beses.
Ang labindalawang karakter na gumagamit ng bawat uri ay bahagya lamang mas mataas sa labing-anim na payak na letra, at malayong mas mababa sa dalawampu. Ang pagpapalawak ng alpabeto ay nagbibigay ng isang bit kada karakter sa tuwing dodoblehin mo ito, at mauubusan ka ng maidaragdag na karakter; patuloy na nagbabayad ang haba at hindi ito nauubos.
Iyon ang numero kapag walang hadlang. Ang paghingi ng isang karakter mula sa bawat set ay nag-aalis ng ilan sa posibleng password, kaya bahagyang mas mababa ang tunay na numero — kinukuwenta ng pahinang ito kung gaano kababa at iyon ang ipinapakita.
Kasing-ligtas lamang ang password ng pinaglalagyan mo rito. Ilagay ito nang diretso sa isang password manager — huwag itong i-email sa sarili mo, at huwag itong gamiting muli. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.