Безопасный перенос ключей между устройствами
Перенесите ключи шифрования на новое устройство с помощью QR-кодов. Обмен ключами X25519 ECDH + зашифрованный перенос AES-256-GCM.
Исходное устройство
На устройстве с ключами: Настройки → Key Sync → «Перенести ключи». Отображается QR-код (действителен 5 минут).
Целевое устройство
На новом устройстве: После входа выберите «Сканировать QR» и отсканируйте QR-код с исходного устройства камерой.
Перенос завершён
Ключи безопасно переносятся через зашифрованный канал. Контрольная сумма 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Переносимые ключи
| Ключ | Алгоритм | Назначение |
|---|---|---|
| Пара ключей идентификации | X25519 | Верификация личности / PQXDH |
| Пара ключей подписи | Ed25519 | Подписи сообщений (AEGIS XEdDSA) |
| Подписанная пара PreKey | X25519 | Установление сессии X3DH |
| Registration ID | — | Идентификатор сессии |
Одноразовые PreKey НЕ переносятся. Они генерируются заново на новом устройстве, чтобы избежать конкуренции ключей между устройствами.
Поддержка платформ
| Платформа | QR-сканирование | Хранилище ключей | Альтернатива |
|---|---|---|---|
| iOS | Поддерживается | Keychain | — |
| Android | Поддерживается | Android Keystore | — |
| macOS | Зависит от камеры | Keychain | Перегенерировать ключи |
| PWA (Web) | Зависит от разрешения камеры | Web Crypto API | Перегенерировать ключи |
Перегенерация ключей: Если сканирование QR недоступно (PWA/macOS), выберите «Перегенерировать ключи» для создания новых ключей шифрования. Новые сессии будут установлены со всеми контактами, но предыдущие сообщения не могут быть расшифрованы.
Использование нескольких устройств
Важные моменты при использовании одного аккаунта на нескольких устройствах.
Один аккаунт, несколько устройств
- • Каждое устройство хранит независимые ключи шифрования
- • Key Sync необходим для расшифровки сообщений с оригинального устройства
- • Возможны конфликты одноразовых PreKey при одновременной работе устройств
- • Лимит устройств: Essential 1 / Premium и Intelligence 3
Другой аккаунт, то же устройство
- • Все сессии шифрования полностью сбрасываются
- • Сообщения предыдущего аккаунта становятся навсегда нечитаемыми
- • Нет коллизий ключей между разными аккаунтами
- • Предупреждение отображается перед сменой аккаунта
Arc vs Signal: мультиустройственная модель
| Функция | Signal | Arc V2 |
|---|---|---|
| Модель устройств | Основное/Привязанное | Независимые наборы ключей |
| Добавление устройства | Через основное | Прямая регистрация + Key Sync |
| Распределение ключей | Основное раздаёт привязанным | Одноранговый обмен через QR |
| Аутентификация устройства | Неявное доверие | Верификация подписи Ed25519 |
| Сбой основного | Все привязанные устройства осиротевают | Без влияния (независимые) |
