Пытаюсь осознать костюм протокола FIDO.
Предпосылка
- У аутентификатора есть главный закрытый ключ (также называемый ключом подтверждения).
- Во время церемонии регистрации аутентификатор подписывает запрос и несколько других параметров вместе с вновь сгенерированным открытым ключом и отправляет его на универсальный сервер FIDO по протоколу WebAuthN. А сгенерированный закрытый ключ хранится в аутентификаторе локально.
Вопросы
- Как сервер FIDO проверяет целостность открытого ключа, сгенерированного аутентификатором (проще говоря, как сервер проверяет цепочку сертификатов обратно в корень доверия)? Предполагается, что существует возможность для атаки mitm между аутентификатором и веб-клиентом.
- Имеется ли на сервере соответствующий открытый ключ аттестационного ключа / главный закрытый ключ (репликация модели CA)?
- Если да, то все ли аутентификаторы fido имеют один и тот же главный ключ при создании (будь то программный модуль или аппаратный модуль)? Если нет, то как производители и серверы FIDO справляются с созданием и развертыванием огромного количества физических аутентификаторов и программных модулей?