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.
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:
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
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.
excelente dica,principalmente por eu nao instalar nada ligado a tralhasoft,pois nessa e grapol,nao confio.
Infelizmente o meu é o odiado GD Starsign 😢
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.
De facto e o maior problema é que a comunidade BR é muito pequena ainda, e vários desses drivers são específicos de nosso país, ai é tudo muito escasso/mal documentado
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.
Verifica se o comando tá certinho, porque o site usa umas fontes que costumam dar erro no terminal.
$ modutil -dbdir sql:.pki/nssdb/ -add “Safenet 5110” -libfile “/usr/lib/libeToken.so”
Note a diferença das aspas!
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?
Bom, talvez sim mas eu admito que não sei. O Ubuntu 24.04 tava dando diversos problemas pra mim inclusive com drivers WiFi o que me fez ficar longe dele por enquanto. Só testei no 22.04.
Consegui instalar sem problemas no Ubuntu 24.04 utilizando a versão 10.8 do safenet disponível em https://support.globalsign.com/code-signing/safenet-drivers . É só instalar e informar a biblioteca do token no Firefox. Lembrando que é preciso substituir o firefox em snap pelo deb para que funcione.
salvou. valeu
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).