WebAuthn, um novo padrão de login sem senha

image_pdfimage_print

O WebAuthn foi desenvolvido em coordenação pela FIDO Alliance como parte de seu projeto FIDO2, juntamente com as especificações do “Client to Authenticator Protocol” (CTAP) da FIDO.

Essas especificações permitem que um autenticador externo, como um smartphone, insira credenciais de autenticação fortes via USB, Bluetooth ou tecnologia Near Field Communication (NFC) no dispositivo através do qual o usuário acessa a Internet.

A API WebAuthn estende os métodos JavaScript de Gerenciamento de Credenciais navigator.credentials.create() e navigator.credentials.get() para aceitar um parâmetro publicKey. O método create() é usado para registrar autenticadores de chaves públicas como parte da associação com contas de usuários (possivelmente no momento da criação inicial da conta, mas mais provavelmente ao adicionar um novo dispositivo de segurança a uma conta existente), e o método get() é usado para autenticação (como ao fazer login).

Para verificar se um navegador suporta WebAuthn, os scripts devem verificar se a interface window.PublicKeyCredential está definida. Além do PublicKeyCredential, o padrão também define as interfaces AuthenticatorResponse, AuthenticatorAttestationResponse e AuthenticatorAssertionResponse, além de uma variedade de dicionários e outros tipos de dados.

A API não permite acesso direto ou manipulação de chaves privadas, além de solicitar sua criação inicial.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!