Gostaria de relatar aqui minhas experiências primárias com utilização de certificado digital no Debian. Como sempre no Brasil, essa é uma exigência do nosso maravilhoso Governo que cobra da população e das empresas sem fornecer condições necessários nível europeu de prestações de contas. Pois bem, desabafado a indignação vamos ao que interessa.
Ao plugar o dispositivo na porta USB, o kernel Linux do Debian já reconheceu o dispositivo, dmesg mostra o algo assim aqui:
# dmesg [12477.084422] usb 1-1: new full-speed USB device number 13 using xhci_hcd
[12477.253618] usb 1-1: New USB device found, idVendor=08e6, idProduct=3437
[12477.253622] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12477.253626] usb 1-1: Product: USB SmartCard Reader
[12477.253628] usb 1-1: Manufacturer: Gemalto
[12477.253630] usb 1-1: SerialNumber: ABA0D442
Veja que o módulo do kernel que gerencia o dispositivo é o xhci_hcd, pois bem este é o básico, a primeira parte do funcionamento é o kernel ser capaz de gerenciar o dispositivo.
Reconhecido o dispositivo, o próximo passo é instalar o daemon que fornecerá a interface de comunicação com a leitora, no caso o software do daemon que fará a comunicação com a leitora é o pcscd (Personal Computers with Smart Cards Daemon).
Fazendo o daemon conversar com a leitora, programas adicionais como o Firefox, utilizarão bibliotecas padrões para se comunicar com o daemon.
Efetuando Instalação (Debian)
Como o Debian é a distribuição mãe (do meu coração rsrs), vou focar nela, mas com certeza servirá de referência para outras distribuições.
O daemon pcscd deve gerenciar o dispositivo, mas a propósito de diagnóstico, vamos para o daemon e executar o comando em modo debug, se tudo der certo este passo não será necessário, então se você não quer debugar nada pode pular este passo.
Ainda como root, parar o daemon:
# service pcscd stop
Execute-o em primeiro plano com o debug ativo (sem a leitora):
# pcscd -f -d
Deve surgir na tela algo parecido com isto:
00000000 debuglog.c:292:DebugLogSetLevel() debug level=debug
00000329 configfile.l:283:DBGetReaderListDir() Parsing conf directory: /etc/reader.conf.d
00000075 configfile.l:355:DBGetReaderList() Parsing conf file: /etc/reader.conf.d/libccidtwin
00000131 configfile.l:317:DBGetReaderListDir() Skipping non regular file: ..
00000030 configfile.l:317:DBGetReaderListDir() Skipping non regular file: .
00000038 pcscdaemon.c:569:main() pcsc-lite 1.8.13 daemon ready.
00003546 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00000252 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00000232 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1BCF, PID: 0x0005, path: /dev/bus/usb/001/002
00000213 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00000241 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x04F2, PID: 0xB40A, path: /dev/bus/usb/001/003
00000213 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x04F2, PID: 0xB40A, path: /dev/bus/usb/001/003
00000204 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
00000209 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x058F, PID: 0x6366, path: /dev/bus/usb/001/004
00000259 hotplug_libudev.c:296:get_driver() Looking for a driver for VID: 0x1D6B, PID: 0x0003, path: /dev/bus/usb/002/001
Agora plugue a leitora, se deu tudo certo algo assim deve surgir na tela:
Em um outro terminal execute o comando que vai se comunicar com a leitora:
# opensc-tool --list-readers
Se deu tudo certo ele vai relatar a leitora, como pode ser visto abaixo:
# Detected readers (pcsc)
Nr. Card Features Name
0 Yes Gemalto PC Twin Reader (ABA0D442) 00 00
O daemon deve executar junto com o sistema, então estes passos de debug não são necessários executar toda vez, em teoria é só plugar a leitora e tocar a vida depois disto.
Vamos instalar o software do SafeSign para o Debian:
Este software instala o programa de gerenciamento do token, o tokenadmin, e as bibliotecas de comunicação com a leitora que iremos utilizar para configurar o Firefox.
Através do tokenadmin você consegue visualizar da mesma forma que em outros sistemas operacionais o seu certificado, o estado etc, bem legalzinho.
[3] Comentário enviado por teccert em 04/07/2015 - 06:26h
Realmente é um ótimo artigo, contudo não funcionou com meu eToken Alladin (token usb) da certsign no ubuntu 14.04. O que acontece é que o sistema o reconhece, o programa da safenet mostra toda informação do eToken, o programa NFE do Governo de São Paulo também reconhece o eToken e instala os certificados, mas quando acesso o site da Receita Federal não funciona, ou seja, não é reconhecido, já instalei as cadeias de certificados, segui o seu tutorial, já vasculhei tudo sobre o assunto na net e até agora nada. A questão maior, é que detesto usar o sistema operacional proprietário, onde tudo é ruim, o notebook parece uma carroça, dá erros constantes, e por cima, mesmo com todo o cuidado, ainda é uma porta aberta aos piratas virtuais. No Ubuntu 10.04 e 12.04 o eToken funcionou muito bem.
Preciso que alguém me ajude, mesmo que eu tenha que contribuir financeiramente. Meu email é: jeronimo.informatica@gmail.com
[4] Comentário enviado por tiekookeit em 04/07/2015 - 18:43h
[3] Comentário enviado por teccert em 04/07/2015 - 06:26h
Realmente é um ótimo artigo, contudo não funcionou com meu eToken Alladin (token usb) da certsign no ubuntu 14.04. O que acontece é que o sistema o reconhece, o programa da safenet mostra toda informação do eToken, o programa NFE do Governo de São Paulo também reconhece o eToken e instala os certificados, mas quando acesso o site da Receita Federal não funciona, ou seja, não é reconhecido, já instalei as cadeias de certificados, segui o seu tutorial, já vasculhei tudo sobre o assunto na net e até agora nada. A questão maior, é que detesto usar o sistema operacional proprietário, onde tudo é ruim, o notebook parece uma carroça, dá erros constantes, e por cima, mesmo com todo o cuidado, ainda é uma porta aberta aos piratas virtuais. No Ubuntu 10.04 e 12.04 o eToken funcionou muito bem.
Preciso que alguém me ajude, mesmo que eu tenha que contribuir financeiramente. Meu email é: jeronimo.informatica@gmail.com
Se tu for em Editar -> Preferências -> Avançado -> Certificados -> Dispositivos
Clicar em teu certificado, o botão "Logar" ativa? Se ativa, você consegue se logar?
Outra dúvida, ainda na aba de certificado, a opção "Quando um servidor solicitar meu certificado pessoal:" está marcado "Perguntar quando necessário", se não, deixe ele marcado e teste novamente.
[6] Comentário enviado por pinduvoz em 06/07/2015 - 09:06h
Eu tinha conseguido operar meu e-cpf de cartão no Tribunal de Justiça de São Paulo, mas não no Superior Tribunal de Justiça, em Brasília (ligando para o suporte técnico de lá, responderam que o sistema adotado só funcionaria no Windows).
Depois de um tempo, meu e-cpf de cartão parou de funcionar também no Tribunal de São Paulo.
Agora tenho um e-cpf de token, fornecido pela OAB (o anterior era da AASP). Então vou tentar novamente, até porque nunca tentei com o Ubuntu 14.4.
[7] Comentário enviado por teccert em 06/07/2015 - 14:50h
Meu problema é no acesso ao site da Receita. O interessante é que o programa de Nota Fiscal Eletrônica Paulista, encontra o token e carrega os certificados, só não funciona via navegador, firefox, goolgle chome e opera.
[9] Comentário enviado por worker em 06/07/2015 - 20:45h
Você seguiu o procedimento que o colega postou ? Não funcionou? Poste aqui as msg de erro do site da Receita para tentarmo achar a solução.
Em tempo em alguns sites é preciso logar como sugerido abaixo, em versões mais antigas do Firefox isso não acontecia.
[4] Comentário enviado por tiekookeit em 04/07/2015 - 18:43h
Se tu for em Editar -> Preferências -> Avançado -> Certificados -> Dispositivos
Clicar em teu certificado, o botão "Logar" ativa? Se ativa, você consegue se logar?
Outra dúvida, ainda na aba de certificado, a opção "Quando um servidor solicitar meu certificado pessoal:" está marcado "Perguntar quando necessário", se não, deixe ele marcado e teste novamente.
[11] Comentário enviado por teccert em 07/07/2015 - 07:26h
Os arquivos que o artigo faz referencia deve ser para que usa outro tipo de dispositivo, tal como cartão e não o token usb, pois não são encontrados neste meu caso. Talvez esteja ai o problema, eu preciso saber em meu caso particular que módulo e caminho correto, talvez se alguém fizer uso deste token usb no ubuntu, possa me indicar os mesmos.
[12] Comentário enviado por worker em 07/07/2015 - 11:10h
Bom temos uma luz, sabemos o que falta no Firefox.
Estou no trabalho, sem o meu note, então tente o seguinte, se não der certo comunique e à noite em casa vejo melhor.
Voce precisa carregar um novo dispositivo, aí vai pedir o caminho da biblioteca, (o nome da lib vai depender da versão do SAC que voce tem, no meu caso é a 8.3, então o nome é libetoken.so.8.3....mais algoi que não lembro).
de qualquer forma o caminho é este: /lib/libetoken.so.8.3 (se sua versão do SAC for outra, procure alguma lib que começe com libetoken.so...) deve resolver.
[13] Comentário enviado por teccert em 07/07/2015 - 13:35h
Seguindo a orientação de WORKER, agora ao acessar o site da receita, é apresentado a razão social do token e solicitado a senha do certificado, quando digitado a senha, dá o erro abaixo:
Ocorreu um erro. (Código: 403)
Para acessar esta página, você deve selecionar o seu certificado digital.
Sr(a) Contribuinte, a partir do dia 05/06/2012 às 19h (horário de Brasília) o Portal e-CAC só poderá ser acessado se as novas cadeias de certificados estiverem instaladas em seu computador. Para instalá-las, acesse os três links:
ICP-BRASIL v2
Autoridade Certificadora da Secretaria da Receita Federal v3
Autoridade certificadora do SERPRORFB v3
Sistema Operacional
Se o sistema operacional for Windows, confirme se a versão instalada é Windows XP com Service Pack 3 ou superior;
Se o sistema operacional NÃO for Windows, verifique junto ao fornecedor se o sistema suporta o uso da função de hash SHA-2.
Veja mais informações no passo-a-passo de instalação da nova cadeia.
[14] Comentário enviado por teccert em 07/07/2015 - 13:37h
Adianto que as cadeias ICP-BRASIL v2 ; Autoridade Certificadora da Secretaria da Receita Federal v3 e Autoridade Certificadora do SERPRORFB v3, já estão instaladas.
[15] Comentário enviado por worker em 07/07/2015 - 14:26h
Abra o Firefox se você está logado no token, às vezes isso ocorre, o colega postou aí em cima como logar no token. Deposis disso abra a pagina da receita e tente novamente.
acrescentado:
Quando voce instalou a cadeia de certificados, voce marcou as caixas, para todos os certificados:
-Considerar confiável esta CA para identificar sites
-Considerar confiável esta CA para identificar autores de aplicativos
Depois que voce colocar a senha do token deve surgir uma tela com as informações do seu certificado; clicando em ok abre o site
[17] Comentário enviado por worker em 08/07/2015 - 10:01h
Vamos explorar mais uma possibilidade, qual seja, por alguma razão o seu certificado digital não está sendo associado às cadeias de certificação da sua certificadora. Entre no site da sua certificadora baixe e instale a cadeia de certificados dela, reinicie o Firefox e repita os procedimentos para acesso.
[18] Comentário enviado por teccert em 08/07/2015 - 16:34h
Caro Worker, graças a sua inteligência e boa vontade em ajudar aos mais simples, agora posso usar o meu certificado digital etoken alladin (usb) no Ubuntu 14.04. Foi só seguir mais uma vez a sua orientação acima, que tudo voltou a funcionar, já me loguei no site da Receita Federal.
Vale salientar que a mais de 2 anos que venho tentando fazer com que este token usb funcionasse no Ubuntu 14.04, porém só agora consegui por meio das sua orientações.
Que Deus te dê sempre mais; estarei sempre grato ao amigo!
[22] Comentário enviado por fsb30 em 17/12/2016 - 14:03h
Srs, boa tarde! Sou novo entusiasta do Linux e, no momento, usuário do Linux Mint. Uma das coisas que preciso resolver para concluir a migração das "Janelas" para cá é a questão do uso dos Certificados Digitais. Faço uso constante do certificado da empresa para acessar a Receita Federal. Pesquisando, achei esse artigo acima muito bem escrito e didático. Fiz todo o procedimento, no entanto estou tendo problema de dependência com uma lib e estou tendo esse retorno de erro:
A descompactar safesignidentityclient (3.0.43) ...
dpkg: problemas com dependências impedem a configuração de safesignidentityclient:
safesignidentityclient depende de libssl0.9.8; porém:
Pacote libssl0.9.8 não está instalado.
dpkg: erro ao processar o pacote safesignidentityclient (--install):
problemas de dependência - deixando desconfigurado
Erros foram encontrados durante o processamento de:
safesignidentityclient
Qual a sugestão dos nobres amigos para resolver isso? Fico grato desde já!
Um detalhe, o firefox mais novos que o 46(+-), tem quebrado a cadeia de certificado brasileira, ou sei lá o que, o fato é que ele não reconhece os sites brasileiros como seguro, caso tenha alguma dificuldade, tenha isto em mente.