เชื่อว่าหลายๆคนคงผ่านตากันมาบ้างแล้วกับคำว่า Checksum ที่ระบุไว้ตอนเราดาวน์โหลดไฟล์ต่างๆบน Website แต่เราอาจจะไม่ค่อยได้สนใจกันซักเท่าไหร่ เพราะว่ากำลังงุนงงหาปุ่มกด Download กันอยู่ และเมื่อเราดาวน์โหลดไฟล์มาเสร็จเรียบร้อยแล้ว เราก็มักจะรีบเปิดใช้งานทันที... แต่ช้าก่อนเราควรตรวจสอบ Checksums อีกครั้งเพื่อความถูกต้องด้วยนะ
Checksum คือการตรวจสอบข้อมูลของไฟล์นั้นๆและแสดงผลออกมาเป็นตัวหนังสือและตัวเลข โดยจะนำข้อมูลของไฟล์นั้นๆเป็น input และจะแสดงผลออกมาเป็นลักษณะจำเพาะด้วยความยาวของตัวอักษรคงที่ ตัวอย่างของ Checksum หรือจะเรียกอีกอย่างว่า hash ก็ได้ C6FED9B8909CD05D40C41E919B839A4AF43703FA5011E4153B2DAA15B14D59CF ตัวหนังสือเหล่านี้เองที่เป็นสิ่งสำคัญมากในการตรวจสอบว่าไฟล์ของเราทีได้มานั้นมีความถูกต้องสมบูรณ์ตามต้นฉบับหรือไม่
แต่ละ Algorithm นั้นอาจจะมีความแตกต่างกันออกไป ไม่ว่าจะเป็น MD5 , SHA-1 , SHA256 ตามแต่ผู้สร้างไฟล์ระบุแจ้งมา
แล้วทำไมเราถึงต้องตรวจสอบ checksum ละ ?
เพื่อเป็นการตรวจสอบว่าไฟล์ที่เราดาวน์โหลดหรือได้รับมานั้น ถูกต้องสมบูรณ์อย่างที่ควรจะเป็นหรือไม่ หากตรวจสอบแล้วพบว่า Checksum ไม่ถูกต้องตรงกับต้นทางถือว่าเป็นเรื่องที่ผิดปรกติไม่ว่าจะด้วยเหตุผลอะไรก็ตามถือว่าไม่ปลอดภัย และไม่ควรเปิดใช้งานไฟล์นั้นๆ
สาเหตุที่ Checksum ไม่ตรงเกิดจากอะไรได้บ้าง
อาจเป็นไปได้หลายกรณีเช่น รับไฟล์มาไม่สมบูรณ์เนื่องจากปัญหาเครือข่าย / มีการแก้ไขดัดแปลง / มีไวรัสติดมาด้วย และแน่นอนว่าท่านไม่ควรเสี่ยงเปิดไฟล์นั้นๆเลย เพื่อความปลอดภัยของคอมพิวเตอร์ของท่านเอง
ที่พบเจอบ่อย ก็ต้องเรียนตามตรงว่าหลายครั้งที่ดาวน์โหลดไฟล์ต่างๆมาจากเว็บไซต์แปลกๆก็มักจะพบว่า Checksums นั้นไม่ตรงอยู่บ่อยครั้ง และสาเหตุหลักๆก็คือมีการแก้ไขไฟล์ แอบสอดไส้ด้วย Backdoor , Spyware , Trojan มาในไฟล์ที่เราดาวน์โหลด
วิธีการตรวจสอบ
1. เปิดใช้งาน powershell
2. พิมพ์คำสั่งเพื่อเรียกดู get-filehash
3. จะแสดงผลลัพท์ออกมาทันที แล้วนำไปตรวจสอบกับต้นทางว่าตรงกันหรือไม่
**ทดสอบด้วยไฟล์ .iso ที่ดาวน์โหลดมาจาก kubuntu.org**
จากนั้นก็นำไปเปรียบเทียบกับทางเว็บไซต์ต้นทางที่แจ้งมาว่าตรงกันหรือไม่
จะเห็นว่า Checksum จากไฟล์ที่เราดาวน์โหลดมานั้น ตรงกับทางเว็บไซต์ที่แจ้งมาก็แสดงว่าสมบูรณ์ สบายใจหายห่วง
ยกตัวอย่างกรณีมีการแก้ไขไฟล์ให้ดูกันคร่าวๆ
การเปลี่ยนแปลงข้อมูลภายในไฟล์นั้นๆถึงแม้ว่าจะเปลี่ยนแปลงเพียงเล็กน้อย ให้สังเหตุว่า 2 ไฟล์นี้ผมเขียนข้อแตกต่างเพียงเล็กน้อย ( o เล็ก ) กับ ( O ใหญ่ ) แต่ผลของ CheckSum ที่ออกมานั้นแตกต่างกันอย่างสิ้นเชิง เรียกได้ว่าคนละเรื่องกันเลย
ก็ต้องยอมรับตามตรงว่าตัวผมเองก็ไม่ได้ตรวจสอบทุกครั้งไป แต่ก็จะเลือกตรวจสอบเฉพาะในไฟล์ที่สำคัญ เช่นการติดตั้งไฟล์ .exe เป็นเรื่องน่ากังวลยิ่ง บางครั้งเราก็อาจจะมีโอกาสพลาดแบบไม่ทันตั้งตัวได้เช่นกันครับ
อาจจะมีข้อสงสัยกันว่า Checksums หรือ Hash นี่สามารถซ้ำกันได้บ้างไหม ก็เรียนตามตรงครับว่า "ได้ครับ" แต่โอกาสก็น้อยมาก สำหรับตัวผมเองก็พบเจออยู่บ้างในกรณี Algorithm MD5 แต่ SHA-256 ยังไม่เคยพบครับ