Tanto quanto eu posso entender, com base na postagem do blog de Adam Langley , há dois camadas distintas:
-
O protocolo (API) usado pelos sites para acessar um token pelo navegador. Atualmente, os websites usam os "API JavaScript FIDO U2F" , e é esta API que o WebAuthn substitui.
-
O protocolo usado pelos navegadores (e outro software local) para falar com o token em si. Atualmente, as chaves FIDO U2F usam o protocolo CTAPv1 ("Client To Authenticator Protocol"), mas os novos dispositivos usarão o CTAPv2. Quando Yubico fala sobre "FIDO2", eles querem dizer esse protocolo.
Embora as atualizações estejam relacionadas umas às outras (o CTAPv2 adiciona novos recursos que o WebAuthn usará), as camadas ainda são, na maior parte, independentes e os protocolos, principalmente compatíveis com versões anteriores. Isso é:
-
Em comparação com o CTAPv1, a atualização principal no CTAPv2 é que os dispositivos terão mais armazenamento para torná-los utilizáveis como fator de autenticação main (e possivelmente outros recursos).
No entanto, as partes existentes do U2F parecem permanecer as mesmas que no CTAPv1 (mais ou menos, o token precisa apenas de assinaturas digitais).
-
Em comparação com a API FIDO U2F, a mudança mais importante no WebAuthn está em como ele gera identificadores ("AppID") para a "terceira parte confiável", ou seja, o website.
No entanto, os tokens não se importam com a estrutura interna do identificador (ele só precisa coincidir), e o WebAuthn ainda tem provisões para permitir o uso dos registros existentes do FIDO U2F. (Novos registros feitos via WebAuthn não funcionarão com o FIDO U2F.)
Portanto, se tudo que você precisa é o segundo fator (U2F), parece que todos os modelos de token existentes ainda funcionarão com o WebAuthn.