Challenge-response — tekshiruvchi tomon oldindan aytib bo‘lmaydigan challenge yuborib, ikkinchi tomon maxfiy kalit yoki sirga egaligini undan hosil qilingan response orqali isbotlaydigan autentifikatsiya usulidir. Sirning o‘zi tarmoqdan yuborilmaydi. Har sessiyada yangi challenge ishlatilishi eski response’ni qayta uzatish hujumini cheklaydi.
Asosiy protokol
Verifier random nonce yaratib claimantga yuboradi. Claimant nonce va kontekstni secret key bilan MAC qiladi yoki private key bilan imzolaydi. Verifier o‘zidagi kalit yoki public key orqali response’ni tekshiradi. Natija mos bo‘lsa egalik isboti qabul qilinadi.
Challenge yetarli entropyga ega va takrorlanmas bo‘lishi kerak. Counter yoki timestamp ishlatilsa synchronization, wraparound va replay window talablari paydo bo‘ladi. Random generator bashorat qilinadigan bo‘lsa hujumchi response’ni oldindan tayyorlashi mumkin.
Simmetrik va ochiq kalitli model
Simmetrik usulda ikkala tomon bir secretni biladi. HMAC challenge-response sodda va tez, lekin verifier database buzilsa barcha secretlar oshkor bo‘lishi mumkin. Har qurilma yoki foydalanuvchiga alohida kalit berish zarar doirasini kamaytiradi.
Asimmetrik modelda claimant private key bilan imzolaydi, verifier faqat public key saqlaydi. Verifier buzilishi private keyni bermaydi. Sertifikat public keyni identity bilan bog‘laydi; revocation va amal muddati alohida boshqariladi.
Kontekstni bog‘lash
Faqat nonce’ni imzolash boshqa protokol yoki sessiyadan response ko‘chirish xavfini qoldirishi mumkin. Response ichiga protocol version, server nomi, session identifier, requested action va kanal konteksti kiritiladi. Canonical encoding ikki tomon bir xil baytlarni hisoblashini ta’minlaydi.
Channel binding autentifikatsiyani aynan TLS sessiyasiga bog‘lab, relay yoki man-in-the-middle xavfini kamaytiradi. Mutual challenge ikkala tomonning ham kalitga egaligini tekshirishi mumkin.
Parolga asoslangan holat
Oddiy hash(password, challenge) sxemasi eavesdropperga offline dictionary attack imkonini berishi mumkin: u taxminiy parollar bilan response hisoblab solishtiradi. Password-authenticated key exchange kabi maxsus protokollar zaif parol uchun yaxshiroq himoya beradi. Yangi kriptografik protokolni mustaqil loyihalash tavsiya etilmaydi.
Server parolning o‘zini emas, mos password verifier saqlashi kerak. Salt va sekin KDF database buzilishida taxmin qilish narxini oshiradi. Rate limit online urinishlarni cheklaydi.
Amaliy qo‘llanish
Hardware token, smart card, SSH public-key autentifikatsiyasi va ayrim device provisioning jarayonlari challenge-response g‘oyasidan foydalanadi. Biometrik sensor bilan ishlaganda liveness va device attestation qo‘shimcha qatlam bo‘ladi.
Audit nonce takrorlanishi, signature failure va vaqt nomuvofiqligini qayd etadi, lekin secret yoki to‘liq sensitive response logga yozilmaydi. Kalit rotation paytida eski va yangi key identifier aniq uzatiladi.
Relay hujumi
Hujumchi challenge va response’ni real claimant bilan verifier orasida jonli relay qilsa, oddiy yangilik tekshiruvi buni replay deb ko‘rmaydi. Proximity talab qiladigan access card tizimida distance-bounding protokoli javob vaqtini o‘lchab relay masofasini cheklashga urinadi. Web autentifikatsiyada origin va TLS channel binding credentialni soxta saytga uzatish xavfini kamaytiradi. FIDO authenticator response’ga relying party identifikatori va client data hashini qo‘shadi. Foydalanuvchi tasdig‘i aynan qaysi amal imzolanayotganini ko‘rsatishi transaction substitutionga qarshi muhim.
Challenge-response protokoli downgrade hujumini ham hisobga oladi. Hujumchi eski algoritm yoki qisqa challenge variantini tanlatmasligi uchun muzokara qilingan algorithm, version va capability response ichida autentifikatsiyalanadi. Error xabari “identity mavjud emas” va “response noto‘g‘ri” holatlarini tashqariga bir xil ko‘rsatib, account enumerationni kamaytiradi. Server verification vaqtini imkon qadar bir xil tutadi. Autentifikatsiya muvaffaqiyatli bo‘lgach session key alohida KDF bilan kontekstga bog‘lab hosil qilinadi.
Bog‘liq tushunchalar
Nonce, HMAC, Digital signature, Replay attack, PAKE, Authentication