Ugrás a tartalomhoz

HMAC-alapú egyszer használatos jelszó

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

HMAC-alapú egyszer használatos jelszó algoritmus (angolul: HMAC-based One-Time Password algorithm, röviden HOTP) egy nyílt, szabványosított hitelesítési eljárás, amely a HMAC algoritmusra építve generál egyszer használatos jelszavakat. Az algoritmust az Internet Engineering Task Force (IETF) szabványosította az RFC 4226 dokumentumban, és a többtényezős hitelesítés rendszerek egyik alapvető komponenseként terjedt el.

Az HOTP egy eseményalapú eljárás: minden alkalommal, amikor a felhasználó hitelesíteni kívánja magát, egy számláló értéke növekszik, és a rendszer ez alapján hozza létre az egyedi jelszót. Mivel a jelszó csak egyszer használható, a rendszer különösen jól véd a jelszólopáson vagy adathalászaton alapuló támadásokkal szemben.

Működés

[szerkesztés]

Az HOTP egy eseményalapú algoritmus, amely a HMAC (kulccsal ellátott hash-alapú üzenethitelesítés) elvén alapul. A jelszó generálásához egy megosztott titkos kulcs (K) és egy számláló (C) szükséges. A rendszer minden alkalommal, amikor a felhasználó hitelesíteni próbálja magát, megnöveli a számlálót, és az új érték alapján kiszámítja a következő jelszót.

Az algoritmus formálisan így néz ki:

HOTP(K, C) = Truncate(HMAC-SHA-1(K, C))

Itt:

  • K a megosztott titkos kulcs,
  • C az eseményszámláló (általában egy 64 bites egész),
  • Truncate() egy levágási művelet, amely a HMAC eredményéből 6–8 számjegy hosszú jelszót állít elő.

A hitelesítés akkor sikeres, ha a szerver által számított HOTP érték megegyezik a felhasználó által megadott kóddal. Mivel a kliens és a szerver külön számlálót vezet, az eltérések kezelése érdekében a szerver egy megengedett eltérésen belül több számlálóértéket is elfogadhat.

Ez az algoritmus időfüggetlen, azaz nem igényel óraszinkronizációt, ellentétben az TOTP eljárással. Emiatt különösen hasznos lehet olyan környezetekben, ahol az eszközök órái nem egyeztethetők pontosan.

Szabványosítás és történet

[szerkesztés]

Az HOTP algoritmust a Initiative for Open Authentication (OATH) keretében fejlesztették ki, több iparági szereplő közreműködésével. Céljuk egy nyílt, interoperábilis egyszer használatos jelszórendszer kidolgozása volt, amely szabadon felhasználható különféle hitelesítési környezetekben.

A javasolt eljárást 2005 decemberében az Internet Engineering Task Force (IETF) elfogadta, és a RFC 4226 szabványban tette közzé. A dokumentum részletesen leírja az algoritmus működését, az ajánlott paramétereket, valamint a biztonsági megfontolásokat.

Az HOTP lett az első nyílt szabványként elfogadott eseményalapú egyszer használatos jelszó algoritmus, amelyet később időalapú változata, a TOTP (RFC 6238) egészített ki.

A szabvány bevezetése lehetővé tette, hogy különböző gyártók termékei (például hardveres tokent generálók vagy szoftveres alkalmazások) egységes módon legyenek kompatibilisek egymással.

Alkalmazások és eszközök

[szerkesztés]

A HMAC-alapú egyszer használatos jelszó algoritmust (HOTP) számos fizikai és szoftveres megoldás támogatja.

Fizikai eszközök
  • RSA SecurID – az egyik legismertebb hardveres token, amely HOTP-alapú jelszavakat generál.
  • YubiKey (egyes konfigurációk) – a Yubico által gyártott USB-s biztonsági kulcsok többek között HOTP támogatással is rendelkeznek.
  • VASCO DIGIPASS – banki és vállalati környezetben használt, többféle OTP-módszert támogató eszközök.
Szoftveres kliensek
  • Google Authenticator – bár alapértelmezetten TOTP-t használ, léteznek olyan implementációk, amelyek HOTP-t is támogatnak.
  • FreeOTP – nyílt forráskódú alkalmazás Androidra és iOS-re, amely támogatja a HOTP protokollt.
  • WinAuth – Windows-alapú, HOTP/TOTP támogatással rendelkező autentikátor.
  • KeePassXC – jelszókezelő, amely beépülő modullal HOTP támogatást is nyújthat.

Az HOTP szabványt sok helyen nyilvános API-k, VPN-kliensek, vagy jelszó-alapú beléptetőrendszerek használják, különösen olyan esetekben, amikor a szinkronizálható eseményalapú azonosítás praktikusabb a TOTP-nél.

Források

[szerkesztés]