Autentizace: Jednorázová hesla – TOTP
V tomto příspěvku se podíváme, jak funguje generování jednorázového hesla pomocí algoritmu TOTP.
Time-based One-time Password zkr, TOTP, který je popsán v RFC6238 je rozšířením nám již známého HMAC-based One Time Password zkr. HOTP, kde je místo náhodného čísla C, které se s každým vygenerovaným OTP postupně zvyšuje, použito číslo, které je odvozeno z aktuálního času. Předpokladem tedy je, aby na klientovi i serveru byl stejný čas.
Hlavní výhodou tohoto řešení je skutečnost, že doba platnosti tohoto OTP nemusí již být kontrolována na aplikační úrovni, neboť je de facto určena již při vygenerování samotného OTP. Jinými slovy dané OTP nelze po uplynutí určité doby již použít, protože je vzhledem k tomu, že je generováno z času, jiné. Doba platnosti je zpravidla 30 sekund, a byť je možné hodnotu této konstanty změnit, nedoporučuji to.
Zvolená hodnota představuje rozumný kompromis mezi bezpečností a použitelností. Nezapomínejte, že na rozdíl od HOTP zde musí uživatel, v případě že OTP zadá chybně, čekat než doba platnosti daného OTP uplyne a teprve poté může zadat další, které se mu objeví na displeji.
Způsob generování výsledného OTP je v podstatě stejný a je dán vztahem TOTP(T,C) = Truncate(HMAC-SHA-X(T,C)), kde T je hodnota odvozená z unixového času a doby platnosti OTP a C je sdílené tajemství mezi klientem a serverem. T je dáno vztahem T = (Current Unix time – T0) / X, kde T0 je 0 a X je doba platnosti hesla. SHA-X je pak hashovací funkce, zde může být použita i funkce SHA-256 nebo SHA-512.
Je zřejmé, že pokud bude OTP generováno na konci doby platnosti, v našem případě třeba ve 27 sekundě, nebude již souhlasit s OTP, které bude generováno na serveru, protože než uživatel toto OTP přepíše do formuláře a než se toto OTP přenese po síti, uběhne určitá doba. Server proto musí vygenerovat i OTP, které tomuto OTP předcházelo a s tím pak obdrženou hodnotu porovnat.
Štítky: autentizace, OTP
K článku “Autentizace: Jednorázová hesla – TOTP” se zde nenachází žádný komentář - buďte první.
Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.