Replay attack — attacker oldin yozib olingan qonuniy message, token, request yoki authentication ma’lumotini keyinroq qayta yuborib, tizimni uni yangi amal sifatida qabul qilishga majbur qiladigan hujum. Attacker message mazmunini tushunmasligi ham mumkin; ayni byte’larni qayta yuborish yetarli bo‘lishi ehtimoli bor.
Replay xavfi authentication, payment, API, wireless protocol va distributed message tizimlarida uchraydi.
Oddiy misol
User bankka imzolangan transfer request yuboradi.
Attacker encrypted trafficni o‘qiy olmasa ham requestni yozib olib qayta uzatadi.
Agar server requestning oldin ishlatilganini tekshirmasa transfer takrorlanishi mumkin.
Encryption maxfiylik beradi, ammo freshnessni avtomatik kafolatlamaydi.
Nonce
Nonce — bir marta ishlatiladigan tasodifiy yoki unique qiymat.
Client requestga nonce qo‘shadi va signature ichiga kiritadi.
Server ishlatilgan noncelarni saqlaydi yoki ma’lum intervalda unique ekanini tekshiradi.
Ayni nonce bilan replay rad etiladi.
Timestamp
Requestga vaqt qo‘shiladi.
Server faqat ma’lum tolerance ichidagi timestampni qabul qiladi.
Masalan, juda eski request rad etiladi.
Timestampning o‘zi yetarli emas: attacker qisqa vaqt oynasida ayni requestni qayta yuborishi mumkin. Nonce yoki sequence ham kerak.
Sequence number
Har message monoton oshuvchi raqamga ega.
Receiver oxirgi qabul qilingan sequence’ni saqlaydi.
Oldingi yoki takroriy raqam rad etiladi.
Packet reorder bo‘lishi mumkin bo‘lgan protocol uchun sliding window ishlatiladi.
Challenge-response
Server clientga yangi tasodifiy challenge yuboradi.
Client uni secret yoki private key bilan bog‘lab javob beradi.
Oldingi javob boshqa challenge uchun yaroqsiz.
Bu parolning o‘zini tarmoqda yubormasdan identity tekshirishga yordam beradi.
Idempotency key
API operationiga unique idempotency key beriladi.
Server shu key bilan oldingi natijani saqlaydi.
Client timeoutdan keyin requestni qayta yuborsa yangi side effect emas, oldingi natija qaytariladi.
Bu qonuniy retry va replay xavfini birga boshqaradi.
Token replay
O‘g‘irlangan access token muddati tugamaguncha boshqa qurilmada ishlatilishi mumkin.
Himoya:
- qisqa lifetime;
- audience va scope;
- secure storage;
- sender-constrained token;
- device bindingga yaqin signal;
- rotation;
- revocation.
Bearer tokenni kim ushlasa ishlata oladi.
Cookie replay
Session cookie capture qilinsa attacker user sessionini takrorlashi mumkin.
HTTPS, Secure va HttpOnly cookie himoyani kuchaytiradi.
Server suspicious device yoki geografik o‘zgarishda sessionni qayta tasdiqlashi mumkin.
MFA replay
Bir martalik kod real-time phishing orqali hali amal qilayotgan paytda qayta ishlatilishi mumkin.
TOTP kod qisqa windowga ega bo‘lsa ham attacker uni darhol uzatadi.
Passkey challenge va originni cryptographic bog‘laydi, shu sababli phishing va replayga chidamliroq.
Signed request
Signature payload, timestamp, nonce, method va pathni qamrab oladi.
Agar signature faqat body’ni qoplasa attacker ayni body’ni boshqa endpointga yuborishi mumkin.
Canonicalization qoidasi client va serverda bir xil bo‘lishi kerak.
Message broker
Event consumer ayni message’ni retry sabab bir necha marta olishi mumkin.
Bu har doim hujum emas, lekin replayga o‘xshash natija beradi.
Event ID, inbox table va idempotent handler duplicate side effectni oldini oladi.
Wireless protocol
Wireless signal capture qilinib command qayta yuborilishi mumkin.
Masalan, fixed code ishlatadigan eski remote control.
Rolling code yoki challenge-response oldingi signalni yaroqsiz qiladi.
Counter synchronization va resync qoidalari ehtiyotkor tuziladi.
Distributed tizim
Node restartdan keyin ishlatilgan nonce yoki sequence state yo‘qolsa eski message yana qabul qilinishi mumkin.
Anti-replay state durable storage’da yoki tokenning o‘zida xavfsiz window bilan saqlanadi.
State cleanup juda erta bajarilmaydi.
Clock skew
Timestamp tekshiruvi server va client soatlari farqiga duch keladi.
Juda katta tolerance replay oynasini kengaytiradi.
Juda kichik tolerance qonuniy requestlarni rad etadi.
Time synchronization va nonce birga ishlatiladi.
Aniqlash
Replay indikatorlari:
- ayni request ID;
- duplicate signature;
- eski timestamp;
- past sequence;
- bir tokenning turli joyda ishlatilishi;
- bir payment commandining takrori;
- g‘ayrioddiy retry soni.
Loglar sensitive tokenning o‘zini saqlamasdan hash yoki ID bilan bog‘laydi.
Himoya
Asosiy vositalar:
- nonce;
- timestamp;
- sequence number;
- challenge-response;
- idempotency key;
- token rotation;
- short expiry;
- cryptographic signature;
- anti-replay cache.
Har protocol o‘z threat modeliga mos combination tanlaydi.
Canonical request
Signature tekshiruvida header, query va body bir xil canonical formatga keltiriladi. Client va server bo‘sh joy, encoding yoki field tartibini boshqacha talqin qilsa qonuniy request rad etiladi yoki ayrim field signature’dan tashqarida qoladi. Specification aniq va testlangan bo‘ladi.
Anti-replay cache hajmi
Har nonce’ni abadiy saqlash mumkin emas. Server faqat qabul qilinadigan timestamp oynasidagi nonce’larni saqlaydi va eskilarini tozalaydi. Window ichida cache yetarli capacityga ega bo‘lishi kerak. Attacker ko‘p tasodifiy nonce bilan cache’ni to‘ldirishga urinishi mumkin.
Logout va revocation
Session token replay qilingan bo‘lsa user logout qilganda server tokenni yaroqsiz qilishi kerak. Faqat client cookie’ni o‘chirish attacker nusxasini bekor qilmaydi. Server-side session, token version yoki revocation ro‘yxati ishlatilishi mumkin.
Bog‘liq tushunchalar
Nonce, Timestamp, Sequence number, Challenge-response, Idempotency key, Token replay, Session hijacking, Digital signature, Anti-replay window, Authentication