Hãy tự mình xác minh

Đừng tin bất kỳ ai. Hãy tự mình kiểm tra.

Solo2 là một ứng dụng web. Điều đó có nghĩa là trình duyệt của bạn đã có sẵn tất cả các công cụ cần thiết để kiểm tra những gì chúng tôi làm. Nhấn F12, mở DevTools và tự mình kiểm tra từng tuyên bố trong Bản tuyên ngôn của chúng tôi. Ở đây chúng tôi sẽ hướng dẫn bạn chính xác cách làm.

Kiểm tra trong 2 phút

Nhấn F12 trong trình duyệt của bạn. Không cần cài đặt gì. Không cần biết lập trình.

Tuyên bố Cách xác minh Tab
Không có bất kỳ loại cookie nào Application → Cookies → trống rỗng. Solo2 không cài đặt bất kỳ cookie nào. Phiên làm việc của bạn được duy trì trong localStorage, không phải trong cookie. Không có _ga Application
Không có dịch vụ bên thứ ba trong ứng dụng Network → lọc theo tên miền → chỉ các yêu cầu đến solo2.net Network
Phân tích chỉ có trên trang giới thiệu, không có trong ứng dụng Network → trong /* Network
Lịch sử của bạn sống trong trình duyệt Application → IndexedDB → solo2-vault-{userId} Application
Danh sách liên hệ chỉ ở cục bộ Application → IndexedDB → store pares Application
Không có CDN bên ngoài Network → tất cả JS/CSS được tải từ cùng một tên miền. Không có cdn.jsdelivr.net Network
Phiên làm việc tối đa 24 giờ Application → localStorage → solo2_session Application
Bạn có thể thấy loại kết nối đang sử dụng Trong giao diện trò chuyện: chỉ báo P2P (màu xanh lá) và Mirror/TURN (màu cam) luôn hiển thị UI
Umami không sử dụng cookie Application → Cookies → không xuất hiện bất kỳ cookie nào từ stats.menzuri.com Application
Khóa chính của bạn được tạo ngẫu nhiên Application → khi đăng ký, Solo2 tạo ra 24 từ duy nhất. Chúng không bắt nguồn từ mật khẩu của bạn — chúng là một khóa độc lập với 256 bit entropy thực Application

Nếu bạn biết sử dụng DevTools

Các xác minh yêu cầu kiến thức kỹ thuật. Nếu bạn hiểu về HTTP, WebRTC và mật mã học cơ bản, bạn có thể xác nhận các tuyên bố này.

Tuyên bố Cách xác minh
Tin nhắn được mã hóa E2E Network → các yêu cầu đến /cmd
Tín hiệu WebRTC được mã hóa E2E Network → các tin nhắn báo hiệu di chuyển dưới dạng khối nhị phân mã hóa. Không phải là JSON có thể đọc được với offer
Khóa chính độc lập với mật khẩu Network → đăng nhập nhận được một wrapped_master_key
Padding đồng nhất trong chế độ phản chiếu Network → các gói tin WebSocket/DataChannel có kích thước cố định khi sử dụng relay. Kiểm tra kích thước trong tab Network
Mật khẩu được bảo vệ (không truyền dưới dạng văn bản thuần) Network → đăng nhập gửi một mã băm (hash), không phải văn bản thuần túy. Bạn không thể xác minh thuật toán nào máy chủ sử dụng (Argon2id), nhưng có thể chắc chắn mật khẩu gốc không bao giờ rời khỏi trình duyệt
Yêu cầu liên kết hết hạn sau 3 ngày Tạo một yêu cầu, không phản hồi, xác minh sau 3 ngày xem nó có biến mất không. Yêu cầu sự kiên nhẫn và hai tài khoản
Thông báo đẩy (push) được mã hóa Network → các yêu cầu push đến Service Worker đến dưới dạng mã hóa (tiêu chuẩn Web Push). Có thể thấy payload mã hóa trong tab Network
Kết nối P2P trực tiếp so với relay chrome://webrtc-internals/

Điều này bạn không thể xác minh

Chúng tôi sẽ là kẻ đạo đức giả nếu nói rằng mọi thứ đều có thể xác minh được. Những tuyên bố này yêu cầu bạn tin tưởng chúng tôi — hoặc đợi cho đến khi chúng tôi công bố mã nguồn.

Tuyên bố Tại sao không thể xác minh
Double Ratchet với xoay vòng khóa Các thao tác mật mã diễn ra bên trong một tệp nhị phân WASM. Người dùng thấy nó được tải lên, nhưng không thể đọc thuật toán nào nó đang thực thi
Khóa chính được tạo với entropy thực (256 bit) Việc tạo khóa sử dụng crypto.getRandomValues bên trong trình duyệt. Bạn có thể thấy 24 từ được tạo ra, nhưng không thể xác minh từ F12 chất lượng của entropy hay CSPRNG có an toàn hay không
X25519 + Ed25519 + ChaCha20-Poly1305 Cùng một vấn đề: ngăn xếp mật mã nằm bên trong WASM. Không thể xác nhận các đường cong hay thuật toán từ trình duyệt
Máy chủ "hoàn toàn mù" Bạn có thể xác minh rằng máy khách không gửi dữ liệu có thể đọc được. Những gì máy chủ làm với siêu dữ liệu kết nối (IP, dấu thời gian) yêu cầu sự tin tưởng hoặc kiểm tra máy chủ
Máy chủ không lưu trữ quan hệ sau khi liên kết Yêu cầu quyền truy cập vào mã nguồn và cơ sở dữ liệu của máy chủ
Các địa chỉ IP không được ghi lại Bạn không thể xác minh những gì máy chủ ghi lại trong nhật ký của nó
Các khóa xoay vòng theo từng tin nhắn Diễn ra bên trong WASM. Bạn thấy tin nhắn được gửi đi, nhưng không thể quan sát việc xoay vòng khóa
Dữ liệu đã xóa thực sự biến mất Bạn có thể xóa khỏi IndexedDB cục bộ, nhưng không thể xác minh rằng máy chủ không giữ lại bản sao (mặc dù Bản tuyên ngôn nói rằng nó không bao giờ có chúng)

Tại sao WASM là một rào cản thực sự

Lớp mật mã của Solo2 được biên dịch sang WebAssembly — một định dạng nhị phân mà trình duyệt của bạn thực thi nhưng bạn không thể đọc dưới dạng văn bản. Điều này có nghĩa là bạn không thể xác minh từ F12 chúng tôi sử dụng thuật toán nào.

Mã JavaScript đã được rút gọn (mà chúng tôi sử dụng cho giao diện) có thể đảo ngược được: trình duyệt có thể định dạng lại nó và cấu trúc mã là có thể đọc được. Đó là một trở ngại thực tế, không phải là rào cản thực sự. Nhưng WASM được biên dịch từ Zig về cơ bản là khác biệt

Chúng tôi tuyên bố đó là Double Ratchet với X25519. Bạn có thể tin lời chúng tôi, hoặc có thể đợi cho đến khi chúng tôi công bố mã nguồn của lớp mật mã để bất kỳ ai cũng có thể kiểm tra. Chúng tôi đang thực hiện việc đó.

Những gì chúng tôi đang làm để bạn có thể tin tưởng hơn

1

Công bố mã băm SHA-256 của các tệp .wasm

Chúng tôi sẽ công bố mã băm mật mã (hash) của từng tệp WASM trong môi trường thực tế. Như vậy, bất kỳ kiểm toán viên nào cũng có thể xác minh rằng tệp nhị phân đang chạy trong trình duyệt của bạn khớp chính xác với tệp chúng tôi đã biên dịch.

2

Mở lớp mật mã dưới dạng mã nguồn mở

Công bố mã nguồn của lớp mật mã (Zig) dưới dạng kho lưu trữ công khai. Mô hình tương tự như Signal: giao thức mật mã mở, phần còn lại của mã nguồn đóng. Bất kỳ ai cũng có thể biên dịch mã nguồn và so sánh mã băm của tệp .wasm thu được với tệp đang chạy trong môi trường thực tế.

3

Bảo mật không phụ thuộc vào sự mập mờ

Mô hình bảo mật của chúng tôi được thiết kế để hoạt động ngay cả khi mã nguồn là công khai. Nếu bảo mật phụ thuộc vào việc không ai có thể đọc được mã nguồn, thì đó không phải là bảo mật — đó là sự hy vọng.

4

5 lớp bảo mật đã được ghi chép

Mật khẩu (truy cập máy chủ), 24 từ (khóa chính thực sự), mật mã thiết bị (bảo vệ kho lưu trữ) và xoay vòng Double Ratchet. Mỗi lớp là độc lập và có thể kiểm chứng trong Bản tuyên ngôn Minh bạch của chúng tôi.

Solo2 — Cuộc trò chuyện của bạn chỉ là của riêng bạn.