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 Pair | X25519 | 신원 확인 / PQXDH |
| Signing Key Pair | Ed25519 | 메시지 서명 (AEGIS XEdDSA) |
| Signed PreKey Pair | X25519 | X3DH 세션 수립 |
| 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: 멀티 디바이스 모델
| 기능 | Signal | Arc V2 |
|---|---|---|
| 디바이스 모델 | Primary/Linked | Independent key sets |
| 디바이스 추가 | Via Primary | Direct registration + Key Sync |
| 키 배포 | Primary distributes to Linked | Peer-to-peer QR exchange |
| 디바이스 인증 | Implicit trust | Ed25519 signature verification |
| Primary 장애 | All Linked devices orphaned | No impact (independent) |
