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.
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:
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
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
oathtool
dooath-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: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:
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:
2fa
:A consequência líquida disso (com meu sistema de nomenclatura) é que posso escrever
2fa gitlab
e 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.
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.