Token A3 no Linux

Instale um Token A3 em seu sistema linux e assine documentos com o conforto de um sistema aberto, sem necessidade de recorrer ao Windows para tal.


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


UPDATE 14/08/2024:

A instalação e configuração do Token para sistemas baseados em ArchLinux como Manjaro e EndeavourOS (com repositório AUR habilitado!) funciona perfeitamente e é até mais fácil que em sistemas baseados no Ubuntu. Caso utilize estes sistemas, veja o tópico 6 no final da publicação!

1. Introdução

Recentemente renovei meu certificado digital, até então eu usava um A1 (arquivo) porém decidi pegar um A3 (token) dessa vez. E aí começou o sofrimento!

Qual sistema usar, qual aplicativo usar, aonde esse token vai funcionar? E o pior, ele funciona? Bom, depois de muito brigar e mesclar o resultado de 3 tutoriais diferentes, porque cada um acertava e errava algumas etapas que ficaram obsoletas, temos um veredito.

1.1 O que é um certificado A3, do tipo token?

A quem estiver um pouco perdido, um token dessa natureza é resumidamente um chip daqueles de cartão de crédito; porém adaptado para USB e tudo envelopado num pequeno formato de pendrive. É um pequeno pendrive que funciona como uma chave digital de autenticação com diversas camadas de segurança e vários dados, e no caso do token que utilizei para elaborar esse post, é um token com dados pessoais para assinatura digital, equivalendo a um registro em cartório com testemunhas.

eToken 5100 da Safenet

Eles não são simples pendrives que podem ser formatados, normalmente possuem uma camada somente-leitura e outra porção menor para armazenar as senhas de acesso. Sua leitura e utilização se dá por drivers e aplicações específicas que descriptografam seu conteúdo e asseguram sua autenticidade.

2. Requerimentos

Se você possui um token A3, ele provavelmente será um destes da lista dentre os mais populares aqui no Brasil:

  • Watchkey (Watchdata)
  • GD Starsign (GD Burti)
  • Etoken 5100 e 5110 (Safenet)
  • Etoken Pro (Safenet)

E aí que tá o problema: Cada um é de uma forma e possui requerimentos específicos de uso. ESTE TUTORIAL especificamente vai contemplar os tokens da SafeNet, ou seja, a família de Etokens 5100 e 5110, semelhantes a este:

eToken 5100 da Safenet

A quem utiliza quaisquer outros tokens, para auxiliá-los temos ESTE site da SERPRO que possui os melhores drivers que conheço para todos os demais tokens da lista, todos com prioridade para o sistema Ubuntu. Você pode tentar utilizar este tutorial para instalar seu token porém atento que algumas etapas podem ser distintas das mencionadas e os resultados podem ser diferentes. Faça-o por sua conta e risco.

2.1 Sistema Operacional

Seu token é igual ao meu, um Etoken 5100 ou 5110? Beleza, agora o sistema:

Ubuntu 22.04 LTS (e/ou quaisquer de seus sabores!)

Quem desenvolveu a aplicação desse token usou o Ubuntu 18.04 como base e nunca mais a atualizaram.
Ou seja, além de tudo, a aplicação quebra nos Ubuntus 20.04 em diante por depender de pacotes que não existem mais.

Até a data desta publicação você deve ter um sistema Ubuntu na versão 22.04, não importa se é um sabor como o MATE ou mesmo o Kubuntu, até mesmo o Server pode ser utilizado aqui – Desde que tenha uma interface gráfica. – Pode ser máquina virtual se desejar, não esqueça o passthrough de USB para o token. Nada de Ubuntu 24.04!

Sistema ok? Vamos prosseguir!

3. Passo a Passo

Primeiro, instale todos os pacotes necessários e sacie suas dependências:

$ sudo apt -y install libjbig0 libtiff5 fontconfig-config libfontconfig1 libwxbase3.0-0v5 libpcsclite1 libccid pcscd opensc unzip libssl3

Agora 3 pulos de 3 gatos: São 3 pacotes que não existem mais nos repositórios do Ubuntu que foram removidos, um do 20.04 e dois do 22.04. São estes, baixe com wget e instale-os manualmente via dpkg:

$ sudo apt install wget

$ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb

$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/gdk-pixbuf-xlib/libgdk-pixbuf-xlib-2.0-0_2.40.2-2build4_amd64.deb
$ sudo dpkg -i libgdk-pixbuf-xlib-2.0-0_2.40.2-2build4_amd64.deb

$ wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gdk-pixbuf-xlib/libgdk-pixbuf2.0-0_2.40.2-2build4_amd64.deb
$ sudo dpkg -i libgdk-pixbuf2.0-0_2.40.2-2build4_amd64.deb

Pacotes instalados?
Agora instale a aplicação do SafeNet:

$ cd /tmp
$ wget https://www.globalsign.com/en/safenet-drivers/USB/10.7/Safenet_Linux_Installer_DEB_x64.zip
$ unzip Safenet_Linux_Installer_DEB_x64.zip
$ sudo dpkg -i safenetauthenticationclient_10.7.77_amd64.deb

Se tudo correu bem, você já vai ter a aplicação em seu sistema. Ela já permite ler e reconhecer o token USB:

Este tutorial foi feito com base no Ubuntu MATE 22.04.

4. Utilizando seu Token A3

4.1 Mozilla Firefox

Se você utiliza o Godzilla Giroflex, lembre-se: O TOKEN NÃO FUNCIONA NO FORMATO SNAP, uma vez que os pacotes Snap isolam os aplicativos em formato de container e não dão acesso às portas USB por padrão! O Firefox deve ser instalado normalmente via .deb. Caso seu Firefox seja Snap, desinstale-o e utilize este tutorial oficial para tê-lo no formato adequado.

Firefox instalado? Agora sim, abra “Editar” > “Preferencias” > “Avançado” > “Certificados” selecione a opção “Dispositivos de Segurança”.

Clique em “NSS Internal PKCS…” depois em “Carregar”. Dê um nome que preferir e em seguida coloque o caminho da biblioteca do token “/usr/lib/libeToken.so” sem aspas.

Feche e abra o Navegador com o token plugado.

No Firefox, “Editar” > “Preferencias” > “Privacidade e Segurança” > “Certificados” selecione a opção “Ver Certificados”.
Provavelmente ele já vai pedir a senha do seu token e vai aparecer seu certificado na guia “Seus certificados.”

Agora no site que precisar utilizar o Token, caso ele peça que instale um plugin de navegador ou algum pacote auxiliar .deb, baixe e instale-o! Reinicie o navegador se o fizer.
E por fim, vá nas Extensões extras, vá nas configurações da extensão recém adicionada e confirme que o token foi reconhecido por ela.
No exemplo, o WebPKI deve ser configurado para permitir o acesso ao token, lembre-se de habilitar conforme abaixo:

4.2 Google Chrome e Microsoft Edge

Sim, o procedimento para o Microsoft Edge de Linux é o mesmo para o Chrome e vice-versa!

Tanto no Google Chrome quanto no Edge o procedimento é um pouco diferente do Firefox, pela natureza como esses browsers coletam o certificado.

Feche o Navegador. Instale este pacote:

$ sudo apt -y install libnss3-tools

Faça os seguintes comandos:

$ rm -fr ~/.pki/nssdb
$ mkdir -p ~/.pki/nssdb
$ certutil -d ~/.pki/nssdb -N

E por fim:

$ cd ~
$ modutil -dbdir sql:.pki/nssdb/ -add “Safenet 5110” -libfile “/usr/lib/libeToken.so”
$ modutil -dbdir sql:.pki/nssdb/ -list

Abra seu Chrome ou o Edge.

Agora no site que precisar utilizar o Token, caso ele peça que instale um plugin de navegador ou algum pacote auxiliar .deb, baixe e instale-o! Reinicie o navegador se o fizer.
E por fim, vá nas Extensões extras, vá nas configurações da extensão recém adicionada e confirme que o token foi reconhecido por ela.
No exemplo, o WebPKI deve ser configurado para permitir o acesso ao token, lembre-se de habilitar conforme abaixo:

5. Assinador Serpro

Se o Token foi reconhecido e funcionou nos navegadores, automagicamente ele aparecerá como opção para ser utilizado pelo Assinador Serpro!
Apesar do assinador existir nos repositórios AUR para ArchLinux e seus derivados, não há suporte ao token A3, somente ao token A1 (até a presente data)

6. Update 14/08/2024
Configuração para ArchLinux e Derivados!

Habilite os repositórios AUR em seu sistema. No caso do EndeavourOS, eles já vem habilitados por padrão.
Faça os comandos a seguir na sequência:

$ sudo pacman -S lib32-pcsclite pcsc-tools opensc nss

$ yay -S lacuna-webpki sac-gui sac-core safesignidentityclient

$ sudo systemctl start –now pcscd

Nesse caso o pacman puxará os pacotes essenciais e o yay (via AUR) puxará os pacotes extras como o WebPKI que normalmente só é fornecido como .deb ou .rpm.

Pronto. Só isso! Agora os passos são os mesmos que feitos no Ubuntu:
Volte acima e continue a partir do tópico 4 para configurar o Firefox, Chrome ou Edge
E veja o tópico 5 para utilizar no Assinador Serpro.

Instalação testada no EndeavourOS Plasma

Fontes:
AndersonTecnologia
Alexishida
RafaelMarquez

11 comentários em “Token A3 no Linux”

  1. A comunidade precisa criar ou gerir uma lista de links para todos os sites oficiais para downloads de drivers, e instruções sobre as dependências (talvez uma wiki, dada a variedade de versões). Atualmente, por exemplo, a última atualização do assinador serpro, no ubuntu 22.04, assina os pdf, mas ao protocolar as petições, as assinaturas não são reconhecidas. Curiosamente, o assinador do Okular realiza a assinatura e a mesma é reconhecida. O libreoffice também assina os documentos, mas apenas até pdfs 1.4.

    Responder
  2. olá, o comando modutil -dbdir sql:.pki/nssdb/ -add “Safenet 5110” -libfile “/usr/lib/libeToken.so” não funcionou para mim. erro: ERROR: Not expecting argument “5110””.

    tentei colocar Safenet5110 ou Safenet\ 5110 porem não deu certo.

    Responder
  3. Parabéns pela iniciativa. Usar certificados A3 no linux é um tormento, graças a tutorias como esse ainda conseguimos fugir do windows. Mas tenho uma duvida: Esse tutorial funciona no Ubuntu 24.04?

    Responder
  4. Estou experimentando o OpenSUSE MicroOS Kalpa que a meu ver é uma boa implementação de Atomic (ou Imutable) OS para Desktop, com o intuito de usar uma distribuição Rolling Release com a certeza de estabilidade e ao mesmo tempo em uma Distrobox em que poderia utilizar a melhor distribuição da época para colocar todos os pacotes necessários para gerir o Token, o Certificado e Assinatura digitais. A escolhida foi o Fedora 40, que conforme sugestão em um fórum, teria o melhor suporte para o SafeSign Token e dependencias e de fato instalou facilmente, mais o Firefox, Okular (que assina também), libreoffice Assinador Serpro e .PjeOffice-pro. Feito o Distrobox export –app, estava dando quase tudo certo (menos o Assinador Serpro), até que depois de uma atualização, o token parou de ser reconhecido (tentei de tudo, até desabilitar o firewalld e nada). Então, resolvi ir para a solução extrema que coloca a prova o conceito que eu estava tentando (Distribuição atomica ou imutável + Distrobox) e removi a Distrobox Fedora40, para refazer uma com Ubuntu2204 ou mesmo o Fedora40, mas simplesmente não estou conseguindo criar novas Distrobox. Enfim, é um saco isso e acho que a solução é ir para o Debian (dá mais trabalho para instalar tudo) ou Ubuntu e ficar preso nelas (ou até experimentar o Fedora Desktop tradicional).

    Responder

Deixe um comentário