Nem szeretném túlbonyolítani a dolgokat, szóval igyekszem egyszerű válaszokat hozni az érdeklődők számára. Miért fontos a TOTP-s (idő alapú, egyszer használatos jelszó/kód)?! Sokan megszokták, hogy a régi, jó öreg felhasználónév/jelszó párost használják mindenhol, pedig ez biztonság szempontjából a béka segge alatti szint, főleg ha valaki ugyanazt a párost használja mindenhova. A bajt tovább tetézi ha esetleg valahova ezt már fel is írta az illető, hogy el ne felejtse azt később. A mélyrepülés legalja pedig, ha olyan jelszót használ a felhasználó, ami könnyen kitalálható: jelszó123, jozsi1984 stb.:
Az ilyen jelszavakat viszonylag könnyű megszerezni vagy esetleg feltörni, ezért ha eddig nem tettük, akkor használjunk, minimum 14 karakter hosszúságú jelszavakat, amikben van kis betű, nagy betű, szám, speciális karakter. Az ilyenek megjegyzésére már vannak biztonságos jelszókezelő szoftverek, így nem kell félnünk, hogy elfelejtjük azokat. (Ezekről majd egy másik cikkben értekezünk)
Íme egy példa egy biztonságos jelszóra:
q4sZg&MSr&gV8h
Ez szép és jó, de lehet bármilyen erős egy jelszó, ha valamilyen módon megszerzi egy illetéktelen személy, már nem ér semmit a hossza, vagy az, hogy milyen bonyolult logika szerint találtuk ki. Itt jön képbe az egyszer használatos kód!
Az egyszer használatos kódhoz szükségünk van egy úgynevezett hitelesítő alkalmazásra (Authenticator). A jó hír, hogy a korábban említett jelszókezelők már ezek szerepét is be tudják tölteni, de most maradjunk annál a forgatókönyvnél, hogy egy külön, kinevezett Authenticatort használunk. Fontos, hogy olyan alkalmazást válasszunk, ami nem valami kamu fejlesztő keze alól került ki! Tehát egy Google vagy egy Microsoft-tól kiadott ilyen alkalmazás nagy valószínűséggel megbízható, viszont egy JoskaGyerek Bt.-től kiadott ugyanilyen alkalmazást érdemes fenntartásokkal kezelni!
Ezek az alkalmazások induláskor már általában kapásból kérnek egy QR-kódot. Mi ez a kód?! Ebben a kódban van egy speciális protokoll, ami a korábban már említett TOTP-re vonatkozik, benne van egy speciális, a felhasználóhoz tartozó egyedi kulcs, illetve még pár mellékes adat. Beolvasás után általában már láthatjuk is a 6 karakter hosszú, általában 30 másodpercig érvényes, 6 számjegyű kódot.
Mi fog történni, amikor legközelebb a felhasználó megpróbál belépni az Ügyfélkapu+-ra?!
Beírja a felhasználónevét és a jelszavát. Ha ez jó, akkor következő lépésként be kell adni az egyszer használatos kódot a Hitelesítő (Authenticator) alkalmazásból. Ha ez is jó, akkor sikeresen beléptünk a rendszerbe.
Honnan tudja a Hitelesítő alkalmazás, hogy milyen kódot kell megjelenítenie?!
A válasz egyszerű! Emlékszünk még az egyedi kulcsra, amit a QR-kód tartalmazott? Nos, mind az Ügyfélkapu+ rendszere, mind pedig a Hitelesítő alkalmazás fogja az aktuális UNIX időbélyeget (ezek 30 másodperces blokkokra vannak osztva), illetve az egyedi kulcsot és egy speciális HMAC-SHA1 algoritmussal generálnak egy 6 számjegyű kódot. Ha a felhasználó által megadott kód és az Ügyfélkapu+ rendszere által generált két kód egyezik, akkor sikeres a belépés. Éppen ezért fontos, hogy az egyes eszközökön pontosan legyen beállítva az idő, mert a túl nagy eltérés hibás kódok generálásához vezethet.
Mindent összefoglalva: egy esetlegesen eltulajdonított felhasználónév/jelszó páros teljesen haszontalan a támadó számára ha a fiókot még egy ilyen dinamikusan generált kód is védi. Ennek fontossága megkérdőjelezhetetlen.
Olvastam felháborodott hozzászólást, amelyben az illető kikérte magának az egész rendszert és kijelentette, hogy majd ő megjegyzi magának a felhasználónevét és a jelszavát és ugyan ne akarják már ráerőltetni ezt a hülyeséget. Nos… minden ilyen rendszer annyira erős, amennyire a leggyengébb pontja. Én személy szerint örülök, hogy nem egy olyan rendszerben kezelik eztán az adatokat, aminek a biztonsági szintje az emberi emlékezetre és a gyenge, könnyen törhető jelszavakra támaszkodik.
Hogyan várható el az idősebb generációtól a fent leírtak megértése?
Belátom, hogy ez a kérdés komplex problémát vet fel, ami egy külön cikket is megérne. Mindenesetre én azt tartom, hogy itt jön képbe az egyén felelőssége. Gondolok itt arra, hogy a fiatalabb generációnak, akik otthonosabban mozognak a digitális világban, kutya kötelességük segíteni ebben az idősebbeket. Akár családon belül, akár családon kívül, segítsük azokat, akik idegennek érzik a digitális teret és járuljunk hozzá ahhoz, hogy ők is biztonságosan használhassák az internetet.