EAuthenticator - Clone do Google Authenticator para Linux

Este artigo apresenta o EAuthenticator, um clone do Google Authenticator para desktop. No título consta como clone para Linux, mas na verdade trata-se de um aplicativo multiplataforma, escrito em Electron script.

[ Hits: 2.759 ]

Por: Fábio Berbert de Paula em 11/05/2020 | Blog: https://fabio.automatizando.dev


Introdução



Este artigo é uma continuidade de minha dica anterior, onde abordei como gerar tokens TOTP a partir de chaves na base 32 com o oathtool, simulando o comportamento do cliente Google Authenticator.

Nesta dica veremos outra alternativa, que é o EAuthenticator, cujo nome vem de Electron Authenticator, ou seja, um clone do Google Authenticator escrito em Electron.

Para quem não conhece, Electron é, a grosso modo, um conjunto de bibliotecas JavaScript derivada do React que nos permite criar aplicativos multiplataforma para desktop.

O projeto é distribuído sob licença GPL e seu repositório no GitHub é:

Pré-requisito

É necessário que você possua o Node.js instalado no sistema. Se estiver usando Debian, Ubuntu e derivados, confira minha dica: Como instalar última versão Node.js via repositório no Ubuntu, Debian e derivados [Dica]

Instalação

Primeiro vamos clonar o projeto:

git clone https://github.com/Nikolasel/EAuthenticator.git

Entre na pasta criada:

cd EAuthenticator

Instale as dependências:

npm install

Gere o arquivo de licenças licenses.json:

npm run license

Se chegou até aqui, tudo pronto! Para executar o aplicativo digite:

npm start
Clique no botão "+" para adicionar uma conta:

Gerando um arquivo binário

Ninguém vai querer ficar entrando no diretório raiz do projeto e executar "npm start" toda vez que quiser abrir o aplicativo, não é mesmo? Pois bem, vamos gerar um arquivo binário para o teu sistema operacional!

Estando no diretório raiz do projeto, digite:

npm run package-linux

Será gerado um binário dentro do diretório "release-builds", no meu caso:

ls release-builds
EAuthenticator-linux-x64

E dentro do subdiretório EAuthenticator-linux-x64 haverá um arquivo executável "EAuthenticator".

Agora basta executá-lo:

./release-builds/EAuthenticator-linux-x64/EAuthenticator

O problema é que o arquivo precisa de algumas bibliotecas que estão contidas no diretório no qual ele pertence, então não é possível mover o binário sozinho para outro diretório (você poderá no máximo criar um link simbólico em um diretório do PATH apontando para ele):

ls release-builds/EAuthenticator-linux-x64
chrome_100_percent.pak
chrome_200_percent.pak
EAuthenticator
icudtl.dat
libEGL.so
libffmpeg.so
libGLESv2.so
libVkICD_mock_icd.so
LICENSE
LICENSES.chromium.html
locales
natives_blob.bin
resources
resources.pak
snapshot_blob.bin
swiftshader
v8_context_snapshot.bin
version


Como resolver? Bom, a melhor solução será empacotar o aplicativo.

Criando um pacote .DEB

Para criar um pacote .DEB, estando no diretório raiz do projeto digite:

npm run create-installer-deb

Será gerado um arquivo .deb dentro de release-builds:

ls release-builds/*deb
eauthenticator_0.2.0~dev_amd64.deb

Instale o pacote com:

sudo dpkg -i release-builds/eauthenticator_0.2.0~dev_amd64.deb

Verificando:

dpkg -l eauthenticator
ii  eauthenticator 0.2.0~dev-1  amd64        An Electron Desktop app compatible with Google Authenticator

Executando:

eauthenticator

Bônus: criando um pacote .RPM

Para criar um pacote RPM, primeiro instale o rpm-build:

sudo dnf install rpm-build

Em seguida, no diretório raiz do projeto, execute:

npm run create-installer-rpm

Será gerado um arquivo .rpm dentro de release-builds:

ls release-builds/*rpm

Também é possível gerar um executável para Windows, mas este procedimento foge ao escopo do artigo.

Conclusão

EAuthenticator é mais uma mostra do poder do software livre. Tive pouco contato com a linguagem Electron, mas ela está se mostrando bem promissora para o desenvolvimento de aplicativos desktop multiplataforma. A quem se interessar, fica a dica de estudo durante essa quarentena, que pelo visto ainda irá render. Vale lembrar que Electron basicamente é JavaScript, então seu aprendizado é muito recomendável! Na pior das hipóteses você estará treinando seus conhecimentos em JavaScript, que hoje é a linguagem de programação mais utilizada no mundo.

Um bom ponto de partida no aprendizado da Electron é estudar o código do EAuthenticator.

Fonte: https://github.com/Nikolasel/EAuthenticator

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Entrevista com um hacker, via Internet

Sorteio de camisetas promovido pela GeekWorld

Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)

A função DATE_FORMAT() do MySQL

Leitura recomendada

Novo tipo de vírus pode afetar tanto Windows quanto Linux

Google AdSense: Técnicas de otimização dos anúncios

CSS - Manual básico sobre estilo

CSS - Manual de Estilo (parte 2)

XSS - Cross Site Scripting

  
Comentários
[1] Comentário enviado por removido em 11/05/2020 - 10:00h

Boa! Não conhecia o EAuthenticator...

Fabio, só uma correção nessa parte:
"Para quem não conhece, Electron é, a grosso modo, um conjunto de bibliotecas JavaScript derivada do React que nos permite criar aplicativos multiplataforma para desktop. "

Na verdade, Electron é baseado na engine de renderização do chromium e funciona combinado com node.js. O React é uma lib para construção de front-end SPA (Single Page Application), ou seja, não tem ligação com o Electron. Entretanto, vc pode unir React com Electron para construir interfaces mais inteligentes, assim como vc pode usar também o Vue ao invés de React, com o Electron.

Basicamente, podemos dizer que o Electron é um chromium capado que fornece uma janela com componentes web e com uma API própria para construir aplicações desktops multiplataforma.

[2] Comentário enviado por maurixnovatrento em 11/05/2020 - 13:54h


Interessante esse EAutenticator. Não conhecia.

___________________________________
Conhecimento não se Leva para o Túmulo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts