TOTP — Time-Based One-Time Password, ya’ni vaqtga asoslangan bir martalik parol. TOTP foydalanuvchini tasdiqlash uchun ma’lum vaqt oralig‘ida yangilanadigan kod yaratadi. Bu kod odatda 2FA va MFA tizimlarida ishlatiladi.
TOTP Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden Authenticator kabi ilovalarda keng qo‘llanadi.
Vazifasi
TOTP foydalanuvchini paroldan tashqari qo‘shimcha vaqtinchalik kod orqali tasdiqlash uchun ishlatiladi.
TOTP quyidagi vazifalarni bajaradi:
- 2FA kod yaratish;
- MFA authentication bosqichini bajarish;
- login jarayonini qo‘shimcha himoyalash;
- parol o‘g‘irlangan holatda akkauntga kirishni cheklash;
- authenticator app orqali tasdiqlash;
- internetga doimiy bog‘liq bo‘lmagan kod yaratish;
- vaqtga asoslangan OTP tekshiruvini bajarish;
- admin panel va muhim akkauntlarni himoyalash.
Masalan, foydalanuvchi parol kiritgandan keyin authenticator app’dagi 6 xonali TOTP kodni ham kiritadi.
TOTP qanday ishlaydi?
TOTP foydalanuvchi va server o‘rtasida oldindan ulashilgan maxfiy secret key va joriy vaqt asosida kod yaratadi. Server ham, foydalanuvchining authenticator app’i ham bir xil algoritm orqali kod hisoblaydi.
Oddiy jarayon:
- tizim foydalanuvchi uchun maxfiy secret key yaratadi;
- foydalanuvchi bu secretni QR code orqali authenticator app’ga qo‘shadi;
- authenticator app vaqt asosida kod yaratadi;
- foydalanuvchi login paytida shu kodni kiritadi;
- backend o‘z tomonida kodni hisoblaydi;
- foydalanuvchi kiritgan kod backend hisoblagan kod bilan solishtiriladi;
- kod mos kelsa, authentication muvaffaqiyatli bo‘ladi.
TOTP’da kod foydalanuvchiga SMS yoki email orqali yuborilmaydi. Kod foydalanuvchi qurilmasida algoritm orqali hosil bo‘ladi.
Secret key
Secret key — TOTP kodlarini yaratish uchun ishlatiladigan maxfiy qiymat. Bu qiymat serverda va foydalanuvchining authenticator app’ida saqlanadi.
Secret key quyidagi vazifalarni bajaradi:
- foydalanuvchi uchun alohida kodlar yaratish;
- authenticator app va serverni bog‘lash;
- TOTP hisoblashda asosiy maxfiy qiymat bo‘lish;
- QR code orqali foydalanuvchi qurilmasiga ulanish.
Secret key har bir foydalanuvchi uchun alohida bo‘ladi.
QR code
QR code — TOTP sozlash jarayonida secret key va hisob ma’lumotlarini authenticator app’ga tez qo‘shish uchun ishlatiladigan grafik kod.
QR code ichida odatda quyidagilar bo‘ladi:
- secret key;
- service nomi;
- account nomi;
- issuer;
- algoritm;
- kod uzunligi;
- vaqt oralig‘i.
Foydalanuvchi authenticator app orqali QR code’ni skaner qiladi va TOTP akkaunt qo‘shiladi.
TOTP kodi
TOTP kodi odatda 6 xonali raqamli kod bo‘ladi. Ayrim tizimlarda 8 xonali kod ham ishlatilishi mumkin.
TOTP kod misollari:
482913;093184;781245;605921.
Kod qisqa vaqt amal qiladi va vaqt tugagach yangi kod bilan almashadi.
Vaqt oralig‘i
TOTP kodlari ma’lum vaqt oralig‘ida yangilanadi. Eng keng ishlatiladigan vaqt oralig‘i 30 soniya hisoblanadi.
Vaqt oralig‘i quyidagicha bo‘lishi mumkin:
- 30 soniya;
- 60 soniya;
- 90 soniya;
- maxsus belgilangan interval.
Authenticator app odatda kod yonida vaqt indikatori ko‘rsatadi. Bu indikator joriy kodning qancha vaqt amal qilishini bildiradi.
Time step
Time step — TOTP algoritmida vaqtni bo‘laklarga ajratish oralig‘i. Masalan, 30 soniyalik time step bo‘lsa, har 30 soniyada yangi kod hosil bo‘ladi.
Time step quyidagilar bilan bog‘liq:
- kodning amal qilish muddati;
- server va client vaqt mosligi;
- kod yangilanish tezligi;
- validation oynasi;
- foydalanuvchi kiritish vaqti.
Time step TOTP kodining asosiy vaqt mexanizmini belgilaydi.
TOTP algoritmi
TOTP HOTP algoritmiga asoslangan bo‘lib, counter o‘rniga vaqt qiymatidan foydalanadi. Vaqt ma’lum oraliqlarga bo‘linadi va har bir oraliq uchun alohida kod hosil bo‘ladi.
TOTP algoritmida quyidagilar ishlatiladi:
- secret key;
- joriy vaqt;
- time step;
- HMAC;
- hash algoritm;
- dynamic truncation;
- raqamli kod uzunligi.
Server va authenticator app bir xil secret key va vaqt asosida bir xil kod hosil qiladi.
HMAC
HMAC — Hash-based Message Authentication Code. TOTP kod yaratishda secret key va vaqt qiymati HMAC algoritmi orqali qayta ishlanadi.
HMAC quyidagilarni ta’minlaydi:
- secret key asosida kod hosil qilish;
- bir xil input uchun bir xil natija olish;
- maxfiy qiymatni bevosita oshkor qilmaslik;
- kodni matematik algoritm orqali yaratish.
TOTP odatda HMAC-SHA1, HMAC-SHA256 yoki HMAC-SHA512 bilan ishlashi mumkin.
SHA algoritmlari
TOTP turli hash algoritmlar bilan ishlashi mumkin.
Keng uchraydigan algoritmlar:
Ko‘p authenticator app va xizmatlarda SHA-1 tarixiy va keng qo‘llanadigan variant sifatida uchraydi. Ayrim tizimlar SHA-256 yoki SHA-512 algoritmlarini ham qo‘llaydi.
HOTP bilan farqi
TOTP va HOTP ikkalasi ham bir martalik kod yaratadi, lekin ular turli asosga tayanadi.
Farqlar:
- TOTP vaqt asosida ishlaydi;
- HOTP counter asosida ishlaydi;
- TOTP kodlari vaqt o‘tishi bilan almashadi;
- HOTP kodlari counter o‘zgarganda almashadi;
- TOTP authenticator app’larda keng ishlatiladi;
- HOTP ayrim hardware tokenlarda uchraydi.
TOTP HOTP’ning vaqtga moslashtirilgan ko‘rinishi sifatida qaraladi.
OTP bilan bog‘liqligi
TOTP OTP’ning bir turi hisoblanadi. OTP umumiy tushuncha bo‘lsa, TOTP aynan vaqtga asoslangan OTP modelidir.
Bog‘liqlik:
- OTP — bir martalik parol;
- TOTP — vaqtga asoslangan bir martalik parol;
- barcha TOTP kodlari OTP hisoblanadi;
- barcha OTP kodlari TOTP bo‘lishi shart emas;
- SMS OTP server tomonidan yuboriladi;
- TOTP foydalanuvchi qurilmasida hisoblanadi.
TOTP 2FA va MFA tizimlarida OTP’ning keng ishlatiladigan shaklidir.
Authenticator app
Authenticator app — TOTP kodlarini yaratadigan ilova. Foydalanuvchi TOTP secretni ilovaga qo‘shgandan keyin, app doimiy ravishda yangi kodlar hosil qiladi.
Authenticator app misollari:
- Google Authenticator;
- Microsoft Authenticator;
- Authy;
- Duo Mobile;
- 1Password;
- Bitwarden Authenticator;
- FreeOTP.
Authenticator app kodlarni internet orqali serverdan olmaydi, balki local algoritm asosida yaratadi.
Setup jarayoni
TOTP sozlash jarayonida foydalanuvchi akkauntiga authenticator app ulanadi.
Asosiy bosqichlar:
- foydalanuvchi 2FA yoqish sahifasini ochadi;
- backend secret key yaratadi;
- secret key QR code ko‘rinishida ko‘rsatiladi;
- foydalanuvchi QR code’ni authenticator app bilan skaner qiladi;
- app TOTP kod yaratadi;
- foydalanuvchi birinchi kodni tizimga kiritadi;
- backend kodni tekshiradi;
- kod to‘g‘ri bo‘lsa, TOTP faollashadi.
Bu jarayon foydalanuvchi akkaunti va authenticator app o‘rtasida bog‘lanish yaratadi.
Enrollment
Enrollment — foydalanuvchining TOTP tizimiga ro‘yxatdan o‘tish yoki authenticator app’ni ulash jarayoni.
Enrollment jarayonida:
- secret key yaratiladi;
- QR code yoki manual key beriladi;
- foydalanuvchi app’ga qo‘shadi;
- verification kodi tekshiriladi;
- TOTP holati aktiv qilinadi;
- recovery codelar berilishi mumkin.
Enrollment tugagandan keyin foydalanuvchi keyingi loginlarda TOTP koddan foydalanadi.
Manual key
Manual key — QR code ishlamagan holatda authenticator app’ga qo‘lda kiritiladigan secret key.
Manual key quyidagi holatlarda ishlatiladi:
- kamera ishlamasa;
- QR code skaner qilinmasa;
- desktop authenticator ishlatilsa;
- accessibility talab bo‘lsa;
- secretni qo‘lda kiritish kerak bo‘lsa.
Manual key QR code ichidagi secret qiymatning matnli ko‘rinishi hisoblanadi.
Issuer
Issuer — TOTP kodni bergan xizmat yoki platforma nomi. Authenticator app’da issuer foydalanuvchiga qaysi kod qaysi saytga tegishli ekanini ko‘rsatadi.
Issuer misollari:
GitHub;Google;Microsoft;Example App;Admin Panel.
Issuer TOTP akkauntlarini tartibli ko‘rsatish uchun ishlatiladi.
Account name
Account name — TOTP yozuvi qaysi foydalanuvchi akkauntiga tegishli ekanini bildiradi.
Account name misollari:
[email protected];[email protected];farrukh;company-user.
Authenticator app’da issuer va account name birga ko‘rinishi mumkin.
TOTP validation
TOTP validation — foydalanuvchi kiritgan TOTP kodni backend tomonidan tekshirish jarayoni.
Validation jarayonida quyidagilar tekshiriladi:
- foydalanuvchi uchun secret key mavjudmi;
- kiritilgan kod formati to‘g‘rimi;
- joriy vaqt oralig‘idagi kod mosmi;
- kod oldin ishlatilmaganmi;
- urinishlar soni limitdan oshmaganmi;
- foydalanuvchi akkaunti aktivmi.
Kod mos kelsa, authentication bosqichi muvaffaqiyatli bo‘ladi.
Time drift
Time drift — foydalanuvchi qurilmasi va server vaqti o‘rtasidagi farq. TOTP vaqtga asoslangani uchun vaqt farqi kod mos kelmasligiga olib kelishi mumkin.
Time drift quyidagi holatlarda yuzaga kelishi mumkin:
- telefon vaqti noto‘g‘ri bo‘lsa;
- server vaqti noto‘g‘ri sozlangan bo‘lsa;
- vaqt zonasi noto‘g‘ri ishlatilsa;
- qurilma vaqtni avtomatik yangilamasa.
TOTP validation tizimlari odatda kichik vaqt farqini hisobga oladigan oynadan foydalanishi mumkin.
Validation window
Validation window — backend kodni faqat joriy time step uchun emas, yaqin oldingi yoki keyingi time step uchun ham tekshirishi mumkin bo‘lgan vaqt oynasi.
Validation window quyidagilar uchun ishlatiladi:
- foydalanuvchi kodni kech kiritgan holat;
- server va qurilma vaqti ozgina farq qilganda;
- 30 soniya chegarasida kod almashgan holat;
- foydalanuvchi tajribasini barqaror qilish.
Masalan, backend joriy 30 soniyalik kod bilan birga oldingi 30 soniyalik kodni ham vaqtincha qabul qilishi mumkin.
Replay attack
Replay attack — ishlatilgan kodni qayta ishlatishga urinish. TOTP kod qisqa muddat amal qilgani uchun replay xavfi cheklangan bo‘lsa-da, bitta vaqt oralig‘ida kod qayta yuborilishi mumkin.
Replay attack bilan bog‘liq elementlar:
- bir xil kodni takror ishlatish;
- real vaqt ichida kodni tutib olish;
- phishing sahifa orqali kodni olish;
- validation jarayonida kod ishlatilganini belgilash.
TOTP tizimlari kodni bir time step ichida qayta ishlatishni cheklashi mumkin.
Backup code
Backup code — TOTP qurilmasi yo‘qolganda yoki authenticator app ishlamay qolganda akkauntga kirish uchun ishlatiladigan zaxira kod.
Backup code xususiyatlari:
- oldindan yaratiladi;
- odatda bir martalik bo‘ladi;
- foydalanuvchi tomonidan saqlanadi;
- TOTP qurilmasi yo‘qolganda ishlatiladi;
- account recovery jarayonida muhim hisoblanadi.
Backup code TOTP tizimining zaxira mexanizmlaridan biridir.
Recovery jarayoni
TOTP qurilmasi yo‘qolganda yoki secret key mavjud bo‘lmaganda foydalanuvchi account recovery jarayonidan o‘tishi mumkin.
Recovery jarayonida quyidagilar ishlatilishi mumkin:
- backup code;
- email verification;
- SMS verification;
- admin orqali tiklash;
- identity verification;
- support jarayoni;
- yangi TOTP secret ulash.
Recovery jarayoni authentication xavfsizligining alohida qismi hisoblanadi.
TOTP reset
TOTP reset — foydalanuvchi akkauntidagi eski TOTP ulanishini bekor qilib, yangi secret key yaratish jarayoni.
TOTP reset quyidagi holatlarda ishlatiladi:
- telefon yo‘qolganda;
- authenticator app o‘chib ketganda;
- secret key tarqalib ketganda;
- foydalanuvchi yangi qurilma ulaganda;
- admin tomonidan xavfsizlik tiklanganda.
Resetdan keyin eski TOTP kodlar yaroqsiz bo‘ladi.
TOTP va 2FA
TOTP 2FA tizimlarida ikkinchi omil sifatida keng ishlatiladi. Foydalanuvchi parolni bilishini va authenticator app bilan bog‘langan qurilmaga ega ekanini tasdiqlaydi.
2FA’da TOTP quyidagi tartibda ishlaydi:
- parol tekshiriladi;
- TOTP kod so‘raladi;
- kod backendda tekshiriladi;
- login session yoki token yaratiladi;
- foydalanuvchi tizimga kiritiladi.
TOTP 2FA’ning eng keng tarqalgan usullaridan biri hisoblanadi.
TOTP va MFA
MFA tizimlarida TOTP omillardan biri sifatida ishlatilishi mumkin. U parol, biometric, security key yoki boshqa tasdiqlash usullari bilan birga ishlaydi.
MFA’da TOTP quyidagilar bilan birga kelishi mumkin:
- parol;
- hardware security key;
- biometric authentication;
- push notification;
- trusted device;
- risk-based authentication.
TOTP MFA arxitekturasida vaqtinchalik kodga asoslangan tasdiqlash qatlami hisoblanadi.
TOTP va session
TOTP muvaffaqiyatli tekshirilgandan keyin tizim session yaratishi yoki mavjud sessionni MFA tasdiqlangan holatga o‘tkazishi mumkin.
Session ichida quyidagilar saqlanishi mumkin:
- foydalanuvchi login holati;
- TOTP tasdiqlanganligi;
- MFA vaqti;
- authentication method;
- trusted device holati;
- session expiration.
Session orqali tizim foydalanuvchi TOTP bosqichidan o‘tganini aniqlaydi.
TOTP va token
Token-based authentication tizimlarida TOTP access token berishdan oldin tekshirilishi mumkin.
Jarayon:
- foydalanuvchi login va parol yuboradi;
- backend parolni tekshiradi;
- TOTP challenge yaratadi;
- foydalanuvchi TOTP kod yuboradi;
- backend kodni tekshiradi;
- access token va refresh token qaytariladi.
Bu model API va mobile ilovalarda keng uchraydi.
TOTP va QR code xavfsizligi
TOTP QR code ichida secret key bo‘ladi. QR code yoki manual secret boshqa odam qo‘liga tushsa, u ham TOTP kod yaratishi mumkin.
QR code bilan bog‘liq xavfsizlik elementlari:
- QR code faqat setup vaqtida ko‘rsatiladi;
- secret key maxfiy qiymat hisoblanadi;
- screenshot orqali tarqalish xavfi mavjud;
- setup tugagach QR code qayta ko‘rsatilmasligi mumkin;
- TOTP reset qilinganda eski secret bekor qilinadi.
QR code TOTP secretni uzatish vositasi bo‘lgani uchun maxfiylik bilan bog‘liq.
TOTP va phishing
TOTP phishing hujumlarida foydalanuvchi kodni soxta sahifaga kiritib qo‘yishi mumkin. Kod qisqa muddatli bo‘lsa ham, real vaqt ichida ishlatilishi mumkin.
TOTP phishing bilan bog‘liq holatlar:
- soxta login sahifa;
- foydalanuvchidan 6 xonali kod so‘rash;
- kodni real saytga uzatish;
- session yoki tokenni qo‘lga kiritish;
- social engineering.
TOTP parolga qo‘shimcha himoya beradi, lekin phishingga to‘liq chidamli authentication usuli hisoblanmaydi.
TOTP va SMS OTP farqi
TOTP va SMS OTP ikkalasi ham bir martalik kod ishlatadi, lekin kod yaratilishi va yetkazilishi farq qiladi.
Farqlar:
- TOTP kodni authenticator app ichida yaratadi;
- SMS OTP kod server tomonidan yaratiladi va SMS orqali yuboriladi;
- TOTP internet yoki mobil aloqa talab qilmasligi mumkin;
- SMS OTP telefon operatoriga bog‘liq;
- TOTP secret key asosida ishlaydi;
- SMS OTP yuborish infratuzilmasiga tayanadi.
Bu farqlar authentication arxitekturasiga ta’sir qiladi.
TOTP va WebAuthn farqi
TOTP va WebAuthn ikkalasi ham qo‘shimcha authentication uchun ishlatilishi mumkin, lekin texnik asosi farq qiladi.
Farqlar:
- TOTP vaqtga asoslangan raqamli kod ishlatadi;
- WebAuthn public key cryptography asosida ishlaydi;
- TOTP kod foydalanuvchi tomonidan kiritiladi;
- WebAuthn browser va authenticator orqali kriptografik tasdiqlash bajaradi;
- TOTP phishingga sezgir bo‘lishi mumkin;
- WebAuthn phishing-resistant authentication uchun ishlatiladi.
WebAuthn va passkey zamonaviy authentication usullari sifatida TOTP’dan farqli modelga ega.
TOTP xavfsizligi
TOTP xavfsizligi secret key, vaqt, validation va recovery jarayonlariga bog‘liq.
TOTP xavfsizligida quyidagilar muhim:
- secret key maxfiyligi;
- QR code himoyasi;
- retry limit;
- rate limiting;
- time drift nazorati;
- recovery code boshqaruvi;
- backup method xavfsizligi;
- phishing xavfi;
- session va token bilan bog‘lanish.
TOTP authentication tizimining qo‘shimcha xavfsizlik qatlami sifatida ishlaydi.
Dasturlashdagi o‘rni
TOTP web, mobile, admin panel va enterprise tizimlarda 2FA va MFA kodlarini yaratish uchun ishlatiladigan muhim authentication mexanizmidir. U vaqt va secret key asosida bir martalik kod hosil qiladi.
TOTP quyidagi loyihalarda uchraydi:
- web ilovalar;
- mobile ilovalar;
- admin panellar;
- SaaS platformalar;
- banking tizimlari;
- developer accountlar;
- SSO tizimlari;
- cloud platformalar;
- enterprise portallar;
- API authentication jarayonlari.
TOTP foydalanuvchi va server o‘rtasida oldindan ulashilgan secret key va vaqt asosida qisqa muddatli authentication kod yaratadi.
Bog‘liq tushunchalar
OTP, HOTP, 2FA, MFA, Authentication, Authenticator app, QR code, Secret key, Session, Token, WebAuthn, Security