FIDO explicado: Como esta iniciativa da indústria visa tornar as senhas obsoletas

Views: 693
0 0
Read Time:11 Minute, 10 Second

Definição da FIDO: O que é a Aliança FIDO e o que significa FIDO?

A Aliança FIDO (identidade rápida online) é uma associação da indústria que visa reduzir a dependência de senhas para segurança, complementando ou substituindo-as por autenticação forte baseada em criptografia de chave pública. Para atingir esse objetivo, a FIDO Alliance desenvolveu uma série de especificações técnicas que sites e outros provedores de serviços podem usar para se afastar da segurança baseada em senha. Em particular, as especificações FIDO permitem que os provedores de serviço aproveitem as vantagens de medidas de segurança biométricas e outras baseadas em hardware, seja de dispositivos de segurança de hardware especializados ou recursos biométricos integrados à maioria dos novos smartphones e alguns PCs.

A FIDO Alliance surgiu em 2013 quando os profissionais de segurança que trabalhavam no PayPal, Lenovo e outras empresas começaram a se cansar de várias brechas de segurança baseadas em senhas . O grupo tem se empenhado em atingir seu objetivo por um tempo – ” FIDO Alliance Says, Forget Passwords !”, CSO declarou não muito depois que o grupo começou – mas com leitores biométricos se tornando cada vez mais prevalentes e um novo conjunto de especificações que são fácil de integrar em páginas da Web padrão por meio de APIs JavaScript, nosso futuro sem senha pode finalmente estar à vista. Os membros da FIDO Alliance incluem alguns dos maiores nomes em tecnologia e mídia , portanto, esta iniciativa tem força por trás.

Especificações FIDO

Antes de entrarmos nas especificações FIDO individuais, precisamos discutir o princípio em que todas se baseiam: criptografia de chave pública. Nessa forma de criptografia, cada parte que se comunica usa duas chaves – números muito grandes – para criptografar mensagens por meio de um algoritmo de criptografia. Cada parte compartilha uma chave pública que é usada para codificar uma mensagem, que só pode ser decodificada por uma chave privada, que é mantida em segredo. As duas chaves estão relacionadas por alguma operação matemática que seria difícil ou impossível de reverter – por exemplo, a chave privada pode ser dois números primos muito longos e a chave pública seria o número que você obtém multiplicando esses dois primos juntos. (Para saber mais sobre como isso funciona, consulte o CSO ‘sexplicador sobre criptografia.)

A criptografia de chave pública já é a base para a comunicação mais segura na Internet. O padrão SSL / TLS é baseado nele e foi integrado na maioria dos navegadores da web por décadas, e o conjunto maior de tecnologias e especificações conhecidas como infraestrutura de chave pública , ou PKI, ajuda não apenas a criptografar dados, mas também a garantir que as partes comunicantes online são quem eles dizem que são. Em quase todos os casos hoje, quando você insere uma senha em um navegador da web, essa senha é transmitida pela rede de forma criptografada, graças à PKI.

Então, por que a FIDO Alliance deseja se livrar das senhas? Bem, mesmo com criptografia forte, qualquer sistema que execute autenticação por meio da troca de senhas entre dois computadores diferentes na Internet tem vulnerabilidades. A criptografia não é perfeita e nem sempre é implementada perfeitamente, então às vezes ainda é possível interceptar senhas em trânsito. E um sistema de senha requer que um provedor de serviços mantenha uma lista de senhas de usuário em seus servidores; essa lista deve ser criptografada, mas isso nem sempre acontece, e isso é um alvo tentador para os hackers.

Todas as várias especificações FIDO tratam dessas fraquezas fundamentais, mudando a autenticação inteiramente para os dispositivos que são locais para o usuário. Esses dispositivos locais então informam ao provedor de serviços, por meio de comunicações protegidas por criptografia de chave pública, que o usuário foi autenticado, sem realmente transmitir nenhuma informação sensível sobre o usuário. As diferentes especificações FIDO levam caminhos um tanto diferentes para esse destino, no entanto. Começaremos examinando as duas primeiras especificações que a FIDO Alliance lançou, UAF e U2F, antes de nos aprofundarmos na especificação FIDO2 mais recente que atualmente busca uma adoção mais ampla.

FIDO UAF

padrão FIDO UAF – a sigla significa Universal Authentication Framework– é focado na autenticação de usuários de dispositivos digitais como smartphones ou tablets. Para acessar um serviço usando o padrão UAF para segurança, o usuário registraria sua conta por meio de seu dispositivo, que então solicitaria que o usuário se autenticasse usando algum protocolo de segurança que o dispositivo suporta nativamente. Depois que essa autenticação ocorre, as chaves criptográficas – mas nenhum outro dado de autenticação, como uma senha ou dados biométricos – são trocados entre o dispositivo e o provedor de serviços. O usuário pode posteriormente entrar com a mesma técnica de autenticação para acessar sua conta.

Um recurso importante do UAF é que, embora os provedores de serviços nunca vejam os dados de autenticação específicos usados ​​para login, eles sabem que tipo de método de autenticação foi usado e podem escolher quais tipos aceitarão. Por exemplo, enquanto a especificação UAF permite que os usuários finais se autentiquem usando o código PIN de seus telefones celulares, um provedor de serviços pode decidir que não acha que esse é um método de autenticação forte o suficiente e exigir uma impressão digital ou digitalização facial.  

FIDO U2F

As iniciais no padrão FIDO U2F significam Segundo Fator Universal e, como seria de esperar, ele se concentra em fornecer autenticação de segundo fator, também conhecida como 2fa. Para saber mais sobre 2fa, você pode ler o explicador do CSO sobre o assunto , mas a versão resumida é que complementa, em vez de substituir, a segurança tradicional baseada em senha, desafiando os usuários a fazer uso de uma segunda técnica (ou fator ) para autenticar depois de fornecerem a senha.

Especificamente, o U2F define como usar um dispositivo de hardware para tornar os logins mais seguros; a chave criptográfica privada necessária para a comunicação criptografada é armazenada nesse dispositivo. Embora o padrão ofereça suporte a vários dispositivos possíveis para essa finalidade, a implementação mais comum usa um chaveiro de segurança de hardware dedicado. O padrão foi inicialmente criado pelo Google, que foi implantado para combater o phishing internamente antes de oferecê-lo a clientes externos, mas foi então concedido à FIDO Alliance para administrar. O chaveiro de segurança pode ser conectado ao dispositivo do usuário via USB ou NFC, portanto, pode ser usado com PCs ou smartphones.

Comunicando-se por meio do navegador, o fob troca chaves criptográficas com um provedor de serviços para estabelecer 2fa. Em tentativas de autenticação subsequentes, o usuário deve ter seu fob presente, e o fob usa sua chave para se certificar de que o site ao qual o usuário está se conectando é realmente o que afirma ser. Isso ajuda a evitar man-in-the-middle e phishing ataques.

Como uma implementação 2fa, o U2F não elimina a necessidade de senhas. No entanto, a FIDO Alliance acredita que a proteção extra que o U2F fornece torna mais seguro usar senhas mais simples, como PINs de quatro dígitos, em vez das senhas longas e complexas que todos nós devemos usar, mas muitos acham difícil lembrar e gerenciar.

FIDO vs. FIDO2: WebAuthn e CTAP

Embora U2F e UAF tenham obtido algum sucesso, eles também têm limitações, como as descrições acima provavelmente deixam claro. O UAF usa recursos de segurança específicos para dispositivos móveis e, portanto, não é uma ajuda em PCs. O U2F pode ser usado com PCs e dispositivos móveis, mas requer uma chave de autenticação de hardware separada – e embora os profissionais de segurança sejam grandes fãs de chaveiros de segurança desde os primeiros dias do SecureID da RSA, as pessoas comuns têm resistido consistentemente às ordens que ainda carregam outro gadget com eles, não importa o quão pequeno seja. Embora a especificação U2F permita tecnicamente implementações nas quais um telefone móvel é usado como um dispositivo de autenticação em vez de um chaveiro dedicado, a especificação não descreve maneiras de usar a maioria dos recursos de um telefone móvel que podem tornar essa implementação útil.

Para lidar com essas deficiências, a FIDO Alliance lançou um segundo conjunto de padrões baseados no primeiro, conhecido coletivamente como FIDO2 . Os dois padrões da FIDO2 se complementam para tornar a autenticação sem senha e de segundo fator mais fácil e segura de implementar.

A primeira das especificações FIDO2 é WebAuthn , que foi codificada pelo W3C como uma recomendação em 2019 . Como o UAF, o WebAuthn usa criptografia de chave pública para permitir que um dispositivo de usuário final autentique um usuário localmente ao se comunicar com um provedor de serviços. No entanto, ao contrário do UAF, o WebAuthn não está restrito a dispositivos móveis. O WebAuthn define as comunicações entre o usuário final e o provedor de serviços por meio de uma API JavaScript aberta, de modo que qualquer dispositivo ou PC que execute um navegador compatível com o padrão possa participar (e, como veremos mais tarde, quase todos os navegadores agora fazem).

Os PCs estão cada vez mais integrando recursos de autenticação de hardware, como leitores de impressão digital ou scanners faciais que antes eram restritos a smartphones, e os sites habilitados para WebAuthn podem usar esses recursos para autenticar usuários. No entanto, esses recursos não são nem de longe universais ainda, e é aí que entra o CTAP, a segunda das especificações FIDO2. CTAP significa Client to Authenticator Protocols e permite que você se conecte a um provedor de serviços habilitado para WebAuthn com o seu PC enquanto usa um dispositivo separado como plataforma de autenticação.

Existem dois protocolos CTAP. CTAP1 é apenas uma atualização renomeada de U2F, o que significa que você pode usar chaveiros U2F com um provedor de serviços habilitado para WebAuthn que deseja implementar 2fa. CTAP2 expande o conceito, permitindo que dispositivos como smartphones ou wearables se conectem a um PC via Wi-Fi, Bluetooth ou USB e forneçam serviços de autenticação, tornando possíveis conexões sem senha. Em essência, a FIDO Alliance está apostando que, se você precisa se autenticar com segurança com um serviço online, você está usando um dispositivo que suporta um método de autenticação forte ou tem tal dispositivo em seu bolso ou em sua mesa.

Autenticação FIDO

Os detalhes do processo de autenticação FIDO podem ser bastante detalhados, tanto no nível de código quanto de criptografia, e está além do escopo deste artigo. Mas aqui está uma visão geral de nível superior de como o fluxo do processo de autenticação funciona ao acessar um provedor de serviços habilitado para WebAuthn. Isso lhe dará uma noção um pouco mais do que está acontecendo abaixo da superfície.

Primeiro, vamos considerar o registro. Digamos que você queira se inscrever em um site ou outro serviço que use o WebAuthn:

  1. Você envia uma mensagem pedindo para criar uma conta.
  2. O provedor de serviços solicita uma chave pública.
  3. Você se autentica usando algum método local suportado pela especificação WebAuthn e aceito pelo provedor de serviços. Isso pode acontecer no dispositivo que você está usando para se conectar ao provedor de serviços ou em outro dispositivo que se conecta via CTAP.
  4. Seu dispositivo local gera um par de chaves criptográficas – uma pública, uma privada – as associa aos seus dados de autenticação e envia a chave pública para o provedor de serviços.
  5. O provedor de serviços armazena a chave pública e a associa à sua nova conta.

Depois de criar essa conta, você usaria o mesmo método de autenticação para fazer login.

  1. Você envia uma solicitação de login ao provedor de serviços a partir de seu dispositivo local.
  2. O provedor de serviços solicita uma assinatura digital, um dado que estabelece sua identidade, que só pode ser criado por uma chave privada, mas pode ser lido pela chave pública correspondente.
  3. Você se autentica em seu dispositivo local.
  4. Seu dispositivo local correlaciona sua identidade autenticada e o serviço que você está tentando acessar para determinar o par de chaves apropriado a ser usado, cria uma assinatura com sua chave privada e a envia ao provedor de serviços.
  5. O provedor de serviços usa sua chave pública para ler a assinatura e confirmar sua identidade, fazendo o seu login.

Para obter mais detalhes, incluindo exemplos de código que demonstram como usar as APIs WebAuthn, verifique este guia WebAuthn abrangente .

Certificação FIDO

Você deve ter notado que falamos de maneira genérica sobre os dispositivos e softwares que implementam as especificações FIDO. Essas especificações são abertas e podem ser implementadas por qualquer fabricante de dispositivo ou desenvolvedor de software. Nem todos concordaram imediatamente, mas o suporte agora é bastante abrangente. O Android é certificado pela FIDO2 desde fevereiro de 2019 ; a maioria dos principais navegadores já estavam certificados naquele ponto, embora o Safari da Apple não tenha entrado na festa até o final de 2020 .

A FIDO Alliance possui recursos se você estiver interessado em obter seu próprio software ou serviço compatível com FIDO. Existem trilhas de conformidade separadas para interoperabilidade e autenticadores de hardware . Continue se estiver pronto para ajudar a ir além da senha.

FONTE: CSO ONLINE

POSTS RELACIONADOS