เมนูหน้าเว็บ

วันพฤหัสบดีที่ 23 กรกฎาคม พ.ศ. 2552

การเข้ารหัสแบบ MD5 คืออะไร?

ถ้าพูดถึงวิธีในการรักษาปลอดภัยของข้อมูล ไม่ให้โดนล้วงไปอ่านง่ายๆ หลายคนจะนึกถึงวิธีเข้ารหัส จะเข้ารหัสยังไงก็ได้ ให้มันอ่านไม่รู้เรื่องเข้าไว้ เพื่อให้คนที่ขโมยข้อมูลไปนั้น ไม่สามารถอ่านได้อย่างง่ายดาย
การเข้ารหัส มันก็มีอยู่สารพัดวิธี สุดแล้วแต่ใครจะคิดได้ ไม่ว่าจะเป็นวิธีที่โบราณสุดๆ อย่าง Ceasar Cipher ไปจนถึงวิธีที่กำลังนิยมในปัจุบันอย่าง Key-encryption แต่ที่พูดถึงกันมากก็คือ MD5
Ronald Rivest คนคิด MD5 และหนึ่งในผู้ร่วมสร้าง RSA หน้าตาเป็นงี้แหละ

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

ถ้าพูดตามทฤษฏีก็คือ
MD5 เป็น Hashing Algorithm ครับ ไม่ใช่ Encryption

Hashing Algorithm หรือ Hashing Function นั้น เป็นลักษณะของการนำข้อมูลมาเข้าฟังก์ชันซักตัวนึง เพื่อให้ได้ค่าออกมาอีกค่าหนึ่ง

......แล้ว Hashing Function มันเอาไปเข้ารหัสไม่ได้หรือ?? huh.gif

ก็ แล้วแต่จะนำไปประยุกต์ใช้ครับ แต่ใน MD5 จะใช้ Hashing Function ในการสร้าง Digest ขึ้นมา เจ้า Digest เนี่ย จะเป็นข้อมูลที่มีความยาวคงที่ 128 bits ไม่ว่าข้อมูลจะมหาศาลซักเท่าใดก็ตาม ซึ่ง Digest ก็จะได้มาจากผลลัพธ์ของการนำข้อมูลของเรา ไปเข้า Hashing Function นี่แหละครับ

บางคนหัวใส(ไม่ใช่หัวล้าน) เอา Digest ไปย้อนกลับเข้า MD5 อีกครั้งนึง...หมดสิทธิ์ครับ เพราะ MD5 เป็นฟังก์ชันในลักษณะของ One-way Function เอาคำตอบย้อนกลับทำวิธีเดิมในลักษณะตรงกันข้าม หรือย้อนกลับเข้า Input อีกรอบ ก็ไม่ได้ค่าเดิมครับ tongue.gif

ข้อมูล 1 ตัว เมื่อนำไปผ่าน MD5 จะได้ Digest ขึ้นมา 1 ตัว เช่น
Thaiflashdev จะมี Digest เป็น 9e1afdaa0bac2ace1c692d711af10b6c
และถ้าลองเปลี่ยนข้อมูลซักนิดนึง ให้เป็น Thaiflashdef ก็จะได้ Digest เป็น a405441b6ed5edafcef1062cac13da33

จาก ตัวอย่างนี้จะเห็นว่า แม้ข้อมูลเปลี่ยนไปเพียงนิดเดียว Digest ที่ได้จาก MD5 นั้น จะเปลี่ยนแปลงไปจากเดิมมากเลยทีเดียว ฉะนั้นถ้าจะหวังว่าเพิ่มข้อมูลไป 1 ตัวแล้วเพิ่มค่า Digest ขึ้นอีก 1 นี่หมดสิทธิคับ วิธีตื้นๆ นี้ใช้กับ MD5 ไม่ได้หรอกครับ แต่ด้วยความที่ MD5 มันเปิดเผยอัลกอริทึมนั้น เราสามารถหา Digest ได้โดย....เอ่อ ไม่บอกดีกว่าคับ (แค่นี้ก็ชี้โพรงแล้ว อิอิ)

เมื่อผู้ส่งมีข้อมูล และมี Digest ที่ได้จาก MD5 แล้วทำอะไรได้??
...ก็ส่งไปให้ผู้รับสิครับ จะเก็บไว้ทำไม ถามได้ เอ้อ dry.gif

คราว นี้พอผู้รับ รับข้อมูลมา ก็เอาข้อมูลที่ได้รับ(ไม่รวม Digest) ไปผ่าน MD5 เพื่อหา Digest อีกรอบ เสร็จแล้วก็เอา Digest ที่เพิ่งได้นี้ มาเทียบกับ Digest ที่ได้รับมาจากผู้ส่ง ถ้าตรงกัน แสดงว่าข้อมูลที่ได้รับถูกต้องครับ ไม่มีใครมาทะลึ่งแก้ไขใดๆ ทั้งสิ้น (หรือไม่มี error ระหว่างส่งข้อมูล ประมาณว่าบิต 0 กลายเป็นบิต 1) rolleyes.gif

จากลักษณะการรับส่ง ข้อมูลโดยมี MD5 มาช่วยรักษาความปลอดภัยนั้น จะเห็นว่า มันไม่ได้ปกปิดข้อมูลอะไรให้เราเลย MD5 เพียงแค่ช่วยในเรื่องของความถูกต้องของข้อมูลเท่านั้นเองครับ (Data Integrity)

เนื่องจากว่าในเรื่องของความปลอดภัยนั้น ต้องมีคุณสมบัติอยู่ 3 ตัวคือ
1. Secracy การปกปิดข้อมูล
2. Authentic การยืนยันตัวตนผู้ใช้ (การใช้พาสเวิร์ด เป็นเพียงแค่ Identifier ยังไม่ถึงขั้น Authentic นะครับ แต่ก็พอกล้อมแกล้มได้)
3. Integrity การคงสภาพข้อมูล

แต่ MD5 ช่วยได้แค่ข้อ 3 เท่านั้นเอง ดังนั้นเราต้องหาวิธีอื่นๆ มาเสริมอีก 2 ข้อที่เหลือครับ ซึ่งก็แล้วแต่ครับ ว่าอยากได้ความปลอดภัยระดับไหน

ใน การใช้งานจริง เท่าที่ผมเคยเห็น จะมีการใช้ Encryption เข้ามาช่วย เพื่อปกปิดตัวข้อมูล หรือปกปิดตัว Digest ครับ ไม่ให้มองเห็นและแก้ไขได้ครับ หรือถ้าใครชอบดาวน์โหลด มักจะเห็นว่าข้างๆ Link สำหรับดาวน์โหลดจะมีเขียนไว้ว่า MD5: ....แล้วตามด้วย Digest นะครับ นั่นแหละครับ เอาไว้ให้ผู้ใช้เอา Digest นี้ไปตรวจสอบว่าแฟ้มที่เราดาวน์โหลดไป มีข้อมูลถูกต้องหรือไม่ ตามวิธีที่ได้บอกไปข้างต้นนั่นแหละครับ

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

ทีมา : http://www.ez-admin.com/2009-03-11-11-12-48.html?func=view&catid=5&id=122

วันพุธที่ 8 กรกฎาคม พ.ศ. 2552

กูเกิลมาทำระบบปฏิบัติการแล้ว

หลังจากที่ปีที่แล้วกูเกิลได้ทำการปล่อยเบราเซอร์ ตัวแรกออกมาให้ผู้ใช้ทั่วไปได้ลองใช้กัน เกิดเสียงฮือฮาขึ้นมากมาย และบัดนี้กูเกิลกลับมาพร้อมกับ Google Chrome Operating System

โดยในบล็อกได้บอกไว้ว่าระบบปฏิบัติการนั้นจะเป็นโอเพ่นซอร์ส ที่มีเป้าหมายผู้ใช้อยู่บนเครื่องเน็ทบุค ตามแผนคือจะทำการเปิดซอร์สโค้ดช่วงหลังของปีนี้ ส่วนเน็ทบุคที่ใช้ระบบปฏิบัติการจะเริ่มให้เห็นได้ในช่วงครึ่งหลังของปี 2010

ตัวระบบปฏิบัติการนั้นจะเน้นที่ความเร็ว ความเรียบง่าย และความปลอดภัย โดยบอกว่าจะสามารถเข้าถึงอินเทอร์เน็ทได้ในไม่กี่วินาทีหลังจากเปิดเครื่อง เลยทีเดียว โดยระบบปฏิบัติการจะมีหน้าตาเข้าใจง่ายเช่นเดียวกับตัวโครมที่เป็นเบราเซอร์ และทางกูเกิลยังได้ทำการออกแบบสถาปัตยกรรมทางด้านความปลอดภัยใหม่ ทำให้ผู้ใช้ไม่ต้องกังวลเกี่ยวกับมัลแวร์ ไวรัส หรือแพทช์อัพเดทอุดช่องโหว่ใดๆ

ตัวระบบปฏิบัติการนั้นรองรับทั้ง X86 และ ARM แต่จุดประสงค์ของ Chrome OS นั้นแตกต่างจากแอนดรอยด์อยู่พอควร เนื่องจากกลุ่มเป้าหมายของแอนดรอยด์คือตั้งแต่มือถือไปจนถึงเน็ทบุค แต่กลุ่มเป้าหมายของ Chrome OS นั้นอยู่ที่เน็ทบุคขนาดเล็กไปจนถึงเครื่องตั้งโต๊ะที่มีผู้ใช้แต่ละวันใช้ เวลากับการทำงานต่างๆบนอินเทอร์เน็ท แน่นอนว่ามีจุดที่ทับซ้อนกันอยู่ระหว่างสองระบบนี้ และทางกูเกิลหวังว่านวัตกรรมจะผลักดันตัวเลือกที่ดีที่สุดในส่วนที่ทับซ้อน กันนี้แก่ทุกคน รวมถึงตัวกูเกิลเองด้วย

ที่มา - Official Google Blog

นอกเรื่องนิด - ช่วงนี้หวัดระบาดรุนแรงมากทั้งหวัดธรรมดา และหวัดพันธุ์ใหม่ (ไม่อยากเรียกว่า 2009 เท่าใหร่) แต่ไม่ว่าจะหวัดชนิดใดตอนนี้ก็ระบาดเยอะทั้งคู่ ระมัดระวังตัวด้วยนะครับ ผู้เขียนเองก็หวัดกินไปแล้ว ขอให้ผู้อ่านสุขภาพแข็งแรงครับ

Custom Search