วันศุกร์ที่ 13 ธันวาคม พ.ศ. 2562

md5 Message-Digest algorithm 5

MD5 คืออะไร??


md5 Message-Digest algorithm 5 หรือ md5 คือการเข้ารหัสข้อความ หรือไฟล์ โดยมีความละเอียดในการเข้ารหัส 128-bit ซึ่ง md5 ถือเป็นมาตรฐานตัวหนึ่งของระบบ internet คืออ้างอิงตามมาตรฐาน RFC 1321 md5 ถูกนำมาใช้เพื่อความปลอดภัยของข้อมูลหรือตัวไฟล์ โดยมีการทำงานในลักษณะ cryptographic hash function หรือ ชุดการเข้ารหัสที่จะทำให้ได้ผลลัพท์มีขนาดเท่ากันเสมอ ไม่ว่าข้อมูลก่อนจะถูกเข้ารหัสมีขนาดเท่าไรก็ตาม สำหรับผลลัพธ์ที่ได้ของ md5 นั้น จะเป็นตัวเลข ฐาน 6 ขนาด 32 bit เสมอ
การถอดรหัส จะต้องอาศัยข้อมูลที่มีอยู่ในฐานข้อมูลเท่านั้น เพราะว่า MD5 เป็นการเข้ารหัสทางเดียว จึงทำให้ไม่มี algorithm ในการถอดรหัสมาได้โดยตรง ดังนั้นหลายคำที่ไม่พบในฐานข้อมูลก็จะไม่สามารถถอดออกมาได้

MD5 Encryption


ใช้สำหรับการสร้างรหัสประจำตัวของไฟล์เพื่อให้แน่ใจว่าไฟล์จะเหมือนกันหลังจากการถ่ายโอนตัวอย่างเช่น
Hash MD5 ประกอบด้วยเลขฐานสิบหก  32 ตัว ป้อนคำในแบบฟอร์มการเข้ารหัส MD5 ด้านบนเพื่อทราบแฮช MD5 ที่สอดคล้องกัน



MD5  Hash คือ

การเข้ารหัสแบบ Hash (Cryptographic hash) หมายถึง การแปลงรูปแบบของข้อมูลที่รับเข้ามาไม่ว่าขนาดเท่าใดก็ตาม ให้อยู่ในอีกรูปแบบหนึ่งที่มีขนาดคงที่ เพราะฉะนั้น จะไม่สามารถเรียกดูข้อมูลต้นฉบับได้ (Decrypt) ทำได้เพียงตรวจสอบว่าข้อมูลที่ให้มาแต่ละครั้งเหมือนกันหรือไม่
ตัวอย่าเช่น กำหนดรหัส a เมื่อเป็น MD5 จะได้ 0cc175b9c0f1b6a831c399e269772661
แต่เราจะไม่สามารถรู้ว่าค่า 0cc175b9c0f1b6a831c399e269772661 เท่ากับ a
แต่ไม่ว่าจะป้อนค่า a กี่ครั้ง ค่า MD5 ก็จะได้ 0cc175b9c0f1b6a831c399e269772661 เหมือนเดิมทุกครั้ง

ในที่นี้ MD5 เป็นการเข้ารหัสแบบ 128-bit ให้ค่าเป็นตัวเลขฐาน 16 (0123456789abcd) ขนาด 32 ตัวอักษร แต่ก็มีบางประเภทที่ให้ค่าเป็น binary และ base64 (การเข้ารหัสอีกแบบ แต่สามารถถอดรหัสได้)

การใช้ MD5 นี้ก็นำไปใช้ในการเก็บข้อมูลที่ไม่ต้องการเปิดเผยเช่น เก็บรหัสผ่านไว้ในฐานข้อมูล ) แต่ที่นิยมคือการนำไปตรวจสอบความถูกต้องของไฟล์ สมมติว่ามีไฟล์สองไฟล์ ถ้าเนื้อหาในไฟล์เหมือนกันทุกประการ ก็จะได้ค่า MD5 เหมือนกัน

อย่างไรก็ตาม MD5 ไม่ได้มีความปลอดภัยแล้วในปัจจุบันเนื่องจากคอมพิวเตอร์ในปัจจุบันเร็วขึ้นมาก การแปลงค่า MD5 ทำได้เร็วขึ้น ก็สามารถทราบค่าต้นฉบับได้ภายในเวลาไม่นานนัก วิธีการนี้เรียกว่า Brute-Force (หาค่าตั้งแต่ a-z และนำไปเปรียบเทียบ จากนั้นก็เป็น aa-zz และต่อไปเรื่อยๆ) นอกเหนือไปจากนี้ยังมีวิธีการที่เ้รียกว่า Hash Collision (การชนกันของ Hash) ตัวอย่างเช่นสมมติค่าต้นฉบับคือ

'Test' ได้ MD5 คือ 098f6bcd4621d373cade4e832627b4f6
สามารถคำนวนหาคำว่า 'Wow' ที่ไ้ด้ค่า 098f6bcd4621d373cade4e832627b4f6 เช่นกัน
(แต่สมมติค่าเท่านั้นครับ)

เมื่อสามารถหาค่าที่ Collision  ได้แบบนี้ การโกงก็ไม่ยากครับ
สมมติว่ามีไฟล์นึงเป็น โปรแกรมกันไวรัส ให้ค่า MD5 มาค่านึง
โจร ก็สามารถทำ ไวรัส ที่ผ่านการคำนวณให้ได้ค่า MD5 เหมือนกันนั้น
ทีนี้เราก็จะไม่รู้เลยว่า ไฟล์ ที่ได้นั้นเป็น โปรแกรมกันไวรัส หรือ ไวรัส กันแน่


MD5 Decryption

เป็นขั้นตอนวิธีการเข้ารหัส 128 บิตซึ่งจะสร้างเลขฐานสิบหก 32 ตัวโดยไม่คำนึงถึงการป้อนข้อมูล
ขั้นตอนวิธีการนี้ไม่สามารถย้อนกลับได้ซึ่งปกติมันจะเป็นไปไม่ได้ที่จะหาคำเดิมจาก MD5
เครื่องมือที่เราใช้ฐานข้อมูลขนาดใหญ่เพื่อที่จะมีโอกาสที่ดีที่สุดของ cracling คำเดิม
เพียงแค่ใส่ MD5  Hash  ในรูปแบบดังกล่าวข้างต้นเพื่อถอดรหัส





อ้างอิง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น