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





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