Võtke ühendust toega

Vastame e-postiga, tavaliselt kahe päeva jooksul.

Väärkasutuse vältimiseks kontrollib seda saadetist Google reCAPTCHA. Seejuures edastatakse andmeid Googlele. Skript laaditakse alles selle vormi avamisel.

← Kõik postitused

Mis maksab parool tagasihoidlikul riistvaral

Sisust ja selle ülevaatamisest

Selles artiklis

Statistikalehti saab siin parooliga kaitsta. Selle parooli räsimine on ainus toiming selles teenuses, mis peabki olema aeglane — just see teeb varastatud räsi ründamise kalliks. Küsimus on, kui aeglane, sellel riistvaral.

Mõõdetud masinal, mis seda saiti käitab, PHP 8:

PASSWORD_DEFAULT560 ms(vastab cost 12)
cost 12595 ms
cost 11277 ms
cost 10138 ms
cost 10138 mscost 11277 mscost 12595 msPASSWORD_DEFAULT

bcrypti cost-parameeter on astendaja: iga samm kahekordistab töö. Mõõtmised näitavad täpselt seda kahekordistumist, mis on hea märk, et miski muu ei sega.

Miks vaikeväärtus on siin vale valik

PHP tõstis bcrypti vaike-cost-i 10-lt 12-le. Lauaarvuti serveris on see mõistlik uuendus — see on paarkümmend millisekundit. Tagasihoidlikul riistvaral on see üle poole sekundi puhast protsessoriaega, masinal, mis joonistab samal ajal ka kõigile teistele loenduripilte.

Pool sekundit sisselogimise kohta on iseenesest halb. See on hullem kutsena: igaüks saab sisselogimise lõpp-punkti kutsuda ja iga kutse kulutab 560 ms protsessoriajast, mis teenindab kogu saiti. See muudab parooli kontrollimise odavaimaks teenuse tõkestamise rünnaku pinnaks.

Seega on cost kinnitatud väärtusele 10, mitte jäetud vaikimisi. See on tahtlikult nõrgem kui see, mida PHP nüüd valib, ja seda tuleks öelda lihtsalt, mitte mattunult: cost-10 räsi on neli korda odavam ründada kui cost-12 räsi. Selle tasakaalustab see, mida parool tegelikult kaitseb — külastuste arvu lehe nähtavust, mitte kontot, mitte raha, mitte identiteeti. Selle taga pole midagi üle võtta.

Osa, mis on kerge märkamata jätta

PASSWORD_DEFAULT on kujunduse poolest liikuv väärtus. Aastate eest kirjutatud kood, mis seda kasutab, muutub vaikselt iga PHP uuendusega aeglasemaks — sama lähtekood, sama sisend, mitmekordne tööaeg. See on kavandatud käitumine ja enamiku tarkvara jaoks õige.

See on vale ainult siis, kui masin ei suuda seda omastada, ja miski ei anna hoiatust, kui see ei suuda. Uuendus õnnestub, testid läbivad, leht töötab ikka. See lihtsalt võtab pool sekundit kauem ja keegi ei vaata seda numbrit, kui ta ei lähe mõõtma.

Reklaam