투명성 선언문

버전 5.3 — 2026년 6월 6일

이 문서는 Solo2가 사용자에 대해 어떤 정보를 가지고 있는지, 언제 수집하는지, 왜, 어디에 있는지, 얼마나 오래 보관하는지, 어떻게 보호하는지를 정확히 설명합니다. 작은 글씨 없음. 예외 없음.

기본 원칙

Solo2는 두 사람 사이에 프라이빗 터널을 만듭니다. 직접적으로. 중개자 없이.

우리 서버는 딱 한 가지만 합니다: 터널의 양 끝을 서로 소개해서 찾을 수 있게 합니다. 이를 위해 최소한의 것만 필요합니다 — 두 피어의 식별자 — 소개에 걸리는 밀리초 동안만 RAM 메모리에 보관합니다. 두 기기가 서로를 찾는 순간, 해당 데이터는 메모리에서 삭제됩니다. 어떤 시점에서도 디스크에 기록되지 않습니다.

연결되면 서버는 사라집니다. 대화에 참여하지 않습니다. 보지 않습니다. 저장하지 않습니다. 얼마나 오래 지속되는지, 얼마나 자주 대화하는지, 무엇에 대해 이야기하는지 알지 못합니다.

우리를 믿어달라고 하지 않습니다. 직접 확인해 보세요:

테스트 1 — 서버는 불필요합니다.

직접 터널이 구축되면 우리 서버는 더 이상 관여하지 않습니다. 그 순간 서버가 다운되더라도 대화는 중단 없이 계속됩니다. 기기가 켜져 있고 인터넷에 연결되어 있는 한, 터널은 당신의 것입니다. 우리는 더 이상 거기에 없습니다.

테스트 2 — 10기가바이트 파일을 보내세요.

빠르기만 한 게 아닙니다 — 우리 서버는 전혀 신경 쓰지 않습니다. 24시간 동안 10기가바이트 이상의 파일을 계속 보내 보세요. 우리 서버는 알아차리지도 못합니다, 관여하지 않으니까요. 다른 메시징 서비스에서 같은 걸 시도해 보세요.

테스트 3 — 망원경에 대해 이야기하세요.

한 오후를 누군가와 망원경이나 낚싯대, 또는 인터넷에서 한 번도 검색한 적 없는 것에 대해 이야기하며 보내세요. 며칠 기다리세요. 망원경 광고는 어디에도 나타나지 않습니다. 당신의 말은 터널 밖으로 나가지 않았습니다.

당신의 데이터, 당신의 책임.

이것은 우리의 가장 큰 장점이자, 솔직히 말하면, 적응하는 데 가장 오래 걸릴 부분입니다. 메시지, 파일, 연락처는 기기 안의 암호화된 금고에 저장됩니다. 어떤 서버에도 사본이 없습니다. 24개의 단어로 보호됩니다 — Bitcoin과 같은 수준의 보안입니다. 하지만 한 곳에만 있습니다. Solo2를 두 번째 기기에 설치하지 않는 한 — 두 금고는 동시에 연결되면 자동으로 동기화됩니다. 암호화된 백업을 내보낼 수도 있습니다 — 또는 데이터를 원하는 곳 어디로든 가져갈 수 있도록 표준 형식의 읽을 수 있는 사본을 내보낼 수도 있습니다. 유일한 기기를 잃어버리면 구해줄 클라우드는 없습니다. 당신의 데이터는 당신의 것입니다, 모든 결과와 함께.

상세히

Solo2 서버는 완전히 눈이 멀었습니다. 누구와 대화하는지, 무엇을 말하는지, 어떤 파일을 공유하는지 알지 못합니다. 기기 간 연결을 설정하는 기술적 신호조차 서버가 읽을 수 없습니다 — 종단 간 암호화되어 전송됩니다.

메시지는 기기 간 직접 이동하며, 종단간 암호화됩니다. 대화 기록은 브라우저에 암호화되어 저장되며, 서버에는 절대 저장되지 않습니다.

암호화 키는 매 메시지마다 자동으로 교체됩니다. 모든 메시지는 즉시 폐기되는 고유한 키로 암호화됩니다. 이것은 기술적으로 Double Ratchet으로 알려져 있으며, 누군가가 키를 획득하더라도 단 하나의 메시지만 읽을 수 있을 뿐 대화 전체를 읽을 수 없다는 것을 의미합니다. 또한, 각 통신 라운드 후에 보안이 자동으로 복원됩니다. 손상된 키는 다음 메시지가 교환되는 즉시 무용지물이 됩니다.

기기 간 직접 연결이 불가능한 경우(예: 네트워크 제한), 미러 서버(기술적으로 TURN이라 함)를 사용합니다: 데이터가 한 기기에서 다른 기기로 반사되지만, 미러는 반사하는 내용을 인식하지 못합니다 — 모든 것이 종단간 암호화되어 이동하며 서버는 읽을 수 없습니다. 또한, 모든 패킷은 균일한 크기로 패딩되어 관찰자가 트래픽의 크기나 빈도를 분석하여 정보를 추론하는 것을 방지합니다.

애플리케이션에서 사용 중인 연결 유형을 항상 확인할 수 있습니다 — 직접 연결 또는 미러 서버를 통한 연결 — 그에 따라 대응할 수 있습니다.

마스터 키는 256비트의 실제 엔트로피로 무작위 생성됩니다 — Bitcoin과 동일한 수준입니다. 계정을 만들 때 Solo2는 24개의 단어로 표현되는 고유한 키를 생성합니다. 비밀번호는 서비스 접근을 보호합니다. 24개의 단어는 데이터의 열쇠입니다. 두 개의 서로 다른 문을 위한 두 개의 서로 다른 열쇠입니다.

서버가 사라져도 데이터는 살아남습니다. 24개 단어로 서버 연결 없이 로컬 금고에 접근할 수 있습니다. 데이터는 진정으로 사용자의 것입니다.

1. 서버에 있는 데이터

1.1 사용자 계정

사용자 기록에 존재하는 모든 필드입니다. 이 외에는 아무것도 없습니다.

데이터 사유 보호 기간
사용자 이름 로그인을 위해 일반 텍스트 (설계상 공개) 계정을 삭제할 때까지
비밀번호 인증 Argon2id로 보호 (OWASP 권장, 특수 하드웨어 공격에 내성). 실제 비밀번호는 절대 저장하지 않습니다 계정을 삭제할 때까지
래핑된 마스터 키 매번 24개 단어를 입력하지 않고도 비밀번호로 로그인하여 금고를 열 수 있게 하기 위해. 단어를 잃으면 이 래핑이 당신의 복구 수단입니다 당신의 비밀번호에서 파생된 키로 암호화된 불투명한 덩어리 (80바이트) — 서버는 그것을 열 수 없습니다 계정을 삭제할 때까지
복구 지문 계정 접근을 복구할 때 당신의 24개 단어가 올바른지 확인하기 위해 — 서버는 그것을 절대 보지 않습니다 비가역적 지문 (SHA-256, 64자). 당신의 단어나 키에 대해 아무것도 드러내지 않습니다 계정을 삭제할 때까지
공개 이름 연락처가 사용자를 알아볼 수 있도록 일반 텍스트 (사용자가 선택) 변경하거나 계정을 삭제할 때까지
연결 코드 Solo2 내 사용자의 주소 — 전화번호와 같습니다. 누군가가 사용자를 찾고 연결 요청을 보낼 수 있도록 공유하는 것입니다 일반 텍스트, 고유 (~10자) 계정을 삭제할 때까지
경제적 잔액 계정에 추가한 금액 숫자 (센트 단위) 계정을 삭제할 때까지
보너스 잔액 받은 보너스 (프로모션). 금전 잔액보다 먼저 소비됩니다 숫자 (센트 단위) 계정을 삭제할 때까지
계정 유형 당신의 플랜: 일반, 창립자 또는 플래티넘 (관리자는 관리용 계정에만 존재합니다) 1바이트 (정수) 변경되거나 계정을 삭제할 때까지
계정 상태 당신 계정의 상황: 활성, 체험 기간 중, 당신이 일시정지한 상태, 또는 유예 기간 중. 계정을 일시정지하면 이를 기억하는 것이 바로 이 필드입니다 1바이트 (정수) 변경되거나 계정을 삭제할 때까지
서비스 중단 표시 서비스가 언제 중단되었는지 저장합니다: 관리자가 계정을 일시정지할 때 설정하거나, 잔액이 0이 될 때 시스템이 설정합니다 (이것이 유예 기간의 시작입니다). 정상 계정에서는 값이 0입니다 숫자 타임스탬프 (0 = 중단 없음) 계정이 다시 활성화되거나 — 충전 또는 해제 — 삭제될 때까지
가입 날짜 및 시간 계정 생성 시점 전체 날짜 및 시간 (타임스탬프) 영구
내부 식별자 시스템은 사용자 이름을 사용하지 않고 당신을 참조하기 위해 두 개의 내부 코드가 필요합니다. 하나는 기본 ID이고 다른 하나는 참조 코드입니다. 둘 다 불투명합니다 — 시스템 외부에서는 아무 의미가 없습니다 각각 24자의 무작위 코드 2개 (예: u_7kX9mP2...). 이름, 날짜 또는 개인 데이터를 포함하지 않습니다 — 순수하게 무작위입니다 계정을 삭제할 때까지
보안 버전 비밀번호 보호 알고리즘의 어떤 버전이 사용되었는지 내부 번호 계정을 삭제할 때까지
상태 표시기 기술 플래그 (잔액 변경 여부, 최대 보안 모드 활성화 여부) 1바이트 — 글자 하나에 해당합니다. 그 이상은 들어갈 수 없습니다 계정을 삭제할 때까지

데이터 양의 목안으로: 전체 기록은 약 400바이트 — 이 단락보다 짧습니다. 이름(원한다면 가명), 비밀번호 지문(고정 크기, 128자), 암호화된 마스터 키(읽을 수 없는 80바이트의 불투명한 덩어리), 복구 지문(아무것도 드러내지 않는 64자), 잔액을 위한 숫자 두 개, 몇 개의 날짜, 그리고 4바이트의 설정. 이것이 서버에 존재하는 당신의 전부입니다.

1.2 활성 세션

데이터사유보호기간
세션 토큰 해시 로그인 상태 유지 비가역적 지문 (SHA-256). 원래 토큰은 서버에 저장되지 않습니다 24시간 — 이후 완전히 삭제됩니다
생성 날짜 시스템이 언제 생성되었는지 알 수 있도록 — 자동 정리에 유용 숫자 타임스탬프 (유닉스 초) 세션과 함께 삭제됩니다
만료 날짜 세션은 생성 후 24시간에 만료됩니다. 사용으로 갱신되지 않습니다 — 고정된 만료 날짜가 있습니다 숫자 타임스탬프 (생성 + 24시간) 24시간 — 이후 완전히 삭제됩니다

로그아웃하거나 만료되면 해당 행이 데이터베이스에서 완전히 삭제됩니다. 세션이 존재했다는 흔적이 남지 않습니다.

1.3 연결 요청

데이터사유보호기간
요청자 ID 누가 요청을 보냈는지 확인 24자의 무작위 내부 코드 3일 — 이후 자동으로 삭제됩니다
수신자 ID 누구에게 보내는지 확인 24자의 무작위 내부 코드 3일 — 이후 자동으로 삭제됩니다
상태 대기 중 / 수락됨 / 거절됨 1바이트 (정수: 0=대기 중, 1=수락됨, 2=거부됨) 해결 시 또는 만료 시 삭제 (3일)
생성 날짜 요청이 언제 생성되었는지 알아 자동 삭제할 수 있도록 함 숫자 타임스탬프 (유닉스 초) — 4~8바이트 3일 — 이후 자동으로 삭제됩니다

중요 참고: 요청이 보류 중인 동안(최대 3일), 서버는 사용자 A가 사용자 B에게 연결을 요청했다는 것을 알고 있습니다. 3일이 지나면 요청은 자동으로 삭제됩니다. 연결이 수락되면 서버는 그 관계를 저장하지 않습니다. 연락처 목록은 브라우저 안에서만, 암호화되어 존재합니다.

1.4 연결 코드

데이터사유보호기간
연결 코드 (alias) 다른 사용자가 당신을 찾고 터널 생성을 요청할 수 있는 짧은 식별자 내부 ID에서 파생된 무작위 8자리 코드 영구적 (공개 연결 식별자입니다)

1.5 푸시 구독 (알림)

데이터사유보호기간
알림 주소 브라우저에 알림 전송 브라우저 제공업체(Google, Mozilla 또는 Apple)의 URL 알림을 비활성화하거나 계정을 삭제할 때까지
푸시 암호화 키 브라우저만 읽을 수 있도록 알림 암호화 Web Push 표준 주소와 동일

1.6 피드백 (지원)

데이터사유보호기간
메시지 도움을 드리기 위해 일반 텍스트 처리할 때까지
사용자 ID 누가 도움이 필요한지 확인 내부 ID 메시지와 동일

1.7 연결 시그널링 (임시)

두 기기가 직접 연결되려면, 연결 설정을 위한 기술 신호(WebRTC 프로토콜)를 교환해야 합니다. 서버가 당신의 사용자 코드와 상대방의 사용자 코드를 메모리에 보유하는 유일한 순간은 이 연결 요청을 처리하는 밀리초 동안입니다. 찰나에 끝나고, RAM에만 존재하며, 디스크에 기록되지 않습니다. 신호 자체는 종단간 암호화됩니다

데이터사유보호기간
연결 신호 기기 간 직접 연결 설정 수신자의 공개 키로 종단간 암호화됨. 서버는 읽거나 수정할 수 없습니다 60초

1.8 미러 서버 (TURN 릴레이)

직접 연결이 불가능한 경우, 미러 서버를 사용합니다: 데이터가 거울을 통과하는 빛처럼 통과합니다 — 한쪽에서 다른 쪽으로 반사되지만, 거울은 반사하는 내용을 인식하지 못합니다. 모든 패킷은 균일한 크기로 패딩되어 관찰자가 메시지와 단순한 연결 하트비트를 구별할 수 없게 합니다.

데이터사유보호기간
접근 자격 증명 미러 서버 인증 신원이 비가역적 해시로 변환됩니다 — 미러 서버는 사용자가 누구인지 모릅니다 24시간

1.9 처리된 결제

결제는 익명성과 실제로 마찰이 있는 유일한 지점입니다. 이에 대해 솔직하게 말씀드리겠습니다.

Solo2에 가입하면 사용자 이름(가명 가능), 비밀번호, 공개 이름(역시 가명 가능)을 선택합니다. 어떤 데이터도 실제 인물과 연결되지 않습니다. 그러나 카드로 결제하면, 금융 기관은 사용자가 누구인지 알고 있습니다.

결제 게이트웨이로부터 저희가 받는 것은 확인과 금액뿐입니다. 카드 명의자의 이름, 카드 번호, 신분증 또는 결제자의 개인 데이터를 받거나 저장하지 않습니다. 소액이므로 법적으로 매점에서 사탕을 사는 현금 영수증과 동등합니다: 매점 주인은 결제하는 사람의 신분증을 기록하지 않습니다.

또한 지불 기록은 사용자 계정에서 의도적으로 연결을 해제한 입니다. 당사 데이터베이스에는 특정 계정의 픽업 티켓과 일치하는 필드가 없습니다.

데이터사유보호기간
결제 기록 회계 및 세금 의무 확인 + 금액. 결제자의 개인 데이터 없음. 어떤 사용자 계정과도 연결 없음 영구 (법적 의무)

가능한 최악의 시나리오: 법원 명령이 있어도 추적 체인은 다음과 같습니다: 귀하의 카드 → 귀하의 은행 → 지불 게이트웨이 → 우리의 회수 티켓. 하지만 우리 티켓에는 사용자 식별자가 포함되어 있지 않습니다. 이는 실수가 아니라 디자인 결정입니다. 우리 데이터베이스에는 결제와 계좌를 연결하는 필드나 색인이 없습니다. 유일한 이론적 방법은 시간적 상관관계(특정 기간 동안 귀하가 유일한 결제인 경우)일 것입니다. 그러나 극단적인 경우에도 계정에는 실제 사람을 식별하는 정보가 포함되어 있지 않습니다. 즉, 사용자 이름과 공개 이름은 완전히 조작될 수 있습니다.

저희의 모든 수입은 합법적이며 결제 게이트웨이를 통해 기록됩니다. 해당 세금을 납부합니다. 그러나 고객의 익명성은 저희 측에서 완전합니다.

2. 서버에 없는 데이터

이것이 우리를 정의하는 것입니다. Solo2 서버는 를 저장하거나 액세스하지 않습니다.

  • 귀하의 메시지 — 종단간 암호화되어 장치 간에 직접 이동합니다. 서버는 이를 결코 볼 수 없습니다.
  • 귀하의 파일 — 메시지와 동일합니다: 직접적이고 암호화됩니다.
  • 연락처 목록 — 브라우저에만 존재하며 Bóveda 로 암호화됩니다.
  • 귀하의 채팅 기록 — 귀하의 브라우저에서만 암호화됩니다.
  • 귀하의 위치 — GeoStamp는 귀하의 장치에서 계산되어 수신자에게 직접 전송됩니다. 서버는 이를 처리하지 않습니다.
  • 사용 분석 — Solo2 애플리케이션에는 분석 시스템, 추적 쿠키 또는 타사 스크립트가 없습니다.
  • 장치 데이터 — 당사는 장치의 모델, 해상도, 운영 체제 또는 어떠한 특성도 수집하지 않습니다.
  • 통신 메타데이터 — 우리는 귀하가 누구와 언제, 얼마나 자주, 얼마나 오랫동안 대화하는지 알 수 없습니다.

IP 주소에 대해

IP 주소는 어떤 데이터베이스에도 저장되지 않습니다. 서버의 기술 로그에서 IP 주소는 비가역적 해시로 변환됩니다 — 악용 패턴 감지에는 유용하지만, 원래 IP로 되돌릴 수 없습니다. 이 로그는 7일마다 자동으로 삭제됩니다. 연결 신호에는 IP가 포함될 수 있지만, 종단간 암호화되어 있어 서버는 읽을 수 없습니다.

3. 브라우저의 데이터 (금고)

아래의 모든 내용은 AES-256-GCM(정부 및 금융 기관에서 사용하는 군사급 암호화 표준)로 암호화된 브라우저에서만 에 적용됩니다. 키는 Argon2id(특수 하드웨어 공격에 대해 사용할 수 있는 가장 강력한 알고리즘)를 사용하여 비밀번호에서 생성되며, 이 프로세스는 전적으로 브라우저 내에서 발생합니다. 귀하의 비밀번호는 서버로 전송되지 않습니다.

데이터는 저장 상태에서 암호화됩니다 — 누군가 브라우저 저장소에 접근하더라도 비밀번호 없이는 읽을 수 없는 암호화된 블록만 발견합니다.

백업을 내보낼 때, 동일한 보호(Argon2id + AES-256-GCM)로 암호화됩니다. 비밀번호를 아는 사람만 복호화할 수 있습니다. 유일한 예외는 의도적인 것입니다: 읽을 수 있는 사본 — 앱 없이도 데이터를 읽을 수 있도록 설계된 표준 ZIP — 은 암호화되지 않은 채로 생성됩니다. 앱은 이를 경고하고 생성하기 전에 비밀번호를 요청합니다.

데이터 암호화 제어
메시지AES-256-GCM삭제 시점은 사용자가 결정
파일AES-256-GCM삭제 시점은 사용자가 결정
연락처 (페어)AES-256-GCM연결할 대상은 사용자가 결정
확인 상태AES-256-GCM각 연락처의 신원은 사용자가 직접 확인
검색 인덱스비가역 토큰(HMAC)으로 암호화메시지에서 재구성
전달 상태AES-256-GCM어떤 메시지가 전달되었는지
대기 중인 메시지AES-256-GCM연결이 없을 때의 전송 대기열

브라우저 임시 저장소

데이터 유형 기간 사유
사용자 세션 브라우저 로컬 메모리 (localStorage) 로그아웃할 때까지 로그인 유지
앱 버전 브라우저 로컬 메모리 (localStorage) 영구 업데이트 감지
테마 설정 브라우저 로컬 메모리 (localStorage) 영구 비주얼 테마 기억
언어 설정 브라우저 로컬 메모리 (localStorage) 영구 언어 기억
비밀번호 (최대 보안 모드) 탭 메모리 (sessionStorage) 탭을 닫으면 사라집니다 페이지 새로고침 시 암호화 재초기화

브라우저 보안에 대한 참고사항

Solo2는 웹 브라우저 내에서 실행됩니다. 저장 상태의 암호화된 데이터는 보호되지만, 애플리케이션이 열려 있고 복호화된 메시지가 화면에 표시될 때 보안은 사용자의 환경에도 달려 있습니다:

  • 브라우저 확장: 귀하가 방문하는 페이지에 액세스할 수 있는 악성 확장은 이론적으로 화면에 표시되는 내용을 읽을 수 있습니다. 가능한 한 적은 수의 확장 프로그램을 사용하고 신뢰할 수 있는 소스에서만 사용하는 것이 좋습니다.
  • 깨끗한 브라우저: 불필요한 확장이 없는 업데이트된 브라우저가 최고의 동맹입니다.
  • 기본 앱: 향후에는 브라우저 환경에 의존하지 않고 추가적인 격리 수준을 제공하는 데스크톱 애플리케이션(Windows, Mac, Linux)을 제공할 예정입니다.

4. 네트워크 연결

Solo2 애플리케이션

도메인 사유 전송되는 데이터
solo2.net애플리케이션 API인증, 시그널링, 프레즌스
pay.menzuri.com결제 게이트웨이결제 시에만

다른 도메인이 없습니다. 외부 스크립트가 없습니다. 추적 CDN이 없습니다. 서버의 콘텐츠 보안 정책(CSP)은 이를 기술적으로 시행합니다. 즉, 다른 도메인에서 리소스를 로드하려는 모든 시도는 브라우저에 의해 차단됩니다 .

기기의 공용 IP 주소를 확인하는 것조차(사용자 간 직접 연결 설정에 필요) 자체 서버를 사용합니다(기술적으로 STUN이라 함). 외부 서비스에 위임하지 않습니다. 저희가 직접 관리합니다.

소개 페이지

소개 페이지(solo2.net) — 애플리케이션과 독립적 — 는 독일에 위치한 자체 서버에 호스팅된 익명 측정 시스템을 사용합니다:

도메인 사유 전송되는 데이터
stats.menzuri.com익명 방문 측정방문 페이지 (쿠키 없음, IP 없음, 식별 없음)

이 시스템은 쿠키를 설치하지 않고, IP 주소를 기록하지 않으며, 사용자를 식별하지 않고, 방문 간 추적하지 않으며, 제3자와 데이터를 공유하지 않습니다. Solo2 애플리케이션에는 이 시스템이나 다른 어떤 종류의 분석 도구도 없습니다.

5. 데이터 삭제

두 가지 다른 작업이 있으며, 그 차이를 아는 것이 중요합니다:

로컬 데이터 삭제

애플리케이션 설정에서 두 가지 로컬 삭제 옵션이 있습니다:

  • 내 데이터 지우기 — 동일한 브라우저를 사용하는 다른 사용자에게 영향을 주지 않고 데이터(ID, 볼트, 세션)만 삭제합니다.
  • 긴급 재설정 — 모든 사용자 데이터, 서비스 워커, 캐시 및 암호화 키 등 모든 것을 완전히 삭제합니다. 이중 확인이 필요합니다.

두 경우 모두 서버의 계정은 여전히 ​​존재합니다. 다시 로그인할 수 있지만 로컬 데이터는 되돌릴 수 없게 손실됩니다. 그렇게 하면 완전히 새로운 암호화 ID가 생성됩니다. 이전 공개 키를 가진 사람은 더 이상 아무것도 암호화할 수 없습니다. 이전 연락처가 다시 ​​연결을 원하는 경우 다시 연결하도록 요청해야 하며 귀하는 이를 수락할지 여부를 결정합니다.

기기 간 자동 복구

한 기기에서 데이터를 잃고 다른 기기가 연결되어 있으면, Solo2가 상황을 감지하고 신원과 금고를 자동으로 복원할 것을 제안합니다. 복원은 기기 간 직접 연결로 암호화되어(Argon2id) 전달됩니다 — 서버를 거치지 않습니다.

서버에서 계정 삭제

  1. 귀하의 ID와 연결된 데이터베이스의 모든 행(계정, 세션, 요청, 초대, 푸시 구독, 피드백)이 삭제됩니다.
  2. 삭제는 원자 (전부 또는 전무)입니다. 모든 것이 삭제되거나 아무것도 삭제되지 않습니다.
  3. 지불 기록은 의도적으로 귀하의 신원에서 연결을 해제합니다. 이는 법적 의무에 따라 존재하지만 지불을 추적할 수는 없습니다.
  4. 서버 로그의 식별자는 비가역적 해시입니다: 계정이 삭제되면 로그를 계정에 연결할 수 없습니다.
  5. 브라우저의 금고는 이 작업으로 자동 삭제되지 않습니다(브라우저에 접근할 수 없음). 삭제하려면 먼저 핵 삭제를 실행하거나 브라우저에서 사이트 데이터를 지우세요.

5b. 마스터 키와 24개 단어

Solo2에서 계정을 생성하면 256비트의 실제 엔트로피를 가진 마스터 키가 생성됩니다(Bitcoin과 동일). 이 키는 사용자만 아는 24개 단어로 표현됩니다. 비밀번호가 이 키를 래핑하여 서버에 암호화된 상태로 저장합니다 — 서버는 읽을 수 없습니다.

이는 두 개의 독립적인 키를 가진다는 의미입니다

정확한 알고리즘 (검증 가능)

생성: 운영 체제의 CSPRNG (crypto.getRandomValues, 256비트). 마스터 키 암호화: 래퍼 키를 파생하기 위한 Argon2id (OWASP) + AES-256-GCM (인증된 암호화)를 통해 보호합니다. ID: Ed25519 (서명) + X25519 (교환). 메시지: Double Ratchet ChaCha20-Poly1305 . 브라우저 탭을 닫으면 민감한 데이터가 모두 메모리에서 사라집니다.

마스터 키를 보호하는 방법

계층 내용 위치
비밀번호 서버 접근. 마스터 키를 래핑 사용자의 기억 속 + 서버의 해시
기기 비밀 설치 시 자동 생성되는 보이지 않는 두 번째 인증 요소 기기 내 (추출 불가)
마스터 키 (24개 단어) 256비트의 실제 엔트로피, 무작위 생성. Bitcoin 수준 (BIP39) 사용자가 보관하는 종이 + 서버에 래핑된 상태
키 교체 모든 메시지는 사용 후 파기되는 고유한 키를 사용 (Double Ratchet) 자동, 투명하게

비밀번호를 변경하면

비밀번호 변경은 즉각적입니다. 마스터 키만 새 비밀번호로 다시 래핑됩니다 — 신원은 변하지 않고, 금고는 다시 암호화되지 않으며, 연락처에 영향이 없고, 24개 단어는 동일하게 유지됩니다. 밀리초 단위의 작업입니다.

복구

비밀번호를 잃으면 24개 단어로 금고에 접근할 수 있습니다 — 서버 없이. 24개 단어를 잃으면 비밀번호로 로그인하여 서버가 래핑된 키를 돌려줍니다. 둘 다 잃으면 데이터는 복구 불가능합니다. Bitcoin처럼, 이것은 설계된 보안입니다.

6. 누군가 무단으로 서버에 접근하면 어떻게 되는가

공격자가 Solo2 서버에 완전한 접근 권한을 얻으면 다음을 얻게 됩니다:

  • 사용자 이름 및 공개 이름
  • 연결 코드
  • 공개 키 (브라우저에 있는 개인 키 없이는 무용지물)
  • 비밀번호 해시 (Argon2id 덕분에 극히 비용이 큰 무차별 대입 공격 없이는 무용지물)
  • 세션 토큰 해시 (원본 토큰 없이는 무용지물)
  • 대기 중인 연결 요청 (내부 ID, 3일 후 만료)
  • 계정 유형, 잔액 및 가입 날짜
  • 결제 기록 (특정 사용자에게 연결 불가)

얻을 수 없는 것:

  • 메시지 없음 (서버에 존재한 적 없음)
  • 파일 없음 (서버에 존재한 적 없음)
  • 연락처 목록 없음 (서버에 존재한 적 없음)
  • 채팅 기록 없음 (서버에 존재한 적 없음)
  • 암호화 개인 키 없음 (브라우저에 존재)
  • IP 주소 없음 (기록되지 않음)

7. 저희의 약속

이 선언문은 데이터 관리에 관련된 변경이 있을 때마다 업데이트됩니다. 데이터베이스에 새 필드를 추가하면 여기에 나타납니다. 무언가를 제거해도 마찬가지입니다.

현재 유효한 버전은 항상 이 페이지입니다.

Solo2 — 대화는 오직 사용자의 것입니다.