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

แยกองค์ประกอบออกจากผลิตภัณฑ์

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

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

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

จับคู่บิลด์ที่ติดตั้งกับแท็กที่เผยแพร่

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

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

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

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

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

อาการมักเริ่มจากที่ใด

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

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

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

สิ่งที่การตรวจสอบเอื้อมไม่ถึง และสิ่งที่ควรทำแทน

การเก็บรักษาบนเซิร์ฟเวอร์ของผู้ให้บริการอยู่นอกเหนือการเข้าถึงของไคลเอนต์ เช่นเดียวกับพฤติกรรมของพอร์ทัลการเรียกเก็บเงิน ผู้ให้บริการตรวจสอบการฉ้อโกง หรือโต๊ะสนับสนุนที่เก็บไฟล์แนบ การตรวจสอบไคลเอนต์ที่ยืดออกไปถึง "เราตรวจสอบบริการแล้ว" เป็นข้อกล่าวอ้างที่หลักฐานไม่สนับสนุน

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

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

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

บทความที่เกี่ยวข้อง