KEY SYNC

안전한 디바이스 간 키 전송

QR 코드를 사용하여 새 디바이스에 암호화 키를 전송합니다. X25519 ECDH 키 교환 + AES-256-GCM 암호화 전송.

1

소스 디바이스

키가 있는 디바이스에서: 설정 → Key Sync → "키 전송". QR 코드가 표시됩니다(5분간 유효).

2

대상 디바이스

새 디바이스에서: 로그인 후 "QR 스캔"을 선택하고 소스 디바이스의 QR 코드를 카메라로 스캔합니다.

3

전송 완료

암호화된 채널을 통해 키가 안전하게 전송됩니다. SHA-256 체크섬으로 데이터 무결성을 검증합니다. 세션이 자동 만료됩니다.

전송 프로토콜

Source Device                        Target Device
     │                                    │
     │  1. Create Session (Firestore)     │
     │  2. Generate X25519 Ephemeral Key  │
     │  3. Display QR Code               │
     │          ─── QR Scan ───►          │
     │                                    │  4. Parse QR → sessionId + publicKey
     │                                    │  5. Generate X25519 Ephemeral Key
     │                                    │  6. ECDH → Shared Secret
     │                                    │  7. HKDF-SHA256 → AES Key
     │          ◄── Firestore ──          │  8. Write encrypted response
     │  9. ECDH → Same Shared Secret     │
     │  10. Encrypt keys (AES-256-GCM)   │
     │          ── Firestore ──►          │
     │                                    │  11. Decrypt → Import keys
     │                                    │  12. SHA-256 Checksum verify
     │  13. Cleanup session               │
     └────────────────────────────────────┘
              Session TTL: 5 minutes

전송되는 키

알고리즘용도
Identity Key PairX25519신원 확인 / PQXDH
Signing Key PairEd25519메시지 서명 (AEGIS XEdDSA)
Signed PreKey PairX25519X3DH 세션 수립
Registration ID세션 식별자

One-Time PreKey는 전송되지 않습니다. 디바이스 간 키 경쟁을 방지하기 위해 새 디바이스에서 재생성됩니다.

플랫폼 지원

플랫폼QR 스캔키 저장소대안
iOS지원됨Keychain
Android지원됨Android Keystore
macOS카메라 의존Keychain키 재생성
PWA (Web)카메라 권한 의존Web Crypto API키 재생성

키 재생성: QR 스캔을 사용할 수 없는 경우(PWA/macOS), "키 재생성"을 선택하여 새 암호화 키를 생성합니다. 모든 연락처와 새 세션이 설정되지만, 이전 메시지는 복호화할 수 없습니다.

멀티 디바이스 사용

동일 계정을 여러 디바이스에서 사용할 때의 중요 사항.

같은 계정, 여러 디바이스

  • 각 디바이스가 독립적인 암호화 키를 저장
  • 원래 디바이스의 메시지를 복호화하려면 Key Sync 필요
  • 동시 사용 시 One-Time PreKey 충돌 가능
  • 디바이스 제한: Essential 1대 / Premium & Intelligence 3대

다른 계정, 같은 디바이스

  • 모든 암호화 세션이 완전히 초기화됩니다
  • 이전 계정의 메시지는 영구적으로 복호화 불가
  • 서로 다른 계정 간 키 충돌 없음
  • 계정 전환 전 경고 다이얼로그 표시

Arc vs Signal: 멀티 디바이스 모델

기능SignalArc V2
디바이스 모델Primary/LinkedIndependent key sets
디바이스 추가Via PrimaryDirect registration + Key Sync
키 배포Primary distributes to LinkedPeer-to-peer QR exchange
디바이스 인증Implicit trustEd25519 signature verification
Primary 장애All Linked devices orphanedNo impact (independent)