Configurando o gpg para suporte a Smartcards no Debian

Após alguns contratempos com o correio, meu fellowcard da FSFE chegou. Trata-se de um smartcard do tipo III, ou seja, as chaves criptográficas são geradas no próprio cartão, jamais saindo deles. Os mesmos são totalmente compatíveis com o gnupg, provavelmente o mais usado sistema criptográfico de chaves assimétricas do mundo livre.
O site do programa fellowship contém uma boa documentação, mas devido a certa quantidade de ajustes que tive que fazer, resolvi publicar aqui meu passo a passo.

Configuração da leitora de cartões

Iremos utilizar a leitora de cartões SCM SRC335 usb, bem suportada pelo gnupg. Como o sistema udev do Debian Sarge é muito antigo, vamos utilizar o Etch, que está bem próximo de ser lançado com estável. Abaixo segue a lista de pacotes utilizados:

  • Kernel 2.6.18-3-686;
  • udev (0.103-1)
  • gnupg (1.4.6);
  • gnupg-agent (2.0.0-5.2);
  • gnupg2 (2.0.0-5.2);
  • gpgsm ( 2.0.0-5.2);
  • pinentry-curses ( 0.7.2-3);
  • pinentry-gtk2 ( 0.7.2-3);

logado como root, crie um arquivo chamado gnupg-ccid.rules, dentro de /etc/udev/, com o seguinte conteúdo:

# GPG SmartCard Reader Support
ACTION!=”add”, GOTO=”gnupg-ccid_rules_end”
# USB SmartCard Readers
## SCM readers (SCR335, SPR532, & Co)
ACTION==”add”, SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”e001″, GROUP=”scard”, MODE=”0660″
ACTION==”add”, SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”e003″, GROUP=”scard”, MODE=”0660″
ACTION==”add”, SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”5115″, GROUP=”scard”, MODE=”0660″
# PCMCIA SmartCard Readers
## Omnikey CardMan 4040
SUBSYSTEM==”cardman_4040″, GROUP=”scard”, MODE=”0660″
LABEL=”gnupg-ccid_rules_end”

Em seguida, crie um link simbólico para este arquivo com o comando:

#ln -s /etc/udev/gnupg-ccid.rules /etc/udev/rules.d/gnupg-ccid.rules

Precisamos agora criar um grupo chamado scard:

#addgroup scard

#addgroup scard (substitua por seu usuário)

Pronto! Seu smartcard está configurado!

Configurando o gnupg

Agora vamos configurar o gnupg para utilizar o smartcard. Edite o arquivo gpg.conf, dentro do diretório $HOME/.gnupg, e ensira a seguinte linha:

use agent

É necessário reiniciar a sessão do usuário, para que as modificações entrem em vigor. Para testar, execute o seguinte comando:

$gpg –card-status

A saída deve parecer com isso:
card reader
Application ID …: D4760001234101010001000101E70101
Version ……….: 1.1
Manufacturer …..: PPC Card Systems
Serial number ….: 000004B2

Criando as subchaves

Esta parte você pode acompanhar passo-a-passo aqui. Atente principalmente para o processo de criação dos “stubs”. Enquanto não traduzimos para pt-br a documentação oficial do gnupg, essa será o sua fonte de pesquisa principal. :)

Utilizando seu smartcard

Tenha em mente o seu PIN number, e seu ADMIN PIN. Ao errar três vezes seu PIN, este só poderá ser desbloqueado com o ADMIN PIN. Caso este seja informado erroneamente três vezes, seu smartcard ficará inutilizável.

O programa pinentry ficará responsável por solicitar o PIN quando formos utilizar o cartão.

Gostaria de agradecer ao Georg Greve a Fernanda Weiden pela ajuda com a configuração, que realmente deu um pouco de trabalho.

Veja a parte 2 deste artigo: configurando suporte a SSH no gnupg via Smartcard

One Response to “Configurando o gpg para suporte a Smartcards no Debian”

  1. [...] « Configurando o gpg para suporte a Smartcards no Debian [...]

Leave a Reply


Fechar
Envie por e-mail