เมื่อเราดาวน์โหลดไฟล์ ISO หรือไฟล์ DMG เพื่อติดตั้งซอฟต์แวร์บน macOS, Windows หรือ Linux นั้น การตรวจสอบเพียงแค่ว่าทุกอย่าง "ดูเหมือน" จะราบรื่นนั้นยังไม่เพียงพอเราต้องตรวจสอบให้แน่ใจว่าข้อมูลนั้นตรงกับที่ผู้พัฒนาเผยแพร่ไว้ไม่เกิดความเสียหายระหว่างทาง และไม่มีใครเข้าไปแก้ไขดัดแปลงโดยเจตนาร้าย
ในบริบทนี้ การตรวจสอบความถูกต้องของข้อมูล (checksum) แฮชเข้ารหัสลับ และในกรณีของ macOS ลายเซ็นดิจิทัลและการตรวจสอบใบรับรอง จะเข้ามามีบทบาท ความเข้าใจอย่างถ่องแท้ว่าสิ่งเหล่านี้ทำงานอย่างไรเป็นกุญแจสำคัญในการเชื่อถือโปรแกรมติดตั้ง การตรวจสอบความถูกต้องของไฟล์ ISO ที่คุณจะเขียนลงไดรฟ์ USB ด้วย balenaEtcher หรือ Ventoy และโดยทั่วไปแล้ว การย้ายไฟล์สำคัญโดยไม่มีปัญหาใดๆ
เช็คซัมคืออะไรกันแน่ และมีบทบาทอย่างไร?
ค่าตรวจสอบความถูก ต้อง (Checksum) โดยพื้นฐานแล้วคือสตริงของตัวอักษรและตัวเลขที่สรุปเนื้อหาของไฟล์ ได้มาจากการใช้อัลกอริธึมทางคณิตศาสตร์ (ฟังก์ชันแฮชเข้ารหัสลับ) กับบิตของไฟล์ และทำหน้าที่เป็นลายนิ้วมือที่ไม่ซ้ำกันเพื่อตรวจสอบความถูกต้องของไฟล์
เมื่อผู้จำหน่ายซอฟต์แวร์ปล่อยตัวติดตั้ง ไฟล์ ISO หรือการอัปเดตครั้งใหญ่ มักจะมีการรวมค่าตรวจสอบความถูกต้อง (checksum) ไว้ด้วยผู้ใช้ดาวน์โหลดไฟล์ คำนวณค่าแฮชประเภทเดียวกันในเครื่อง และเปรียบเทียบค่าทั้งสองหากตรงกัน แสดงว่าไฟล์นั้นเหมือนกับไฟล์ต้นฉบับอย่างมาก หากไม่ตรงกัน แสดงว่ามีบางอย่างผิดพลาด (ความเสียหายระหว่างการดาวน์โหลด การดัดแปลงโดยเจตนาร้าย ข้อผิดพลาดในการจัดเก็บ ฯลฯ)
ผลรวมเหล่านี้เรียกอีกอย่างว่าค่าแฮช รหัสแฮช ผลรวมแฮช หรือเรียกสั้น ๆ ว่า แฮชประโยชน์ของมันไม่ได้จำกัดอยู่แค่การดาวน์โหลดเท่านั้น แต่ยังใช้ในการตรวจสอบแพ็กเก็ตบนเครือข่าย การจัดเก็บรหัสผ่านอย่างปลอดภัยในฐานข้อมูล การลงนามในอีเมล หรือการรับรองความสมบูรณ์ของภาพทางนิติวิทยาศาสตร์ของดิสก์ทั้งหมดอีกด้วย
วิธีการทำงานของฟังก์ชันแฮช: จากไฟล์สู่ลายนิ้วมือ
ฟังก์ชันแฮชเข้ารหัสลับเป็นอัลกอริธึมแบบทางเดียว: มันรับอินพุตที่มีขนาดใดก็ได้และสร้างเอาต์พุตที่มีความยาวคงที่ไม่ว่าไฟล์อินพุตจะมีขนาดไม่กี่กิโลไบต์หรือหลายกิกะไบต์ ผลลัพธ์ของ SHA-256 ตัวอย่างเช่น จะเป็นลำดับ 256 บิต (อักขระเลขฐานสิบหก 64 ตัว) เสมอ
คุณสมบัติสำคัญอย่างหนึ่งคือปรากฏการณ์ที่เรียกว่า "ปรากฏการณ์ถล่มทลาย" (avalanche effect): การเปลี่ยนแปลงเพียงเล็กน้อยในข้อมูลป้อนเข้าจะส่งผลให้ค่าแฮชแตกต่างกันอย่างสิ้นเชิงตัวอย่างเช่น หากคุณคำนวณค่าแฮช MD5 ของวลี "This is a test." แล้วลบจุดท้ายออก ค่าที่ได้จะแตกต่างกันอย่างสิ้นเชิง ทำให้คุณสามารถตรวจจับการเปลี่ยนแปลงเล็กน้อยได้
นอกจากนี้ ฟังก์ชันแฮชที่ดีถูกออกแบบมาเพื่อให้การคำนวณไม่สามารถสร้างเนื้อหาดั้งเดิมขึ้นมาใหม่จากค่าแฮชได้และยังทำให้การค้นหาข้อมูลป้อนเข้าสองชุดที่แตกต่างกันซึ่งให้ค่าเดียวกัน (การชนกัน) เป็นเรื่องยากมาก เมื่อพบการชนกันในทางปฏิบัติในอัลกอริทึม เช่นที่เกิดขึ้นกับ MD5 หรือ SHA-1 อัลกอริทึมนั้นจะถือว่าไม่ปลอดภัยสำหรับการใช้งานบางอย่าง
ประเภทของอัลกอริธึมตรวจสอบผลรวมและข้อแตกต่างระหว่างกัน
เบื้องหลังการตรวจสอบความถูกต้องของข้อมูลทุกครั้งจะมีอัลกอริทึมเฉพาะอยู่ไม่ใช่ทุกอัลกอริทึมที่จะมีจุดประสงค์เดียวกันหรือมีความน่าเชื่อถือในระดับเดียวกันและการรู้จักอย่างน้อยหมวดหมู่ที่พบบ่อยที่สุดจะช่วยให้เข้าใจว่าเรากำลังใช้อัลกอริทึมใดในแต่ละช่วงเวลา
อัลกอริทึมควบคุมข้อผิดพลาดแบบง่าย
ในเครือข่ายและระบบพื้นฐาน กลไกที่มีน้ำหนักเบาซึ่งไม่ใช่การเข้ารหัสอย่างแท้จริง แต่ช่วยตรวจจับข้อผิดพลาดในการส่งข้อมูล ได้ถูกนำมาใช้เป็นเวลาหลายทศวรรษแล้ว ตัวอย่างคลาสสิกคือคำหรือไบต์พาริตีตามแนวยาวซึ่งจัดกลุ่มข้อมูลเป็นคำขนาด n บิต ทำการดำเนินการ XOR กับทุกคำ และเพิ่มผลลัพธ์เป็นคำพิเศษต่อท้าย
เมื่อได้รับข้อมูลแล้ว การดำเนินการ XOR จะถูกคำนวณใหม่โดยรวมคำที่เป็นผลรวมเข้าไปด้วย และหากผลลัพธ์ไม่ใช่ศูนย์ทั้งหมด จะถือว่ามีข้อผิดพลาดวิธีนี้ใช้ทรัพยากรในการคำนวณน้อยและมีประสิทธิภาพพอสมควรในการแก้ไขข้อผิดพลาดแบบบิตเดียวหรือจำนวนบิตคี่ แต่ไม่สามารถตรวจจับรูปแบบบางอย่างได้ดี (เช่น การเปลี่ยนแปลงแบบสมมาตรในสองคำหรือการเรียงลำดับบล็อกใหม่)
อัลกอริทึม ส่วนเติมเต็มสอง ( Two's Complement ) เป็นความพยายามที่จะปรับปรุงวิธีการก่อนหน้านี้ มันบวกคำต่างๆ ในรูปจำนวนเต็มไบนารีที่ไม่มีเครื่องหมาย และเพิ่มส่วนเติมเต็มสองของผลรวมนั้นเข้าไปเป็นค่าตรวจสอบความถูกต้อง (Checksum) ที่ปลายทาง ทุกอย่างจะถูกบวกอีกครั้ง รวมถึงค่าตรวจสอบความถูกต้อง และหากผลลัพธ์ไม่ใช่คำที่มีแต่ศูนย์ แสดงว่ามีบางอย่างผิดพลาด มันยังคงเรียบง่าย และเช่นเดียวกับพาริตีมันสามารถตรวจจับข้อผิดพลาดง่ายๆ ได้ แต่ไม่ทนทานต่อการดัดแปลงโดยเจตนา
ผลรวมตรวจสอบที่ขึ้นอยู่กับตำแหน่ง
เพื่อลดโอกาสที่ข้อผิดพลาดจะไม่ถูกตรวจพบ จึงได้มีการพัฒนาอัลกอริธึมที่พิจารณาไม่เพียงแต่ค่าของคำเท่านั้น แต่ยังรวมถึงลำดับของคำด้วยเช็คซัมแบบขึ้นอยู่กับตำแหน่งจะกำหนดน้ำหนักที่แตกต่างกันให้กับแต่ละบล็อกตามตำแหน่งในลำดับของบล็อกนั้น
ตัวอย่างของตระกูลนี้ ได้แก่ Adler-32, CRC (cyclic redundancy check) ประเภทต่างๆ และ checksum ของ Fletcher อัลกอริทึมเหล่านี้พบได้ทั่วไปในโปรโตคอลเครือข่าย ไฟล์บีบอัด และระบบจัดเก็บข้อมูลเนื่องจากช่วยปรับปรุงการตรวจจับข้อผิดพลาดซ้ำ การแทรกหรือการลบข้อมูลอย่างมีนัยสำคัญ แม้ว่าอัลกอริทึมเหล่านี้จะยังไม่ใช่อัลกอริทึมที่มีความแข็งแกร่งทางด้านการเข้ารหัสก็ตาม
ผลรวมตรวจสอบแบบคลุมเครือ
ในโลกของการกรองสแปมและการตรวจจับสแปมแบบร่วมมือกัน มีการใช้เทคนิคที่แตกต่างกันออกไป เช่น การตรวจสอบผลรวมแบบคลุมเครือ (fuzzy checksums ) แทนที่จะมองหาการเปลี่ยนแปลงเล็กน้อยที่จะเปลี่ยนค่าทั้งหมด เทคนิคนี้กลับมองหาสิ่งที่ตรงกันข้าม นั่นคือ อีเมลที่คล้ายคลึงกันมากจะสร้างค่าแฮชที่เหมือนกันหรือคล้ายคลึงกันมาก
เพื่อให้บรรลุเป้าหมายนี้ เนื้อหาของข้อความจะถูกปรับให้เป็นมาตรฐานและลดทอนให้เหลือเวอร์ชันที่กระชับที่สุด (โดยการตัดส่วนที่ไม่คงที่ การจัดรูปแบบ ฯลฯ ออก) จากนั้นจึงคำนวณค่าตรวจสอบความถูกต้อง บริการอย่าง DCC จะได้รับค่าแฮชเหล่านี้หลายล้านค่าจากผู้ให้บริการอีเมลต่างๆและจะระบุรูปแบบว่าเป็นสแปมหากค่าเดียวกันปรากฏซ้ำเกินเกณฑ์ที่กำหนด
ฟังก์ชันแฮชเข้ารหัสลับสมัยใหม่
เมื่อเราพูดถึงการตรวจสอบไฟล์ ISO, โปรแกรมติดตั้ง หรือเฟิร์มแวร์เรามักจะพบกับอัลกอริทึมแฮชเข้ารหัสลับ เช่น MD5, SHA-1, SHA-2 หรือ SHA-3 จุดประสงค์ของอัลกอริทึมเหล่านี้ไม่ใช่แค่การตรวจจับข้อผิดพลาดโดยไม่ตั้งใจ แต่ยังรวมถึงการป้องกันการโจมตีเฉพาะที่มุ่งสร้างไฟล์ที่เป็นอันตรายที่มีแฮชเดียวกันกับไฟล์ต้นฉบับที่ถูกต้องด้วย
ตัวอย่างเช่น MD5 เคยเป็นมาตรฐานที่ใช้กันอย่างแพร่หลายในการตรวจสอบความถูกต้องของการดาวน์โหลดมานานหลายปี โดยใช้แฮชขนาด 128 บิต อย่างไรก็ตาม ได้มีการแสดงให้เห็นถึงการชนกันของค่าแฮชในทางปฏิบัติ และในปัจจุบันจึงถือว่าไม่ปลอดภัยสำหรับการปกป้องความสมบูรณ์ของข้อมูลจากการโจมตีแม้ว่าจะยังคงใช้ในบริบทที่ต้องการตรวจจับความเสียหายโดยไม่ตั้งใจเท่านั้นก็ตาม
SHA-1 (160 บิต) ก็มีเส้นทางการพัฒนาที่คล้ายคลึงกัน คือถูกนำมาใช้กันอย่างแพร่หลายในใบรับรอง ลายเซ็น และการตรวจสอบไฟล์ แต่ปัจจุบันไม่แนะนำให้ใช้ในระบบใหม่ ๆ เนื่องจากช่องโหว่ ส่วนตระกูล SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)ได้เข้ามาแทนที่ MD5 และ SHA-1 เป็นส่วนใหญ่ และ SHA-256 ได้กลายเป็นมาตรฐานที่ NIST แนะนำและใช้ในเบราว์เซอร์ โปรโตคอล เช่น TLS VPN และแม้แต่เครือข่ายอย่าง Bitcoin
SHA-3 เป็นอัลกอริทึมมาตรฐานรุ่นล่าสุด มีความยาวของผลลัพธ์คล้ายกับ SHA-2 แต่มีโครงสร้างภายในที่แตกต่างกันอัลกอริทึมสมัยใหม่ เช่น BLAKE2 และ BLAKE3 ยังให้ความเร็วและความปลอดภัยสูงทำให้เป็นที่นิยมใช้ในเครื่องมือและแอปพลิเคชันตรวจสอบไฟล์จำนวนมากที่ต้องการประสิทธิภาพสูงเป็นพิเศษ
วิธีตรวจสอบค่าตรวจสอบความถูกต้อง (checksum) ใน Windows
บนระบบปฏิบัติการ Windows คุณไม่จำเป็นต้องติดตั้งอะไรเพื่อคำนวณค่าแฮชไฟล์พื้นฐานคุณสามารถใช้คำสั่ง `certutil` ใน Command Prompt หรือ PowerShellหรือใช้ cmdlet `Get-FileHash` ใน PowerShell เพื่อความสะดวกยิ่งขึ้น
ด้วย certutil คุณเพียงแค่เปิดหน้าต่าง Command Prompt แล้วพิมพ์คำสั่งเช่น`certutil -hashfile "path\to\file.iso" SHA256`เครื่องมือจะสร้างค่า checksum โดยใช้อัลกอริทึมที่คุณระบุ (MD5, SHA1, SHA256, SHA384, SHA512 ฯลฯ) และคุณเพียงแค่ต้องเปรียบเทียบกับค่า checksum ที่ผู้พัฒนาให้ไว้ในเว็บไซต์ของพวกเขา
ใน PowerShell คำสั่ง Get-FileHash C:\path\to\file.isoจะส่งคืนค่าแฮช SHA-256 ของไฟล์โดยค่าเริ่มต้น แต่คุณสามารถระบุอัลกอริทึมอื่นๆ ได้ด้วยพารามิเตอร์ -Algorithm (MD5, SHA1, SHA384, SHA512, RIPEMD160, MACTripleDES…)
หากค่าที่แสดงตรงกับค่าที่เผยแพร่บนเว็บไซต์อย่างเป็นทางการทุกตัวอักษร คุณสามารถสันนิษฐานได้ว่าไฟล์นั้นสมบูรณ์ แต่หากแตกต่างกัน สิ่งที่ควรทำคือลบไฟล์นั้นแล้วดาวน์โหลดใหม่เพราะอาจเป็นไฟล์ที่เสียหายหรือถูกแก้ไขโดยบุคคลที่สามที่มีเจตนาร้าย
วิธีตรวจสอบค่า checksum ใน macOS: ผ่านเทอร์มินัล, ไฟล์ ISO และไฟล์ DMG
macOS มีทุกสิ่งที่คุณต้องการในการสร้างและเปรียบเทียบค่าแฮชไฟล์โดยค่าเริ่มต้น สำหรับไฟล์ ISO, DMG และรูปแบบอื่นๆไม่จำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติม เพียงแค่ใช้แอป Terminal ก็เพียงพอแล้ว
คำสั่งที่ใช้งานได้หลากหลายที่สุดคือ `shasum` ซึ่งช่วยให้คุณสามารถเลือกอัลกอริธึมต่างๆ จากตระกูล SHA ได้ ตัวอย่างเช่น หากคุณดาวน์โหลดไฟล์ติดตั้งเช่น `vlc-3.0.6.dmg` และเว็บไซต์ของโครงการเผยแพร่ค่าแฮช SHA-256 บน macOS คุณสามารถทำได้ดังนี้:
shasum -a 256 vlc-3.0.6.dmg
หน้าต่างเทอร์มินัลจะแสดงบรรทัดที่มีค่าแฮชและชื่อไฟล์ เพียงนำไปวางเทียบกับที่แสดงบนเว็บไซต์และตรวจสอบว่าไม่มีความแตกต่างกันสำหรับอัลกอริทึมอื่นๆ คุณสามารถใช้คำสั่งโดยตรงได้เช่น `md5` สำหรับ MD5, `shasum -a 1` สำหรับ SHA-1, `-a 384` สำหรับ SHA-384, `-a 512` สำหรับ SHA-512 เป็นต้น
ในกรณีของไฟล์ ISO ที่มีไฟล์ md5sum.txt หรือไฟล์ที่คล้ายกัน ไฟล์นี้มักจะเก็บค่าแฮชของแต่ละไฟล์ภายใน ISO ไม่ใช่แค่ตัวไฟล์ภาพเองเมื่อเขียน ISO ลงในไดรฟ์ USB แล้ว คุณสามารถเมานต์ไดรฟ์และใช้คำสั่ง `md5sum -c md5sum.txt` ใน Linux หรือคำสั่งที่เทียบเท่าใน macOSเพื่อตรวจสอบแต่ละไฟล์ทีละไฟล์ได้ แม้ว่าใน macOS จะนิยมตรวจสอบค่าแฮชของ ISO ทั้งหมดก่อนคัดลอกลงในไดรฟ์ USB มากกว่าก็ตาม
ลายเซ็นและใบรับรองใน macOS: นอกเหนือจากค่าแฮช
นอกจากค่าแฮชแล้ว macOS ยังพึ่งพาระบบลายเซ็นดิจิทัล ใบรับรอง และนโยบายความน่าเชื่อถือที่จัดการผ่าน Keychain Access และ Gatekeeper เป็นอย่างมาก การที่ตัวติดตั้งมีค่าแฮชที่ถูกต้องไม่ได้หมายความว่าจะรับประกันได้ว่ามาจากนักพัฒนาที่น่าเชื่อถือเสมอไป นั่นคือเหตุผลที่ต้องมีลายเซ็นโค้ด
ด้วยแอป Keychain Access คุณสามารถใช้Certificate Assistantเพื่อตรวจสอบใบรับรองเฉพาะ ตรวจสอบนโยบายความน่าเชื่อถือ และพิจารณาความถูกต้องของใบรับรองนั้นได้ macOS จะตรวจสอบว่าใบรับรองนั้นออกโดยหน่วยงานรากที่เชื่อถือได้ ยังไม่หมดอายุ และยังไม่ถูกตัดสิทธิ์ และจากนั้นจะอนุญาตหรือบล็อกการทำงานของไบนารีบางอย่างตามนั้น
ในการใช้งานทั่วไป เมื่อคุณเปิดไฟล์ DMG หรือเรียกใช้แอปที่ดาวน์โหลดจากอินเทอร์เน็ตmacOS จะผสานการตรวจสอบลายเซ็นของนักพัฒนาเข้ากับกลไกต่างๆ เช่น Gatekeeper และการรับรองเอกสาร ส่วนประกอบการแฮชจะเน้นที่ความสมบูรณ์ของไฟล์ ในขณะที่ส่วนประกอบลายเซ็นและใบรับรองจะจัดการความถูกต้องของผู้ออกใบรับรอง
เครื่องมืออย่าง balenaEtcher หรือ Ventoy ตรวจสอบความถูกต้องของเนื้อหาในไดรฟ์ USB ได้อย่างไร?
เมื่อคุณใช้โปรแกรมอย่าง balenaEtcher หรือ Ventoy เพื่อสร้างไดรฟ์ USB ที่บูตได้ โปรแกรมเหล่านี้ไม่ได้แค่คัดลอกข้อมูลแล้วหวังว่าทุกอย่างจะเรียบร้อย แต่จะทำการประมวลผลเพิ่มเติมเพื่อตรวจสอบว่าสิ่งที่เขียนลงในไดรฟ์ตรงกับต้นฉบับโดยทั่วไปจะเปรียบเทียบเนื้อหาที่อ่านจากอุปกรณ์กับเนื้อหาในไฟล์ ISO ต้นฉบับ
ขั้นตอนการทำงานโดยทั่วไปจะคล้ายคลึงกับสิ่งที่คุณทำด้วยตนเองโดยใช้คำสั่ง `dd`: ดาวน์โหลดไฟล์ ISO ล้างไดรฟ์ เขียนข้อมูล แล้วอ่านข้อมูลอีกครั้งตัวอย่างเช่น balenaEtcher มักจะอ่านบล็อกจากไดรฟ์ USB และเปรียบเทียบโดยตรงกับบล็อกเดียวกันในอิมเมจดิสก์หากตรวจพบความแตกต่างใด ๆ ก็จะทำเครื่องหมายว่ากระบวนการล้มเหลวโดยไม่จำเป็นต้องมีไฟล์ md5sum.txt ในไฟล์ ISO
Ventoy ใช้กลยุทธ์ที่แตกต่างออกไป เพราะมันไม่ได้ "เขียน" ไฟล์ ISO ลงในไดรฟ์ แต่จะคัดลอกไฟล์นั้นไปยังพาร์ติชั่นพิเศษ แล้วบูตเครื่องขึ้นมาแสดงเมนูให้คุณเลือกไฟล์ ISO ที่ต้องการใช้งานในกรณีนี้ สามารถตรวจสอบความถูกต้องได้โดยการเปรียบเทียบค่าแฮชของไฟล์ ISO ที่จัดเก็บไว้ในไดรฟ์ USB กับค่าแฮชที่อยู่ในคอมพิวเตอร์ต้นทาง โดยไม่จำเป็นต้องตรวจสอบเนื้อหาภายในของไฟล์ภาพ
หากไฟล์ ISO ของระบบปฏิบัติการ Linux มีไฟล์เช่น md5sum.txt หรือ SHA256SUMS และตัวบูตโหลดเดอร์สำหรับการติดตั้งได้รับการกำหนดค่าให้รองรับไฟล์ เหล่านั้น ไฟล์ภายในของอิมเมจจะสามารถตรวจสอบความถูกต้องได้ในระหว่างการเริ่มต้นระบบอย่างไรก็ตาม โปรแกรมสำหรับเขียนลงแผ่นซีดีจะไม่พึ่งพาไฟล์เหล่านี้ การตรวจสอบความถูกต้องของโปรแกรมเหล่านั้นส่วนใหญ่จะขึ้นอยู่กับการเปรียบเทียบข้อมูลที่เขียนกับข้อมูลต้นฉบับในระดับบล็อก
จะทำอย่างไรเมื่อไฟล์ ISO ไม่มีไฟล์ตรวจสอบความถูกต้องภายใน (checksum)
ไม่ใช่ว่าไฟล์ ISO ทุกไฟล์จะมีไฟล์ md5sum.txt หรือไฟล์ที่คล้ายกันซึ่งมีค่าแฮชของเนื้อหาอยู่ภายในอย่างไรก็ตาม คุณควรเรียกร้องให้เว็บไซต์อย่างเป็นทางการแสดงค่าแฮชของไฟล์ ISO ทั้งหมด (โดยปกติคือ SHA-256) อย่างน้อยที่สุดบนหน้าดาวน์โหลดหรือในไฟล์แยกต่างหาก (SHA256SUMS, CHECKSUMS เป็นต้น)
หากไม่มีไฟล์ภายในที่มีค่าตรวจสอบความถูกต้องของแต่ละไฟล์ กระบวนการตรวจสอบจะลดลงเหลือเพียงการเปรียบเทียบค่าแฮชของไฟล์ ISO คุณคำนวณค่าแฮช SHA-256 ของไฟล์ที่ดาวน์โหลดลงในระบบของคุณและเปรียบเทียบกับค่าที่เผยแพร่หากตรงกัน คุณจะรู้ว่าอิมเมจทั้งหมดเหมือนกับที่ผู้พัฒนาสร้างขึ้น และคุณสามารถเขียนลงในไดรฟ์ USB ได้อย่างมั่นใจ
หากผู้ขายไม่เปิดเผยค่าตรวจสอบความถูกต้องหรือลายเซ็นใดๆ เรื่องก็จะซับซ้อนขึ้นคุณอาจเปรียบเทียบค่าแฮชของไฟล์ ISO ของคุณกับไฟล์สำเนาอื่นที่ดาวน์โหลดจากเครือข่ายอื่นหรือจากบุคคลอื่นแต่คุณก็ยังไม่มีข้อมูลอ้างอิงอย่างเป็นทางการ ในสถานการณ์เช่นนี้ ควรระมัดระวังหากซอฟต์แวร์นั้นมีความสำคัญ (เช่น ระบบปฏิบัติการ เครื่องมือรักษาความปลอดภัย กระเป๋าเงินดิจิทัล ฯลฯ) และควรหาแหล่งที่มาที่น่าเชื่อถือกว่า
โปรดจำไว้ว่า แม้จะมีแฮชที่เผยแพร่แล้ว ความปลอดภัยก็ยังขึ้นอยู่กับการได้รับแฮชนั้นจากแหล่งที่เชื่อถือได้และผ่านการเชื่อมต่อที่ปลอดภัย (HTTPS)ผู้โจมตีอาจสร้างเว็บไซต์ปลอมที่มีไฟล์ ISO ที่เป็นอันตรายและแฮชของตนเอง ดังนั้นการตรวจสอบจึงมีความหมายก็ต่อเมื่อคุณอยู่บนเว็บไซต์อย่างเป็นทางการของโครงการเท่านั้น

เครื่องมือเฉพาะสำหรับการทำงานกับค่าแฮชและการตรวจสอบความถูกต้อง
นอกเหนือจากยูทิลิตี้ที่มีอยู่ในระบบปฏิบัติการแต่ละระบบแล้ว ยังมีโปรแกรมเฉพาะทางอีกมากมายที่ช่วยอำนวยความสะดวกในการจัดการค่าแฮช โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการคำนวณผลรวมของไฟล์จำนวนมาก เปรียบเทียบโฟลเดอร์ทั้งหมด หรือสร้างสำเนาที่ตรวจสอบแล้วโดยอัตโนมัติ
โปรแกรมอย่างQuickHashมีอินเทอร์เฟซกราฟิกที่ครบครันสำหรับ Windows, Linux และ macOS พร้อมรองรับMD5, SHA-1, SHA-2 (256 และ 512), SHA-3, BLAKE2, BLAKE3 และอื่นๆช่วยให้คุณสร้างแฮชข้อความ แฮชไฟล์เดียว แฮชหลายไฟล์ เปรียบเทียบสองไฟล์หรือแม้แต่สองไดเร็กทอรี และสร้างสำเนาที่ตรวจสอบแฮชแล้วได้
เครื่องมืออื่นๆ เช่น HashMyFiles, MultiHasher หรือ MD5 & SHA Checksum Utility เน้นการใช้งานบนระบบปฏิบัติการ Windows และช่วยให้คุณสร้างค่าแฮชจำนวนมากสำหรับทั้งโฟลเดอร์และโฟลเดอร์ย่อยได้และยังสามารถผสานรวมเข้ากับเมนูบริบทของ Explorer เพื่อเรียกใช้งานได้ด้วยการคลิกขวา
นอกจากนี้ยังมีโปรแกรมขนาดเล็กหรือแบบพกพา (เช่น HashCalc, MD5 Hash Check, Hasher Lite, DeadHash, Hash Generator, FCIV, Checksum Control…) ที่ตอบสนองความต้องการเฉพาะด้านได้มากขึ้น เช่น การตรวจสอบไฟล์ติดตั้งที่ดาวน์โหลดมาอย่างรวดเร็วโดยไม่ต้องจำคำสั่งหรือเปิดเทอร์มินัล
ความเสี่ยง การโจมตี และข้อจำกัดด้านความปลอดภัยของแฮช
แม้ว่าแฮชมักถูกอธิบายว่า "ถอดรหัสไม่ได้" แต่สิ่งสำคัญคือต้องเข้าใจว่ามีเทคนิคต่างๆ ที่พยายามจะถอดรหัส แฮช วิธี ที่ตรงที่สุดคือการโจมตีแบบเดาแบบสุ่ม (brute-force attack ) ซึ่งเกี่ยวข้องกับการลองใช้ชุดข้อมูลป้อนเข้าที่เป็นไปได้ทั้งหมดจนกว่าจะพบชุดข้อมูลที่สร้างแฮชที่ต้องการได้—ซึ่งเป็นเรื่องที่ไม่สมจริงสำหรับรหัสผ่านยาวๆ ที่ใช้อัลกอริทึมสมัยใหม่
การโจมตีด้วยพจนานุกรมและตารางเรนโบว์ช่วยเร่งกระบวนการเมื่อผู้โจมตีสงสัยประเภทของข้อมูลที่ป้อนเข้ามา (เช่น รหัสผ่านที่มนุษย์ทั่วไปป้อน) แทนที่จะทดสอบสตริงแบบสุ่ม พวกมันทำงานกับรายการที่รวบรวมไว้ล่วงหน้าและแฮชที่คำนวณไว้ล่วงหน้าซึ่งช่วยลดเวลาที่จำเป็นในการค้นหาจุดอ่อนได้อย่างมาก
การโจมตีแบบชนกันของค่าแฮช (Collision attack) ใช้ประโยชน์จากข้อเท็จจริงที่ว่า ด้วยจำนวนเอาต์พุตที่จำกัด จะต้องมีอินพุตที่แตกต่างกันซึ่งสร้างค่าแฮชเดียวกันหากอัลกอริทึมมีจุดอ่อนทางคณิตศาสตร์ จะสามารถตรวจพบการชนกันของค่าแฮชได้อย่างมีประสิทธิภาพ ทำให้สามารถสร้างไฟล์สองไฟล์ที่แตกต่างกันแต่มีค่าแฮชเดียวกันได้ นี่คือสิ่งที่เกิดขึ้นกับ MD5 และ SHA-1 ซึ่งกลายเป็นอัลกอริทึมที่ไม่น่าเชื่อถือสำหรับการใช้งานที่สำคัญ
เพื่อลดความเสี่ยงเหล่านี้ลง จึงมีการใช้กลยุทธ์หลายอย่าง เช่นการใช้แฮชที่แข็งแกร่งและทันสมัย การเพิ่ม "เกลือ" แบบสุ่มลงในข้อมูลป้อนเข้าก่อนที่จะทำการแฮช และการใช้อัลกอริธึมรหัสผ่านเฉพาะ (bcrypt, scrypt, Argon2) ที่ออกแบบมาให้ทำงานช้าและมีค่าใช้จ่ายในการประมวลผลแบบขนานสูงโดยเจตนา
แนวทางปฏิบัติที่ดีที่สุดสำหรับการตรวจสอบความถูกต้องของไฟล์ ISO และ DMG บน macOS
หากคุณจะดาวน์โหลดไฟล์ ISO หรือ DMG เพื่อใช้งานบน macOS โดยเฉพาะอย่างยิ่งหากคุณกำลังติดตั้งระบบหรือเครื่องมือที่มีความสำคัญ ควรปฏิบัติตามขั้นตอนที่ชัดเจนขั้นแรก ให้ดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการของโครงการเสมอ ตรวจสอบให้แน่ใจว่า URL และใบรับรอง HTTPS ถูกต้อง
ถัดไป ให้ค้นหาส่วนที่เผยแพร่ค่าตรวจสอบความถูกต้อง (checksum) หรือลายเซ็น PGP ที่เกี่ยวข้องควรเลือกใช้อัลกอริทึมที่ทันสมัย เช่น SHA-256 หรือสูงกว่าและหลีกเลี่ยง MD5 หรือ SHA-1 เว้นแต่คุณจะต้องการตรวจจับความเสียหายโดยไม่ตั้งใจในไฟล์ที่ไม่ละเอียดอ่อนเท่านั้น
เมื่อไฟล์ ISO หรือ DMG อยู่ในโฟลเดอร์ดาวน์โหลดของคุณแล้ว ให้เปิด Terminal ไปยังโฟลเดอร์นั้น และคำนวณค่าแฮชโดยใช้ shaSum หรือ MD5 ตามความเหมาะสมเปรียบเทียบผลลัพธ์กับค่าอย่างเป็นทางการ โดยระวังอย่าให้ตัวเลขตกหล่นหรือสับสนกับตัวอักษรที่คล้ายกัน หากไม่ตรงกัน ให้ลบไฟล์นั้นทันที
หากคุณวางแผนที่จะใช้ balenaEtcher, Ventoy หรือเครื่องมืออื่น ๆ ในการเขียนอิมเมจลงในไดรฟ์ USB โปรดตรวจสอบให้แน่ใจว่าแอปพลิเคชันนั้นมีขั้นตอนการตรวจสอบความถูกต้องหลังการเขียนวิธีนี้จะช่วยให้คุณมั่นใจได้ว่าไฟล์ ISO นั้นถูกต้อง และสำเนาบนแฟลชไดรฟ์จะจำลองข้อมูลต้นฉบับได้อย่างแม่นยำ
แม้ว่าอาจดูเหมือนต้องทำงานเพิ่มขึ้นเล็กน้อย แต่กระบวนการตรวจสอบนี้จะช่วยลดปัญหาและลดความเสี่ยงในการใช้งานโค้ดที่เสียหายหรือถูกดัดแปลงความเข้าใจอย่างถ่องแท้เกี่ยวกับวิธีการทำงานของ checksum, ลายเซ็น และใบรับรองใน macOS จะช่วยให้คุณใช้งานไฟล์ ISO และ DMG ได้อย่างสบายใจมากขึ้น โดยรู้ว่าสิ่งที่คุณติดตั้งนั้นตรงกับสิ่งที่ผู้พัฒนาตั้งใจไว้และไม่มีสิ่งอื่นใดเจือปน

