ฐานความรู้ ภายใต้ประทุน
การตรวจสอบการสร้าง
โอเพ่นซอร์สจะช่วยได้ก็ต่อเมื่อโค้ดที่คุณใช้งานอยู่นั้นเป็นโค้ดเดิมเท่านั้น เผยแพร่แล้ว Nymchat ถูกสร้างขึ้นตามที่กำหนด ดังนั้นคุณสามารถตรวจสอบได้ด้วยตัวเองจากภายใน แอพหรือจากเทอร์มินัล
หน้านี้แปลด้วยเครื่องเพื่อความสะดวก ต้นฉบับภาษาอังกฤษเป็นเวอร์ชันที่ใช้
งานสร้างที่ทำซ้ำได้
การสร้างแอปจะปล่อย build-manifest.json ที่มีแหล่งที่มากระทำ
แฮช SHA-256 ของเนื้อหา HTML, JavaScript และ CSS ที่แสดงทั้งหมด และรายการเดียว
bundleHash เหนือชุดเนื้อหาทั้งหมดนั้น
ผลลัพธ์จะขึ้นอยู่กับเนื้อหาต้นฉบับเท่านั้น แม้แต่เวลาในการสร้างที่บันทึกไว้ก็ยังเป็น
การประทับเวลาของคอมมิตแทนที่จะเป็นช่วงเวลาที่บิลด์รัน - ดังนั้นใครก็ตามที่สร้างสิ่งเดียวกันขึ้นมาใหม่
คอมมิตได้รับไฟล์ไบต์เหมือนกันและเหมือนกัน bundleHash.
จากนั้น GitHub Action จะสร้างแต่ละคอมมิตขึ้นใหม่โดยแยกจากกันและลงนามในหลักฐานการ build
การรับรองแฮชและรายการ ดังนั้นจึงมีบันทึกที่ลงนามผูกก
bundleHash ไปยังการคอมมิตในพื้นที่เก็บข้อมูลซึ่งผลิตโดยสิ่งอื่นที่ไม่ใช่
การใช้งาน
สิ่งที่กล่องโต้ตอบเกี่ยวกับตรวจสอบ
เกี่ยวกับ ในส่วนหัวจะเรียกใช้การตรวจสอบสดในเบราว์เซอร์ของคุณ
โดยดึงเนื้อหาแต่ละรายการที่เพจกำลังทำงานอยู่อีกครั้ง แฮชด้วย Web Crypto API และ
เปรียบเทียบกับรายการ จากนั้น — และนี่คือส่วนที่สำคัญ — มัน
คำนวณใหม่ bundleHash จากแฮช มัน แค่คำนวณ ไม่ใช่จาก
สิ่งใดก็ตามที่มีการอ้างสิทธิ์อย่างชัดแจ้งและค้นหาสิ่งนั้นในเอกสารรับรองที่ลงนามของที่เก็บ
ผ่าน GitHub API
นั่นคือสิ่งที่หยุดการปรับใช้จากการรับรองตัวเอง: ให้บริการไฟล์ที่แก้ไขร่วมกับ รายการการจับคู่ยังคงล้มเหลว เนื่องจากแฮชที่คำนวณใหม่ไม่มีการรับรอง
| สถานะ | วิธี |
|---|---|
| &ตรวจสอบ; แอปอย่างเป็นทางการที่ได้รับการยืนยันแล้ว (n/n) | ทุกเนื้อหาที่ตรงกัน แฮชบันเดิลที่คำนวณใหม่จะได้รับการรับรองโดยที่เก็บ และ หน้านี้ให้บริการจากโดเมนอย่างเป็นทางการ |
| build บิลด์ที่ยืนยันแล้ว · ไม่ใช่แอปอย่างเป็นทางการ | รหัสนี้เป็นของแท้และได้รับการรับรอง แต่นี่คือมิเรอร์ในโดเมนอื่น มิเรอร์ไม่สามารถลบคำเตือนนี้ได้หากไม่ผ่านการตรวจสอบ |
| ✗ ไม่ตรงกัน | เนื้อหาไม่ได้แฮชกับสิ่งที่รายการระบุไว้ |
| ✗ โครงสร้างอย่างไม่เป็นทางการ | แฮชบันเดิลที่คำนวณใหม่ไม่มีการรับรองจากพื้นที่เก็บข้อมูล ซึ่งเป็นรายการที่สร้างขึ้นเอง |
| ⚠ ไม่สามารถหาที่มาได้ | ไม่สามารถเข้าถึง GitHub API ได้ ดังนั้นจึงไม่สามารถตรวจสอบการรับรองด้วยวิธีใดวิธีหนึ่งได้ |
ยืนยันด้วยตัวเอง
สร้างคอมมิตชื่อไดอะล็อกเกี่ยวกับใหม่และเปรียบเทียบ:
git clone https://github.com/Spl0itable/NYM
cd NYM
git checkout <commit shown in the About dialog>
npm ci
npm run build # prints "Build hash: <bundleHash>"
แฮชที่พิมพ์ควรตรงกันทั้งอันในกล่องโต้ตอบเกี่ยวกับและอันในคอมมิตนั้น สรุปการรัน build-provenance คุณยังสามารถตรวจสอบลายเซ็นได้โดยตรงด้วย GitHub CLI:
gh attestation verify dist/build-manifest.json --repo Spl0itable/NYM
หมายนกคีรีบูน
Canary ของหมายจับคือคำแถลงที่เผยแพร่ตามกำหนดเวลาที่นักพัฒนาซอฟต์แวร์มี ไม่ ได้รับคำสั่งลับจากทางราชการซึ่งห้ามมิให้เปิดเผย — ก จดหมายความมั่นคงแห่งชาติ ซึ่งเป็นคำสั่งของ FISA นักพัฒนาซอฟต์แวร์สามารถถูกบังคับให้นิ่งเฉยได้ คำสั่งเช่นนั้นแต่มิอาจบังคับให้โกหกได้ นกคีรีบูนจึงเหม็นอับหรือดับไป เองเป็นสัญญาณ
มันอาศัยอยู่ใน canary.json ที่รูทของที่เก็บและถูกดึงข้อมูลโดยตรง
จาก GitHub ดังนั้นประวัติจึงสามารถตรวจสอบได้โดยอิสระจากสิ่งที่ไซต์ที่ปรับใช้ระบุไว้
กล่องโต้ตอบเกี่ยวกับให้รหัสสี:
| สี | วิธี |
|---|---|
| สีเขียว — ทุกอย่างชัดเจน | ลงนาม เป็นปัจจุบัน และลายเซ็นตรงกับรหัสของนักพัฒนา ไม่ได้รับคำสั่งลับใดๆ |
| สีเหลือง — เกินกำหนดหรือไม่ชัดเจนทั้งหมด | ไม่ได้รับการรีเฟรชตามวันที่ที่ระบุไว้หรือ allClear ธงเป็นเท็จ ไม่สามารถตัดคำสั่งที่ถูกปิดปากออกได้ |
| สีแดง — ลายเซ็นไม่ถูกต้องหรือหายไป | ลายเซ็นไม่ตรงกับคีย์ของนักพัฒนา หรือไฟล์ถูกลบออกทั้งหมด ถือเป็นการเตือนที่ร้ายแรง |
สมอความสด
นกขมิ้นที่ลงนามจะฝังความสูงและแฮชของบล็อก Bitcoin ล่าสุดในขณะที่ลงนาม ไม่สามารถทราบแฮชดังกล่าวได้ก่อนที่จะมีบล็อก ซึ่งพิสูจน์ได้ว่ามีนกคีรีบูนอยู่ ลงนาม หลังจาก ในช่วงเวลาที่เฉพาะเจาะจง แทนที่จะลงนามล่วงหน้าเป็นจำนวนมากหลายเดือนก่อนหน้านี้ กล่องโต้ตอบเกี่ยวกับจะเชื่อมโยงจุดยึดกับตัวสำรวจบล็อก เพื่อให้คุณสามารถตรวจสอบได้