AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1845383
Accepted
Manngo
Manngo
Asked: 2024-06-10 16:54:46 +0800 CST2024-06-10 16:54:46 +0800 CST 2024-06-10 16:54:46 +0800 CST

Como funcionam os autenticadores?

  • 772

(Deixe-me saber se este não é o site certo…)

Na hora de escolher um aplicativo autenticador para GitHub e outros sites, acabei optando pelo Sophos, porque, por que não. Aparentemente, eu poderia ter escolhido o Google app ou outro.

Isso sugeriria que todos eles estão fazendo basicamente o mesmo trabalho e que o site não se importa particularmente com qual aplicativo eu uso. Certamente não contei ao site qual aplicativo estou usando, o que sugere que é bastante neutro.

Como é que isso funciona? Existe um ponto central de autenticação, ou todos seguem o mesmo algoritmo, ou existe uma lista de autenticadores aceitáveis?

security
  • 3 3 respostas
  • 923 Views

3 respostas

  • Voted
  1. Best Answer
    grawity_u1686
    2024-06-10T17:04:26+08:002024-06-10T17:04:26+08:00

    A maioria desses aplicativos segue o mesmo algoritmo, OATH TOTP (conforme definido no IETF RFC 6238).

    Funciona totalmente offline – o código QR que você escaneia contém uma chave secreta da qual derivam os códigos de 6 dígitos, em combinação com o carimbo de data/hora atual (arredondado para o meio minuto mais próximo). O mesmo código pode, portanto, ser importado para vários aplicativos e eles gerarão o mesmo código de forma totalmente independente, desde que os relógios correspondam.

    (Há exceções; por exemplo, RSA SecurID costumava ser comum no passado, OATH HOTP é uma possibilidade rara – baseada em contador em vez de baseada em tempo – e alguns aplicativos usam seus próprios algoritmos por razões históricas ou não, mas OATH TOTP é o único geralmente aceito na web.)


    O núcleo do algoritmo é apenas HMAC_SHA1(secret_key, timestamp). A maioria dos sites tem a opção de mostrar a chave secreta em formato de texto em vez de um código QR, e então você pode usar oathtool ou hotpie para experimentá-la. (Certifique-se de não deixar a chave secreta por perto.)

    $ oathtool --base32 --totp ABCDEFG
    534266
    

    O código QR contém otpauth://totp/USER?secret=ABC&issuer=SITE, ou seja, a mesma chave secreta mais o rótulo de entrada (que é apenas para fins de exibição).

    $ qrencode "otpauth://totp/User?secret=ABCDEFG&issuer=Demo"
    
    
    
    • 14
  2. Journeyman Geek
    2024-06-10T17:03:39+08:002024-06-10T17:03:39+08:00

    A versão resumida é: eles geram o código da mesma maneira. Acredito que TOTP é o 'padrão' aqui. Uma das coisas boas dos sistemas modernos e sempre on-line é que você tem uma sincronização de tempo confiável - usando isso e uma chave privada (que está incluída no código QR que você escaneia) e o mesmo algoritmo, você pode gerar um previsível. chave de tempo sem um ponto central de autenticação.

    Isso também significa que, em teoria (e prática), você pode exportar suas chaves para outro dispositivo/cliente TOTP e, desde que seus relógios sejam razoavelmente precisos, ele deverá funcionar.

    Se não me falha a memória, eles usam o OTP que você fornece na primeira vez para confirmar que é a hora e a chave 'corretas', mas não tenho certeza disso.

    • 7
  3. Austin Hemmelgarn
    2024-06-11T04:24:58+08:002024-06-11T04:24:58+08:00

    O conceito central por trás de todos os sistemas de autenticação de dois fatores devidamente protegidos envolve o usuário provar sua identidade usando algum mecanismo previamente acordado que não pode ser razoavelmente replicado.

    O mecanismo específico usado pela maioria dos aplicativos 'autenticadores' é conhecido como TOTP (Time-based One Time Password). Esta é uma variante modificada de um mecanismo mais antigo conhecido como HOTP (HMAC One Time Password). A configuração de qualquer um dos mecanismos funciona da seguinte maneira.

    1. Quando o usuário solicita que um determinado serviço habilite 2FA, esse serviço gera um segredo a ser usado para fins de autenticação. Os detalhes exatos desta geração não importam muito aqui, e você pode pensar funcionalmente no segredo como um número aleatório entre 0 e algum número arbitrariamente grande.
    2. O serviço então compartilha esse número com o usuário, normalmente por meio de um código QR que codifica uma URL especial usando o otpauth://esquema. Os detalhes disso também não são particularmente importantes para a discussão, apenas saiba que ele codifica o segredo (e as informações sobre o próprio site) de forma que o dispositivo autenticador possa lê-lo.
    3. Depois que o autenticador lê o segredo, ele o armazena (espero) de forma segura, juntamente com informações sobre o provedor da conta (e normalmente alguns pequenos comentários para lembrar ao usuário qual conta é, caso ele tenha mais de uma com esse provedor).
    4. O servidor então (espero) armazena o segredo com segurança e o associa à conta do usuário. Ele pode solicitar um ou mais códigos neste momento para garantir que tudo está funcionando (e, no caso do HOTP, para garantir que o contador esteja sincronizado, mas falaremos mais sobre isso mais tarde).

    Feito isso, o autenticador é configurado para fornecer códigos para essa conta. Na verdade, usar o autenticador funciona da seguinte maneira:

    1. Quando solicitado um código, o autenticador consulta primeiro um contador interno. Para HOTP, este é um contador simples que é incrementado em um para cada código gerado para uma determinada conta. Para TOTP, é um carimbo de data/hora contado em segundos desde a época do UNIX.
    2. Depois de determinar o contador, o autenticador recupera o segredo, combina-o com o contador e, em seguida, gera um código de autenticação de mensagem com hash para a combinação (implementações típicas usam SHA-1 para isso, mas qualquer algoritmo de hash criptograficamente seguro pode ser usado).
    3. Se o TOTP estiver sendo usado, o tempo limite do código atual será exibido e, quando expirar, um novo será gerado.

    O servidor faz exatamente a mesma coisa para verificar o código.

    É importante observar que, uma vez configurado o autenticador, não há comunicação entre o autenticador e o servidor, exceto quando o usuário digita um código quando solicitado, e não há nenhuma comunicação entre o servidor e o autenticador. Este aspecto é uma parte extremamente importante do motivo pelo qual HOTP e TOTP são geralmente considerados seguros, mas SMS ou 2FA baseado em e-mail geralmente não são.

    Além disso, é importante observar que tanto o HOTP quanto o TOTP têm algumas limitações inerentes:

    • O HOTP exige que o cliente e o servidor mantenham seus contadores sincronizados. Se eles ficarem fora de sincronia (geralmente porque o usuário gera vários códigos sem usá-los), os códigos param de funcionar. Muitos servidores irão lidar com o caso específico do cliente ficar à frente do servidor automaticamente até algum limite , e avançar o contador para o que quer que seja para o código que foi usado, mas isso ainda requer manipulação, e adiciona uma sobrecarga de processamento não trivial no servidor.
    • O TOTP exige que o cliente e o servidor geralmente concordem relativamente bem com o horário e que o usuário use o código antes que ele expire. O primeiro problema geralmente é resolvido para qualquer cliente conectado à Internet, mas o segundo é complicado e geralmente significa que o servidor aceitará um código por algum tempo após ele expirar. A natureza baseada no tempo também significa que você precisa de um bloqueio para evitar a reutilização de código, o que limita funcionalmente a taxa de tentativas de autenticação bem-sucedidas (isso não é realmente um problema para qualquer caso de uso do mundo real e, na verdade, melhora um pouquinho a segurança, mas é uma limitação).

    Alguns sistemas usam uma abordagem semelhante ao TOTP ou HOTP, mas com um algoritmo diferente, geralmente por motivos legados. Um exemplo particularmente proeminente é o 'Steam Guard Mobile Authenticator' da Valve, que usa TOTP funcionalmente, mas automatiza totalmente a configuração e usa um mecanismo diferente para derivar o código da saída do algoritmo hash.


    Para referência, a outra grande implementação segura de 2FA que está em uso generalizado é o FIDO2, que funciona de maneira um pouco diferente, mas ainda depende do conceito de o usuário provar sua identidade fazendo algo que somente ele deveria ser capaz de fazer (em vez de gerar códigos , o FIDO2 envolve assinar digitalmente um desafio de autenticação usando uma chave que foi previamente configurada com o servidor, que é tecnicamente mais segura que o TOTP por alguns motivos).

    • 2

relate perguntas

  • Downloads do VirtualBox sendo bloqueados com aviso de segurança

  • Encontre a sessão de log que acessou minha pasta via 'c$' na rede

  • Wifi IDS - modo monitor vs modo promíscuo - Vendo o tráfego leste e oeste

  • Removendo bloqueio infantil

  • Falha na soma de verificação – Fedora 29 ou gire o KDE Plasma

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve