TOTP Generátor – Élő 2FA Hitelesítő Kód
Illesszen be egy Base32 TOTP titkot, és nézze, ahogy a valódi, élő 6 jegyű hitelesítő kód 30 másodpercenként váltakozik – teljesen offline, a böngészőjében.
🔒 Teljesen a böngészőjében dolgozzák fel – soha semmi, amit itt beírt, nem kerül feltöltésre.
Eredmény
Ez az eszköz valódi, szabványnak megfelelő időalapú egyszeri jelszó (TOTP) kódokat állít elő egy Base32 titokból, ugyanazokat a hatjegyű, forgó kódokat, amelyeket az olyan alkalmazások mutatnak, mint a Google Authenticator vagy az Authy. Illessze be a titkot, amelyet a kétfaktoros hitelesítés beállításakor kapott – általában ugyanazt a karakterláncot, amely egy QR-kód mögött rejtőzik –, és figyelje, ahogy az élő kód visszaszámol és 30 másodpercenként frissül, pontosan úgy, ahogy egy telefonos alkalmazásban tenné. Az eszköz az Ön tulajdonában vagy ellenőrzése alatt álló 2FA titkok tesztelésére és ellenőrzésére szolgál: egy építés alatt álló bejelentkezési folyamat hibakeresésére, egy biztonsági mentési kód megerősítésére, mielőtt kidob egy provisioning QR-kódot, vagy annak ellenőrzésére, hogy egy titkot helyesen gépelt-e be.
A motorháztető alatt ez az RFC 6238 (TOTP) valódi implementációja, amely az RFC 4226 (HOTP) szabványra épül, nem pedig egy kozmetikai visszaszámláló. A Base32 titok az RFC 4648 szerint kerül dekódolásra nyers kulcs bájtokká, az aktuális Unix idő elosztásra kerül az időlépéssel, hogy egy mozgó számlálót kapjunk, és ez a számláló egy 8 bájtos big-endian pufferként kerül kódolásra. A böngésző natív Web Crypto API-ja (crypto.subtle) egy HMAC-ot számol ezen a pufferen a kiválasztott hash-el – az SHA-1 marad a szinte univerzális alapértelmezés a meglévő hitelesítő alkalmazásokkal való kompatibilitás érdekében, míg az SHA-256 és SHA-512 azokhoz a beállításokhoz érhető el, amelyek támogatják az erősebb változatokat. Az RFC 4226 dinamikus csonkolása ezután négy bájtot húz ki a HMAC kimenetből egy olyan eltolásnál, amelyet az utolsó bájt határoz meg, levágja a legfelső bitet, és az eredményt modulo 10^6 vagy 10^8 redukálja, hogy létrehozza a 6 vagy 8 jegyű kódot – pontosan ugyanazt az aritmetikát, amelyet a telefon hitelesítő alkalmazása belsőleg futtat.
A folyamat minden része helyben történik: nincs szerver komponens, nincs analitikai beacon, amely továbbítaná a titkát, és semmilyen külső API-hívás. A mezőbe beillesztett Base32 szöveget közvetlenül a böngészőlapján futó JavaScript elemzi, és soha nem hagyja el azt. Ez biztonságos módot nyújt egy 2FA titok ellenőrzésére egy megbízható gépen, bár mint minden hitelesítési anyagot érintő eszköz esetében, továbbra is kerülnie kell a titkok beillesztését megosztott vagy nyilvános számítógépeken, és csak olyan kódokon szabad használnia, amelyek az Ön tulajdonában lévő fiókokhoz kapcsolódnak, vagy amelyek tesztelésére kifejezetten felhatalmazták.
Az algoritmus, a számjegyek száma és az időlépés vezérlők azért léteznek, mert a valós TOTP implementációk nem teljesen egységesek: a legtöbb fogyasztói szolgáltatás SHA-1-et használ 6 számjeggyel és 30 másodperces lépéssel, de néhány vállalati és fejlesztői eszköz SHA-256 vagy SHA-512 titkokat, 8 jegyű kódokat vagy nem szabványos időlépéseket, például 15 vagy 60 másodpercet bocsát ki. Ha ezeket a beállításokat összhangba hozza azzal, amit egy provisioning URI vagy beállítási oldal megad, akkor pontosan azt a kódot reprodukálhatja, amelyet a hitelesítő alkalmazása mutatna, ami felbecsülhetetlen, amikor saját TOTP ellenőrző szervert implementál, és megbízható, offline referenciára van szüksége az összehasonlításhoz.