При регистрации на аутентификаторе (телефоне, платформенном аутентификаторе компьютера или ключе безопасности) создаётся пара ключей; сайт хранит только открытый ключ и идентификатор учётных данных. При входе браузер передаёт challenge, аутентификатор проверяет пользователя и подписывает challenge вместе с хешем RP ID сайта, а сервер проверяет подпись. Большинство ключей доступа использует ES256 (COSE −7), некоторые — EdDSA или RS256.
Менеджер учётных данных (iCloud Keychain, Google Password Manager, 1Password и другие) создаёт резервные копии синхронизируемых ключей доступа и копирует их между устройствами пользователя; у таких ключей установлен флаг backup-eligible. Ключи доступа, привязанные к устройству, хранятся в одном аутентификаторе, например в ключе безопасности, и скопировать их нельзя. Для входа с другого устройства служит гибридный транспорт (QR-код и проверка близости по Bluetooth). Форматы обмена учётными данными FIDO (CXF; протокол CXP пока остаётся черновиком) позволяют пользователям переносить ключи доступа между менеджерами.
Что серверу всё равно нужно сделать правильно: случайные challenge с коротким сроком жизни, проверки RP ID и источника (origin), политику проверки пользователя, восстановление учётной записи, которое не возвращает более слабый фактор, и хранение нескольких ключей доступа для одной учётной записи. Песочница ключей доступа локально выполняет полную регистрацию и вход.