การตรวจสอบความถูกต้องของไฟล์ ISO บน macOS: การตรวจสอบผลรวมและลายเซ็น

  • ค่าตรวจสอบความถูกต้อง (Checksum) และฟังก์ชันแฮช (Hash) ช่วยให้คุณตรวจสอบความสมบูรณ์ของไฟล์ ISO และ DMG โดยการตรวจจับการเปลี่ยนแปลงใดๆ ในข้อมูล
  • บน macOS คุณสามารถตรวจสอบความถูกต้องของรูปภาพด้วยคำสั่งต่างๆ เช่น shasum หรือ md5 และใช้ลายเซ็นดิจิทัลและใบรับรองเพื่อยืนยันความถูกต้องได้
  • เครื่องมืออย่าง balenaEtcher หรือ Ventoy จะเปรียบเทียบสิ่งที่เขียนลงในไดรฟ์ USB กับไฟล์ ISO ต้นฉบับ เพื่อให้แน่ใจว่าสำเนาที่ได้มานั้นถูกต้องตรงตามต้นฉบับ
  • การใช้อัลกอริทึมที่ทันสมัย ​​เช่น SHA-256 และการได้มาซึ่งค่าแฮชจากแหล่งข้อมูลที่เป็นทางการ เป็นกุญแจสำคัญในการลดความเสี่ยงจากการเสียหายหรือการปลอมแปลง

ตรวจสอบค่า checksum ของไฟล์ ISO บน macOS

เมื่อเราดาวน์โหลดไฟล์ 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 ได้อย่างสบายใจมากขึ้น โดยรู้ว่าสิ่งที่คุณติดตั้งนั้นตรงกับสิ่งที่ผู้พัฒนาตั้งใจไว้และไม่มีสิ่งอื่นใดเจือปน

เครื่องมือสำหรับเปรียบเทียบไฟล์ข้อความและตรวจจับการเปลี่ยนแปลงเล็กน้อย
บทความที่เกี่ยวข้อง:
เครื่องมือสำหรับเปรียบเทียบไฟล์ข้อความและตรวจจับการเปลี่ยนแปลงเล็กน้อย

เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google