Где хранятся ключи FIDO U2F?

Aug 19 2020

Я получаю противоречивую информацию о том, как хранятся и используются электронные ключи. Где хранятся открытый и закрытый ключи? Если закрытый ключ хранится на самом Yubikey, сколько он может хранить?

Если оба ключа хранятся в службе, в которой вы выполняете аутентификацию (Gmail), отправляет ли yubikey закрытый ключ для расшифровки, чтобы использовать закрытый ключ для подписи?

Сайт Yubikey:

В процессе регистрации пары ключей генерируются на устройстве (защищенный элемент), но пары ключей не хранятся на YubiKeys . Вместо этого пара ключей (открытый ключ и зашифрованный закрытый ключ) сохраняется каждой проверяющей стороной / службой, инициировавшей регистрацию. Таким образом, такой подход позволяет связать неограниченное количество сервисов с U2F-сертифицированными ключами YubiKeys.

Веб-сайт FIDO:

Устройство и протокол U2F должны гарантировать конфиденциальность и безопасность пользователя. В основе протокола устройство U2F имеет возможность (в идеале, воплощенную в защищенном элементе) создавать пару открытого / закрытого ключей для конкретного источника. Устройство U2F предоставляет открытый ключ и дескриптор ключа исходной онлайн-службе или веб-сайту на этапе регистрации пользователя. Позже, когда пользователь выполняет аутентификацию, исходная онлайн-служба или веб-сайт отправляет идентификатор ключа обратно на устройство U2F через браузер. Устройство U2F использует дескриптор ключа для идентификации личного ключа пользователя и создает подпись, которая отправляется обратно источнику для проверки наличия устройства U2F. Таким образом, Key Handle - это просто идентификатор определенного ключа на устройстве U2F.

https://fastmail.blog/2016/07/23/how-u2f-security-keys-work/

https://developers.yubico.com/U2F/

https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-overview-v1.2-ps-20170411.html#site-specific-public-private-key-pairs

https://www.yubico.com/authentication-standards/fido-u2f/#toggle-id-4

Ответы

2 Marc Aug 19 2020 at 12:14

Ключи могут быть либо сохранены на устройстве, либо зашифрованы и возвращены в дескрипторе ключа . Оба разрешены (и упомянуты) в спецификации.

Из соображений реализации :

Токены U2F могут не хранить материал закрытого ключа, а вместо этого могут экспортировать закрытый закрытый ключ как часть дескриптора ключа.

Также в спецификации формата необработанного сообщения :

Ключевой дескриптор [длина указана в предыдущем поле]. Это дескриптор, который позволяет токену U2F идентифицировать сгенерированную пару ключей. Токены U2F могут заключать сгенерированный закрытый ключ и идентификатор приложения, для которого он был создан, и выводить его как дескриптор ключа.

Это оставляет решение за производителем устройства U2F.

Yubico решила вернуть зашифрованный закрытый ключ в качестве дескриптора ключа, что позволяет вводить неограниченное количество учетных данных.

Если производитель устройства решит хранить закрытый ключ на самом устройстве, количество возможных ключей будет ограничено объемом доступной памяти. Вам нужно будет посмотреть спецификации для конкретного устройства.