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

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


Introdução



A Receita Federal lançou no Brasil dois certificados o e-CNPJ e o e-CPF, com estes certificados podemos acessar áreas restritas do site da Receita entre outros serviços, logo logo a receita vai tornar esses certificados obrigatórios (no caso do e-CNPJ já é obrigatório para entregar a DCTF mensal). Maiores informações sobre estes certificados podem ser encontradas em:
Um dos clientes de nossa empresa precisava realizar alguns serviços na receita, tínhamos certa urgência, então optamos para a aquisição de um certificado e-CNPJ, aqui vai uma nota importante, os leitores de smartcard fornecidos pela Serasa (modelo Argos Mini II) não funcionaram, já fiz os testes mas não obtive sucesso, o leitor de SmartCard da CertiSign (modelo GemPC Twin) funcionou perfeitamente, só fiz os testes com esses dois modelos, portanto recomendo o GemPC Twin .

Vamos ao problema; grande parte das estações da empresa são Linux e os drivers fornecidos eram para Windows, ou seja, toda vez que eu tinha que realizar o serviço tinha que ir em uma estação Windows, sentar nesta mesa e iniciar os procedimentos, isto não tem cabimento =/

Resolvi pesquisar sobre como fazer estes cartões serem aceitos no Linux, desisti algumas vezes, mas nas minhas horas de almoço tentava pesquisar, a falta de documentação na internet e a falta de treinamento do suporte das agências certificadoras não me ajudou muito. Portanto tive que pesquisar na marra =), felizmente triunfei e vou colocar estes procedimentos neste artigo detalhando ao máximo.

Com o smartcard e a leitora em mãos, vamos começar os preparativos. Vou listar abaixo o hardware utilizado:
  • Smartcard Reader USB GemPC Twin
  • Laptop c/ Debian Sid


Nota: Eu utilizei desta vez os pacotes Debian para a instalação da leitora, mas nada impede de serem utilizados em outras distribuições, pois vou colocar os sites onde podem ser encontrados os fontes para compilação.

    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

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

Instalar XGL e Beryl no Ubuntu 6.06 LTS (Gnome)

Compartilhando o acesso à Internet para a rede usando modem DSL 500B

Restauração e registro do RedHat após utilização de repositórios CentOS

Aplicações Windows em ambiente Linux com SeamlessRDP

  
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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts