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: 168.387 ]

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


Instalando o OpenSC



OpenSC é um conjunto de bibliotecas que permite aos programas acessarem dispositivos SmartCard, dando suporte à leitura, escrita, criação de certificados, alteração de PIN e diversas outras opções (para mais informações: http://www.opensc.org/).

Instalação do OpenSC


No Debian:

# apt-get install opensc libopensc1 libopensc-openssl

Para outras distribuições:

# wget http://www.opensc.org/files/opensc-0.9.4.tar.gz
# tar -zxvf opensc-0.9.4.tar.gz
# cd opensc-0.9.4
# ./configure
# make; make install


Ok, bibliotecas OpenSC instaladas, agora crie um link simbólico para que os smartcard padrão PKCS11 (os utilizados pela Receita Federal) possam ser utilizados pelo OpenSC:

# ln -s /usr/lib/pkcs11/opensc-pkcs11.so /usr/lib

Pronto meus caros, instalado perfeitamente, insira o SmartCard no reader e digite:

# pkcs15-tool --list-certificates

Deverá listar o certificado contido no SmartCard, com o Nome da empresa e demais informações, exatamente como no Windows.

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

Rede wireless: autenticação em uma rede WPA

Monitorando o servidor Jabber 2 com o Bandersnatch

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

Leitura recomendada

Rodando seu script como "service" no Conectiva

FreeRADIUS - Conceitos Básicos - Parte II

Aprimoramento de Desempenho da Instalação Debian (parte 2)

Criando um tema de apresentação no Mandriva

Instalação do OpenGL em placas NVIDIA

  
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