HOTP — HMAC-Based One-Time Password, ya’ni HMAC algoritmiga asoslangan bir martalik parol. HOTP foydalanuvchini tasdiqlash uchun counter qiymati asosida kod yaratadi. Bu kod odatda authentication, 2FA, MFA va hardware token tizimlarida ishlatiladi.
HOTP OTP oilasiga kiradi. TOTP vaqtga asoslangan bo‘lsa, HOTP hisoblagich, ya’ni counter qiymatiga asoslanadi.
Vazifasi
HOTP foydalanuvchini bir martalik kod orqali tasdiqlash uchun ishlatiladi.
HOTP quyidagi vazifalarni bajaradi:
- bir martalik authentication kodi yaratish;
- 2FA yoki MFA jarayonida ikkinchi omil sifatida ishlash;
- hardware token orqali kod berish;
- foydalanuvchi qurilmasini tasdiqlash;
- login jarayonini kuchaytirish;
- paroldan tashqari qo‘shimcha tekshiruv yaratish;
- offline holatda kod yaratish;
- counter asosida OTP ishlab chiqarish.
Masalan, foydalanuvchi hardware token qurilmasidagi tugmani bosganda yangi HOTP kodi hosil bo‘lishi mumkin.
HOTP qanday ishlaydi?
HOTP foydalanuvchi va server o‘rtasida oldindan ulashilgan maxfiy secret key va counter qiymati asosida kod yaratadi. Har safar yangi kod yaratilganda counter oshadi.
Oddiy jarayon:
- tizim foydalanuvchi uchun secret key yaratadi;
- server va foydalanuvchi qurilmasi bir xil secret keyga ega bo‘ladi;
- qurilma counter qiymati asosida HOTP kod yaratadi;
- foydalanuvchi kodni tizimga kiritadi;
- backend shu secret key va counter asosida kodni tekshiradi;
- kod mos kelsa, authentication muvaffaqiyatli bo‘ladi;
- counter qiymati yangilanadi.
HOTP’da vaqt emas, kod necha marta yaratilgani muhim hisoblanadi.
Secret key
Secret key — HOTP kodlarini yaratish uchun ishlatiladigan maxfiy qiymat. Bu qiymat serverda va foydalanuvchining authenticator qurilmasida saqlanadi.
Secret key quyidagilar uchun kerak:
- foydalanuvchiga alohida kodlar yaratish;
- server va token qurilmasini bog‘lash;
- HMAC hisoblashda asosiy maxfiy qiymat bo‘lish;
- kodlarni boshqa foydalanuvchilarnikidan farqlash.
Secret key maxfiy saqlanishi kerak, chunki u orqali HOTP kodlari hosil qilinadi.
Counter
Counter — HOTP kodini yaratishda ishlatiladigan hisoblagich qiymati. Har bir yangi kod yaratilganda counter oshadi.
Counter quyidagilarni bildiradi:
- nechanchi kod yaratilayotganini;
- server va client holatini;
- keyingi kod qaysi qiymat asosida hosil bo‘lishini;
- eski kod qayta ishlatilmasligini.
HOTP’da counter server va foydalanuvchi qurilmasida mos bo‘lishi muhim.
HMAC
HMAC — Hash-based Message Authentication Code. HOTP kod yaratishda secret key va counter qiymati HMAC orqali qayta ishlanadi.
HMAC quyidagilarni ta’minlaydi:
- secret key asosida kod yaratish;
- counter qiymatini kriptografik hisoblash;
- bir xil secret va counter uchun bir xil natija olish;
- secret keyni bevosita oshkor qilmaslik;
- kodni tasodifiyga o‘xshash ko‘rinishda hosil qilish.
HOTP odatda HMAC-SHA1 algoritmiga asoslangan bo‘ladi.
HOTP kodi
HOTP kodi odatda qisqa raqamli qiymat bo‘ladi.
HOTP kod formatlari:
- 6 xonali kod;
- 7 xonali kod;
- 8 xonali kod;
- maxsus uzunlikdagi raqamli kod.
Misollar:
482913;019274;778201;935014.
Kod foydalanuvchi tomonidan login yoki tasdiqlash formasiga kiritiladi.
Dynamic truncation
Dynamic truncation — HMAC natijasidan qisqa raqamli OTP kod hosil qilish jarayoni. HMAC natijasi uzun binary qiymat bo‘ladi, dynamic truncation esa undan foydalanuvchi kiritishi mumkin bo‘lgan qisqa kod yaratadi.
Dynamic truncation orqali:
- uzun HMAC natijasi qisqartiriladi;
- kod raqamli formatga keltiriladi;
- belgilangan uzunlikdagi OTP hosil qilinadi;
- har bir counter uchun alohida kod olinadi.
Bu HOTP algoritmining muhim qismlaridan biridir.
HOTP va OTP
HOTP OTP’ning bir turi hisoblanadi. OTP umumiy tushuncha bo‘lsa, HOTP aynan HMAC va counter asosidagi OTP modelidir.
Bog‘liqlik:
- OTP — bir martalik parol;
- HOTP — HMAC va counter asosidagi bir martalik parol;
- barcha HOTP kodlari OTP hisoblanadi;
- barcha OTP kodlari HOTP bo‘lishi shart emas;
- HOTP algoritmik kod yaratadi;
- SMS OTP server tomonidan yuborilishi mumkin.
HOTP OTP standartlaridan biri sifatida authentication tizimlarida ishlatiladi.
HOTP va TOTP farqi
HOTP va TOTP bir-biriga yaqin, lekin asosiy farqi kodni yaratishda ishlatiladigan qiymatda.
Farqlar:
- HOTP counter asosida ishlaydi;
- TOTP vaqt asosida ishlaydi;
- HOTP kod har safar counter oshganda o‘zgaradi;
- TOTP kod ma’lum vaqt oralig‘ida o‘zgaradi;
- HOTP hardware tokenlarda uchrashi mumkin;
- TOTP authenticator app’larda keng ishlatiladi.
TOTP HOTP’ning vaqtga asoslangan varianti sifatida qaraladi.
Counter synchronization
Counter synchronization — server va foydalanuvchi qurilmasidagi counter qiymatlarini mos saqlash jarayoni. HOTP’da bu juda muhim, chunki counter mos kelmasa, kod ham mos kelmaydi.
Counter synchronization quyidagi holatlarda buzilishi mumkin:
- foydalanuvchi qurilmada kod yaratib, tizimga kiritmasa;
- token tugmasi tasodifan ko‘p marta bosilsa;
- server counteri yangilanmasa;
- foydalanuvchi va server holati farq qilsa.
Counter mosligi HOTP validation jarayonining asosiy qismidir.
Resynchronization
Resynchronization — server va token qurilmasi counter qiymatlari farqlanib ketganda ularni qayta moslashtirish jarayoni.
Resynchronization quyidagilar orqali bajarilishi mumkin:
- bir nechta ketma-ket kod so‘rash;
- server tomonida oldinga qarab counter qidirish;
- administrator orqali tokenni qayta ulash;
- yangi secret key yaratish;
- tokenni qayta ro‘yxatdan o‘tkazish.
Bu jarayon HOTP tokenlar ishlamay qolganda qo‘llanadi.
Look-ahead window
Look-ahead window — server counter qiymatidan keyingi bir nechta ehtimoliy kodlarni ham tekshiradigan oynadir. Bu foydalanuvchi qurilmasidagi counter servernikidan oldinga ketib qolgan holatlarda ishlatiladi.
Look-ahead window orqali:
- server joriy counterdan keyingi kodlarni tekshiradi;
- mos kod topilsa, server counteri yangilanadi;
- foydalanuvchi tokeni qayta moslashadi;
- kichik counter farqlari muammo bo‘lmaydi.
Masalan, server keyingi 10 ta counter qiymati bo‘yicha kodlarni tekshirishi mumkin.
Hardware token
Hardware token — HOTP kodlarini yaratadigan jismoniy qurilma. U foydalanuvchi qo‘lida bo‘ladi va tugma bosilganda yangi kod chiqaradi.
Hardware token xususiyatlari:
- alohida qurilma bo‘ladi;
- internet talab qilmasligi mumkin;
- ichida secret key saqlaydi;
- counter asosida kod yaratadi;
- korporativ tizimlarda ishlatilishi mumkin.
HOTP tarixan hardware tokenlarda keng ishlatilgan.
Software token
Software token — dastur yoki mobil ilova orqali OTP kod yaratadigan token turi. HOTP software token sifatida ham ishlashi mumkin.
Software token quyidagilarda uchrashi mumkin:
- authenticator app;
- desktop authentication ilova;
- enterprise security agent;
- mobile banking app;
- ichki korporativ ilova.
Software token qurilma ichida secret key va counter qiymatini saqlaydi.
Token enrollment
Token enrollment — HOTP tokenni foydalanuvchi akkauntiga ulash jarayoni.
Enrollment jarayonida:
- secret key yaratiladi;
- foydalanuvchi token qurilmasi bilan bog‘lanadi;
- boshlang‘ich counter belgilanadi;
- birinchi kod tekshiriladi;
- token aktiv holatga o‘tkaziladi.
Bu jarayon server va token qurilmasi o‘rtasida umumiy holat yaratadi.
HOTP validation
HOTP validation — foydalanuvchi kiritgan HOTP kodni backend tomonidan tekshirish jarayoni.
Validation bosqichlari:
- foydalanuvchi ID’si aniqlanadi;
- unga tegishli secret key olinadi;
- server counter qiymatini oladi;
- HOTP kod hisoblanadi;
- foydalanuvchi kiritgan kod bilan solishtiriladi;
- kerak bo‘lsa look-ahead window tekshiriladi;
- kod mos kelsa, counter yangilanadi.
Validationdan o‘tgan kod authenticationni tasdiqlaydi.
HOTP storage
HOTP tizimi secret key va counter qiymatini saqlashi kerak. Bu ma’lumotlar backend storage’da turadi.
HOTP storage ichida quyidagilar bo‘lishi mumkin:
- user ID;
- secret key;
- counter qiymati;
- token holati;
- oxirgi ishlatilgan vaqt;
- enrollment vaqti;
- retry count;
- lock status.
Secret key va counter HOTP tizimining asosiy saqlanadigan ma’lumotlari hisoblanadi.
Retry limit
Retry limit — foydalanuvchi HOTP kodni necha marta noto‘g‘ri kiritishi mumkinligini cheklash mexanizmi.
Retry limit quyidagilar uchun ishlatiladi:
- kodni taxmin qilishni cheklash;
- brute force urinishlarini kamaytirish;
- token xavfsizligini oshirish;
- account lockout jarayonini boshqarish.
Masalan, foydalanuvchi kodni bir necha marta noto‘g‘ri kiritsa, token vaqtincha bloklanishi mumkin.
Rate limiting
Rate limiting — HOTP kodini tekshirish urinishlarini vaqt bo‘yicha cheklash mexanizmi.
Rate limiting quyidagi joylarda qo‘llanadi:
- login 2FA tekshiruvi;
- token validation endpoint;
- resynchronization jarayoni;
- account recovery;
- admin tasdiqlash amallari.
Bu mexanizm backendga ko‘p so‘rov yuborish va kodni taxmin qilish xavfini kamaytiradi.
Replay attack
Replay attack — avval ishlatilgan HOTP kodni qayta ishlatishga urinish. HOTP counter asosida ishlagani uchun muvaffaqiyatli validationdan keyin eski counter qiymati yaroqsiz bo‘ladi.
Replay attackni cheklashda:
- counter yangilanadi;
- eski kodlar qabul qilinmaydi;
- validationdan o‘tgan kod qayta ishlatilmaydi;
- audit log yozilishi mumkin.
HOTP’da counter boshqaruvi replay attack xavfini kamaytiradi.
HOTP va 2FA
HOTP 2FA tizimlarida ikkinchi authentication omili sifatida ishlatilishi mumkin.
2FA jarayonida HOTP:
- foydalanuvchi parolini tekshirgandan keyin so‘raladi;
- hardware yoki software token orqali kod beradi;
- backend kodni counter asosida tekshiradi;
- kod to‘g‘ri bo‘lsa, session yoki token yaratiladi.
HOTP paroldan tashqari foydalanuvchi qurilmasiga ega ekanini tasdiqlashga yordam beradi.
HOTP va MFA
MFA tizimlarida HOTP omillardan biri sifatida ishlatilishi mumkin. U boshqa authentication usullari bilan birga ishlaydi.
MFA’da HOTP quyidagilar bilan birga kelishi mumkin:
- parol;
- smart card;
- biometric authentication;
- hardware key;
- device verification;
- admin approval.
HOTP MFA arxitekturasida bir martalik kodga asoslangan tasdiqlash qatlami hisoblanadi.
HOTP va session
HOTP muvaffaqiyatli tekshirilgandan keyin tizim foydalanuvchi uchun session yaratishi yoki mavjud sessionni tasdiqlangan holatga o‘tkazishi mumkin.
Session ichida quyidagilar saqlanishi mumkin:
- foydalanuvchi login holati;
- HOTP tasdiqlanganligi;
- MFA bosqichi bajarilganligi;
- authentication method;
- session muddati;
- risk darajasi.
Session orqali tizim foydalanuvchi qo‘shimcha authenticationdan o‘tganini biladi.
HOTP va token
Token-based authentication tizimlarida HOTP access token berishdan oldin tekshirilishi mumkin.
Jarayon:
- foydalanuvchi login va parol yuboradi;
- backend parolni tekshiradi;
- HOTP challenge yaratadi;
- foydalanuvchi HOTP kod yuboradi;
- backend kodni tekshiradi;
- access token va refresh token qaytariladi.
Bu model API va mobile ilovalarda 2FA oqimi sifatida ishlashi mumkin.
HOTP va offline ishlash
HOTP kodlari serverdan har safar yuborilmaydi. Token qurilmasi secret key va counter asosida kodni o‘zi hisoblaydi.
Offline ishlash xususiyatlari:
- token internetga ulanmasligi mumkin;
- SMS yoki email yuborish shart emas;
- kod local qurilmada yaratiladi;
- server faqat kodni tekshiradi;
- counter mosligi talab qilinadi.
Bu xususiyat HOTP’ni ayrim korporativ va maxsus qurilmalarda qulay qiladi.
HOTP va SMS OTP farqi
HOTP va SMS OTP ikkalasi ham bir martalik kod ishlatadi, lekin ishlash modeli farq qiladi.
Farqlar:
- HOTP kodni token qurilmasi yoki ilova yaratadi;
- SMS OTP kod server tomonidan yaratiladi va SMS orqali yuboriladi;
- HOTP counter asosida ishlaydi;
- SMS OTP odatda vaqtinchalik server storage’da saqlanadi;
- HOTP mobil operatorga bog‘liq emas;
- SMS OTP telefon tarmog‘iga bog‘liq.
HOTP kodni yetkazish kanaliga emas, oldindan ulashilgan secret va counterga tayanadi.
HOTP va WebAuthn farqi
HOTP va WebAuthn authenticationda ishlatilishi mumkin, lekin texnik modeli farq qiladi.
Farqlar:
- HOTP bir martalik raqamli kod ishlatadi;
- WebAuthn public key cryptography asosida ishlaydi;
- HOTP kod foydalanuvchi tomonidan kiritiladi;
- WebAuthn browser va authenticator orqali kriptografik tasdiqlash bajaradi;
- HOTP phishingga sezgir bo‘lishi mumkin;
- WebAuthn phishing-resistant authentication uchun ishlatiladi.
WebAuthn zamonaviy parolsiz yoki kuchli authentication tizimlarida keng qo‘llanadi.
HOTP xavfsizligi
HOTP xavfsizligi secret key, counter, validation va retry boshqaruviga bog‘liq.
HOTP xavfsizligida quyidagilar muhim:
- secret key maxfiyligi;
- counter qiymatini to‘g‘ri saqlash;
- replay attackni cheklash;
- retry limit;
- rate limiting;
- token yo‘qolgan holatda recovery;
- resynchronization nazorati;
- kodni logga chiqarmaslik;
- phishing xavfini hisobga olish.
HOTP noto‘g‘ri boshqarilsa, authentication jarayonida zaiflik paydo bo‘lishi mumkin.
Dasturlashdagi o‘rni
HOTP authentication tizimlarida counter asosida bir martalik kod yaratish uchun ishlatiladigan muhim OTP modelidir. U 2FA, MFA, hardware token va ayrim enterprise xavfsizlik tizimlarida qo‘llanadi.
HOTP quyidagi loyihalarda uchraydi:
- web ilovalar;
- admin panellar;
- enterprise tizimlar;
- VPN login;
- banking tizimlari;
- hardware token tizimlari;
- 2FA platformalar;
- MFA xizmatlari;
- API authentication jarayonlari;
- korporativ SSO tizimlari.
HOTP maxfiy secret key va counter qiymati asosida bir martalik authentication kod yaratadigan mexanizmdir.
Bog‘liq tushunchalar
OTP, TOTP, Authentication, 2FA, MFA, HMAC, Secret key, Counter, Hardware token, Session, Token, Security