เมื่อคุณดาวน์โหลดซอฟต์แวร์จากอินเทอร์เน็ต คุณต้องเชื่อใจนักพัฒนาว่าโปรแกรมของพวกเขาไม่เป็นอันตราย อย่างไรก็ตาม คุณต้องกังวลเกี่ยวกับแฮกเกอร์ด้วย ผู้โจมตีสามารถได้ประโยชน์มากมายจากการแฮ็คเว็บไซต์และแทนที่ซอฟต์แวร์ด้วยเวอร์ชันลับๆ
ลองนึกถึงไซต์ที่โฮสต์ยูทิลิตี้กระเป๋าเงิน Bitcoin หากผู้โจมตีสามารถแทนที่เวอร์ชันที่ถูกต้องด้วยเวอร์ชันที่เป็นอันตราย เขาอาจขโมยเงินจากผู้ใช้หลายหมื่นคนได้ เป้าหมายที่มีค่าอีกประการหนึ่งสำหรับแบ็คดอร์คือระบบปฏิบัติการ สิ่งนี้เคยเกิดขึ้นกับ Linux Mint ในอดีต
แล้วคุณจะทำอย่างไรกับมันได้บ้าง
แฮชและลายเซ็น
นักพัฒนาที่คำนึงถึงความปลอดภัยมักจะรวมไฟล์การติดตั้งหรือไฟล์เก็บถาวรด้วยเช็คซัมที่คุณสามารถตรวจสอบได้ คุณสามารถอ่านวิธีตรวจสอบความถูกต้องบน Windows หรือ Linux อย่างไรก็ตาม ปัญหาของแฮชเหล่านี้ก็คือ หากแฮ็กเกอร์แทนที่ไฟล์บนเว็บไซต์ เขาก็สามารถแทนที่แฮชได้อย่างง่ายดายเช่นกัน ทำให้แฮชด้วยตัวเองแทบไม่มีประโยชน์ โดยเฉพาะอย่างยิ่งหากโฮสต์อยู่บนเซิร์ฟเวอร์เดียวกันกับที่มีโปรแกรมอยู่
เพื่อให้ผลรวมการตรวจสอบเหล่านี้มีประโยชน์ นักพัฒนายังสามารถเซ็นชื่อแบบดิจิทัลด้วยความช่วยเหลือของคู่คีย์สาธารณะและส่วนตัว เฉพาะบุคคลที่เป็นเจ้าของคีย์ส่วนตัวนี้เท่านั้นที่สามารถสร้างลายเซ็นได้ สิ่งเหล่านี้สามารถตรวจสอบได้ด้วยกุญแจสาธารณะที่เกี่ยวข้องซึ่งเผยแพร่บนอินเทอร์เน็ตเท่านั้น หากการตรวจสอบผ่าน คุณสามารถมั่นใจ (เกือบทุกครั้ง) ว่าเจ้าของคีย์ส่วนตัวได้ลงนามในซอฟต์แวร์ของเขา
สำหรับแฮ็กเกอร์ที่จะหลีกเลี่ยงกลไกการรักษาความปลอดภัยนี้ เขาต้องขโมยคีย์ส่วนตัวอย่างใดทางหนึ่ง ซึ่งยากกว่ามากหากเจ้าของใช้มาตรการที่เหมาะสมเพื่อเก็บเป็นความลับ และถึงแม้กุญแจจะถูกขโมย เจ้าของก็สามารถทำให้เป็นโมฆะได้ด้วยการเพิกถอนและประกาศ หากเกิดกรณีนี้ขึ้น เมื่อคุณดาวน์โหลดคีย์สาธารณะของเขา/เธอและพยายามใช้เพื่อยืนยันลายเซ็น คุณจะได้รับแจ้งว่าการดำเนินการนี้ถูกเพิกถอนแล้ว
วิธีการตรวจสอบลายเซ็นโดยใช้ GnuPG (GPG)
โดยปกติยูทิลิตี้ gpg จะถูกติดตั้งตามค่าเริ่มต้นใน distros ทั้งหมด หากหายไปด้วยเหตุผลบางประการ คุณสามารถติดตั้งโดยใช้คำสั่งด้านล่าง ในบางรุ่น หากคุณได้รับข้อผิดพลาดเช่น “gpg:failed to start the dirmngr '/usr/bin/dirmngr':No such file or directory ” คุณต้องติดตั้ง dirmngr
เช่นกัน
บน distros ที่ใช้ Debian, Ubuntu หรือ Debian ให้เรียกใช้:
sudo apt install gnupg dirmngr
สำหรับ RedHat/CentOS:
sudo yum install gnupg dirmngr
และบน Fedora:
sudo dnf install gnupg dirmngr
คุณสามารถทำตามตัวอย่างด้านล่างเพื่อทดสอบว่าคุณจะตรวจสอบ ISO ของตัวติดตั้ง Debian 9.8.0 ได้อย่างไร
ดาวน์โหลด “SHA256SUMS,” “SHA256SUMS.sign” และ “debian-9.8.0-amd64-netinst.iso” คุณอาจต้องคลิกขวาที่สองไฟล์แรกและเลือก “บันทึกลิงก์เป็น” หรือเทียบเท่าในเว็บเบราว์เซอร์ของคุณ มิฉะนั้น การคลิกอาจแสดงเนื้อหาแทนการดาวน์โหลดโดยอัตโนมัติ
เปิดเทอร์มินัลอีมูเลเตอร์และเปลี่ยนเป็นไดเร็กทอรีที่ดาวน์โหลดของคุณ
cd Downloads/
กำลังตรวจสอบผลรวมของเช็ค
รอให้การดาวน์โหลด ISO เสร็จสิ้น ถัดไป ตรวจสอบผลรวมเช็คซัม SHA256
sha256sum -c SHA256SUMS
คุณจะเห็นชื่อไฟล์ตามด้วยข้อความ "ตกลง" เมื่อผลรวมตรวจสอบดี ในการตรวจสอบเช็คซัมประเภทอื่นๆ คุณมีคำสั่งต่อไปนี้:sha1sum
, sha512sum
, md5sum
. แต่ขอแนะนำให้ใช้ผลรวม SHA256 ขึ้นไป หากมี
บางไซต์ไม่มีไฟล์เช่น SHA256SUMS ซึ่งชื่อไฟล์และเช็คซัมถูกจัดกลุ่มไว้ด้วยกันเพื่อให้ตรวจสอบได้ง่าย หากพวกเขาเพียงแค่แสดงผลรวมบนเว็บไซต์ของพวกเขา ให้ตรวจสอบแฮชของไฟล์ด้วยคำสั่งเช่น:
sha256sum debian-9.8.0-amd64-netinst.iso
การใช้ GPG เพื่อตรวจสอบ Checksum ที่ลงนามแล้ว
ในตัวอย่างนี้ ทีม Debian ได้ลงนามในไฟล์ "SHA256SUMS" ด้วยคีย์ส่วนตัวและบันทึกไว้ในไฟล์ "SHA256SUMS.sign" ตรวจสอบลายเซ็นด้วย:
gpg --verify SHA256SUMS.sign SHA256SUMS
คุณจะได้รับข้อความนี้:
gpg: Signature made Sun 17 Feb 2019 05:10:29 PM EET gpg: using RSA key DF9B9C49EAA9298432589D76DA87E80D6294BE9B gpg: Can't check signature: No public key
ซึ่งหมายความว่าคุณไม่มีคีย์สาธารณะบนคอมพิวเตอร์ของคุณ ซึ่งถือเป็นเรื่องปกติ คุณต้องนำเข้าจากคีย์เซิร์ฟเวอร์
gpg --keyserver keyring.debian.org --recv-keys DF9B9C49EAA9298432589D76DA87E80D6294BE9B
หากคีย์เซิร์ฟเวอร์ไม่ทำงาน คุณสามารถใช้เซิร์ฟเวอร์อื่นได้ ตัวอย่างเช่น คุณสามารถแทนที่ keyring.debian.org
ด้วย keyserver.ubuntu.com
.
แต่คุณรู้ได้อย่างไรว่าคีย์นี้ถูกต้องตามกฎหมาย? น่าเสียดายที่คุณจะต้องสร้างสิ่งที่เรียกว่าเว็บแห่งความไว้วางใจเพื่อให้แน่ใจอย่างแน่นอน เห็นได้ชัดว่าคุณไม่มีมันในตอนนี้ แต่มีสองสิ่งที่คุณทำได้
Google ลายนิ้วมือของคีย์ (DF9B9C49EAA9298432589D76DA87E80D6294BE9B) หากคุณไม่พบสิ่งใด ให้ลองใช้ Google เฉพาะอักขระแปดตัวสุดท้าย (6294BE9B) จะมีการกล่าวถึงรหัสที่ถูกต้องในหลายเว็บไซต์เกี่ยวกับซอฟต์แวร์ที่คล้ายคลึงกัน นอกจากนี้ โดยปกติแล้ว โพสต์จะมีระยะเวลาหลายปี เนื่องจากคีย์ที่มีการป้องกันอย่างปลอดภัยจะถูกนำมาใช้เป็นเวลานาน
หากคุณเป็นคนหวาดระแวงจริงๆ ให้ดาวน์โหลดภาพ BitTorrent แล้วตรวจสอบผลรวมและลายเซ็น วิธีการทำงานของทอร์เรนต์ เป็นไปไม่ได้ที่จะแทนที่ไฟล์ที่อัพโหลดโดยผู้ใช้หลายร้อยคน นอกจากนี้ BitTorrent ยังมีกลไกในตัวเองเพื่อตรวจสอบความสมบูรณ์ของข้อมูลที่ดาวน์โหลดทุกอัน
เมื่อคุณมีกุญแจสาธารณะแล้ว คุณก็สามารถตรวจสอบลายเซ็นได้ในที่สุด:
gpg --verify SHA256SUMS.sign SHA256SUMS
หากคุณเห็น "ลายเซ็นที่ดี" แสดงว่าทุกอย่างเช็คเอาท์ ไม่ต้องกังวลกับคำเตือน เป็นเรื่องปกติเพราะดังที่กล่าวไว้ คุณไม่มีเว็บที่เชื่อถือได้สำหรับคีย์สาธารณะ
บทสรุป
อย่างที่คุณอาจทราบแล้ว ไม่มีอะไรแน่นอนบนอินเทอร์เน็ต แต่การใช้มาตรการป้องกันไว้ก่อนจะปลอดภัยกว่าอย่างแน่นอน และการตรวจสอบลายเซ็นดิจิทัลของไฟล์ที่คุณดาวน์โหลดสามารถช่วยคุณหลีกเลี่ยงซอฟต์แวร์ที่เป็นอันตรายได้ หลายครั้งที่ผู้ใช้ดาวน์โหลดระบบปฏิบัติการลับๆ หรือซอฟต์แวร์กระเป๋าเงิน Bitcoin พวกเขาอาจหลีกเลี่ยงปัญหาได้หากตรวจสอบลายเซ็น เนื่องจากระบบไม่ได้ถูกดัดแปลง