O fato é que a maioria dos ataques ocorre por falhas em credenciais, mostrando assim a fraqueza do uso de senhas - não sendo mais suficiente. Diante desse cenário, o MFA (Multifactor Authentication) ganhou muita força e tem sido amplamente utilizado. Entretanto, a fim de prover um mecanismo de autenticação com chaves mais fortes, surgiu o padrão FIDO2, desenvolvido pela FIDO Alliance.
A FIDO Alliance é uma associação aberta que possui gigantes da tecnologia com diversos grupos de trabalho, que tem dentre os objetivos: desenvolver padrões de autenticação baseados em criptografia assimétrica utilizando chaves pública e privadas para autenticação mais segura do que senhas e SMS OTPs, além de prover autenticação de forma mais simples para os usuários e mais fáceis para os provedores de serviços implantarem e gerenciarem.
As autenticações baseadas em FIDO, mudam o foco no fator de autenticação baseado no que o usuário sabe para o que o usuário tem, ou seja, para a posse de algo.
Fonte: fidoalliance.org
Como funciona o FIDO?
Os protocolos FIDO usam técnicas padrões de criptografia de chave assimétrica (chave pública e privada) para fornecer autenticação mais forte. Quando o usuário se registra em algum serviço, o dispositivo cliente (do usuário) cria um novo par de chaves, no qual a chave privada fica no dispositivo e a chave pública fica armazenada no serviço ao qual o usuário se registrou.
De modo geral existem 3 protocolos FIDO: U2F, UAF, FIDO2
FIDO 1.0 Universal Second Factor (FIDO U2F)
FIDO 1.0 Universal Authentication Framework (FIDO UAF)
FIDO2
O FIDO 1.0 é composto pelo FIDO UAF e FIDO U2F.
FIDO UAF
O FIDO Universal Authentication Framework (UAF) tem por objetivo a implementação de autenticação segura sem senha, possibilitando que os usuários registrem um dispositivo em um serviço on-line e permitindo a autenticação por meio de recursos biométricos, como uma impressão digital, varredura facial ou também um PIN (código numérico).
FIDO U2F
Após o FIDO UAF, foi adicionado o FIDO U2F, desenvolvido pelo Google e Yubico como um substituto mais seguro que a autenticação tradicional de dois fatores baseada em OTP (2FA). Este permite um segundo fator de autenticação baseado em uma chave física real para verificação, por exemplo, um YubiKey.
O U2F inclui seu próprio protocolo do lado do cliente, Client to Authenticator Protocol (CTAP1), permitindo a autenticação de um token via USB, NFC ou Bluetooth.
Na sequência, o FIDO 1.0 implementou criptografia de chave assimétrica (par de chave pública e privada) de maneira que eliminou as vulnerabilidades associadas ao uso de OTPs enviadas por rede insegura, substituindo um PIN simples por uso de chave pública, inviabilizando assim uma interceptação.
Nesse contexto, passou-se a ter dois protocolos que faziam coisas diferentes mas se complementam: FIDO UAF (apoiada fortemente pela Paypal) e FIDO U2F (apoiada fortemente pelo Google). Nesse período a Apple iniciou a implementação própria de autenticação biométrica, usando o Touch ID e Face ID. Com isso, foi percebido um risco de tornar as formas de autenticação sem senha fragmentada com experiências distintas para os usuários.
No FIDO UAF há o suporte para autenticação sem senha de forma biométrica dentro dos dispositivos e no FIDO U2F há a autenticação por chave física com suporte nativo no principal navegador web: Google Chrome.
FIDO2
Para realizar a autenticação através de um dispositivo FIDO, podemos dividir em duas etapas:
Etapa 1 - desbloqueio do dispositivo: O dispositivo em posse do usuário é desbloqueado localmente pelo próprio usuário, através de um método simples e fácil, como: passar um dedo, inserir um PIN, leitura da impressão digital, falar em um microfone, inserir um dispositivo de segundo fator ou pressionar um botão.
Etapa 2 - autenticação no serviço: o dispositivo em posse do usuário utiliza a chave privada para assinar um desafio comprovando sua identidade.
Vale lembrar, que os protocolos FIDO tem uma forte preocupação com a privacidade do usuário e por isso, não fornece informações que podem ser usadas por diferentes serviços para colaborar e rastrear um usuário. Por isso, informações biométricas, se usadas, nunca saem do dispositivo do usuário.
A principal diferença com o FIDO2 é que o dispositivo do usuário, por exemplo, um smartphone, pode ser usado como o seu autenticador. O FIDO2 trouxe uma extensão ao U2F, através da versão expandida do protocolo CTAP1 para CTAP2.
Enquanto o U2F tem o objetivo de atuar como segundo fator de autenticação, o FIDO2 traz o objetivo de uma autenticação forte sem senha, através de uma API WEB chamada Web Authentication (WebAuthn). Essa API permite que os aplicativos web usem criptografia assimétrica por meio de chave pública. Enquanto o FIDO 1.0 ainda exigia nomes de usuário e senhas, o FIDO2 foi projetado de forma tal que acabasse com as credenciais tradicionais.
Enquanto CTAP1 permite autenticação com chaves de segurança e wearables FIDO U2F, o CTAP2 permite que smartphones e chaves físicas FIDO façam interface com os navegadores e sistemas operacionais FIDO2 por USB, NFC ou Bluetooth.
Se o usuário quiser fazer login em um website ou serviço online que suporte o FIDO2, a Web Authentication API (WebAuthn) instalada no provedor do serviço inicia a interação entre o serviço e dispositivo do usuário (por exemplo, um smartphone ou chave física). Este então será desbloqueado por impressão digital, verificação facial etc.
O WebAuthn com CTAP2 trouxe duas capacidades importantes: primeiro, possui compatibilidade com o U2F e UAF, permitindo que usuários que usam essas tecnologias não sejam impactados. Em segundo lugar, o WebAuthn foi adotado pelo World Wide Web Consortium (W3C), tornando assim um padrão aberto, não apenas sendo apoiado por um grupo de grandes empresas. O suporte ao WebAuthn já está expandido para além do Google Chrome, sendo suportado no Safari, Firefox e Edge (sendo uma constante evolução para os demais navegadores e plataformas). Para consultar de forma atualizada e constante quais plataformas e navegadores suportam, consulte: https://webauthn.me/browser-support
Nesse curto vídeo abaixo, podemos ver de maneira prática e objetiva o FIDO2 em funcionamento:
Com o suporte universal das plataformas e navegadores ao WebAuthn, o mundo de autenticação se tornará cada vez mais padronizado e forte, além de tornar mais fácil para o usuário. Com o advento do FIDO2, surgiu então o Passkey.
Passkey
O Passkey é a abreviação de "multi-device FIDO credentials" que nada mais é que a possibilidade de utilizar múltiplos dispositivos com FIDO. No qual as chaves são sincronizadas automaticamente entre os dispositivos do usuário por meio de um serviço em nuvem. O serviço de nuvem também armazena uma cópia criptografada da credencial FIDO. As passkey também podem ser disponíveis apenas a partir de um único dispositivo a partir do qual não podem ser copiadas, chamada de “single-device passkeys”. Por exemplo, uma chave de segurança física pode conter várias senhas de dispositivos únicos.
Sendo assim, no Passkey pode-se escolher entre o uso de Single device credentials (SDC) ou Multi device passkeys (MDC).
Single Device Credentials (SDC): são passkeys vinculadas a um único dispositivo. Isso significa que uma credencial só pode ser validado utilizando o dispositivo em que foi criada.
Multi Device Passkeys (MDC): são credenciais que podem ser movidas e sincronizadas entre dispositivos. Isso significa que, se um usuário tiver vários dispositivos, ele poderá usar o autenticador integrado para validar uma credencial, independentemente de estar usando o dispositivo usado para criar a credencial. Logo, se o usuário perder o dispositivo, basta conectar em um novo e voltar a usar, visto que as credenciais podem ser sincronizadas entre dispositivos através de um backup criptografado feito na nuvem do provedor do serviço ou através de transferência por aproximação, usando por exemplo o Bluetooth ou alguma conexão local.
Um recurso que fortalece ainda mais o sucesso do Passkey é o Discoverable credentials, no qual o usuário não precisa nem mesmo lembrar do nome de usuário. O usuário pode acessar um website e clicar no botão de entrada, no qual será solicitado a autenticação podendo ser, por exemplo, uma biometria e então ele será identificado e autenticado.
No vídeo abaixo, podemos ver passkey em funcionamento:
Conclusão
O Passwordless é amplamente apoiado pelo padrão FIDO, que tem o Passkey como um facilitador à adesão desse conceito, que está ganhando força pois, embora ele também seja a implementação FIDO2, ele permite uma usabilidade mais fácil e prática, tornando a adoção do passwordless mais forte e rápida e garantido a segurança com autenticação forte e sem atrito com o usuário.
Links de Referências
Artigo maravilhosamente esclarecedor! Linguagem acessível e didática. Valeu, Davi!