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
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.
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ế.
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.
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.