Replay Attack (การโจมตีแบบรีเพลย์) คืออะไร?
Replay Attack เป็นการโจมตีเครือข่ายที่ผู้โจมตี ดักจับ (Intercept) ข้อมูล/แพ็กเก็ตที่ถูกต้อง แล้ว ส่งซ้ำ (Re-transmit) หรือส่งล่าช้า (Delay) เพื่อหลอกให้ระบบปลายทางเชื่อว่าเป็นคำขอที่ถูกต้องและดำเนินการตาม
ลักษณะสำคัญ: ไม่ต้องถอดรหัส (Decrypt) ข้อมูล - เพียงแค่จับแพ็กเก็ตที่เข้ารหัสแล้วส่งซ้ำก็ทำงานได้ เพราะระบบปลายทางไม่สามารถแยกแยะได้ว่าเป็นแพ็กเก็ตใหม่หรือซ้ำ
ตัวอย่าง Replay Attack
- Authentication Replay - ดักจับ Token/Session ID/Cookie แล้วส่งซ้ำเพื่อเข้าระบบโดยไม่ต้องรหัสผ่าน
- Financial Transaction Replay - ดักจับคำสั่งโอนเงิน แล้วส่งซ้ำหลายครั้ง
- Keyless Entry Replay - ดักจับสัญญาณรีโมตกุญแจรถ แล้วส่งซ้ำเพื่อปลดล็อกรถ
- Kerberos Ticket Replay - ดักจับ Ticket-Granting Ticket (TGT) ใช้ใหม่
ประเภทของ Replay Attack
| ประเภท | คำอธิบาย |
|---|---|
| Simple Replay | ส่งแพ็กเก็ตเดิมซ้ำโดยไม่เปลี่ยนแปลง |
| Modified Replay | แก้ไขบางส่วนของแพ็กเก็ตแล้วส่ง (เช่น เปลี่ยนจำนวนเงิน) |
| Session Replay | รีเพลย์ทั้งเซสชัน (Session ID, Cookies) เพื่อเข้าควบคุมบัญชี |
| Wireless/Bluetooth Replay | ดักจับสัญญาณไร้สาย (Key fob, IoT) ส่งซ้ำ |
Replay Attack เป็น Active Attack หรือ Passive?
Active Attack (การโจมตีเชิงรุก) เพราะผู้โจมตีส่งแพ็กเก็ตเข้าไปในระบบอย่างตั้งใจ ไม่ใช่แค่ฟัง (Passive/Eavesdropping) แม้ว่าขั้นตอนแรกคือการดักจับ (Passive)
ความสัมพันธ์กับ Man-in-the-Middle (MitM)
Replay Attack มักเป็น ส่วนหนึ่งของ MitM Attack - ผู้โจมตีจับกลางการสื่อสาร ดักจับ แล้วส่งซ้ำ/แก้ไข แต่ Replay Attack อาจเกิดได้โดยไม่ต้องเป็น MitM (เช่น ดักจับจาก Wi-Fi แบบ Promiscuous Mode)
วิธีป้องกัน Replay Attack (Mitigation)
- Timestamp/Nonce - ใส่เวลาหรือตัวเลขสุ่มที่ใช้ครั้งเดียวในแต่ละคำขอ
- Session ID/Sequence Number - ตรวจสอบลำดับแพ็กเก็ต ไม่ยอมรับซ้ำ
- Challenge-Response Authentication - เซิร์ฟเวอร์ส่ง Challenge สุ่ม ลูกค้าตอบด้วยการคำนวณ (เช่น HMAC)
- One-Time Passwords (OTP) - รหัสผ่านใช้ครั้งเดียว (TOTP, HOTP)
- TLS/SSL with Replay Protection - ใช้ Sequence Number ใน Record Layer
- IPsec Anti-Replay Window - Sliding Window ตรวจสอบ Sequence Number
- Kerberos Authenticator + Timestamp - ตรวจสอบเวลา (Clock Skew ≤ 5 นาที)
สรุป: หลักการป้องกันคือ "ความเป็นเอกลักษณ์ของแต่ละคำขอ" (Uniqueness)
ทุกการสื่อสารต้องมีองค์ประกอบที่ไม่ซ้ำกัน (Nonce, Timestamp, Sequence) และฝั่งรับต้องตรวจสอบและจำค่าที่เคยเห็นไว้ (Replay Cache/Window)