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 / ubuntu / Perguntas / 1460640
Accepted
s.k
s.k
Asked: 2023-03-24 04:24:01 +0800 CST2023-03-24 04:24:01 +0800 CST 2023-03-24 04:24:01 +0800 CST

Gerando TOTP para 2FA diretamente do computador (sem dispositivo móvel)

  • 772

No Ubuntu 22.04.2, ficaria feliz em saber sobre uma maneira nativa e segura de gerar códigos TOTP para uso em qualquer aplicativo que precise de 2FA.

Você conhece uma maneira de código aberto de fazer isso diretamente em um computador Ubuntu?

Todos os tutoriais que posso encontrar são baseados no modo "aplicativo móvel" (por exemplo, usando o Google Authenticator), que não posso usar porque não tenho nenhum outro dispositivo móvel além de um laptop.

22.04
  • 4 4 respostas
  • 787 Views

4 respostas

  • Voted
  1. Best Answer
    user68186
    2023-03-24T04:52:38+08:002023-03-24T04:52:38+08:00

    KeepassXC

    Este é um gerenciador de senhas de código aberto nativo do Linux disponível no repositório do Ubuntu. há também um PPA se você quiser o mais recente.

    Instale o keepassXC na loja do Ubuntu ou no terminal. Abra um terminal e digite:

    sudo apt install keepassxc
    
    1. Uma vez instalado, você deve criar um banco de dados para manter as senhas.
    2. Então você tem que criar uma nova entrada com o nome de usuário e senha. Não permite criar TOPT nesta etapa.
    3. Por fim, depois de selecionar a entrada recém-criada (nome de usuário e senha), você pode usar o menu na parte superior e selecionar Entradas > TOTP... > Configurar TOTP.

    Segurança

    O banco de dados KeepassXC é protegido por senha por padrão. Ou seja, para usar uma senha (e TOTP) armazenada no banco de dados, você deve abrir o aplicativo KeepassXC e digitar uma senha para abrir o banco de dados. Opcionalmente, você pode usar um arquivo (armazenado em uma unidade USB) para segurança adicional além da senha. Ou seja, se o arquivo específico não estiver no drive USB ou se o drive USB específico não estiver conectado, ninguém poderá abrir o banco de dados do KeepassXC e acessar os TOTPs ou senhas.

    Embargo

    Pode ser necessário iniciar a configuração do TOTP novamente nas páginas da Web que oferecem 2FA desse tipo. Por exemplo, pode ser necessário desabilitar momentaneamente o 2FA em sua conta do Google e configurá-lo novamente para obter um novo código QR. A maioria das páginas da web não mostra a chave secreta ou o código QR correspondente depois que o 2FA é configurado. Se você usa atualmente um aplicativo de autenticação no telefone, os números TOTP gerados por esse aplicativo se tornarão obsoletos se você fizer a configuração 2FA na página da web novamente.

    No lado positivo, o KeeppassXC pode gerar os códigos QR para cada TOTP depois de configurado. Ou seja, você pode digitalizar o código QR gerado pelo KeepassXC usando o aplicativo de autenticação do seu telefone para atualizá-lo.

    Extensões do navegador

    Você pode querer usar a extensão Chrome ou Firefox para KeepassXC. Isso permite que você copie e cole o ID do usuário, a senha e o TOTP (se disponível) com alguns cliques.

    Authy

    Authy é outro aplicativo de autenticação para celulares, tablets e desktops . existe até uma versão Snap dele.

    Ao contrário do KeeppassXC, o Authy não gerencia senhas. É apenas para gerar TOTP. No lado positivo, se você usar o Authy em seu celular ou tablet, poderá manter seu TOTP sincronizado entre todos os dispositivos, incluindo a área de trabalho. Você precisa criar uma conta Authy para manter os aplicativos Authy em todos os dispositivos sincronizados.

    Espero que isto ajude

    • 5
  2. Vertganti
    2023-03-24T18:02:04+08:002023-03-24T18:02:04+08:00

    Se você só precisa gerar códigos e não gerenciá-los (por exemplo, você não se importa em armazenar o segredo TOTP em outro lugar e fornecê-lo sempre que precisar gerar um código), você pode usar o que faz parte oathtooldo oath-toolkit pacote . Para gerar um código de 6 dígitos a partir de um segredo codificado em base32, você pode usar o seguinte comando:

    oathtool --base32 --totp "SECRET" -d 6
    

    A etapa de tempo padrão é de 30 segundos e a hora de início padrão é 1970-01-01 00:00:00 UTC. Consulte a página de manual para obter mais informações de uso. Para fontes veja o repositório debain e as fontes Jammy .

    Se você não quiser usar um pacote ou ferramenta externa, os algoritmos necessários para geração de TOTP são descritos nas RFCs relacionadas que você pode usar para escrever seu próprio script de shell:

    • RFC 2104 : HMAC: hash com chave para autenticação de mensagem
    • RFC 4226 : HOTP: um algoritmo de senha única baseado em HMAC
    • RFC 6238 : TOTP: Algoritmo de senha única baseado em tempo
    • 3
  3. preferred_anon
    2023-03-24T20:25:38+08:002023-03-24T20:25:38+08:00

    Isso está relacionado a uma pergunta que fiz no SE de segurança há algum tempo.

    Em primeiro lugar, existe uma ferramenta de linha de comando útil chamada oathtool. Você pode usá-lo para gerar os códigos de 6 dígitos para 2fa usando seu segredo 2fa. As etapas são descritas aqui .

    Obviamente, seus segredos 2fa são muito mais importantes de proteger do que os próprios códigos 2fa. Você pode armazenar a chave 2fa em um gerenciador de senhas e escrever um script para gerar o código de 6 dígitos a partir dele.

    Se você armazenar as chaves em sua máquina, não estará realmente fazendo 2fa. Você só tem duas senhas. Para resolver isso, fiz o seguinte:

    • Armazene a chave 2fa em um arquivo criptografado e armazene esse arquivo em uma unidade flash.
    • Quando conecto minha unidade flash, monte a pasta contendo as (possivelmente muitas) chaves 2fa em uma pasta que meu gerenciador de senhas possa ver. Eu uso pass , então isso é muito fácil de fazer. No momento eu faço isso manualmente, mas pode ser automatizado.
    • A interface é algo que você pode personalizar, mas escrevi o seguinte script bash, chamado 2fa:
    pass 2fa/$1 | xargs -d '\n' oathtool -b --totp
    

    A consequência líquida disso (com meu sistema de nomenclatura) é que posso escrever 2fa gitlabe obter o código de 6 dígitos em meu terminal. Eu tenho outro script que o grava em minha área de transferência e me solicita uma lista de nomes (a mesma interface do meu gerenciador de senhas).

    Obviamente, nada disso funciona sem a unidade USB, o que a torna uma solução genuína de "algo que você tem". No entanto, só funcionará se você puder descriptografar os arquivos gpg, o que requer minha chave privada. Eu só uso 2fa em algumas máquinas confiáveis ​​no momento, então está tudo bem para mim. Se eu precisar que seja mais versátil, posso reconsiderar o uso de um telefone ou Yubikey.

    Há críticas a esse esquema em comparação com o Yubikey no post original. Eu recomendo dar uma olhada neles.

    • 1
  4. Chris H
    2023-03-24T20:09:54+08:002023-03-24T20:09:54+08:00

    Eu uso a extensão Authenticator do Firefox para isso, com SSO do trabalho - eles recomendam, aliás, para quem não pode ou não quer* usar um dispositivo móvel. Isso é configurado em algumas máquinas desktop (trabalho e casa); em um laptop, eu gostaria de uma segurança decente do dispositivo, pois é um pouco fácil demais obter os códigos.


    * As exigências de permissão do Microsoft Authenticator etc. para Android excluem isso para mim em um telefone pessoal, mas desde então encontrei uma alternativa leve e razoável.

    • 0

relate perguntas

  • Conexão lenta à Internet no Ubuntu 22.04 Beta [fechado]

Sidebar

Stats

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

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

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