Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

MD5 ในความมั่นคงปลอดภัยข้อมูลคืออะไร? หลักการทำงานและข้อจำกัด

MD5 (Message-Digest Algorithm) เป็นโปรโตคอลทางเข้ารหัสใช้สำหรับยืนยันข้อความ ตรวจสอบความสมบูรณ์ของเนื้อหา และลายเซ็นดิจิทัล ทำงานบนฟังก์ชันแฮชที่ตรวจสอบว่าไฟล์ที่ส่งตรงกับไฟล์ที่รับฝ่ายได้รับหรือไม่

หลักการทำงาน

MD5 เป็นรุ่นที่ 5 ของ Message-Digest Algorithm ที่ロン รีเวสต์ (Ron Rivest) พัฒนา สร้าง Message Digest 128 บิต กระบวนการ:

  1. แปลงข้อความธรรมดาเป็นบล็อก 512 บิต
  2. แบ่งแต่ละบล็อกเป็น 16 ส่วนย่อย ส่วนละ 32 บิต
  3. ประมวลผลผ่าน 5 ขั้นตอน: Padding, Append Length, แบ่งบล็อก 512 บิต, เริ่มต้น Chaining Variables และ 4 รอบการประมวลผล
  4. ใช้ค่าคงที่ต่างๆ ในแต่ละรอบ
  5. ผลลัพธ์คือ Message Digest 128 บิต (4 วิร์ด × 32 บิต)

การใช้งานหลัก

  • Checksum สำหรับเอกสาร: สร้างแฮชเฉพาะตัวสำหรับไฟล์ ผู้ใช้คำนวณแฮชของไฟล์ที่ดาวน์โหลดมาเปรียบเทียบ หากตรงกัน = ไฟล์ไม่ถูกปลอมแปลง
  • ยืนยันตัวตนไฟล์: ใช้ MD5 hash เช็คไฟล์สำเนากับต้นฉบับ รวดเร็วกว่าเช็คทีละบิต
  • เก็บรหัสผ่านแบบหนึ่งทาง: ระบบปฏิบัติการ UNIX หลายระบบรองรับ MD5 checksum ในแพ็กเกจการกระจาย

ข้อจำกัดและช่องโหว่สำคัญ

นักวิจัยพบว่า MD5 ไม่ทนทานต่อการโจมตี Collision (Collision Resistance) — สามารถสร้างไฟล์สองไฟล์ที่ต่างกันแต่ให้ค่าแฮช MD5 เหมือนกันได้ เนื่องจาก:

  • โปรโตคอลการยืนยันตัวตนชื่อดังอย่าง SSL/TLS ต้องการความทนทานต่อ Collision
  • MD5 จึงถูกแทนที่ด้วยอัลกอริทึมแฮชใหม่ๆ เช่น SHA-256, SHA-3

ปัจจุบัน MD5 ใช้ได้เฉพาะสำหรับ การตรวจสอบความสมบูรณ์ไฟล์ทั่วไป (non-security checksum) ไม่ควรใช้ในงานเข้ารหัส ลายเซ็นดิจิทัล หรือการยืนยันตัวตนที่ต้องการความปลอดภัยสูง