Olá a todos, tudo bem?
O que é 2FA
É comum vermos que alguns sites e serviços utilizam
2FA ou "Two-Factor Authentication" (em português: Autenticação de Dois Fatores). Mas, o que seria isso?
O nome já sugere que você precisa de 2 componentes/fatores para se autenticar num site ou utilizar um determinado serviço, como é o caso do serviço bancário. Porém, pensar em "usuário" como o 1º componente e "senha" como o 2º não é o certo nesse caso. As suas credenciais (usuário e senha) acabam sendo o 1º componente (1º fator de autenticação), enquanto o 2º fator acaba sendo os tokens, números de 6 dígitos que se alteram a cada 1 minuto.
Mas como podemos gerar esses códigos?
Podemos usar aplicativos, como o
Google Authenticator e similares, para registrar os sites e serviços no celular, e depois gerar os tokens quando precisarmos fazer o login.
Mas, e se quisermos fazer isso no computador? No caso do sistema
GNU/Linux, existe uma ferramenta chamada OathTool (OAth Toolkit) que serve apenas para gerar os tokens, porém, devemos ficar digitando comandos no terminal. O que acaba sendo um pouco chato.
Pensando em facilitar a vida de todos os usuários (principalmente, a minha vida), eu resolvi criar o projeto
2FA-Auth.
Trata-se de um script escrito para rodar em BASH e este script gera um menu simples e amigável.
Vamos ao projeto.
Projeto 2FA-Auth e suas dependências
Como dito anteriormente, o 2FA-Auth é um script que foi escrito para rodar em BASH.
Para que possamos utilizá-lo, primeiramente, devemos instalar o software GIT, GnuPG e OATHTOOL. Dependendo da distribuição GNU/Linux, existe um método específico para instalar, atualizar e remover os programas, bibliotecas e softwares em geral. Os comandos que mostrarei servem para Debian, RedHat, SUSE e distribuições baseadas nestas 3.
Abra o terminal e digite:
Em Debian/Ubuntu e outros baseados:
sudo apt install git gpg2 oathtool
Em RedHat/Fedora e outros:
sudo dnf install git gpg2 oathtool
Em SUSE/openSUSE:
sudo zypper in git gpg2 oath-tool
Uma vez que o estes softwares foram instalados com sucesso, faça o download (clone) do 2FA-Auth.
Em teoria, você pode clonar os projetos em qualquer diretório, mas o recomendável é usar o seu diretório HOME ou usar o
/opt, caso você queira deixar disponível para todos os usuários que utilizam o mesmo sistema. Digite o comando abaixo:
git clone https://github.com/alencc1986/2FA-Auth.git
Caso você queira especificar o destino, digite:
git -C /opt/ clone https://github.com/alencc1986/2FA-Auth.git
Ao terminar a clonagem, podemos rodar o script, porém, antes disso, você deve criar ou importar as chaves GnuPG em seu perfil.
Caso não saiba como criar ou importar as chaves GnuPG, gostaria de sugerir os meus artigos escritos em inglês no Reddit r/linux:
Uma vez que os softwares foram instalados, 2FA-Auth clonado e chaves criadas/importadas, vamos para a utilização do projeto 2FA-Auth...
Utilizando o 2FA-Auth
Para utilizar o 2FA-Auth, você precisa digitar:
/caminho/para/2FA-Auth.sh
ou
/opt/2FA-Auth/2FA-Auth.sh
Isso depende de onde você baixou o projeto.
Na primeira execução, o script irá verificar se o sistema está OK e se você tem chaves GnuPG em seu perfil. Uma vez que a verificação do sistema foi concluída com sucesso, você verá uma mensagem listando as chaves GPG disponíveis para o seu usuário e será necessário informar os seus IDs (GnuPG UserID e GnuPG KeyID).
O UserID é o seu e-mail usado para criar a chave GPG, enquanto o KeyID é uma parte do fingerprint, os últimos 16 dígitos alfanuméricos, e esses IDs são necessário para que o 2FA-Auth (junto do GPG) encripte e decripte os tokens do serviço/site.
Esse token é diferente do token usado no login. O token de serviço é uma sequência alfanumérica que é utilizada como forma de vincular a sua conta com o programa/script que você está usando para gerar o token de 6 dígitos.
Uma vez que as dependências estão instaladas, as chaves GPG criadas/importadas e os IDs da chave informados, você verá a tela do menu principal.
A partir desse momento, você poderá adicionar os tokens de serviço, deletar os serviços que não são mais necessários, exportar os tokens para usar em outros programas, gerar os tokens de 6 dígitos para logar nos sites/serviços, criar ou restaurar o backup com as configurações.
Você pode ler o arquivo README para pegar mais informações, assim como pode ler o arquivo PDF localizado no diretório "doc". Esse último é um tutorial de utilização do 2FA-Auth.
Conclusão
O projeto 2FA-Auth é distribuído com a licença GNU-GPLv3.0.
Sinta-se livre para contribuir com alguma ideia, desenvolvimento de código, ou escrita/melhoria dos documentos (README e o PDF).
Caso queira entrar em contato, você pode me mandar uma mensagem aqui no VOL ou entrar em contato nas redes IRC freenode (usuário VinAlencc404) e OFTC (usuário alencc1986).
Agradeço pela atenção e espero ter ajudado de alguma forma.
Um grande abraço!