ฉันจะตรวจสอบลายเซ็น PGP ได้อย่างไร

How Do I Verify Pgp Signature



PGP (Pretty Good Privacy) เป็นโปรแกรมเข้ารหัสแบบใช้คีย์สาธารณะ PGP เสริมคีย์สมมาตรด้วยอัลกอริธึมคีย์แบบอสมมาตร ทำให้ซอฟต์แวร์นี้เป็นระบบเข้ารหัสแบบไฮบริด ซึ่งมักเรียกว่า ระบบเข้ารหัสไฮบริด .

PGP ไม่ได้ใช้เพื่อรักษาความปลอดภัยข้อมูลจากภัยคุกคามทางไซเบอร์เท่านั้น แต่ยังใช้ตรวจสอบความสมบูรณ์ของไฟล์ด้วย







บทช่วยสอนนี้จะอธิบายวิธีการทำงานของ PGP และ วิธีตรวจสอบลายเซ็น PGP .



PGP ทำงานอย่างไร

รูปภาพด้านล่างแสดงคีย์สาธารณะของ PGP คีย์สาธารณะ PGP นี้สามารถถอดรหัสได้ด้วยคีย์ PGP ส่วนตัวที่ระบุเท่านั้น ผู้ออกคีย์สาธารณะด้านล่างได้ออกคีย์ PGP ส่วนตัวด้วย เนื่องจากคีย์เหล่านี้สร้างขึ้นในกระบวนการเดียวกัน เขาแบ่งปันเฉพาะกุญแจสาธารณะเท่านั้น
หากคุณใช้กุญแจสาธารณะเพื่อเข้ารหัสข้อความถึงเขา เขาจะสามารถถอดรหัสข้อความโดยใช้คีย์ส่วนตัวได้ เฉพาะคีย์ส่วนตัวของเขาเท่านั้นที่สามารถถอดรหัสข้อความที่คุณเข้ารหัสโดยใช้กุญแจสาธารณะของเขา







ข้อมูลจะถูกเข้ารหัสโดยใช้กุญแจสาธารณะ และถอดรหัสโดยใช้กุญแจส่วนตัว นี้เรียกว่า การเข้ารหัสแบบอสมมาตร .

ดังนั้นแม้ว่าผู้โจมตีจะสามารถดักจับข้อความได้โดยไม่ต้องใช้คีย์ส่วนตัว เขาก็ไม่สามารถมองเห็นเนื้อหาข้อความได้



ข้อดีของการเข้ารหัสแบบอสมมาตรคือความเรียบง่ายในการแลกเปลี่ยนคีย์ แต่ข้อเสียของมันคือไม่สามารถเข้ารหัสข้อมูลจำนวนมากได้ และนั่นเป็นสาเหตุที่ PGP ใช้งานทั้งสองอย่าง

การเข้ารหัสแบบสมมาตรจะใช้เมื่อมีการใช้กุญแจสาธารณะเพื่อเข้ารหัสข้อมูลที่ได้รับการป้องกัน ด้วยกุญแจสาธารณะ ผู้ส่งทำสองสิ่ง: ขั้นแรกสร้างการเข้ารหัสแบบสมมาตรเพื่อปกป้องข้อมูล จากนั้นใช้การเข้ารหัสแบบอสมมาตรซึ่งไม่ได้เข้ารหัสข้อมูลด้วยตัวมันเอง แต่เป็นคีย์สมมาตรซึ่งปกป้องข้อมูล

เพื่อให้เป็นเทคนิคมากขึ้น ก่อนใช้คีย์สมมาตร ข้อมูลจะถูกบีบอัดด้วยก่อนที่จะเข้ารหัสด้วยคีย์สมมาตรและคีย์สาธารณะ ผังแผนภูมิต่อไปนี้แสดงกระบวนการทั้งหมด:

ลายเซ็น PGP

PGP ยังใช้เพื่อตรวจสอบความสมบูรณ์ของแพ็คเกจ ซึ่งทำได้โดยใช้ลายเซ็นดิจิทัล ซึ่งสามารถทำได้ด้วย PGP

อันดับแรก PGP จะสร้างแฮชที่เข้ารหัสด้วยคีย์ส่วนตัว ทั้งคีย์ส่วนตัวและแฮชสามารถถอดรหัสได้โดยใช้คีย์สาธารณะ

PGP สร้างลายเซ็นดิจิทัล เช่น สำหรับอิมเมจ ISO โดยใช้อัลกอริทึม DSA หรือ RSA ในกรณีนี้ คีย์ส่วนตัวจะแนบมากับซอฟต์แวร์หรืออิมเมจ ISO ซึ่งตรงกันข้ามกับการดำเนินการที่อธิบายไว้ก่อนหน้านี้ มีการแชร์คีย์สาธารณะด้วย

ผู้ใช้ใช้กุญแจสาธารณะเพื่อตรวจสอบลายเซ็นที่แนบมากับซอฟต์แวร์ที่เผยแพร่

ผังแผนภูมิต่อไปนี้แสดงวิธีการแนบคีย์ส่วนตัวและแฮชกับซอฟต์แวร์ และวิธีที่ผู้ใช้นำซอฟต์แวร์ไปพร้อมกับแฮชและคีย์ส่วนตัวที่แนบมาพร้อมกับคีย์สาธารณะเพื่อยืนยันลายเซ็น:

ฉันจะตรวจสอบลายเซ็น PGP ได้อย่างไร

ตัวอย่างแรกแสดงวิธีการตรวจสอบลายเซ็นเคอร์เนลของลินุกซ์ หากต้องการลอง ให้เข้าไปที่ https://kernel.org และดาวน์โหลดเวอร์ชันเคอร์เนลและไฟล์ PGP สำหรับตัวอย่างนี้ ผมจะดาวน์โหลดไฟล์ linux-5.12.7.tar.xz และ linux-5.12.7.tar.sign .

ตัวอย่างแรกแสดงวิธีการตรวจสอบลายเซ็นด้วยคำสั่งเดียว ตามหน้าคู่มือ ชุดตัวเลือกนี้กำลังจะเลิกใช้ในเวอร์ชันต่อๆ ไป อย่างไรก็ตาม ยังคงใช้กันอย่างแพร่หลาย และแม้ว่าจะเลิกใช้ชุดค่าผสมเฉพาะ แต่ตัวเลือกจะยังคงอยู่

ตัวเลือกแรก –keyserver-ตัวเลือก อนุญาตให้กำหนดตัวเลือกสำหรับเซิร์ฟเวอร์คีย์ที่จัดเก็บคีย์สาธารณะ โดยพื้นฐานแล้ว วิธีนี้จะทำให้สามารถใช้ตัวเลือกการดึงคีย์สาธารณะได้

NS –keyserver-ตัวเลือก รวมกับ – คีย์อัตโนมัติดึง ตัวเลือกในการดึงคีย์สาธารณะจากเซิร์ฟเวอร์คีย์โดยอัตโนมัติเมื่อตรวจสอบลายเซ็น

ในการค้นหากุญแจสาธารณะ คำสั่งนี้จะอ่านลายเซ็นเพื่อค้นหาเซิร์ฟเวอร์คีย์ที่ต้องการหรือ ID ของผู้ลงนามผ่านกระบวนการค้นหาโดยใช้ Web Key Directory

gpg--keyserver-ตัวเลือกคีย์อัตโนมัติดึง--ตรวจสอบlinux-5.12.7.tar.sign

อย่างที่คุณเห็น ลายเซ็นนั้นดี แต่มีข้อความเตือนว่า gpg ไม่สามารถยืนยันได้ว่าลายเซ็นนั้นเป็นของเจ้าของ ทุกคนสามารถออกลายเซ็นสาธารณะในฐานะ Greg Krohan-Hartman คุณรู้ว่าลายเซ็นนั้นถูกต้องเพราะคุณเชื่อถือเซิร์ฟเวอร์ที่คุณดาวน์โหลดมา ในกรณีนี้ มันถูกระบุไว้ใน .sign ที่ดาวน์โหลดจาก kernel.org
คำเตือนนี้มีอยู่เสมอ และคุณสามารถหลีกเลี่ยงได้โดยการเพิ่มลายเซ็นลงในรายการลายเซ็นที่เชื่อถือได้โดยใช้ตัวเลือก – แก้ไขคีย์ trust . ความจริงก็คือไม่มีผู้ใช้คนใดทำ และชุมชน Gpg ขอให้ลบคำเตือน

กำลังตรวจสอบ SHA256SUMS.gpg

ในตัวอย่างต่อไปนี้ ฉันจะตรวจสอบความสมบูรณ์ของอิมเมจ Kali Linux เก่าที่พบในกล่องของฉัน เพื่อจุดประสงค์นี้ ฉันดาวน์โหลดไฟล์ SHA256SUMS.gpg และ SHA256SUMS ที่เป็นของอิมเมจ iso เดียวกัน

เมื่อคุณดาวน์โหลดอิมเมจ iso, SHA256SUMS.gpg และ SHA256SUMS คุณจะต้องรับกุญแจสาธารณะ ในตัวอย่างต่อไปนี้ ฉันดึงคีย์โดยใช้ wget และ gpg – นำเข้า (ลิงก์คำแนะนำการตรวจสอบ Kali ไปยังเซิร์ฟเวอร์หลักนี้)

จากนั้นฉันตรวจสอบความสมบูรณ์ของไฟล์โดยเรียก gpg ด้วยปุ่ม -ตรวจสอบ การโต้แย้ง:

wget -NS -หรือ- https://archive.kali.org/archive-key.asc|gpg--นำเข้า

gpg--ตรวจสอบSHA256SUMS.gpg SHA256SUMS

อย่างที่คุณเห็น ลายเซ็นนั้นดี และการตรวจสอบสำเร็จ

ตัวอย่างต่อไปนี้แสดงวิธีการตรวจสอบการดาวน์โหลด NodeJS คำสั่งแรกส่งคืนข้อผิดพลาดเนื่องจากไม่มีคีย์สาธารณะ ข้อผิดพลาดระบุว่าฉันต้องค้นหาคีย์ 74F12602B6F1C4E913FAA37AD3A89613643B6201 โดยปกติ คุณสามารถค้นหารหัสคีย์ได้ในคำแนะนำ

โดยใช้ตัวเลือก –คีย์เซิร์ฟเวอร์ ฉันสามารถระบุเซิร์ฟเวอร์เพื่อค้นหาคีย์ได้ โดยใช้ตัวเลือก –recv-คีย์ ฉันดึงกุญแจ จากนั้นการตรวจสอบก็ใช้งานได้:

gpg--ตรวจสอบSHASUMS256.txt.asc

ฉันคัดลอกรหัสที่ฉันต้องการดึงแล้วเรียกใช้:

gpg--คีย์เซิร์ฟเวอร์pool.sks-keyservers.net--recv-คีย์

74F12602B6F1C4E913FAA37AD3A89613643B6201


gpg--ตรวจสอบSHASUMS256.txt.asc

ค้นหาคีย์ gpg:

หากการเรียกคีย์อัตโนมัติไม่ทำงานและคุณไม่พบคำแนะนำเฉพาะสำหรับการยืนยัน คุณสามารถค้นหาคีย์ในเซิร์ฟเวอร์คีย์ได้โดยใช้ตัวเลือก – ค้นหาคีย์ .

gpg--search-key74F12602B6F1C4E913FAA37AD3A89613643B6201

อย่างที่คุณเห็น พบกุญแจแล้ว คุณยังสามารถดึงข้อมูลได้โดยกดหมายเลขคีย์ที่คุณต้องการดึงข้อมูล

บทสรุป

การตรวจสอบความถูกต้องของการดาวน์โหลดอาจป้องกันปัญหาร้ายแรงหรืออธิบายปัญหาดังกล่าวได้ เช่น เมื่อซอฟต์แวร์ที่ดาวน์โหลดมาทำงานไม่ถูกต้อง กระบวนการกับ gpg นั้นค่อนข้างง่าย ดังที่แสดงไว้ด้านบน ตราบใดที่ผู้ใช้ได้รับไฟล์ที่จำเป็นทั้งหมด

การทำความเข้าใจการเข้ารหัสแบบอสมมาตรหรือการเข้ารหัสตามคีย์สาธารณะและส่วนตัวเป็นความต้องการขั้นพื้นฐานในการโต้ตอบอย่างปลอดภัยบนอินเทอร์เน็ต เช่น การใช้ลายเซ็นดิจิทัล

ฉันหวังว่าบทช่วยสอนเกี่ยวกับลายเซ็น PGP นี้จะมีประโยชน์ ปฏิบัติตามคำแนะนำของ Linux สำหรับเคล็ดลับและบทช่วยสอนเพิ่มเติมเกี่ยวกับ Linux