Visão geral
A autenticação em dois fatores (também conhecida como 2FA) é um mecanismo que combina dois métodos diferentes de autenticação para autenticar usuários. Em março de 2011, o Google anunciou o uso da autenticação em dois fatores online, seguida pela MSN e Yahoo.
Além de verificar o nome de usuário e a senha, a autenticação em dois fatores também requer a combinação de outro dispositivo físico, como um token RSA ou um telefone celular. Produtos certificados por dois fatores podem ser amplamente divididos em duas categorias:
Dispositivos de hardware que podem gerar tokens App para smartphone
OTP
A senha usada na verificação em duas etapas é uma senha de uso único (OTP), também conhecida como senha dinâmica. É uma tecnologia de autenticação forte que utiliza criptografia para compartilhar chaves entre clientes e servidores, sendo um meio técnico muito conveniente para aprimorar a autenticação estática atual por senha, além de ser uma importante tecnologia de autenticação de verificação em duas etapas.
OTP é a abreviação de One-Time Password, que significa senha de uso único. Ele é dividido nos seguintes dois tipos:
HOTP (Algoritmo de Senha Única Baseado em HMAC)
HOTP é uma senha de uso único gerada com base no algoritmo HMAC, também conhecida como senha dinâmica para sincronização de eventos, que é uma especificação de algoritmo publicada pelo ITEF, e o pseudocódigo é o seguinte:
O cliente e o servidor negociam uma chave K antecipadamente para a geração de uma senha de uso único. O cliente e o servidor têm cada um um contador de eventos C e sincronizam os valores de contagem antecipadamente. Trunque é um algoritmo que converte uma string de 20 bytes gerada pelo HMAC-SHA-1 em vários dígitos decimais.
TOTP (Algoritmo de Senha Única Baseado em Tempo)
TOTP é uma versão aprimorada do HOTP que usa o tempo para substituir o contador de eventos C do HOTP, também conhecido como cifra dinâmica para sincronização temporal. Pseudocódigo:
T0 é o tempo inicial do teste, que por padrão é 0 X é o passo de tempo, que por padrão é 30 segundos A documentação oficial apresenta um castanho, assumindo o tempo unix atual = 59, T0 = 0, X = 30, então T=1 Assumindo o tempo unix atual=60, T0=0, X=30, então T=2 Ou seja, o valor de T é arredondado para baixo e o decimal é descartado
A partir da figura acima, podemos ver que existem dois elementos principais do algoritmo de entrada: um é a chave compartilhada (também conhecida como semente), e o outro é a contagem (ou fator de tempo), que é calculada por um algoritmo específico. Se ambos os elementos forem consistentes, o lado do servidor e o lado do cliente calcularão o mesmo resultado, permitindo a funcionalidade de autenticação.
|