TOTP — vaxt əsaslı birdəfəlik parollar alqoritmi

Dr. Emin Huseynov
3 min readDec 26, 2018

--

Adi istifadəçi adı və parola əsaslanan kimliyin təsdiqləmə (authentication) sistemlərinin zəif tərəfləri haqqında uzun danışmaq olar, amma bütün oxucular razılaşar ki, bu cür sistemlərin təhlükəsizliyi ilk növbədə istifadəçinin bilik səviyyəsindən, vərdişlərindən və nizam-intizamından asılıdır. Parolun statik olması onun cinayətkarların əlinə keçən zaman təkrar istifadəsinə imkan yaradır. Bu problemi aradan qaldırmaq üçün çoxfaktorlu təsdiqləmə sistemlərindən istifadə etmək olar. Çoxfaktorlu təsdiqləmə ilə müdafiə olunan istifadəçilər phishing, bruteforce, keylogger və digər oxşar risklərdən qurtulmuş olurlar. Bu cür sistemlərin sayı çoxdur (U2F, Fido2, mOTP), lakin həm istifadəsi, həm tətbiq edilməsi baxımından ən rahat və sadəsi TOTP alqoritmi əsasında olanlardı.

TOTP əsaslı çoxfaktorlu təsdiqləmə sistemlərinin iş prinsipini ən sadə izahatı belədir: adi istifadəçi adı və parol daxil etdikdən sonra, istifadəçi ikinci mərhələdə xüsusi qurğu və ya mobil tətbiq tərəfindən yaradılan birdəfəlik parolu daxil etməlidir. Bu, adətən 6 və ya 8 rəqəmdən ibarət, parol server tərəfindən yoxlandıqdan sonra istifadəçiyə sistemə giriş icazəsi verilir.

TOTP necə işləyir

Birdəfəlik parollar xüsusi həş (hash) alqoritmi vasitəsi ilə hesablanır.

OTP = TOTP (time+shared secret)

Bu alqoritm HMAC və SHA-1/SHA-2 birləşməsindən ibarətdir və funksiya arqumenti iki hissədən ibarətdir :

1) time — cari vaxt (unix timestamp formatında)

2) shared secret- xüsusi məxfi kəlmə (həm server həm istifadəçiyə “məlum” bir parametr)

TOTP əsasında giriş alqoritminin sxeması

İstifadəçi qeydiyyatı zamanı xüsusi məxfi kəlmə server tərəfində təsadüfi şəkildə yaradılıb istifadəçiyə ötürülür (bir çox hallarda QR kod formatında). İstifadəçi həmin kəlməni TOTP protokolunu dəstəkləyən mobil tətbiqə daxil edir (və ya kamera vasitəsi ilə QR kodu oxuyur) və bununla qeydiyyat əməliyyatını başa çatdırır. Bu kod yalnız bir dəfə göstərilir və sonrakı əməliyyatlarda (yəni sistemə giriş zamanı) heç bir istiqamətdə ötürülmür.

TOTP profilinin qeydiyyatı üçün QR kod nümunəsi

TOTP funksiyası vaxt əsasında olduğuna görə, onun icrası nəticəsində yaranan birdəfəlik parollar hər saniyə dəyişir və unikal olur. Rahatlıq üçün, vaxt kəmiyyətini adətən 30 və ya 60 saniyəyədək yuvarladırlar.

TOTP harda istifadə olunur?

Bir çox sistemlərin girişi üçün ikinci faktoru olaraq məhz TOTP istifadə olunur. Numunə kimi Facebook, Google, Office365 Dropbox-un adını çəkmək olar.

Öz layihəmə TOTP necə əlavə edə bilərəm?

TOTP olduqca sadə bir sistemdir və kifayət qədər məşhur olduğu üçün əksər proqramlaşdırma dilləri üçün hazır kitabxanaları və kod nümunələri var. Bundan əlavə bir çox sistemlər üçün hazır plaqinlər də mövcuddur (nümunə- Wordpress)

İstifədəçi tərəfindən nə lazımdır?

Yuxarıda qeyd etdiyimiz kimi, qeydiyyat zamanı xüsusi mobil tətbiq vasitəsi ilə QR kodu kamera ilə çəkmək kifayətdir. TOTP dəstəkləyən mobil tətbiqlərin sayı 100 yaxındır, istəsəniz özünüz də TOTP tətbiq yarada bilərsiniz.

Google Authenticator mobil tətbiqi

--

--

Dr. Emin Huseynov

IT researcher focusing on multifactor authentication technologies. Academic affiliations: University of Geneva & Azerbaijan Technical University