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 seu Bloqueador de Anúncios inclusive em Mobile!


UPDATE 06/04/2025

A publicação anteriormente mencionava que o ideal era usar somente o Ubuntu 22.04 mas agora testei e atestei que o Ubuntu 24.04 LTS (e seus sabores) também suportam o mesmo método de configuração do Token A3. A publicação foi alterada de acordo!

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 Token A3 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 quaisquer de seus sabores!) ou Ubuntu 24.04 LTS (e 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 nos repositórios. Mas já temos uma forma de contornar isso.

Não testei em sistemas baseados no Ubuntu como o LinuxMint ou ainda o Zorin. Se quiser seguir estes passos para estes sistemas, o faça por sua conta e risco.

Sistema ok? Vamos prosseguir!

3. Passo a Passo

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

$ sudo apt -y install pcscd opensc unzip libssl3

Caso seu sistema precise, instale estas bibliotecas extras:
libjbig0 libtiff5 fontconfig-config libfontconfig1 libpcsclite1 libccid
Mas em meus testes no Ubuntu 24.04 LTS não foi necessário.

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 e nem no formato Flatpak, 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 e/ou via PPA. 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!

O token não funciona no Google Chrome ou Microsoft Edge de Snap ou Flatpak!
Instale estes navegadores pelos repositórios PPA oficiais.

O Google Chrome .deb possui o PPA oficial agregado, instalando o .deb você ganha o PPA.

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. 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.

Com isso você terá o token a3 funcional em seu sistema baseado em Archlinux.

Fontes:
AndersonTecnologia
Alexishida
RafaelMarquez

12 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
  5. Nos sistemas baseados em Arch, tbm pode ser necessário instalar o ‘ca-certificates-icp_br’ pelo AUR, para que o token possa ser reconhecido pelos sites das autoridades governamentais

    Responder

Deixe um comentário