Как работают passkey

Ключи, которые управляют кошельком Vela, — это passkey: учётные данные WebAuthn на кривой P-256. Каждый из них создаёт ваше устройство или ключ безопасности; оно же хранит закрытый ключ и использует его только после того, как вы подтвердите действие, — через Face ID, отпечаток пальца, PIN-код устройства или касание и PIN-код на ключе безопасности. Vela никогда не получает закрытый ключ; если ключ синхронизирует менеджер паролей, он хранит его от вашего имени в зашифрованном виде.

Что такое passkey

Passkey — это пара из открытого и закрытого ключа, созданная для одного сайта; у Vela это getvela.app. Приложение никогда не получает закрытый ключ: оно может только попросить аутентификатор что-то подписать, а аутентификатор сначала спрашивает вас.

Где хранится закрытый ключ, зависит от вида ключа:

Вид ключаГде хранится закрытый ключСинхронизируется на другие устройства?
Это устройство — Face ID, Touch ID, отпечаток пальца, Windows HelloМенеджер паролей вашей платформы (Связка ключей iCloud, Менеджер паролей Google) или сторонний, например 1PasswordОбычно да, со сквозным шифрованием, если синхронизация включена. Ключи Windows Hello остаются на этом компьютере
Другой телефон, подключённый по QR-кодуМенеджер паролей того телефонаТак же, как выше
Аппаратный ключ безопасности (YubiKey и другие ключи FIDO2, по USB или NFC)Внутри ключа безопасностиНикогда

Кошелёк Vela может использовать до семи ключей в любом сочетании; они выбираются при создании кошелька. Об этом выборе — на странице Подписывающие ключи и ключи безопасности.

Фишингу нечего украсть

Фишинг работает так: вас уговаривают отдать секрет. Сид-фраза — это двенадцать слов, которые вас могут уговорить где-нибудь ввести. У passkey нет секрета, который можно ввести: нечего раскрыть, нечего вставить, и поддельный сайт не может его попросить. А поскольку passkey создаётся для одного сайта, браузер предлагает passkey для getvela.app только страницам на getvela.app и его поддоменах.

Так исчезает целый класс потерь, частый при самостоятельном хранении, — кража фразы восстановления.

От чего passkey не защищает

Passkey также не защитит от того, у кого в руках ваш разблокированный телефон и кто может пройти его проверку, или от того, кто контролирует аккаунт, через который синхронизируется ваш passkey. Держите код-пароль устройства включённым, защитите аккаунт Apple или Google и подумайте об аппаратном ключе безопасности, который нигде не синхронизируется.

Как ощущается подпись

  1. Вы подтверждаете транзакцию в Vela, прочитав, что она делает.
  2. Устройство или ключ безопасности запрашивает Face ID, отпечаток пальца, PIN-код или касание плюс PIN-код.
  3. Оно подписывает, и в приложение возвращается только подпись.
  4. Приложение передаёт подписанную операцию релею, а тот отправляет её в сеть; ваш контракт кошелька проверяет подпись passkey в блокчейне, прежде чем что-либо выполнить.

Куда попадает публичный ключ

Публичные половины ваших ключей записываются в публичный реестр в сети Gnosis, чтобы новое устройство могло найти ваш кошелёк. Об этом — страница Восстановление и вход.

Дальше: подписывающие ключи и ключи безопасности.