FIDO2

FIDO2 é uma framework que tem o objetivo de aumentar a segurança de aplicações Web através de dispositivos que permitem o usuário provar quem ele é sem a necessidade de um usuário e/ou senha.

tl;dr - Experiência do usuário FIDO2 FEITIAN

Esse post só foi possivel graças a FEITIAN que me disponibilizou um device FIDO2 para testes.

E caso você queira saber como é a experiência do usuário utilizando um FIDO2, nesse caso da FEITIAN, veja o video abaixo:

Estou utilizando esse modelo BioPass FIDO Security Key

Autenticações multi-fator (MFA)

Para explicar por que ele é seguro, é necessário entender os tipos de MFA. Existem três tipos conhecidos de MFA:

  • Nivel 1 – Algo que você conhece – Inclui senhas, PINs ou palavras. Qualquer coisa que você possa lembrar e depois digitar, dizer, fazer, executar ou lembrar quando necessário.
  • Nivel 2 – Algo que você tem – Inclui objetos físicos, como chaves, smartphones, cartões inteligentes, unidades USB e dispositivos de token.
  • Nivel 3 – Algo que você é – Inclui qualquer parte do corpo humano que pode ser oferecida para verificação, como impressões digitais, escaneamento da palma da mão, reconhecimento facial, escaneamento de retina, escaneamento de íris e verificação de voz.

A segurança de uma autenticação aumenta de acordo com os niveis.

As chaves de segurança FIDO2 trafegam entre os niveis 2 e 3, pois além de necessitar do dispositivo fisico (Tipo 2), ainda é necessário provar algo que você é (Tipo 3). Seja através da camera do celular ou da biometria.

FIDO2

O principal objetivo do FIDO2 é eliminar o uso de senhas na Internet. Ele foi desenvolvido para introduzir padrões abertos para autenticação. O processo de autenticação FIDO2 elimina as ameaças tradicionais. Substituindo a senha pelo dispositivo. E como consequencia protege contra ataques comuns em senha. Como phishing, man-in-the-middle e csrf.

O FIDO2 é um padrão de autenticação aberto. Quem cuida desse padrão e define como ele deve funcionar é a FIDO Alliance. Essa aliança é um conjunto de duas especificações. W3C Web Authentication (API WebAuthn) e no Client to Authentication Protocol (CTAP).

O CTAP é um protocolo usado para comunicação entre um cliente (navegador) ou uma plataforma (sistema operacional) com um autenticador externo, como o FEITIAN FIDO2.

Security Key FIDO2

Um dispositivo FIDO2 é um dispositivo com sensor integrado. Pode ser hardware com token e suporte para FIDO ou um dispositivo com impressão digital ou reconhecimento facial, como Apple TouchID e Windows Hello.
Um servidor FIDO é capaz de validar a autenticidade de um dispositivo.

Como funciona o processo

Toda vez que um usuário se registra em um novo serviço (Google, GitHub, etc), o security key FIDO gera um novo par de chaves para esse serviço. As chaves são necessariamente exclusivas desse serviço e não são compartilhadas entre os serviços.

Ao efetuar o registro, esse par de chaves é gerado. A chave pública é enviada ao serviço para ser armazenada e usada no futuro ao autenticar esse usuário.

O processo de solicitar um novo par de chaves é conhecido como Attestation. As opções do Attestation chega até o security key a partir da integração entre o site e WebAuthn.

O attestation realiza duas coisas:

  1. Se um invasor interceptar uma mensagem e substituir a mensagem, ele não poderá trocar a nova chave pública pela sua própria, pois a assinatura do attestation não corresponderia.

  2. Permite que o serviço confie no autenticador que está sendo usado.

O site em posse da chave pública consegue validar a assinatura do Security Key. Um processo muito simples caso você já conheça o processo de Criptografia Assimétrica.

O security key é o único dispositivo no mundo capaz de produzir uma assinatura que o site consiga validar através da chave pública dele, tornando o processo extremamente seguro.

E por outro lado se esse site ou aplicativo não conter senhas dentro de seu banco de dados, o valor desse banco é dimunuido, uma vez que um ataque bem sucedido não irá vazar as credenciais dos usuários evitando ataque e fraudes em outros serviços.

Video oficial do WebAuthn

Veja esse video do youtube, ele pode ajudar a clarear um pouco sobre esse processo.

Conclusão

Apesar da sopa de letrinhas e um bando de termos. A prática é que o FIDO2 é muito seguro. Geralmente segurança vem acompanhado de cerimônias: Mais passos, pior para a usabilidade. O usuário tenta burlar.

Mas o FIDO2 está longe de sofrer desse problema, pelo contrário, além de ser mais simples é também mais seguro.

A parte ruim é o preço, que acaba sendo um pouco salgado para as terras tupiniquins.

Esse é um device que sem dúvida é um acessório que faz parte da minha vida, tanto quanto meu celular.

O próximo post será um conteúdo técnico, onde será feito a integração entre o ASP.NET Identity e FIDO2.