Biztonsági útmutató
Mi a Web Crypto API?
Ismerje meg, hogyan támogatja a Web Crypto API a böngészőben történő véletlen jelszógenerálást, és miért különbözik a hagyományos JavaScript véletlenszerűségtől.
Összefoglaló
A Web Crypto API egy böngészőszabvány kriptográfiai műveletekhez. Jelszógenerálás szempontjából a legfontosabb jellemzője a crypto.getRandomValues(), amely lehetővé teszi a weboldalak számára, hogy kriptográfiailag erős véletlen értékekhez jussanak, amelyek alkalmasak jelszókarakterek kiválasztására.
Miért fontos a jelszavaknál
A jelszavaknak kiszámíthatatlannak kell lenniük. A hagyományos JavaScript véletlenszerűséget nem titkos célokra tervezték. A Web Crypto azért létezik, hogy a böngészők biztonságosabb kriptográfiai primitíveket tegyenek elérhetővé egy szabványos API-n keresztül. A PwdGen ezt az API-t használja korlátozott véletlen kiválasztásra, és kerüli a Math.random() használatát jelszógeneráláshoz.
Operációs rendszer határa
A Web Crypto nem jelenti azt, hogy egy oldal közvetlenül vezérli a hardver entrópiaforrását. A böngészők általában az operációs rendszer és a platform kriptográfiai szolgáltatójára támaszkodnak. Egy gondos módszertan szerint a Web Crypto CSPRNG kimenetet biztosít, nem pedig azt, hogy minden hívás fizikai zajt olvas a CPU-ból.
Hogyan használja a PwdGen
A PwdGen 32 bites véletlen egész számokat kér, elutasításos mintavételezést használ a modulo torzítás elkerülésére, az elfogadott értékeket karakterindexekre képezi le, és megkeveri a szükséges karakterosztályokat. Ez kicsiben és auditálhatóan tartja a megvalósítást.
Részletes útmutató
Ez az útmutató a Web Crypto API mint böngészőbiztonsági primitív megértésére összpontosít. Olyan felhasználók és fejlesztők számára készült, akik tudni akarják, miért számít a böngésző véletlenszerűsége, így a gyakorlati cél nem egy drámai biztonsági állítás létrehozása. A cél egy olyan jelszószokás kialakítása, amely túléli a mindennapi használatot: bejelentkezési űrlapok, jelszókezelők, mobil billentyűzetek, fiók-helyreállítás, megosztott eszközök és az alkalmankénti szolgáltatás furcsa érvényesítési szabályokkal. Egy biztonságos ajánlás csak akkor hasznos, ha egy valós személy következetesen követni tudja.
A legbiztonságosabb kiindulópont a véletlenszerűség plusz egyediség. A véletlenszerűség azt jelenti, hogy az érték egy nagy térből, kriptográfiailag alkalmas véletlen forrásból van kiválasztva, nem pedig születésnapból, háziállat névből, billentyűzetmintából vagy kedvenc idézetből. Az egyediség azt jelenti, hogy ugyanaz a jelszó sehol máshol nem használatos. Egy hosszú, de újrahasznált jelszó gyorsan meghiúsulhat egy független adatszivárgás után, míg egy egyedi véletlen jelszó korlátozza a kárt arra az egy fiókra, ahol használták.
Ehhez a témához egy gyakorlati előbeállítás a modern Chrome, Edge, Safari és Firefox a crypto.getRandomValues elérhetőségével. Ezt az előbeállítást alkalmazhatja a böngészőtámogatási oldalon, majd tárolja a végső értéket egy megbízható jelszókezelőben. A PwdGen helyben, a böngészőben generál értékeket a Web Crypto segítségével; a generált jelszó nem kerül elküldésre egy PwdGen szerverre. Ez a helyi kialakítás csökkenti a szerveroldali kitettséget, de nem véd minden fenyegetés ellen. Egy rosszindulatú böngészőbővítmény, egy feltört eszköz, egy adathalász oldal vagy a nem biztonságos vágólapkezelés továbbra is felfedheti a titkot a generálás után.
A leggyakoribb elkerülendő problémák a régi böngészők, a nem biztonságos kontextusok, a Math.random-ot csendben használó polyfill-ek, valamint a kódolás és a titkosítás összekeverése. Ezek a problémák azért számítanak, mert a támadók ritkán kényszerülnek minden lehetséges jelszó brute-force kipróbálására, amikor az emberi szokások parancsikont adnak nekik. A credential stuffing, az adathalászat, a kiszivárgott jelszólisták és a fiók-helyreállítás visszaélése gyakran reálisabb, mint egy tiszta matematikai keresés. Ezért a legjobb tanács a jelszóminőséget a fiókszintű védelemmel kombinálja, mint az MFA, a passkey-k, a helyreállítási kódok tárolása, valamint a helyreállítási e-mail vagy telefonszám rendszeres felülvizsgálata.
Használja ezt az ellenőrzőlistát az ajánlás alkalmazásakor:
- Használjon modern böngészőt.
- Kerülje a saját véletlen forrást implementáló eszközöket.
- Értse meg, hogy a Web Crypto nem oldja meg a kártevőket.
- Olvassa el a módszertant, mielőtt megbízik egy generátorban.
Ha egy weboldal elutasítja az ideális beállítást, ne erőltesse a jelszót kézzel egy gyengébb mintába. Egyszerre csak egy változót állítson be. Ha a szimbólumok elutasításra kerülnek, tartsa engedélyezve a nagybetűket, kisbetűket és számokat, és növelje a hosszt. Ha a maximális hossz alacsony, használja a legnagyobb elfogadott hosszt, és győződjön meg arról, hogy az érték egyedi. Ha a jelszót fel kell olvasni, ki kell nyomtatni vagy be kell gépelni egy TV vagy router képernyőjén, fontolja meg a zavaró karakterek kizárását és a hossz növelését a kisebb ábécé kompenzálására.
Végül ne feledje a jelszótanács határait. Az erős jelszó egy védelmi réteg, nem garancia. Nem teheti biztonságossá az adathalász oldalt, nem javítja ki a kártevőket, és nem kompenzálja a gyenge hitelesítőadat-tárolást használó szolgáltatást. A hasznos szokás unalmas, de tartós: generáljon egyedi értéket, tárolja biztonságosan, védje a helyreállítási utat, és cserélje ki gyorsan, ha gyanítja a kitettséget.
Egy biztonságos következő lépés
Miután elolvasta ezt az útmutatót, végezzen el egy kis fiókauditot ahelyett, hogy egyszerre mindent megpróbálna javítani. Válassza ki azt a fiókot, amely a legnagyobb gondot okozná, ha átvennék, erősítse meg, hogy a jelszava egyedi, és ellenőrizze a helyreállítási e-mailt, helyreállítási telefonszámot, MFA módszert és a biztonsági kódok tárolását. Ha a lánc bármely része gyenge, javítsa azt a részt, mielőtt az alacsonyabb kockázatú fiókokra lép. Ez a sorrend kezelhetővé teszi a munkát, és védi azokat a fiókokat, amelyeket a támadók valószínűleg ugródeszkaként használnak. A „Mi a Web Crypto API?” kérdésre a legjobb eredmény egy ismételhető szokás: generáljon helyben, tárolja gondosan, és kerülje az újrahasználatot.
Gyakran ismételt kérdések
A Web Crypto mely részét használja a PwdGen?
A PwdGen a crypto.getRandomValues() segítségével kér kriptográfiailag erős véletlen értékeket a böngészőtől.
A Web Crypto azt jelenti, hogy minden bájt közvetlenül a hardverből származik?
Nem. A böngészők általában az operációs rendszer kriptográfiai szolgáltatóit használják, amelyeket kiváló minőségű entrópiával vetnek be; a böngésző és az operációs rendszer választja meg a megvalósítást.
Elérhető a Web Crypto minden böngészőben?
Elérhető a modern böngészőkben. Ha hiányzik, a PwdGen letiltja a generálást ahelyett, hogy nem biztonságos véletlenszerűségre váltana.