ไม่นานมานี้เราได้พูดถึงแฮชการเข้ารหัสลับ (เช่นการตรวจสอบ MD5 และ SH1) และวิธีการที่ช่วยให้มั่นใจว่าไฟล์ที่คุณดาวน์โหลดเป็นไฟล์เดียวกับที่ผู้สร้างตั้งใจให้คุณดาวน์โหลดโดยการสร้าง 'ลายนิ้วมือ' ที่ไม่ซ้ำกันของไฟล์ ตรวจสอบกับต้นฉบับ.

ความสามารถในการตรวจสอบความถูกต้องของไฟล์ใด ๆ ก็ตามเป็นสิ่งสำคัญ แต่เมื่อเราดาวน์โหลดซอฟต์แวร์ความเป็นส่วนตัวและความปลอดภัยจากอินเทอร์เน็ตมันเป็นสิ่งสำคัญอย่างยิ่ง ท้ายที่สุดแล้วอะไรคือจุดที่คุณเชื่อใจในความเป็นส่วนตัวและความปลอดภัยของคุณต่อโปรแกรมที่อาจมีไวรัสโดยเฉพาะอย่างยิ่งเมื่อคุณพิจารณาว่าซอฟต์แวร์ดังกล่าวและผู้ใช้นั้นไม่ต้องสงสัยเลยว่าเป้าหมายที่มีความสำคัญสูงสำหรับ NSA และ ILK?

แม้ว่าคุณจะดาวน์โหลดซอฟต์แวร์โดยตรงจากผู้ขายหรือเว็บไซต์ของผู้พัฒนาคุณอาจตกเป็นเหยื่อของการโจมตี Man-in-the-Middle (MitM) หรือเว็บไซต์นั้นอาจถูกโจมตีด้วยวิธีการต่าง ๆ.

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

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


แผนภาพแสดงวิธีใช้ลายเซ็นดิจิทัลและตรวจสอบแล้ว.

PGP ลายเซ็นดิจิทัล

ระบบการเข้ารหัสลับที่แตกต่างกันใช้กลไกต่าง ๆ ในการสร้างและตรวจสอบลายเซ็นดิจิทัล ตัวอย่างเช่น Windows ใช้เทคโนโลยีโครงสร้างพื้นฐานพับลิกคีย์ของ Microsoft (PKI) เพื่อตรวจสอบลายเซ็นอัตโนมัติเมื่อติดตั้งซอฟต์แวร์เป็นครั้งแรก.

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

น่าเสียดายนี่ก็หมายความว่าการใช้ PGP เพื่อรักษาความปลอดภัยอีเมลการใช้ลายเซ็นดิจิทัล PGP นั้นซับซ้อนเกินไป.

วิธีการตรวจสอบลายเซ็นดิจิทัลโดยใช้ Kleopatra GUI

ในการตรวจสอบลายเซ็นดิจิตอล PGP ของไฟล์คุณต้องใช้ไคลเอนต์ PGP (หรือมากกว่านั้นอย่างแม่นยำ GnuPG - โคลนแบบโอเพ่นซอร์ส) GnuPG รุ่นที่มีอยู่สำหรับ Windows (Gpg4win), Mac OSX และ Linux (มักติดตั้งไว้ล่วงหน้า).

ในบทช่วยสอนนี้เราจะตรวจสอบลายเซ็นดิจิทัลของ Pidgin + OTR โดยใช้ Gpg4win แต่กระบวนการนี้คล้ายกันมากกับ GnuPG รุ่นอื่น.

เรามีบทความสองส่วนเกี่ยวกับการใช้ Gpg4win และเราขอแนะนำให้อ่านอย่างน้อยตอนที่ 1 เพื่อทำความคุ้นเคยกับแนวคิดหลักที่จะใช้ด้านล่าง.

การดาวน์โหลด Gpg4win มีการเซ็นชื่อแบบดิจิทัลด้วยรหัสที่ได้รับการตรวจสอบโดยผู้ออกใบรับรองที่ได้รับการยอมรับ (CA) และสามารถตรวจสอบได้อย่างอิสระสำหรับการตรวจสอบโดยใช้สำเนาที่เชื่อถือได้ของ GnuPG (แฮช SHA1). คุณไม่ควรเชื่อถือ Gpg4win ที่คุณยังไม่ได้ยืนยัน.

เมื่อติดตั้ง GnuPG แล้วเราต้องการสามสิ่งในการยืนยันลายเซ็นดิจิทัล:

  • ไฟล์ที่เราต้องการตรวจสอบ (duh!) เช่น โปรแกรมติดตั้ง pidgin-otr-4.0.1.exe
  • ไฟล์ลายเซ็น PGP / GPG (.asc) เช่น พิด-OTR-4.0.1.exe.asc
  • พับลิกคีย์ / ใบรับรอง PGP ใช้เพื่อสร้างลายเซ็นนี้เช่น gpgkey.asc

ไฟล์เหล่านี้ทั้งหมด (หวังว่า) จะได้รับจากผู้พัฒนาซึ่งมีไฟล์ที่เซ็นชื่อแบบดิจิทัลที่คุณต้องการตรวจสอบ พับลิกคีย์ / ใบรับรอง PGP มักถูกจัดเก็บไว้บนเซิร์ฟเวอร์หลัก แต่ผู้พัฒนาระบบควรให้คำแนะนำในการเข้าถึง.

คลีโอพัตรา

Kleopatra เป็นโปรแกรมการจัดการที่สำคัญที่มาพร้อมกับ Gpg4win.

1. คุณจะต้องใช้รหัสส่วนตัวส่วนตัวเพื่อรับรองใบรับรอง PGP หากคุณสร้างไว้ก่อนหน้านี้ (ตัวอย่างเช่นใช้ GPA) คุณสามารถนำเข้าได้ (ไฟล์ -> อิมพอร์ตใบรับรอง ... ) หรือคุณสามารถสร้างคู่คีย์ใหม่ (ไฟล์ -> ใบรับรองใหม่…).

พ่อมดจะแนะนำคุณตลอดกระบวนการที่เหลือนี้

2. นำเข้ากุญแจสาธารณะ / ใบรับรอง PGP ไปยัง Kleopatra โดยใช้ 'นำเข้าใบรับรอง' หรือคลิกขวาที่ไฟล์และเลือก 'นำเข้าคีย์'.

3. รับรองใบรับรอง PGP โดยใช้คีย์ส่วนตัวของคุณ - นี่จะบอก GnuPG ว่าคุณเชื่อถือคนที่ลงนามใบรับรอง.

a) ในคลีโอพัตราคลิกขวาที่คีย์และเลือก 'ใบรับรองรับรอง'.

b) เลือกใบรับรองและยืนยันว่าคุณได้ตรวจสอบลายนิ้วมือ (หวังว่านี่จะเผยแพร่ในเว็บไซต์ของผู้พัฒนา).

c) หากคุณไม่แน่ใจเกี่ยวกับความถูกต้องของใบรับรองคุณควรรับรองสำหรับตัวคุณเองเท่านั้น (ใบรับรองทำงานบนหลักการของเว็บที่เชื่อถือได้ - ยิ่งมีคนที่ไว้ใจพวกเขามากขึ้นเท่านั้น.

d) ป้อนวลีรหัสผ่านส่วนตัวของคุณเพื่อตรวจสอบใบรับรองให้เสร็จ.

4. ตอนนี้คุณได้รับรองใบรับรองที่ใช้สร้างลายเซ็นสำหรับไฟล์ที่คุณดาวน์โหลด (ใหม่!) คุณสามารถใช้มันเพื่อตรวจสอบลายเซ็นได้.

a) ใน Kleopatra ไปที่ File -> ถอดรหัส / ตรวจสอบไฟล์และเรียกดูไฟล์ลายเซ็นหรือคลิกขวาที่ไฟล์และไปที่ตัวเลือก MoreGpgEX -> ตรวจสอบ.

b) ตรวจสอบให้แน่ใจว่า ‘ไฟล์ที่ป้อน’ เป็นไฟล์ลายเซ็นต์และฟิลด์ data ข้อมูลที่ลงชื่อ ’มีโปรแกรมหรือไฟล์ที่คุณต้องการตรวจสอบจากนั้นกด‘ ถอดรหัส / ตรวจสอบ ’.

ค) ความเป็นอยู่ที่ดีทั้งหมด Kleopatra จะประกาศลายเซ็นที่ถูกต้อง.

ฉันจะเชื่อถือใบรับรองได้อย่างไร?

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

อย่างไรก็ตามถึงแม้ว่าจะง่าย แต่สิ่งนี้ไม่รับประกันความถูกต้องของลายเซ็นเนื่องจากเว็บไซต์อาจถูกแฮ็กหรือถูกบังคับโดยรัฐบาลในการแสดงลายนิ้วมือปลอม (ปัญหาเดียวกับที่แฮ็กเข้ารหัสลับ).

นี่คือที่เว็บแห่งความไว้วางใจเข้ามาโดยที่ผู้ใช้รับรองใบรับรอง ในทางปฏิบัตินี่เป็นกระบวนการลับที่ทั้งซับซ้อนเกินไปและคลุมเครือเกินไปสำหรับผู้ใช้ส่วนใหญ่ดังนั้นสิ่งที่ดีที่สุดที่เราคาดหวังมากที่สุดก็คือใบรับรองนั้นได้รับการรับรองโดยหน่วยงานออกใบรับรองที่เป็นที่รู้จักหรือลงนามโดยนักพัฒนาที่รู้จัก ผู้ที่เผยแพร่คีย์การเซ็นชื่อ (เช่นผู้พัฒนา Tor ทำ).

Pidgin + OTR เป็นตัวอย่างที่ดีของวิธีการเซ็นชื่อแบบดิจิทัลที่ใช้งานได้ดีเนื่องจากหน้าเว็บ OTR มาพร้อมกับคำแนะนำในการใช้คีย์ที่เผยแพร่และแทบจะไม่สามารถหาได้ง่าย แต่นอกเหนือจากที่มีอยู่ จาก https://otr.cypherpunks.ca/gpgkey.asc ไม่มีวิธีที่ง่ายในการตรวจสอบความถูกต้อง (ความจริงที่ว่าการใช้คีย์ RSA 1024- บิตนั้นเป็นการแสดงที่ไม่ดีในยุคนี้เมื่อ NSA อาจถอดรหัสการเข้ารหัสที่อ่อนแอเช่นนั้นได้ ).

อย่างไรก็ตามเป็นตัวอย่างที่ดีว่าทำไมความคิดทั้งหมดเกี่ยวกับลายเซ็นดิจิตอลจึงเป็นสิ่งที่ไม่เป็นระเบียบ! การสนทนาที่น่าสนใจเกี่ยวกับวิธีที่คุณสามารถลองยืนยัน OTR Certificate มีให้ที่นี่)

ข้อสรุป

อย่างที่คุณเห็นการยืนยันลายเซ็นดิจิทัลเป็นความเจ็บปวดดังนั้นจึงเป็นเรื่องน่าแปลกใจเล็กน้อยที่แม้แต่คนที่เข้าใจกระบวนการอาร์เคนแบบหนัก ๆ ที่ไม่ค่อยสนใจ ปัญหานี้เกิดขึ้นจากผู้พัฒนาหลายรายที่ไม่สามารถอธิบายวิธีการตรวจสอบไฟล์ของตนและ / หรือออกใบรับรอง PGP ที่เลอะเทอะซึ่งยากต่อการตรวจสอบว่าเป็นของแท้ (OTR ทีมเรากำลังมองคุณอยู่!)

ข้อเท็จจริงที่ว่าลายเซ็นดิจิทัลยังคงเป็นวิธีเดียวที่มีความหมายที่จะรับประกันว่าไฟล์ที่คุณดาวน์โหลดนั้นเป็นไฟล์ที่คุณต้องการดาวน์โหลด.

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

"แผนภาพลายเซ็นดิจิทัล" โดย Acdx - งานของตัวเอง ได้รับอนุญาตภายใต้ CC BY-SA 3.0 ผ่าน Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me