Partilhar via


APIs WebAuthn para autenticação sem palavra-passe no Windows

As palavras-passe podem deixar os seus clientes vulneráveis a violações de dados e ataques de segurança por parte de utilizadores maliciosos.

Microsoft há muito que é um defensor da autenticação sem palavra-passe e introduziu as APIs da plataforma Win32 WebAuthn W3C/Fast IDentity Online 2 (FIDO2) em Windows 10 (versão 1903).

A partir de Windows 11, versão 22H2, as APIs WebAuthn suportam algoritmos ECC.

O que significa?

Ao utilizar as APIs WebAuthn, os parceiros de programador e a comunidade de programadores podem utilizar chaves de segurança Windows Hello ou FIDO2 para implementar a autenticação multifator sem palavra-passe para as respetivas aplicações em dispositivos Windows.

Os utilizadores destas aplicações ou sites podem utilizar qualquer browser que suporte APIs WebAuthn para autenticação sem palavra-passe. Os utilizadores terão uma experiência familiar e consistente no Windows, independentemente do browser que utilizarem.

Os programadores devem utilizar as APIs WebAuthn para suportar chaves de autenticação FIDO2 de forma consistente para os utilizadores. Além disso, os programadores podem utilizar todos os transportes disponíveis de acordo com as especificações FIDO2 (USB, NFC e BLE), evitando a sobrecarga de interação e gestão.

Nota

Quando estas APIs estão a ser utilizadas, Windows 10 browsers ou aplicações não têm acesso direto aos transportes FIDO2 para mensagens relacionadas com FIDO.

O panorama geral

O Protocolo De Cliente para Authenticator 2 (CTAP2) e o WebAuthn definem uma camada de abstração que cria um ecossistema para credenciais fortemente autenticadas. Neste ecossistema, qualquer cliente interoperável (como uma aplicação nativa ou um browser) que seja executado num determinado dispositivo cliente utiliza um método padronizado para interagir com qualquer autenticador interoperável. Os autenticadores interoperáveis incluem autenticadores incorporados no dispositivo cliente (autenticadores de plataforma) e autenticadores que se ligam ao dispositivo cliente através de ligações USB, BLE ou NFC (autenticadores roaming).

O processo de autenticação é iniciado quando o utilizador faz um gesto de utilizador específico que indica consentimento para a operação. A pedido do cliente, o autenticador cria chaves criptográficas fortes e armazena-as localmente.

Após a criação destas chaves específicas do cliente, os clientes podem pedir atestados para registo e autenticação. O tipo de assinatura que a chave privada utiliza reflete o gesto de utilizador que foi efetuado.

O diagrama seguinte mostra como o CTAP e o WebAuthn interagem. As setas pontilhadas azuis claros representam interações que dependem da implementação específica das APIs da plataforma.

O diagrama mostra como a API WebAuthn interage com as entidades confiadoras e a API CTAPI2.

Relações dos componentes que participam na autenticação sem palavra-passe

Uma dança Combinada WebAuthn/CTAP2 inclui o seguinte elenco de personagens:

  • Dispositivo cliente. O dispositivo cliente é o hardware que aloja uma determinada autenticação forte. Portáteis e telemóveis são exemplos de dispositivos cliente.

  • Entidades confiadoras e clientes. As entidades confiadoras são aplicações Web ou nativas que consomem credenciais fortes. As entidades confiadoras são executadas em dispositivos cliente.

    • Como entidade confiadora, uma aplicação nativa também pode atuar como um cliente WebAuthn para fazer chamadas WebAuthn diretas.

    • Enquanto entidade confiadora, uma aplicação Web não pode interagir diretamente com a API WebAuthn. A entidade confiadora tem de mediar o negócio através do browser.

    Nota

    O diagrama anterior não ilustra a autenticação de Sign-On Único (SSO). Tenha cuidado para não confundir as entidades confiadoras FIDO com entidades confiadoras federadas.

  • API WebAuthn. A API WebAuthn permite que os clientes façam pedidos aos autenticadores. O cliente pode pedir ao autenticador para criar uma chave, fornecer uma asserção sobre uma chave, capacidades de relatório, gerir um PIN, etc.

  • Plataforma/anfitrião CTAP2. A plataforma (também denominada anfitrião na especificação CTAP2) é a parte do dispositivo cliente que negoceia com os autenticadores. A plataforma é responsável por comunicar de forma segura a origem do pedido e chamar as APIs CTAP2 Concise Binary Object Representation (CBOR). Se a plataforma não tiver conhecimento ctap2, os próprios clientes assumem mais encargos. Neste caso, os componentes e interações apresentados no diagrama anterior podem ser diferentes.

  • Autenticador de plataforma. Normalmente, um autenticador de plataforma reside num dispositivo cliente. Exemplos de autenticadores de plataforma incluem tecnologia de reconhecimento de impressões digitais que utiliza um leitor de impressões digitais de portátil incorporado e tecnologia de reconhecimento facial que utiliza uma câmara de smartphone incorporada. Os protocolos de transporte entre plataformas, como USB, NFC ou BLE, não conseguem aceder aos autenticadores da plataforma.

  • Autenticador de roaming. Um autenticador de roaming pode ligar a vários dispositivos cliente. Os dispositivos cliente têm de utilizar um protocolo de transporte suportado para negociar interações. Exemplos de autenticadores de roaming incluem chaves de segurança USB, aplicações de smartphone compatíveis com BLE e cartões de proximidade compatíveis com NFC. Os autenticadores de roaming podem suportar CTAP1, CTAP2 ou ambos os protocolos.

Muitas entidades confiadoras e clientes podem interagir com muitos autenticadores num único dispositivo cliente. Um utilizador pode instalar vários browsers que suportem o WebAuthn e, simultaneamente, ter acesso a um leitor de impressões digitais incorporado, a uma chave de segurança ligada à corrente e a uma aplicação móvel com BLE ativada.

Interoperabilidade

Antes de WebAuthn e CTAP2, existiam U2F e CTAP1. U2F é a especificação universal de segundo fator da FIDO Alliance. Existem muitos autenticadores que falam CTAP1 e gerem credenciais U2F. O WebAuthn foi concebido para ser interoperável com Os Autenticadores CTAP1. Uma entidade confiadora que utiliza o WebAuthn ainda pode utilizar credenciais U2F se a entidade confiadora não precisar da funcionalidade apenas FIDO2.

Os autenticadores FIDO2 já foram implementados e as entidades confiadoras WebAuthn podem exigir as seguintes funcionalidades opcionais:

As seguintes opções podem ser úteis no futuro, mas ainda não foram observadas na natureza:

  • Aprovação transacional
  • Índice de verificação do utilizador (os servidores podem determinar se os dados biométricos armazenados localmente mudaram ao longo do tempo)
  • Método de verificação do utilizador (o autenticador devolve o método exato)
  • Limites de desempenho biométrico (a entidade confiadora pode especificar uma aceitação falsa aceitável e taxas de rejeição falsas)

implementação Microsoft

A implementação do Microsoft FIDO2 tem sido anos de criação. O software e os serviços são implementados de forma independente como entidades compatíveis com normas. A partir da versão de Windows 10, versão 1809 (outubro de 2018), todos os componentes Microsoft utilizam a versão mais recente do WebAuthn Candidate. É uma versão estável que não se espera que mude normativamente antes de a especificação ser finalmente ratificada. Uma vez que Microsoft está entre as primeiras do mundo a implementar FIDO2, algumas combinações de componentes populares não Microsoft ainda não serão interoperáveis.

Eis um esquema aproximado do local para onde vão os bits Microsoft:

O diagrama mostra como a API WebAuthn interage com os Microsoft entidades confiadoras e a API CTAPI2.

implementação do Microsoft de APIs WebAuthn e CATP2

  • Entidade confiadora WebAuthn: Microsoft Conta. Se não estiver familiarizado com Microsoft Conta, este é o serviço de início de sessão para Xbox, Outlook e muitos outros sites. A experiência de início de sessão utiliza JavaScript do lado do cliente para acionar Microsoft Edge para comunicar com as APIs WebAuthn. Microsoft Conta requer que os autenticadores tenham as seguintes características:

    • As chaves são armazenadas localmente no autenticador e não num servidor remoto
    • Os cenários offline funcionam (ativados através do HMAC)
    • Os utilizadores podem colocar chaves para várias contas de utilizador no mesmo autenticador
    • Se for necessário, os autenticadores podem utilizar um PIN de cliente para desbloquear um TPM

    Importante

    Uma vez que Microsoft Conta requer funcionalidades e extensões exclusivas para autenticadores FIDO2 CTAP2, não aceita credenciais CTAP1 (U2F).

  • Cliente WebAuthn: Microsoft Edge. Microsoft Edge pode processar a interface de utilizador para as funcionalidades WebAuthn e CTAP2 que este artigo descreve. Também suporta a extensão AppID. Microsoft Edge pode interagir com os autenticadores CTAP1 e CTAP2. Este âmbito de interação significa que pode criar e utilizar credenciais U2F e FIDO2. No entanto, o Microsoft Edge não fala o protocolo U2F. Por conseguinte, as entidades confiadoras têm de utilizar apenas a especificação WebAuthn. Microsoft Edge no Android não suporta WebAuthn.

    Nota

    Para obter informações autoritativas sobre o suporte do Microsoft Edge para WebAuthn e CTAP, veja Documentação do programador do Legacy Microsoft Edge.

  • Plataforma: Windows 10, Windows 11. Windows 10 e Windows 11 alojam as APIs WebAuthn da Plataforma Win32.

  • Authenticators de Roaming. Poderá reparar que não existe nenhum autenticador de roaming Microsoft. A razão é porque já existe um ecossistema forte de produtos especializados em autenticação forte e todos os clientes (sejam empresas ou indivíduos) têm requisitos diferentes de segurança, facilidade de utilização, distribuição e recuperação de contas. Para obter mais informações sobre a lista cada vez maior de autenticadores certificados FIDO2, veja Produtos Certificados FIDO. A lista inclui autenticadores incorporados, autenticadores roaming e até fabricantes de chips que tenham designs certificados.

Referências para programadores

As APIs WebAuthn estão documentadas no repositório do GitHub Microsoft/webauthn. Para compreender como funcionam os autenticadores FIDO2, reveja as duas especificações seguintes: