ทุกครั้งที่คุณดาวน์โหลดโปรแกรมจากอินเทอร์เน็ต คุณต้องเชื่อถือนักพัฒนาว่ามันไม่ใช่ไวรัส ไม่มีทางหลบพ้น แต่ปกติแล้วไม่ใช่ปัญหา โดยเฉพาะซอฟต์แวร์และนักพัฒนาที่มีชื่อเสียง
อย่างไรก็ตาม เว็บไซต์ที่โฮสต์ซอฟต์แวร์เปราะบางกว่า โจมตีสามารถเจาะรักษาความปลอดภัยของเว็บ และแทนที่โปรแกรมด้วยเวอร์ชันของพวกเขาที่เป็นไวรัส มันดูและทำงานเหมือนต้นฉบับทุกประการ ยกเว้นว่ามี Backdoor ติดมา ด้วย Backdoor นี้ โจมตีควบคุมส่วนต่างๆ ของการคำนวณประจำวันของคุณ คอมพิวเตอร์ของคุณอาจถูกใส่ใน Botnet หรือแย่กว่านั้น ยูทิลิตี้รอจนกว่าคุณจะใช้บัตรเครดิต/เดบิต แล้วขโมยข้อมูลประจำตัว คุณควรระมัดระวังเป็นพิเศษเมื่อดาวน์โหลดซอฟต์แวร์สำคัญ เช่น ระบบปฏิบัติการ, กระเป๋าเงินคริปโตคอร์เรนซี หรือคล้ายๆ กัน
Digital Signatures ช่วยชีวิตได้
นักเขียนซอฟต์แวร์สามารถลงนาม (sign) ผลิตภัณฑ์ของพวกเขาได้ เว้นแต่โจมตีจะขโมย Private key ของพวกเขา ไม่มีวิธีรู้จักที่จะปลอมลายเซ็นนี้ได้ มีกรณีมากมายที่ผู้ใช้หลายพันคนดาวน์โหลดโปรแกรมไวรัส และในเกือบทุกกรณี หากพวกเขาตรวจสอบ Digital Signatures พวกเขาจะพบว่าลายเซ็นไม่ถูกต้อง จึงหลีกเลี่ยงสถานการณ์ได้ การแทนที่ซอฟต์แวร์บนเว็บที่เปราะบางเป็นเรื่องง่าย แต่การขโมย Private key ที่จัดเก็บอย่างถูกต้องและแยกจากอินเทอร์เน็ต เป็นเรื่องยากมาก
คุณอ่านเพิ่มเติมเกี่ยวกับ Digital Signatures ได้ที่นี่ บทความนี้พูดถึงเรื่องเดียวกัน แต่คุณจะใช้ Windows Utilities เพื่อตรวจสอบการดาวน์โหลด
วิธีใช้ Gpg4win ตรวจสอบ Digital Signatures
ไปที่หน้านี้ ดาวน์โหลดและติดตั้ง Gpg4win คนฉลาดจะถามตัวเองว่า "แต่ฉันจะรู้ได้ไงว่านี่ถูกต้อง?" คำถามดี หากมันเสีย ทุกขั้นตอนต่อไปจะไร้ประโยชน์
โชคดีที่นักพัฒนาใช้ความพยายามรับรองซอฟต์แวร์ของเขาโดย Certificate Authority และเขาอธิบายขั้นตอนตรวจสอบโปรแกรมของเขาบนเว็บไซต์ แม้จะใช้ Cryptography คล้ายกันแต่วิธีการโดยรวมต่างกัน ใช้ Digital Certificates สำหรับสิ่งนี้
ตรวจสอบ File Checksums
สมมติคุณอยากดาวน์โหลด Bitcoin Core wallet ดาวน์โหลด x64 Windows executable (exe ไม่ใช่ zip) หลังนั้น คลิก "Verify release signatures" เพื่อดาวน์โหลดไฟล์ "SHA256SUMS.asc" ขั้นแรกคือ ตรวจสอบแฮชของไฟล์ Setup คุณอ่านเพิ่มเติมเกี่ยวกับ Hashes ได้ที่นี่
ไปที่โฟลเดอร์ Downloads ด้วย Gpg4win ติดตั้งแล้ว คลิกขวาบนไฟล์ จะมี Context menu ใหม่ คลิกขวาบนไฟล์ Setup Bitcoin (exe ที่ดาวน์โหลด) เลือก "More GpgEX Options -> Create checksums" ตามภาพ
เปิด "sha256sum.txt" ที่สร้างขึ้น และ "SHA256SUMS.asc" ที่ดาวน์โหลด เปรียบเทียบ SHA256 checksums ควรตรงกันทุกตัวอักษร
ตรวจสอบ Signature ของไฟล์ที่แสดง Checksums
แม้คุณดาวน์โหลด Setup file และรายการ Checksums จากเว็บเดียวกัน หากโจมตีแทนที่ Setup file พวกเขาสามารถแทนที่รายการ Checksums ได้เช่นกัน แต่สิ่งที่ทำไม่ได้คือ การปลอม Signature นั่นสามารถตรวจสอบได้ด้วย Public key ที่รู้จักและถูกต้อง ก่อนอื่น ต้องดาวน์โหลด Key นี้
ภาพต่อไปคือลายเซ็น (signature) ลักษณะอย่างไร
นี่คือ Inline signature (รวมอยู่ในไฟล์เดียวกับที่ตรวจสอบ) บางครั้งจะเป็น Detached signature (อยู่ในไฟล์แยก) หากคุณเปลี่ยนแค่ตัวอักษรเดียวในไฟล์ข้อความนี้ Signature จะกลายเป็น Invalid นี่คือวิธีรู้ว่านักพัฒนาอนุมัติและลงนามเนื้อหาที่แน่นอนนี้พร้อม Checksums ที่ถูกต้อง
นำเข้า Public Key ของนักพัฒนา
คุณมี Public keys สำหรับดาวน์โหลดภายใต้ "Bitcoin Core Release Signing Keys" ในหน้าดาวน์โหลด Bitcoin เป็นมาตรการป้องกัน คุณสามารถดาวน์โหลดจากแหล่งอื่นได้ หากโจมตีแทนที่ Keys ที่ถูกต้องด้วยของพวกเขา โอกาสคือ เราจะพบ Keys ที่ถูกต้อง (และ Fingerprints) ในทุกที่ที่เคยโพสต์หรืออภิปราย
คลิกขวา "SHA256SUMS.asc" เลือก "Decrypt and Verify" โปรแกรมจะบอกว่าคุณยังไม่มี Public key คลิก "Search"
การค้นหาอาจใช้เวลา ให้จดสตริงในช่อง "Find"
คุณสามารถคัดลอกไปวางใน Google ดูว่า Public key fingerprint นี้เคยถูกอภิปรายบนฟอรัมหรือเว็บไซต์ที่ถูกต้องหรือไม่ ยิ่งพบหลายที่ ยิ่งมั่นใจว่าเป็นของเจ้าของจริง
คลิกที่ Key แล้ว Import คลิก "No" ในพรอมต์ถัดไป (take measures to certify the key) หากไม่รู้วิธีหรือไม่อยากทำตอนนี้
สุดท้าย คลิก "Show Audit Log"
คุณควรเห็นข้อความที่ไฮไลท์ในภาพถัดไป "Good signature"
ลองเปลี่ยนแค่ตัวอักษรเดียวใน "SHA256SUMS.asc" คุณจะได้ภาพตามด้านล่าง (Signature invalid)
ข้อสรุป
นักพัฒนาไม่มากที่ให้คุณตรวจสอบว่าซอฟต์แวร์มาจากพวกเขาจริง แต่โปรแกรมที่จัดการข้อมูลละเอียดอ่อน หรือสำคัญมาก มักจะให้ตัวเลือกนี้ ใช้มัน และมันอาจช่วยคุณหลีกเลี่ยงปัญหาในวันหนึ่ง