Zer zegoen gaizki password.es-en, eta jada ez

Argitaratua egilea David Carrero

Blog honek hamabi artikulu ditu gauzak nola egin behar diren azaltzen: luzerak ikurrek baino gehiago balio duela, kudeatzaile bat ez dela erosotasuna baizik eta araua betetzeko modu bakarra, ehuneko batek ez duela ezer esaten.

Hori idaztea erraza da. Deserosoa zeure gunea neurri berarekin begiratzea da. Egin dugu, eta hiru gauza zeuden gaizki. Hemen doaz osorik, salatu dituzten zenbakiekin, segurtasun-gune batek bere asmatzeak baino argitaratzen ez baditu askoz gutxiago balio duelako.

Egiaztatzailea izozten zen idazten ari zinen bitartean

Egiaztatzaileak zure pasahitza zxcvbn-ekin aztertzen du, maiuskulak zenbatu beharrean ereduak bilatzen dituen liburutegia. Oso ondo dabil eta kostu bat du: osorik exekutatzen da, kolpe batean, orria marrazten duen hari berean. Martxan dagoen bitartean, nabigatzaileak ezin du beste ezer egin.

Kostu hori azkar hazten da luzerarekin. Guneak zerbitzatzen duen pakete berarekin neurtuta, eta jendeak benetan idazten dituen pasahitzekin —hitzak, urteak, @ a-ren ordez—:

luzera exekuzio bat
16 karaktere 45 ms
20 karaktere 121 ms
32 karaktere 273 ms
64 karaktere 843 ms
128 karaktere 3.621 ms

Hona arte, normala. Arazoa zenbat aldiz abiarazten genuen zen.

Eremuak bi entzule desberdin zituen lotuta, input eta keyup. Tekla normal batek biak abiarazten ditu. Beraz, letra bat sakatzen zenuen bakoitzean, analisi osoa birritan exekutatzen zen: 90 ms 16 karaktereko pasahitz batean, segundo erdi 32koan.

Eta ez zegoen ezer geldiarazten zuenik: ez tenporizadorerik, ez luzera-mugarik, ez hari bereizirik. Hogei bat karakteretik aurrera, nabigatzaileak gehiago behar zuen aztertzeko zuk hurrengo tekla sakatzeko baino. Sakatzeak inoiz hustutzen ez zen ilara batean pilatzen ziren, eta orriak erantzuteari uzten zion idazten ari zinen bitartean. Pasahitz luze bat itsasteak segundo batzuez izozten zuen.

Konponketa bi aldaketa txiki dira. keyup entzulea kendu dugu, input-ek jada idaztea, itsastea, ezabatzea eta kudeatzailearen betetze automatikoa hartzen dituelako: lanaren erdia desagertzen da ikusten duzunetik ezer aldatu gabe. Eta 150 milisegundoko itxaronaldia gehitu dugu: idazten ari zaren bitartean ez da ezer aztertzen, eta gelditu bezain laster aztertzen da. Inork ez du hain poliki idazten hori nabaritzeko.

Emaitza berdin-berdina da. Barcelona1992$-k gauza bera dio oraindik: «barcelona» hiztegian dagoela, 1992 urte bat dirudiela, eta segundo bat baino gutxiagoan erortzen dela.

Deskribapena esaldi erdian moztuta zegoen hamabost hizkuntzatan

Hau ergelagoa eta lotsagarriagoa da.

Bilatzailean izenburuaren azpian agertzen den esaldia —meta description— hamazortzi hizkuntzetatik hamabostetan moztuta zegoen. Gaztelania, koreera eta japoniera baino ez ziren salbatzen. Norbaitek luzeragatik moztu zuen noizbait, hitz erdian ebaki zuen, eta gero inork ez zuen begiratu.

Hiru hizkuntzatan ebakia karaktere berezi baten erdi-erdian erori zen, beraz Google-n argitaratzen genuena hau zen:

hizkuntza zer zerbitzatzen genuen zer esan behar zuen
portugesa …datas e padr&o padrões
turkiera …arıyor ve ger&cced gerçekten
vietnamera …chúng tôi tra mật kh&# mật khẩu

Deigarriena non zegoen da: gune osoko ondoen funtzionatzen duen orrian. Egiaztatzaileak sortzaileak baino askoz hobeto bihurtzen du, eta deskribapena hautsita zuela egiten zuen. Hamabostak osatuta daude.

Bide batez, koreeraz, japonieraz eta vietnameraz marka izenburuaren hasieratik amaierara eraman dugu. Bilatzailean domeinua bereiz ikusten da jada, beraz «password.es ·» hasteak gehien balio duen tokia besterik ez zuen xahutzen.

Ehun milioitik bateko alborapena

Sortzaileak karaktere bakoitza crypto.getRandomValues()-ekin aukeratzen du, nabigatzailearen ausazko iturri ona. Baina zenbaki eskerga hori «alfabetoko posizio bat» bihurtzeko hondarreko zatiketa egiten genuen, eta han tranpa klasiko bat dago: 2³² ez da 83ren multiploa, beraz alfabetoko lehen posizioak azkenak baino apur bat maizago ateratzen ziren.

Zenbat da «apur bat»: 89 karaktere arteko alfabeto batekin, ehun milioitik bateko ordenakoa. Ez du ezer aldatzen. Ez du zure pasahitza nabarmen ahulagoa egiten, ezta gutxiagorik ere.

Berdin konpondu dugu, eta hiru lerro dira: 4.294.967.296 balio posibleetatik soberan dauden 45ak baztertzen dira eta berriro zozketatzen da. Pasahitzei buruzko gune batean, «arbuiagarria da» ez da arrazoi ona alborapen bat uzteko kentzeak hori kostatzen duenean.

Zer falta zen: nabigatzaileak promesa betearaztea

Artikulu oso bat dugu azaltzen zure pasahitza ez dela hemendik ateratzen. Egia zen, eta hala ere gure esaldi bat besterik ez zen: teknikoki ezerk ez zuen eragozten injektatutako script batek beste zerbait egitea.

Orain orri bakoitzak edukiaren segurtasun-politika bat darama. Axola duten bi zatiak:

  • Ez da exekutatzen orria eraikitzean bertan ez zegoen script bat ere. Script legitimo bakoitza bere aztarnarekin sinatuta dago; injektatutako batek ez du bat egiten eta nabigatzaileak exekutatzeari uko egiten dio.
  • connect-src 'none'. Guneak ez du sare-eskaera bakar bat ere egiten JavaScriptetik, eta orain nabigatzaileak ezartzen du hori. Egunen batean zerbaitek idazten duzuna nonbaitera bidaltzen saiatuko balitz, ez litzateke aterako.

Promesa adierazpen izateari utzi eta arau bihurtu da.

Zer dagoen oraindik gaizki

Abuztuaren 31ko eguneraketa. Atal honetako hiru gauzak artikulua argitaratu zen egun berean konpondu ziren: hamabost hizkuntzek jada benetako motorra deskribatzen dute, bi eskalak bat dira, eta egiaztatzailearen ohiko galderek ikurren kontua azaltzen dute. Idatzita uzten dira, gaizki egon zenaren erregistroak gune akatsgabe baten argazkiak baino gehiago balio duelako.

Hemen irabazten du artikulu honek bere tokia.

Hamabost hizkuntzek egiaztatzailea motor zaharra bezala deskribatzen jarraitzen dute. Orri horien testuak dio PasswordMeter-en logika klasikoa erreproduzitzen duela. Jada ez: motor hori aldatu egin zen Pasahitza1!-ri «oso sendoa» ematen ziolako eta bost hitzeko esaldi luze bat suspenditzen zuelako, hau da, esan beharrekoaren guztiz kontrakoa. Gaztelania, koreera eta japoniera eguneratuta daude; beste hamabostak ez.

Bi eskala desberdin daude etxe berean. Azalak pasahitz bat sendoa den bere biten arabera erabakitzen du; egiaztatzaileak hausteak zenbat kostatuko lukeen denboraren arabera. Irizpide desberdinak, eta inon ez dugu abisatzen.

Sortzaileak eta egiaztatzaileak ez dituzte ikur berak zenbatzen: batak 27 erabiltzen ditu, besteak 33 suposatzen ditu. Aldea txikia da, baina hor dago.

Hiruretako bat ere ez da larria. Hirurak zorra dira, eta nahiago dute hemen idatzita egon beste norbaitek aurkitu zain baino.

Bertsio honen erregistroa

Biltegia publikoa ez denez, aldaketen erregistroa hemen doa osorik. 0.2.0 bertsioa, 2026ko abuztuaren 31koa:

Gehituta. Edukiaren segurtasun-politika orriz orri, script bakoitzaren aztarnarekin. Zure gordetako pasahitzak non dauden azaltzen duen artikulua, hemezortzi hizkuntzetan. Zer idazten den erabakitzen duen ilara editoriala, eta hutsik geratzen bada ezer ez argitaratzeko agintzen duena.

Konponduta. Egiaztatzailearen deskribapena, hamabost hizkuntzatan esaldi erdian moztuta, horietako hirutan karaktere bat erditik hautsita. Fitxaren izoztea idaztean. Zozketaren alborapena. Eta aurreko artikuluan falta zen argazkia.

Aldatuta. Egiaztatzailearen izenburua koreeraz, japonieraz eta vietnameraz. Hedapena, orain eraikitako gunea existitzen denean abiarazten dena eta ez minutu bat lehenago. Eta vietnamera, hindi eta arabierarako itzulpenak, argitalpen bat oztopatzeari uzten diotenak ahulenak izaten jarraitzen badute ere.


Artikulu honetako zifrak neurtuta daude, ez estimatuta: zxcvbn-ren denborak guneak zerbitzatzen duen pakete berarekin eta hitzak eta ordezkapenak dituzten pasahitzekin; zozketaren alborapena, 32 biteko osoko baten 4.294.967.296 balioen gainean kalkulatuta. Egiaztatzailearen motorra zxcvbn da, kode irekikoa.

Argazkia: Ernandes Alves · Pexels

← Blogera itzuli