Насколько я понимаю, основываясь на сообщении в блоге Адама Лэнгли, существует два разных уровня:
Протокол (API), используемый веб-сайтами для доступа к токену через браузер. В настоящее время веб-сайты используют «API JavaScript FIDO U2F», и именно этот API заменяет WebAuthn.
Протокол, используемый браузерами (и другим локальным программным обеспечением) для связи с самим токеном. В настоящее время ключи FIDO U2F используют протокол CTAPv1 («Протокол клиент-аутентификатор»), но новые устройства будут использовать CTAPv2. Когда Юбико говорит о «FIDO2», они имеют в виду этот протокол.
Хотя обновления связаны друг с другом (CTAPv2 добавляет новые функции, которые будет использовать WebAuthn), уровни по-прежнему в основном независимы, а протоколы в основном обратно совместимы. То есть:
По сравнению с CTAPv1 основное обновление в CTAPv2 состоит в том, что устройства будут иметь больше места для хранения, чтобы их можно было использовать в качестве основного фактора аутентификации (и, возможно, других функций).
Тем не менее, существующие части U2F, похоже, остаются такими же, как в CTAPv1 (более или менее токен просто должен делать цифровые подписи).
По сравнению с FIDO U2F API наиболее важным изменением в WebAuthn является то, как он генерирует идентификаторы («AppID») для «проверяющей стороны», то есть веб-сайта.
Однако токены не заботятся о внутренней структуре идентификатора (он должен соответствовать), и в WebAuthn даже есть положения, разрешающие использование существующих регистраций FIDO U2F. (Новые регистрации, сделанные через WebAuthn , не будут работать с FIDO U2F.)
Поэтому, если вам нужен только 2-й фактор (U2F), кажется, что все существующие модели токенов будут по-прежнему работать с WebAuthn.