Secure Device-to-Device Key Transfer
Transfer your encryption keys to a new device using QR codes. X25519 ECDH key exchange + AES-256-GCM encrypted transfer.
Source Device
On the device that has your keys: Settings β Key Sync β "Transfer Keys". A QR code is displayed (valid for 5 minutes).
Target Device
On your new device: After login, select "Scan QR" and scan the QR code from the source device with your camera.
Transfer Complete
Keys are securely transferred via encrypted channel. SHA-256 checksum verifies data integrity. Session auto-expires.
Transfer Protocol
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 minutesKeys Transferred
| Key | Algorithm | Purpose |
|---|---|---|
| Identity Key Pair | X25519 | Identity verification / PQXDH |
| Signing Key Pair | Ed25519 | Message signatures (AEGIS XEdDSA) |
| Signed PreKey Pair | X25519 | X3DH session establishment |
| Registration ID | β | Session identifier |
One-Time PreKeys are NOT transferred. They are regenerated on the new device to avoid key competition between devices.
Platform Support
| Platform | QR Scan | Key Storage | Alternative |
|---|---|---|---|
| iOS | Supported | Keychain | β |
| Android | Supported | Android Keystore | β |
| macOS | Camera dependent | Keychain | Regenerate Keys |
| PWA (Web) | Camera permission dependent | Web Crypto API | Regenerate Keys |
Regenerate Keys: If QR scanning is unavailable (PWA/macOS), choose "Regenerate Keys" to create new encryption keys. New sessions will be established with all contacts, but previous messages cannot be decrypted.
Multi-Device Usage
Important considerations when using the same account on multiple devices.
Same Account, Multiple Devices
- β’ Each device stores independent encryption keys
- β’ Key Sync required to decrypt messages from original device
- β’ One-Time PreKey conflicts possible with simultaneous devices
- β’ Device limit: Essential 1 / Premium & Intelligence 3
Different Account, Same Device
- β’ All encryption sessions fully reset
- β’ Previous account messages permanently undecryptable
- β’ No key collision between different accounts
- β’ Warning dialog shown before account switch
Arc vs Signal: Multi-Device Model
| Feature | Signal | Arc V2 |
|---|---|---|
| Device Model | Primary/Linked | Independent key sets |
| Device Addition | Via Primary | Direct registration + Key Sync |
| Key Distribution | Primary distributes to Linked | Peer-to-peer QR exchange |
| Device Authentication | Implicit trust | Ed25519 signature verification |
| Primary Failure | All Linked devices orphaned | No impact (independent) |
