bélyegkép|Az Aegis Authenticator, amely időalapú egyszer használatos jelszavakat jelenít meg Az időalapú egyszer használatos jelszó (TOTP) egy számítógépes algoritmus, amely a jelenlegi időt használja fel egyedi egyszer használatos jelszó (OTP) előállításához. A HMAC-alapú egyszer használatos jelszó (HOTP) kiterjesztéseként készült, és az Internet Engineering Task Force (IETF) szabványaként került elfogadásra.

A TOTP az Initiative for Open Authentication (OATH) kezdeményezés egyik alapvető eleme, és számos kétlépcsős hitelesítés (2FA) rendszerben alkalmazzák.

Történet

Több OATH-tag együttműködésének eredményeként elkészült egy TOTP-tervezet, amelynek célja egy iparági támogatással rendelkező szabvány létrehozása volt. Ez kiegészíti az eseményalapú egyszer használatos jelszót (HOTP), és lehetőséget biztosít a végfelhasználói szervezetek és vállalatok számára, hogy olyan technológiát válasszanak, amely leginkább megfelel az alkalmazásaik követelményeinek és biztonsági irányelveiknek. 2008-ban az OATH benyújtotta a specifikáció egy tervezetét az IETF-hez. Ez a verzió már tartalmazza azokat a visszajelzéseket és észrevételeket is, amelyeket a szerzők az IETF-hez korábban benyújtott változatokkal kapcsolatban kaptak a technikai közösségtől. 2011 májusában a TOTP hivatalosan is RFC 6238-ként került elfogadásra.

Algoritmus

A TOTP-hitelesítés működéséhez a hitelesítést kérő fél (pl. felhasználó) és a hitelesítő (pl. szerver) előzetesen meg kell hogy egyezzenek a HOTP paramétereiben, valamint az alábbi TOTP-paraméterekben:

T0: az az Unix-idő, amelytől kezdve az időlépéseket számolni kell (alapértelmezés szerint 0),

TX: az az időintervallum, amely alapján a számláló CT értéke kiszámításra kerül (alapértelmezés szerint 30 másodperc).

A hitelesítő és a hitelesítést kérő fél egyaránt kiszámítja a TOTP-értéket, majd a hitelesítő ellenőrzi, hogy a felhasználó által megadott TOTP megegyezik-e a helyben generált értékkel. Egyes hitelesítők elfogadnak olyan TOTP-kódokat is, amelyeket a jelenlegi időpontnál kicsivel korábban vagy később kellett volna generálni — ez a lehetőség az órák közötti eltérések, hálózati késleltetés vagy felhasználói lassúság miatt szükséges.

A TOTP a HOTP algoritmust használja, de a számláló helyére egy nem csökkenő érték kerül, amely az aktuális időn alapul:

TOTP érték(K) = HOTP érték(K, CT),

ahol a számláló értéke az alábbi képlettel számítható:

ahol:CT az időintervallumok (TX) száma T0 és T között,T az aktuális idő másodpercben, egy adott epoch óta számolva,T0 az epoch időpontja másodpercben megadva (pl. ha Unix-időt használunk, akkor T0 = 0),T''X az időlépés hossza (pl. 30 másodperc).

Biztonság

A jelszavakkal ellentétben a TOTP-kódok csak korlátozott ideig érvényesek. A felhasználóknak azonban ezeket a kódokat egy hitelesítési oldalon kell megadniuk, ami lehetőséget ad a adathalász-támadásokra. Mivel a TOTP-kódok csak rövid ideig érvényesek, a támadóknak valós időben kell továbbítaniuk a hitelesítési adatokat, hogy sikerrel járjanak.

A TOTP-hitelesítési adatok egy közös titkon alapulnak, amelyet mind a kliens, mind a szerver ismer, így több olyan pont is létezik, ahonnan ez a titok kiszivároghat. Ha egy támadó hozzáfér ehhez a megosztott titokhoz, tetszőlegesen tud érvényes TOTP-kódokat generálni. Ez különösen nagy problémát jelenthet, ha a támadó egy nagyméretű hitelesítési adatbázist tör fel.

Alkalmazások és támogatás A TOTP szabványt számos szoftver és szolgáltatás támogatja, köztük:

nyílt forráskódú hitelesítő alkalmazások, például Aegis, FreeOTP, 2FAS vagy KeePassXC, kereskedelmi szoftverek, mint a Google Authenticator, Microsoft Authenticator vagy Authy, webes szolgáltatások, például GitHub, Google, Facebook, Dropbox, és különböző Wikimedia-projektek (adminisztrátori szinten).

Jegyzetek

Kapcsolódó szócikkek Többtényezős hitelesítés Egyszer használatos jelszó

Kategória:Kriptográfiai algoritmusok