2분 만에 확인하기
브라우저에서 F12를 누르세요. 설치할 것 없음. 프로그래밍 지식 불필요.
| 주장 | 확인 방법 | 탭 |
|---|---|---|
| 추적 쿠키 없음 | Application → Cookies → 기술 세션 쿠키만 있음. _ga, _fbp, _gid ni similares |
Application |
| 앱에 제3자 서비스 없음 | Network → 도메인으로 필터링 → solo2.net. Cero llamadas a Google, Facebook, Amazon, etc. |
Network |
| 분석은 랜딩에만, 앱에는 없음 | Network → /info/* se ve stats.menzuri.com. En la app (/) no aparece ningún script de analytics |
Network |
| 대화 기록은 브라우저에 존재합니다 | Application → IndexedDB → solo2-vault-{userId} con stores messages, files, etc. Datos locales |
Application |
| 연락처 목록은 로컬에만 존재합니다 | Application → IndexedDB → store pares existe localmente. Network → no hay petición de "contacts" ni "friends" al servidor |
Application |
| 외부 CDN 없음 | Network → 모든 JS/CSS가 같은 도메인에서 로드됩니다. cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.com |
Network |
| 세션 최대 24시간 | Application → localStorage → solo2_session expira. Puedes cerrar sesión y ver que desaparece |
Application |
| 사용 중인 연결 유형을 확인할 수 있습니다 | 채팅 UI에서: P2P (녹색) vs Mirror/TURN (주황색) 표시기가 항상 보입니다 | UI |
| Umami는 쿠키 없이 작동합니다 | Application → Cookies → stats.menzuri.com incluso tras visitar el landing |
Application |
| 마스터 키가 무작위로 생성됩니다 | Application → 가입 시 Solo2가 24개의 고유한 단어를 생성합니다. 비밀번호에서 파생되지 않습니다 — 256비트의 실제 엔트로피를 가진 독립적인 키입니다 | Application |
DevTools를 사용할 수 있다면
기술 지식이 필요한 확인 사항입니다. HTTP, WebRTC 및 기본 암호학을 이해한다면 이 주장들을 확인할 수 있습니다.
| 주장 | 확인 방법 |
|---|---|
| E2E 암호화된 메시지 | Network → /cmd contienen payloads binarios opacos (zcatpack). El contenido no es texto legible. No puedes confirmar qué algoritmo se usa, pero sí que no viaja en claro |
| E2E 암호화된 WebRTC 신호 | Network → 시그널 메시지는 암호화된 바이너리 blob으로 전송됩니다. offer/answer en claro |
| 비밀번호와 독립적인 마스터 키 | Network → 로그인 시 wrapped_master_key cifrado del servidor. El cliente lo descifra localmente con la contraseña. La clave maestra nunca viaja en claro. Cambiar contraseña no cambia la identidad |
| 미러에서 균일한 패딩 | Network → 릴레이 사용 시 WebSocket/DataChannel 패킷의 크기가 고정됩니다. Network 탭에서 크기를 확인하세요 |
| 비밀번호 보호 (평문 전송 안 됨) | Network → 로그인 시 평문이 아닌 해시를 전송합니다. 서버가 어떤 알고리즘(Argon2id)을 사용하는지 확인할 수는 없지만, 원래 비밀번호가 브라우저를 떠나지 않는다는 것은 확인할 수 있습니다 |
| 연결 요청은 3일 후 만료됩니다 | 요청을 생성하고 응답하지 마세요. 3일 후 사라졌는지 확인합니다. 인내심과 두 개의 계정이 필요합니다 |
| 암호화된 푸시 알림 | Network → Service Worker에 대한 푸시 요청이 암호화되어 도착합니다(Web Push 표준). Network 탭에서 암호화된 페이로드를 확인할 수 있습니다 |
| 직접 P2P 연결 vs 릴레이 | chrome://webrtc-internals/ muestra los ICE candidates y si la conexión es relay (TURN) o srflx/host (directa) |
이것은 검증할 수 없습니다
모든 것이 검증 가능하다고 말한다면 위선적일 것입니다. 이 주장들은 저희를 신뢰하거나 — 코드를 공개할 때까지 기다려야 합니다.
| 주장 | 검증 불가능한 이유 |
|---|---|
| 키 교체가 포함된 Double Ratchet | 암호화 작업은 WASM 바이너리 내에서 수행됩니다. 사용자는 로드되는 것을 볼 수 있지만, 어떤 알고리즘이 실행되는지 읽을 수 없습니다 |
| 마스터 키는 실제 엔트로피(256비트)로 생성됩니다 | 생성은 브라우저 내 crypto.getRandomValues를 사용합니다. 24개 단어가 생성되는 것은 볼 수 있지만, F12에서 엔트로피의 품질이나 CSPRNG의 안전성을 확인할 수 없습니다 |
| X25519 + Ed25519 + ChaCha20-Poly1305 | 같은 문제: 암호화 스택이 WASM 내에 있습니다. 브라우저에서 곡선이나 알고리즘을 확인할 수 없습니다 |
| 서버는 "완전히 눈이 멀었습니다" | 클라이언트가 읽을 수 있는 데이터를 보내지 않는다는 것은 확인할 수 있습니다. 서버가 연결 메타데이터(IP, 타임스탬프)로 무엇을 하는지는 신뢰 또는 서버 감사가 필요합니다 |
| 서버는 연결 후 관계를 저장하지 않습니다 | 서버 코드와 데이터베이스에 대한 접근이 필요합니다 |
| IP는 기록되지 않습니다 | 서버가 로그에 무엇을 기록하는지 확인할 수 없습니다 |
| 키는 매 메시지마다 교체됩니다 | WASM 내에서 발생합니다. 메시지가 전송되는 것은 볼 수 있지만, 키 교체를 관찰할 수 없습니다 |
| 삭제된 데이터는 정말로 사라집니다 | 로컬 IndexedDB에서 삭제할 수 있지만, 서버가 사본을 보유하지 않는다는 것은 확인할 수 없습니다(선언문에서는 보유한 적이 없다고 말하지만) |
WASM이 진정한 장벽인 이유
Solo2의 암호화 계층은 WebAssembly로 컴파일되어 있습니다 — 브라우저가 실행하지만 텍스트로 읽을 수 없는 바이너리 형식입니다. 이는 F12에서 어떤 알고리즘을 사용하는지 확인할 수 없다는 것을 의미합니다.
축소된 JavaScript(인터페이스에 사용)는 역으로 변환 가능합니다: 브라우저가 재포맷할 수 있고 코드 구조는 읽을 수 있습니다. 실질적인 장애물이지 진정한 장벽은 아닙니다. 하지만 Zig에서 컴파일된 WASM은 근본적으로 다릅니다 — es un binario de bajo nivel donde los nombres originales desaparecen y las optimizaciones del compilador transforman el código más allá de lo reconocible.
X25519를 사용한 Double Ratchet이라고 말씀드립니다. 저희 말을 믿으시거나, 누구나 감사할 수 있도록 암호화 계층의 소스 코드를 공개할 때까지 기다릴 수 있습니다. 현재 작업 중입니다.
더 신뢰할 수 있도록 하기 위해 진행 중인 일
.wasm의 SHA-256 해시 공개
프로덕션의 각 WASM 파일의 암호화 해시를 공개할 것입니다. 이를 통해 모든 감사자가 브라우저에서 실행되는 바이너리가 저희가 컴파일한 것과 정확히 일치하는지 확인할 수 있습니다.
암호화 계층을 오픈 소스로 공개
암호화 계층(Zig)의 소스 코드를 공개 저장소로 공개합니다. Signal과 같은 모델: 암호화 프로토콜 공개, 나머지 코드 비공개. 누구든 소스 코드를 컴파일하고 결과 .wasm의 해시를 프로덕션의 것과 비교할 수 있습니다.
보안은 은폐에 의존하지 않습니다
보안 모델은 소스 코드가 공개되어도 작동하도록 설계되었습니다. 보안이 아무도 코드를 읽을 수 없는 것에 의존한다면, 그것은 보안이 아닙니다 — 희망입니다.
문서화된 5겹 보안
비밀번호(서버 접근), 24개 단어(실제 마스터 키), 기기 비밀(금고 보호) 및 Double Ratchet 교체. 각 계층은 독립적이며 투명성 선언문에서 검증 가능합니다.