Message Authentication Code (MAC) คืออะไร?
รหัสยืนยันข้อความ (Message Authentication Code) เป็น Checksum แบบ Cryptographic ที่คำนวณจาก ข้อความ (Message) + Secret Key (K) ใช้ตรวจสอบ:
1. Integrity: ข้อความไม่ถูกเปลี่ยนแปลงระหว่างทาง
2. Authenticity: ข้อความมาจากผู้ส่งที่แท้จริง (ครอบครอง Secret Key)
วิธีสร้าง MAC
- 双方ต้องมี Shared Secret Key (K) ล่วงหน้า (เช่น DES Key)
- Sender นำ Message + Key ไปคำนวณด้วย MAC Algorithm (เช่น HMAC-SHA256, HMAC-SHA1, CMAC-AES)
- ส่ง Message + MAC Tag ไปยัง Receiver
- Receiver คำนวณ MAC ใหม่จาก Message ที่ได้ + Key เดียวกัน -> เปรียบเทียบกับ MAC ที่ได้รับ -> ตรงกัน = Valid
MAC เรียกอีกอย่างว่า?
Keyed Hash Function (ฟังก์ชันแฮชที่มีคีย์) ต่างจาก Digital Signature ที่ใช้ Private Key ลงนาม (Asymmetric) MAC ใช้ Symmetric Key
กระบวนการยืนยันข้อความ (Message Authentication Process)
ยืนยันว่า ข้อความที่ส่งมา แท้จริง (Authentic) และ ไม่ถูกแก้ไข (Integrity) MAC Processing ให้ความมั่นใจว่าข้อความไม่ถูกปลอมแปลง
MAC เหมือน Encryption ไหม?
ไม่เหมือน** Encryption = ปกป้องความลับ (Confidentiality) ทำให้อ่านไม่เข้าใจ
MAC = ปกป้องความสมบูรณ์และแท้จริง (Integrity + Authenticity) ไม่ได้เข้ารหัสข้อความ (ยกเว้น AEAD modes เช่น AES-GCM, ChaCha20-Poly1305)
ตรวจสอบว่า Email มี Authentication ไหม (Gmail)
- เปิด Gmail App (Android)
- เปิดอีเมล -> View Details > Security Details
- ดู SPF, DKIM, DMARC Pass/Fail
การโจมตีต่อ Message Authentication
- Content Modification: เปลี่ยนเนื้อหาข้อความ
- Sequence Modification: แทรก/ลบ/เรียงลำดับข้อความใหม่
- Timing Modification: Delay / Replay ข้อความเก่า
ข้อกำหนดความปลอดภัยของ Message Authentication
- Confidentiality: ป้องกันการเปิดเผยเนื้อหา (ต้องใช้ Encryption ร่วมกับ MAC)
- Traffic Analysis Resistance: ป้องกันการวิเคราะห์รูปแบบการสื่อสาร
- Anti-Masquerade: ป้องกันการปลอมแปลงตัวตน Sender
วิธีการ Authenticate ข้อความ (Authentication Methods)
- DES/CBC-MAC: ใช้ Block Cipher (DES/AES) แบบ CBC
- HMAC (Hash-based MAC): HMAC-SHA256, HMAC-SHA1 (มาตรฐานมากที่สุด)
- CMAC (Cipher-based MAC): AES-CMAC
- GMAC (Galois MAC): ใช้กับ AES-GCM (Authenticated Encryption)
เป้าหมายของ Message Authentication
รักษา Integrity (ความสมบูรณ์) ของข้อความ -> รับข้อความได้เหมือนเดิมที่ส่ง (ไม่เพิ่ม ไม่หาย ไม่เปลี่ยน)
MAC vs Hash Value
ต่างกัน: Hash (SHA256) = Integrity เท่านั้น (ไม่มี Key ใครก็คำนวณได้) MAC = Integrity + Authenticity (ต้องมี Secret Key)
สิ่งที่จำเป็นสำหรับ MAC
- Cryptographic Key (Symmetric Key)
- Message Input
- MAC Algorithm (Public)
- Output: MAC Tag (Fixed Length)