Bosh sahifa Wiki HOTP

HOTP

HOTPHMAC-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:

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

HMACHash-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 truncationHMAC 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 synchronizationserver 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

Resynchronizationserver 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 windowserver 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:

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:

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:

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:

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:

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