Kiszámolható a 2fa TOTP pin zsebszámológépen?
Tehát számítógép vagy okostelefon nélkül ki lehet-e számolni - érettségin is használható (nem programozható) számológépen - a 2faktoros belépés 6 jegyű pin kódját a 16 karakteres titkos kulcsból?
Ugyanazt amit pl a Google Authenticator is kiad. Ha igen hogyan?
A zsebszámológépen van függvénymemória, tucatnyi memóriahely és a kézimunkától se riadok vissza. Mondjuk egy Sharp EL-W506 gépen. Karórám van.
Igazából kíváncsiságból szeretném megoldani, nem napi használathoz.
Elvileg ki lehet számolni - az algoritmus szabadon elérhető:
gyakorlatilag mire kiszámolod, lejár a rendelkezésre álló időintervallum.
A SHA-1 hash algoritmus kézi számítása zsebszámológéppel nem praktikus, mivel a SHA-1 egy bonyolult, iteratív algoritmus, amely bitműveleteket, paddinget és többlépcsős és sok lépésből álló számítást igényel. Azonban, ha szeretnéd megérteni a SHA-1 működését, itt van egy rövid áttekintés a folyamat lépéseiről:
SHA-1 Hash Számítási Folyamata
-- Bemeneti üzenet előkészítése:
--- Az üzenetet bitekre kell konvertálni.
--- A bemeneti üzenet végére 1 bitet adunk, majd 0-kat, hogy a hossza 448 bitre nőjön (modulo 512). Azaz így a hossz kongurens 448 modulo 512.
--- Ehhez a bemenethez hozzá kell fűzni (konkatenálni) 64 bites big-endian egész számként az eredeti üzenet hosszát, így az előfeldolgozott üzenet hossza 512 bit egészámú többszöröse lesz
-- Inicializálás:
--- Öt 32 bites változót inicializálunk (H0, H1, H2, H3, H4) az SHA-1 specifikáció szerint.
--- Üzenet blokkok feldolgozása:
-- Az üzenetet 512 bites blokkokra osztjuk.
-- Minden blokkot 16 darab 32 bites számra darabolunk, majd 80 számra bővítjük.
- az alábbi rekurzív algoritmus szerint, ahol w[i] az i.-ik szám : w[i] = (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1
-- A hash számítást 80 iteráción keresztül végezzük minden egyes blokra:
- az iterációk során különböző műveleteket hajtunk végre
- minden egyes blokk számítás végén frissítve a H0, H1, H2, H3, H4 változókat.
--- Hash érték kinyerése:
-- A végső hash érték a H0, H1, H2, H3, H4 változók összefűzésével nyerhető.
Egyébként az sha1 csak egy eleme a számításnak.
hmac-ot kell számolni sha1-el, aminek kulcsa az a 16 karakteres kulcs. A 16 karakter egy kirpitográfiai minimum követelmény, alapból 32 karakter kell minimum, de ennél hosszabb nem növeli a biztonságot ,ha kirpitográfiailag erős randomgenerátorral volt generálva.
A hmac értékből pedig az a 6 jegyű szám van számolva az idő függvényében, az idő mint paraméter egy egész szám unix timestamp-ban.
"hmac-ot kell számolni sha1-el, aminek kulcsa az a 16 karakteres kulcs."
Pontosabban még azon is előfeldolgozás van a totp-ben, és ez lesz a hmac kulcsa.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!