ข้ามไปที่เนื้อหา
กลับมาที่ Nymchat

ฐานความรู้ ภายใต้ประทุน

การตรวจสอบการสร้าง

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

งานสร้างที่ทำซ้ำได้

การสร้างแอปจะปล่อย build-manifest.json ที่มีแหล่งที่มากระทำ แฮช SHA-256 ของเนื้อหา HTML, JavaScript และ CSS ที่แสดงทั้งหมด และรายการเดียว bundleHash เหนือชุดเนื้อหาทั้งหมดนั้น

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

จากนั้น GitHub Action จะสร้างแต่ละคอมมิตขึ้นใหม่โดยแยกจากกันและลงนามในหลักฐานการ build การรับรองแฮชและรายการ ดังนั้นจึงมีบันทึกที่ลงนามผูกก bundleHash ไปยังการคอมมิตในพื้นที่เก็บข้อมูลซึ่งผลิตโดยสิ่งอื่นที่ไม่ใช่ การใช้งาน

สิ่งที่กล่องโต้ตอบเกี่ยวกับตรวจสอบ

เกี่ยวกับ ในส่วนหัวจะเรียกใช้การตรวจสอบสดในเบราว์เซอร์ของคุณ

กล่องโต้ตอบเกี่ยวกับ Nymchat แสดงเวอร์ชัน ความสมบูรณ์ของการสร้าง และรับประกันสถานะคานารี
กล่องโต้ตอบเกี่ยวกับ: เวอร์ชัน ความสมบูรณ์ของการสร้าง รับประกันคานารี และสายตรงถึงนักพัฒนา

โดยดึงเนื้อหาแต่ละรายการที่เพจกำลังทำงานอยู่อีกครั้ง แฮชด้วย 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 ล่าสุดในขณะที่ลงนาม ไม่สามารถทราบแฮชดังกล่าวได้ก่อนที่จะมีบล็อก ซึ่งพิสูจน์ได้ว่ามีนกคีรีบูนอยู่ ลงนาม หลังจาก ในช่วงเวลาที่เฉพาะเจาะจง แทนที่จะลงนามล่วงหน้าเป็นจำนวนมากหลายเดือนก่อนหน้านี้ กล่องโต้ตอบเกี่ยวกับจะเชื่อมโยงจุดยึดกับตัวสำรวจบล็อก เพื่อให้คุณสามารถตรวจสอบได้