จะตรวจสอบไคลเอนต์ได้อย่างไรเมื่อเทคโนโลยีใหม่ของ Bitcoin ได้รับการอัปเดตด้วยเทคโนโลยีใหม่ ๆ หลายคนไม่ทราบวิธีการตรวจสอบกับบรรณาธิการ .

มีสามขั้นตอนสำคัญเพื่อให้แน่ใจว่าไคลเอนต์ Bitcoin ที่คุณติดตั้งมีความปลอดภัย:
ตรวจสอบคีย์ OpenPGP
ตรวจสอบลายเซ็น;
ตรวจสอบเอกสารเอง
โปรดทราบว่า ตัวอย่างเช่น ฉันจะตรวจสอบลายเซ็นของตัวเองบนไคลเอนต์ Bitcoin Knots v0.19.0.1.knots20200104 สำหรับ ppc64le Linux ในขณะที่ในการตรวจสอบลายเซ็นของผู้อื่นหรือไฟล์อื่น ๆ คุณจะต้องเปลี่ยนบรรทัดคำสั่งเป็น ใช้สิ่งนั้น ลายนิ้วมือหรือชื่อไฟล์
ขั้นตอนที่ 0: ติดตั้งซอฟต์แวร์เข้ารหัส GNU Privacy Guard (GPG)
ก่อนที่คุณจะเริ่มต้น คุณต้องตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเครื่องมือ GNU Privacy Guard (GPG) ซึ่งจำเป็นสำหรับการตรวจสอบการเข้ารหัสไฟล์
หากคุณใช้ระบบที่ใช้ Linux ซึ่งโดยปกติจะติดตั้งผ่านผู้จำหน่ายระบบปฏิบัติการ (เมื่อเร็วๆ นี้ ซึ่งมักจะติดตั้งตามค่าเริ่มต้น) คุณสามารถตรวจสอบได้ด้วยการรัน gpg –version ถ้าไม่ ให้ลองติดตั้งโดยใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้ (หากล้มเหลว ให้ไปที่คำสั่งถัดไป):
apt-get ติดตั้ง gnupg
dnf ติดตั้ง gnupg2
ยำติดตั้ง gnupg2
ปรากฏ app-crypt/gnupg
pacman -S gnupg
apk เพิ่ม gnupg
หากคุณโชคร้ายพอที่จะใช้ระบบปฏิบัติการ Windows หรือ macOS คุณสามารถดาวน์โหลด GnuPG ได้จากเว็บไซต์อย่างเป็นทางการ แต่ฉันไม่ทราบวิธีที่ปลอดภัยในการตรวจสอบการดาวน์โหลดดังกล่าว และแน่นอนว่าพวกเขามีลายเซ็นให้ด้วย แต่นี่คือปัญหา ปัญหาไข่: คุณไม่สามารถตรวจสอบลายเซ็นเหล่านี้ได้จนกว่าคุณจะติดตั้งสำเนาที่ดี!
ขั้นตอนที่ 1: ตรวจสอบคีย์ OpenPGP
ขั้นตอนนี้อาจเป็นส่วนที่ยากที่สุดของกระบวนการตรวจสอบ: คุณต้องยืนยันว่ารหัสที่คุณใช้จริงนั้นเป็นรหัสที่ถูกต้องซึ่งออกโดยบุคคลที่คุณไว้วางใจ ถ้าไม่ระวังอาจได้กุญแจ "ลุค แดชจูเนียร์" ปลอม!
คีย์ OpenPGP แต่ละคีย์มี "ลายนิ้วมือ" ซึ่งเป็นอักขระเลขฐานสิบหก 40 ตัว (ตัวเลข 0-9 และ aF) โดยบางครั้งจะแสดงช่องว่างเพื่อให้อ่านได้ง่ายขึ้น คุณรู้ว่าคุณมีคีย์ที่ถูกต้อง หากคุณแน่ใจว่าลายนิ้วมือของคีย์ที่คุณใช้ตรงกับลายนิ้วมือของผู้ลงนามที่เชื่อถือได้
รับกุญแจหรือลายนิ้วมือ
วิธีที่ปลอดภัยที่สุดในการตรวจสอบคีย์คือการพบปะด้วยตนเองและยืนยัน "ลายนิ้วมือ" ของคีย์ แทบไม่มีใครจำลายนิ้วมือหลักของตนได้ ดังนั้นเราอาจต้องตรวจดูบนแล็ปท็อปหรือโทรศัพท์ของเราเอง และในบางครั้ง (โดยปกติในการประชุม) อาจมี "ผู้ลงนามหลัก" ซึ่งเป็นกลุ่มคนที่ที่ประชุมยืนยันผู้อื่นของ ผู้เข้าร่วมแต่ละคนจะมีลายนิ้วมือของตนเองอ่านออกเสียงหรือยืนยันด้วยตนเองว่าสิ่งที่ทุกคนเห็นหรือได้ยินนั้นถูกต้อง หากคุณเคยมีส่วนร่วมในการประชุมเช่นนี้ นี่เป็นวิธีที่ดีในการยืนยันคีย์หลายรายการในคราวเดียว
หากคุณไม่สนใจหรือไม่มีโอกาสพบปะด้วยตนเอง คุณควรยืนยันคีย์จากหลายแหล่ง ในบางครั้ง การประชุมจะโพสต์วิดีโอการนำเสนอซึ่งอาจมีลายนิ้วมือหลักปรากฏในสไลด์ แน่นอนว่าเนื่องจากการมีอยู่ของเทคโนโลยีใหม่ๆ เช่น "การปลอมแบบลึก" โปรดทราบว่าสไลด์ในวิดีโอสามารถจัดการได้อย่างง่ายดาย
นักพัฒนามักจะเผยแพร่คีย์หรือลายนิ้วมือบนเว็บไซต์ของตน และอาจด้วยวิธีอื่น (เช่น รหัสหรือลายนิ้วมือของฉันอยู่บนเว็บไซต์ส่วนตัวของฉัน bitcoinknots.org, bitcoin.org และ GitHub)
หากคุณได้ติดตั้งสำเนาของซอฟต์แวร์ที่คุณเชื่อถือ บางครั้งอาจมีคีย์ที่จำเป็นในการตรวจสอบการอัปเดต (ปัจจุบัน Bitcoin Core มีเฉพาะซอร์สโค้ดเท่านั้น)
ตรวจสอบลายนิ้วมือของไฟล์คีย์
หากต้องการดูลายนิ้วมือของไฟล์คีย์ คุณสามารถใช้คำสั่งต่อไปนี้:
gpg – ตัวเลือกการนำเข้าแสดงเท่านั้น – นำเข้า – พร้อมลายนิ้วมือ luke-jr.asc
ข้อมูลนี้จะส่งออกข้อมูลจำนวนมากเกี่ยวกับไฟล์คีย์ โดยมีข้อมูลที่เกี่ยวข้องอยู่ด้านบน:
pub rsa8192 2012-03-23 [SC] [หมดอายุ: 2020-06-09]
E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
ในตัวอย่างนี้ E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F คือลายนิ้วมือหลักของฉัน
หมายเหตุ: หาก GPG แจ้งว่าคีย์หมดอายุ ก็ไม่เป็นไร ในขั้นตอนที่ 2 คุณจะต้องอัปเดตคีย์เดียวกันเป็นเวอร์ชันล่าสุด ซึ่งโดยปกติจะขยายวันหมดอายุออกไป
นำเข้าคีย์ที่ตรวจสอบแล้ว
ไม่ว่าคุณจะยืนยันคีย์อย่างไร คุณควรอย่าลืมจดจำคีย์ที่คุณใช้ เพื่อให้การอัปเดตในอนาคตสามารถตรวจสอบได้ว่ามีการใช้คีย์เดียวกันหรือไม่ แม้ว่าคุณจะข้ามขั้นตอนสำคัญในการยืนยัน (ซึ่งไม่ปลอดภัย) อย่างน้อยก็จะช่วยให้มั่นใจได้ว่าการอัปเดตของคุณมีผู้ลงนามคนเดียวกัน
เมื่อคุณมั่นใจว่าคุณมีคีย์ที่ถูกต้อง คุณสามารถนำเข้าคีย์ดังกล่าวได้ (แทนที่ luke-jr.asc ด้วยชื่อไฟล์ที่มีคีย์ที่ต้องการ):
gpg – นำเข้า < luke-jr.asc
หรือถ้าคุณมีเพียงลายนิ้วมือแบบนี้ (ใส่ลายนิ้วมือของกุญแจที่คุณต้องการใช้!):
gpg –keyserver hkp://keyserver.ubuntu.com –recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
ขั้นตอนที่ 2: ตรวจสอบลายเซ็น
ตอนนี้คุณรู้แล้วว่าจะใช้คีย์ใดในการตรวจสอบ ขั้นตอนต่อไปคือการตรวจสอบว่าลายเซ็นนั้นถูกต้อง
ก่อนดำเนินการขั้นตอนนี้ คุณต้องแน่ใจว่าสำเนาคีย์ผู้ลงนามของคุณเป็นข้อมูลล่าสุด หากคุณไม่ทำเช่นนี้ คุณอาจได้รับข้อความแจ้งว่าคีย์หมดอายุแล้ว วิ่ง (ใช้ลายนิ้วมือที่คุณต้องการ):
gpg –keyserver hkp://keyserver.ubuntu.com –รีเฟรชคีย์ E463A93F5F3117EEDE6C7316BD02942421F4889F
ถัดไป (นอกเหนือจากไฟล์โปรแกรมที่คุณกำลังตรวจสอบ) คุณจะต้องมีไฟล์สองไฟล์: ไฟล์ ".assert" ที่มีรายการลายนิ้วมือของไฟล์และไฟล์ ".assert.sig" ที่มีลายเซ็นของรายการนั้น นี่เป็นเพราะสิ่งที่เราทำไม่ใช่การเซ็นชื่อไฟล์โปรแกรมด้วยตัวเอง แต่เป็นลายนิ้วมือของไฟล์ทั้งหมดแล้วจึงเซ็นชื่อในรายการนั้น ดังนั้นคุณต้องมีทั้งสองไฟล์
คู่ไฟล์ "assert" ของ Bitcoin Core ถูกโพสต์ที่นี่: https://github.com/Bitcoin-Core/gitian.sigs/find/master;
คู่ไฟล์ "assert" สำหรับ Bitcoin Knots มีการโพสต์ที่นี่: https://github.com/bitconinkots/gitian.sigs/find/Knots
โปรดทราบว่ามีคู่ไฟล์แยกกันสำหรับผู้ลงนามแต่ละคน หากคุณกำลังตรวจสอบว่ามีคนลงนามในไฟล์ของคุณหลายคนหรือไม่ (ซึ่งคุณควรจะทำ) คุณต้องตรวจสอบแต่ละคู่ของไฟล์ นอกจากนี้ คุณต้องแน่ใจว่าคุณได้รับไฟล์เวอร์ชันที่คุณต้องการตรวจสอบ!
เมื่อคุณพบไฟล์ที่ต้องการในรายการแล้ว ให้คลิกลิงก์เพื่อเปิดไฟล์ในเบราว์เซอร์ของคุณ จากนั้นคลิกขวาที่ปุ่ม "Raw" หรือ "ดาวน์โหลด" แล้วเลือก "บันทึกลิงก์เป็น"
เมื่อคุณมีไฟล์ "assert" สองไฟล์นี้แล้ว คุณสามารถตรวจสอบลายเซ็นได้ด้วยการเรียกใช้ (ปรับชื่อไฟล์เป็น .assert.sig เฉพาะ)
gpg – ตรวจสอบ bitcoin-core-linux-0.19-build.assert.sig
หากขั้นตอนนี้สำเร็จ คุณจะได้รับผลลัพธ์ถัดไป:
gpg: ทำลายเซ็น วันอาทิตย์ที่ 19 ม.ค. 2020 03:47:15 น. UTC
gpg: ใช้คีย์ RSA E463A93F5F3117EEDE6C7316BD02942421F4889F
gpg: ลายเซ็นดีๆ จาก “Luke Dashjr ” [สุดยอด]
โปรดทราบว่าลายนิ้วมือของกุญแจจะแสดงเป็นตัวหนา ลายนิ้วมือจะต้องตรงกับกุญแจที่คุณยืนยันในขั้นตอนที่ 1 มิฉะนั้นอาจมีผู้อื่นลงนามได้! ส่วนเกี่ยวกับ "ลายเซ็นที่ดี" ก็มีความสำคัญเช่นกัน ในขณะที่ชื่อและที่อยู่อีเมลไม่ได้มีความสำคัญ ทั้งสองอย่างนี้อาจเป็นของปลอมหากลายนิ้วมือไม่ถูกต้อง
สมมติว่าทุกอย่างเป็นไปด้วยดี ตอนนี้คุณก็รู้แล้วว่าไฟล์ ".assert" รับประกันโดยตัวควบคุมของคีย์ดังกล่าว และสามารถตรวจสอบได้ว่าไฟล์โปรแกรมจริงของคุณอยู่ในรายการในไฟล์ ".assert" นั้นหรือไม่
ขั้นตอนที่ 3: ตรวจสอบไฟล์เอง
ในการตรวจสอบสิทธิ์ไฟล์โปรแกรม จะต้องแฮชแบบเข้ารหัสก่อน (โดยพื้นฐานแล้วแยกลายนิ้วมือของไฟล์)
ทำได้โดยใช้คำสั่งง่ายๆ (โปรดใช้ความระมัดระวังในการเปลี่ยนชื่อไฟล์จริงที่คุณกำลังตรวจสอบ!):
ลินุกซ์: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Windows: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256
macOS: shasum -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg
สิ่งนี้จะแสดงผลดังนี้:
d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
นี่คือลายนิ้วมือของเนื้อหาของไฟล์ ตามด้วยชื่อไฟล์ที่ระบุ
ตอนนี้ ให้เปิดไฟล์ ".assert" ในโปรแกรมแก้ไข/โปรแกรมดูข้อความธรรมดา แล้วมองหาลายนิ้วมือ ควรอยู่ในส่วน "out_manifest" ที่ด้านบน หากคุณไปถึง "in_manifest" หรือ "base_manifests" แสดงว่าคุณไปไกลเกินไป
หากคุณพบมันในไฟล์ ".assert" แสดงว่าคุณได้ตรวจสอบแล้วว่าไฟล์ที่คุณมีนั้นเป็นไฟล์เดียวกับที่ผู้ลงนามรับรองไว้ (คุณจะเห็นมันในไฟล์ ".assert" ทางด้านขวาของลายนิ้วมือชื่อไฟล์ของพวกเขา ซึ่งอาจเหมือนกับของคุณ)
และหากไฟล์นั้นหายไปจากไฟล์ ".assert" อาจหมายความว่าคุณกำลังใช้ไฟล์ ".assert" ผิด หรือไฟล์ของคุณไม่ตรงกัน (ซึ่งในกรณีนี้คุณจะเห็นถัดจากชื่อไฟล์ที่คาดหวังไปเป็นอีกไฟล์หนึ่ง ลายนิ้วมือ) หากไฟล์อยู่ในรายการ แต่มีลายนิ้วมืออื่น โปรดอย่าเปิดไฟล์ แต่ให้บันทึกไฟล์ไว้ (เราอาจขอให้คุณจัดเตรียมสำเนา) และติดต่อทีมรักษาความปลอดภัยของโครงการที่ได้รับผลกระทบ