Utilizando certificados e-CNPJ e e-CPF no Linux

A Receita Federal lançou no ano passado um certificado para pessoas físicas e pessoas jurídicas, respectivamente o e-CPF e o e-CNPJ, munido destes certificados podemos realizar junto ao site da receita diversos serviços disponíveis mediante autenticação. Vou neste artigo detalhar os procedimentos desde a instalação do SmartCard Reader até a configuração do Mozilla para acessar estes certificados.

[ Hits: 166.370 ]

Por: Bruno Cesar Brito SantAnna em 01/05/2005


Download e instalação



A instalação é tranqüila, vamos aos downloads.

Antes de mais nada instale (ou verifique se já está instalada) a biblioteca libusb. No Debian:

# apt-get install libusb

Vamos ter que instalar o PCSC-lite, que na verdade é uma biblioteca que controla a comunicação entre os SmartCards e as leitoras. Mais informações em:
No Debian:

# apt-get install pcscd libpcsclite1

OBS: Somente na distribuição Debian que encontrei o serviço pcscd.

Para outras distribuições:

# wget https://alioth.debian.org/download.php/419/pcsc-lite-1.2.0.tar.gz
# tar -zxvf pcsc-lite-1.2.0.tar.gz
# cd pcsc-lite-1.2.0
# ./configure;make;make install


Instale também o pcsc-tools, não é obrigatório, mas é para ver se seu smartcard foi detectado.

No Debian:

# apt-get install pcsc-tools

Para outras distribuições:

# wget http://linux.iq.usp.br/debian/pool/main/p/ pcsc-tools/pcsc-tools_1.4.0.orig.tar.gz
# tar -zxvf pcsc-tools_1.4.0.orig.tar.gz
# cd pcsc-tools_1.4.0.orig
# make; make install


Ok, tudo pronto. Vamos agora instalar o driver para a leitora, chamado ccid (como informei antes Leitora GemPC Twin, marca GemPlus).

Na verdade é um driver genérico que funciona com a maioria das leitoras usb (veja a lista das leitoras compatíveis em http://pcsclite.alioth.debian.org/ccid.html).

No Debian:

# apt-get install libccid

Para outras distribuições:

# wget http://alioth.debian.org/download.php/992/ccid-0.9.3.tar.gz
# cd ccid-0.9.3
# ./configure
# make; make install


Ok, tudo instalado. Agora plugue sua leitora no usb, no Debian reinicie o serviço pcscd, nas outras distros tente plugar e executar o passo abaixo, se não funcionar reinicie o sistema.

Agora verifique se a leitora foi detectada com o pcsc_scan:

# pcsc_scan

O output deve ser algo do tipo:


Certo, tudo instalado perfeitamente =). Caso não tenha conseguido fazer o mesmo funcionar, sugiro que procure os pacotes binários específicos de sua distribuição para os programas instalados acima.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Download e instalação
   3. Instalando o OpenSC
   4. Configurando o Mozilla para acesso a SmartCards
   5. Conclusão
Outros artigos deste autor

Monitorando o servidor Jabber 2 com o Bandersnatch

Rede wireless: autenticação em uma rede WPA

Ferramenta samba-vscan: antivírus nos compartilhamentos do Samba

Leitura recomendada

Visual Source Safe no Linux

Mini-manual do Fluxbox no Zenwalk

AirPlay Receptor em Raspberry Pi

Habilitando multilib no Slackware - Atualizado e simplificado

Como criar uma distribuição baseada no Debian usando o programa Live-Build

  
Comentários
[1] Comentário enviado por shocker em 03/05/2005 - 13:20h

Muito interessante.
Parabéns.

[]'s
Alan Cota.

[2] Comentário enviado por agk em 04/05/2005 - 10:27h

Bastante interessante, acredito que o e-cnpj e o e-CPF se tornem um padrão futuramente.
Parabéns, ótimo artigo.

[3] Comentário enviado por jragomes em 06/05/2005 - 22:20h

era exatamente disso que eu precisava!!! SHOW DE BOLA
Parabéns!!

[4] Comentário enviado por alexander.lopes em 04/01/2006 - 12:43h

Me ajudou bastante seu artigo. Só gostaria de acrescentar aqui que tive problemas com o pacote pcsc-lite-1.2.0 citado no artigo (Linux Gentoo). Com a versão 1.2.9 (beta) funcionou bem.

[5] Comentário enviado por mrafa em 12/03/2009 - 18:26h

Parece que não funciona no intrepid. Ele reconhece a leitora, mas não aceita o cartão

pkcs15-tool --list-certificates
Error: can't open /var/run/openct/status: No such file or directory
Error: can't open /var/run/openct/status: No such file or directory
Error: can't open /var/run/openct/status: No such file or directory
Error: can't open /var/run/openct/status: No such file or directory
Error: can't open /var/run/openct/status: No such file or directory
[pkcs15-tool] pkcs15.c:532:sc_pkcs15_bind_internal: unable to enumerate apps: Wrong length
[pkcs15-tool] pkcs15.c:761:sc_pkcs15_bind: returning with: Unsupported card

pcsc_scan

PC/SC device scanner
V 1.4.14 (c) 2001-2008, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.4.99
Scanning present readers
0: Gemplus GemPC Twin 00 00
Thu Mar 12 18:24:03 2009
Reader 0: Gemplus GemPC Twin 00 00
Card state: Card inserted,
ATR: 3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43
ATR: 3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43
+ TS = 3B --> Direct Convention
+ T0 = 7A, Y(1): 0111, K: 10 (historical bytes)
TA(1) = 94 --> Fi=512, Di=8, 64 cycles/ETU (55800 bits/s at 3.57 MHz)
TB(1) = 00 --> VPP is not electrically connected
TC(1) = 00 --> Extra guard time: 0
+ Historical bytes: 80 65 A2 01 01 01 3D 72 D6 43
Category indicator byte: 80 (compact TLV data object)
Tag: 6, len: 5 (pre-issuing data)
Data: A2 01 01 01 3D
Tag: 7, len: 2 (card capabilities)
Selection methods: D6
- DF selection by full DF name
- DF selection by partial DF name
- DF selection by file identifier
- Short EF identifier supported
- Record number supported
Data coding byte: 43
- Behaviour of write functions: write OR
- Value 'FF' for the first byte of BER-TLV tag fields: invalid
- Data unit in quartets: 8

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43
Gemplus GemXpresso Pro R3 E32 PK




[6] Comentário enviado por klause em 11/12/2009 - 13:00h

Também tive problema de Unsupported card:

pkcs15-tool --list-certificates
Using reader with a card: Teo by Xiring 00 00
[pkcs15-tool] pkcs15.c:532:sc_pkcs15_bind_internal: unable to enumerate apps: Incorrect parameters in APDU
[pkcs15-tool] pkcs15.c:794:sc_pkcs15_bind: returning with: Unsupported card
PKCS#15 initialization failed: Unsupported card

Alguém tem a solução?

[7] Comentário enviado por josir em 28/01/2010 - 20:21h

Olá pessoal, tentei certificar o e-cpf no Ubuntu 9.04 mas não deu certo. Os passos são bem menos que esse:

sudo apt-get install libccid opensc libopensc1 libopensc-openssl

Para ver se ele está listando os certificados:

pkcs15-tool --list-certificates

No Firefox 3.5, eu fui nos certificados e inclui o path: /usr/lib/opensc/opensc-pkcs11.so

Ele reconheceu a leitora e fez a importação corretamente. Mas quando entro no e-cac, ele não encontra o certificado.
Tem algum jeito de fazer um debug para ver onde está o erro e porque o site não encontra o certificado?

[8] Comentário enviado por byjg em 14/03/2010 - 14:34h

Primeiramente, parabéns pelo artigo.

Instalei na versão anterior do Ubuntu e funcionava perfeitamente. Entretanto na versão karmic alguns relatados aqui. Consegui resolve-los.

Ao Rodar:
pkcs15-tool --list-certificates

Erro 1:
Error: can't open /var/run/openct/status: No such file or directory

Resolução
# sudo chmod a+r -R /var/run/openct/
# sudo chmod a+x -R /var/run/openct/

Erro 2:
[opensc-explorer] reader-pcsc.c:1015:pcsc_detect_readers: returning with: No readers found
Card not present.

Resolução
Abrir o arquivo /etc/opensc/opensc.conf

e acrescentar (ou corrigir) a linha:
provider_library = /lib/libpcsclite.so.1

Na versão Karmic mudou para "/lib".

Pronto, vc poderá rodar "pkcs15-tool --list-certificates" e irá funcionar perfeitamente!


[9] Comentário enviado por byjg em 14/03/2010 - 14:40h

No Ubuntu Karmic, existem pequenas diferenças...

No Firefox (em portugues) acesse:
"Editar -> Preferencias"
Em seguida "Avançado" e na Aba "Chaves" (ou Cifra) e clicar no botão "Dispositivos de Segurança"

O caminho no Karmic é:
/usr/lib/opensc-pkcs11.so

[10] Comentário enviado por murilodb em 26/04/2010 - 13:50h

Pessoal,

Para funcionar no Karmic, além do comentado pelo byjg tive que adicionar a linha abaixo (na realidade, descomentar e tirar os outros parâmetros) no arquivo /etc/opensc/opensc.conf:

reader_drivers = pcsc;

[11] Comentário enviado por guimfonseca em 19/11/2010 - 12:01h

Na hora de abrir o certificado o mesmo pede a senha do cartão, Depois de digitado corretamente a senha ele pede pra digitar novamente alguma ideia?

[12] Comentário enviado por HER GNU/Linux em 21/01/2011 - 13:33h

Salve, Bruno!

Gostei muito do artigo. Parabéns.

Hermes

[13] Comentário enviado por panglossa em 16/02/2013 - 11:51h

Para quem estiver tendo problema de 'unsupported card' com o cartão certisign, a solução é baixar os pacotes fornecidos nesta página:

http://serasa.certificadodigital.com.br/ajuda/instalacao/outros-downloads-e-cadeias/


[14] Comentário enviado por pinduvoz em 15/08/2013 - 17:37h

Com o "pcsc_scan" ele mostra "eCPF (Cadastro de Pessoas Físicas) from Imprensa Oficial do Brasil" como cartão inserido.

Com o "resto" do artigo, não rola. Veja:

andre@office-02:~$ pkcs15-tool --list-certificates
Using reader with a card: Generic CCID Reader (100E90D0) 00 00
PKCS#15 binding failed: Unsupported card

Alguma dica?

(o cartão é da AASP - Associação dos Advogados de São Paulo).

[15] Comentário enviado por pinduvoz em 15/08/2013 - 18:43h

O certificado funciona no programa "tokenadmin" baixado de

http://va.mu/cqSo

Mas quando fui testar uma assinatura, falhou na senha para confirmação.

Alguém aí pode me indicar um link para teste que rode bem em Linux?

---

Desculpem a insistência, mas preciso disso funcionando "sob pena de ter que usar Windows". E vcs certamente não me desejam tão triste destino...

[16] Comentário enviado por carlosparisotto em 16/09/2014 - 17:01h

Ubuntu 8.04

Leitora: Gemalto PC Twin Reader

Cartão: e-CNPJ Certisign V2 2048 bits

Alguns comandos e resultados:

# dpkg -l |egrep "pcsc|pkcs|ccid"
ii libccid 1.3.1-1 PC/SC driver for USB CCID smart card readers
ii libmusclepkcs11 1.1.6-5 PKCS#11 support using the MuscleCard framewo
ii libmusclepkcs11-dev 1.1.6-5 MuscleCard PKCS#11 development files
ii libp11-0 0.2.3-2 pkcs#11 convenience library
ii libpcsc-perl 1.4.6-1 Perl interface to the PC/SC smart card libra
ii libpcsclite-dev 1.4.99-1ubuntu1 Middleware to access a smart card using PC/S
ii libpcsclite1 1.4.99-1ubuntu1 Middleware to access a smart card using PC/S
ii libpkcs11-helper1 1.05-1 library that simplifies the interaction with
ii libpkcs11-helper1-dev 1.05-1 library that simplifies the interaction with
ii pcsc-tools 1.4.11-1 Some tools to use with smart cards and PC/SC
ii pcscd 1.4.99-1ubuntu1 Middleware to access a smart card using PC/S

# pcsc_scan
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 68 00 00 00 73 C8 40 13 00 90 00
MASTERCARD issued by MLP (Marschollek, Lautenschläger and Partner)
G&D 12696-GDM-10/11 DEBIT CARD issued by BANCO DE CREDITO DEL PERU

# opensc-tool --name
EMV compatible cards

# pkcs15-tool --list-certificate
[pkcs15-tool] pkcs15.c:532:sc_pkcs15_bind_internal: unable to enumerate apps: Incorrect parameters in APDU
[pkcs15-tool] pkcs15.c:761:sc_pkcs15_bind: returning with: Unsupported card
PKCS#15 initialization failed: Unsupported card


Foi tentado instalar no Fedora 20, Centos 5 e ubuntu 8.04
Usamos outras versões mais atualizadas dos pacotes mas também sem sucesso.





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts