ตรวจสอบด้วยตัวคุณเอง

อย่าเชื่อใคร ตรวจสอบด้วยตัวคุณเอง

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

ตรวจสอบได้ใน 2 นาที

กด F12 ในเบราว์เซอร์ของคุณ โดยไม่ต้องติดตั้งอะไรเพิ่มเติม และไม่จำเป็นต้องรู้วิธีเขียนโปรแกรม

คำกล่าวอ้าง วิธีตรวจสอบ แท็บ
ไม่มีคุกกี้ประเภทใดๆ ทั้งสิ้น Application → Cookies → ว่างเปล่า Solo2 ไม่มีการติดตั้งคุกกี้ใดๆ เซสชันของคุณจะถูกรักษาไว้ใน localStorage ไม่ใช่ในคุกกี้ และไม่มี _ga Application
ไม่มีบริการจากบุคคลที่สามในแอป Network → กรองตามโดเมน → จะมีเพียงคำขอไปยัง solo2.net Network
มีการวิเคราะห์เฉพาะในหน้าแนะนำ ไม่ใช่ในแอป Network → ใน /* Network
ประวัติของคุณอยู่ในเบราว์เซอร์ของคุณ Application → IndexedDB → solo2-vault-{userId} Application
รายชื่อติดต่อมีเฉพาะในเครื่องเท่านั้น Application → IndexedDB → store pares Application
ไม่มี CDN ภายนอก Network → ไฟล์ JS/CSS ทั้งหมดถูกโหลดจากโดเมนเดียวกัน ไม่มี cdn.jsdelivr.net Network
เซสชันสูงสุด 24 ชั่วโมง Application → localStorage → solo2_session Application
คุณสามารถดูประเภทการเชื่อมต่อที่ใช้งานอยู่ได้ ในหน้าจอแชท: ตัวบ่งชี้ P2P (สีเขียว) เทียบกับ Mirror/TURN (สีส้ม) จะมองเห็นได้ตลอดเวลา UI
Umami ไม่ใช้คุกกี้ Application → Cookies → จะไม่มีคุกกี้จาก stats.menzuri.com ปรากฏขึ้น Application
คีย์หลักของคุณถูกสร้างขึ้นแบบสุ่ม Application → เมื่อลงทะเบียน Solo2 จะสร้างคำที่ไม่ซ้ำกัน 24 คำ คำเหล่านี้ไม่ได้มาจากรหัสผ่านของคุณ แต่เป็นคีย์อิสระที่มีเอนโทรปีจริงขนาด 256 บิต Application

หากคุณรู้วิธีใช้ DevTools

การตรวจสอบที่ต้องใช้ความรู้ทางเทคนิค หากคุณเข้าใจเรื่อง HTTP, WebRTC และวิทยาการรหัสลับเบื้องต้น คุณสามารถยืนยันคำกล่าวอ้างเหล่านี้ได้

คำกล่าวอ้าง วิธีตรวจสอบ
ข้อความมีการเข้ารหัสแบบ E2E Network → คำขอไปยัง /cmd
การส่งสัญญาณ WebRTC มีการเข้ารหัสแบบ E2E Network → ข้อความสัญญาณเดินทางในรูปแบบกลุ่มข้อมูลไบนารีที่เข้ารหัส ไม่ใช่ JSON ที่อ่านออกได้ด้วย offer
คีย์หลักเป็นอิสระจากรหัสผ่าน Network → การเข้าสู่ระบบจะได้รับ wrapped_master_key
การเติมข้อมูลที่สม่ำเสมอในโหมดกระจกเงา Network → แพ็กเกจ WebSocket/DataChannel มีขนาดคงที่เมื่อใช้เซิร์ฟเวอร์สะท้อน ตรวจสอบขนาดได้ในแท็บ Network
รหัสผ่านได้รับการคุ้มครอง (ไม่ได้ส่งแบบข้อความธรรมดา) Network → การเข้าสู่ระบบจะส่งค่าแฮช ไม่ใช่ข้อความธรรมดา คุณไม่สามารถตรวจสอบได้ว่าเซิร์ฟเวอร์ใช้อัลกอริทึมใด (Argon2id) แต่ตรวจสอบได้ว่ารหัสผ่านดั้งเดิมของคุณไม่เคยออกจากเบราว์เซอร์
คำขอเชื่อมต่อหมดอายุใน 3 วัน สร้างคำขอหนึ่งรายการ ไม่ต้องตอบรับ และตรวจสอบหลังจากผ่านไป 3 วันว่ามันหายไปหรือไม่ ต้องใช้ความอดทนและบัญชีผู้ใช้สองบัญชี
การแจ้งเตือนแบบพุชมีการเข้ารหัส Network → คำขอพุชไปยัง Service Worker มาถึงในรูปแบบที่เข้ารหัส (มาตรฐาน Web Push) จะเห็นกลุ่มข้อมูลที่เข้ารหัสในแท็บ Network
การเชื่อมต่อ P2P โดยตรง เทียบกับ เซิร์ฟเวอร์สะท้อน chrome://webrtc-internals/

สิ่งนี้คุณไม่สามารถตรวจสอบได้

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

คำกล่าวอ้าง เหตุใดจึงตรวจสอบไม่ได้
Double Ratchet พร้อมการสลับเปลี่ยนคีย์ การดำเนินการทางรหัสลับเกิดขึ้นภายในไฟล์ไบนารี WASM ผู้ใช้เห็นว่ามันโหลดขึ้นมา แต่ไม่สามารถอ่านอัลกอริทึมที่มันทำงานได้
คีย์หลักสร้างขึ้นด้วยเอนโทรปีจริง (256 บิต) การสร้างใช้ crypto.getRandomValues ภายในเบราว์เซอร์ คุณจะเห็นว่ามีคำ 24 คำถูกสร้างขึ้น แต่ไม่สามารถตรวจสอบคุณภาพของเอนโทรปีหรือความปลอดภัยของ CSPRNG ได้จาก F12
X25519 + Ed25519 + ChaCha20-Poly1305 ปัญหาเดียวกันคือ ชุดคำสั่งรหัสลับอยู่ภายใน WASM ไม่สามารถยืนยันเส้นโค้งรหัสลับหรืออัลกอริทึมจากเบราว์เซอร์ได้
เซิร์ฟเวอร์ "มองไม่เห็นสิ่งใดเลย" คุณสามารถตรวจสอบได้ว่าไคลเอนต์ไม่ได้ส่งข้อมูลที่อ่านออกได้ สิ่งที่เซิร์ฟเวอร์ทำกับข้อมูลเมตาการเชื่อมต่อ (IP, เวลา) ต้องใช้ความเชื่อใจหรือการตรวจสอบเซิร์ฟเวอร์
เซิร์ฟเวอร์ไม่จัดเก็บความสัมพันธ์หลังจากการเชื่อมต่อ ต้องใช้การเข้าถึงรหัสโปรแกรมและฐานข้อมูลของเซิร์ฟเวอร์
ไม่มีการบันทึกที่อยู่ IP คุณไม่สามารถตรวจสอบสิ่งที่เซิร์ฟเวอร์บันทึกไว้ในระบบบันทึกเหตุการณ์ของมันได้
คีย์สลับเปลี่ยนในทุกๆ ข้อความ เกิดขึ้นภายใน WASM คุณจะเห็นว่ามีการส่งข้อความออกไป แต่ไม่สามารถสังเกตการสลับเปลี่ยนคีย์ได้
ข้อมูลที่ลบไปแล้วจะหายไปจริงๆ คุณสามารถลบจาก IndexedDB ในเครื่องได้ แต่ไม่สามารถตรวจสอบได้ว่าเซิร์ฟเวอร์ไม่ได้เก็บสำเนาไว้ (แม้ว่าในบันทึกความโปร่งใสจะบอกว่ามันไม่เคยมีสำเนาก็ตาม)

ทำไม WASM ถึงเป็นกำแพงที่แท้จริง

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

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

เราขอบอกว่ามันคือ Double Ratchet พร้อมด้วย X25519 คุณสามารถเชื่อคำพูดของเรา หรือคุณจะรอจนกว่าเราจะเผยแพร่รหัสโปรแกรมต้นฉบับของชั้นรหัสลับเพื่อให้ใครก็ได้สามารถตรวจสอบได้ เรากำลังดำเนินการเรื่องนั้นอยู่

สิ่งที่เรากำลังทำเพื่อให้คุณมั่นใจได้มากขึ้น

1

เผยแพร่ค่าแฮช SHA-256 ของไฟล์ .wasm

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

2

เปิดชั้นรหัสลับเป็นรหัสโปรแกรมแบบเปิด (Open Source)

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

3

ความปลอดภัยไม่ได้ขึ้นอยู่กับความลึกลับ

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

4

การบันทึกความปลอดภัย 5 ชั้น

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

Solo2 — การสนทนาของคุณเป็นของคุณเท่านั้น