GnuPG Smartcard

Já tinha algum tempo que eu precisava resolver de uma forma simples e prática a questão da portabilidade e segurança das minhas sub chaves GnuPG. Não que eu já não fizesse uso uma solução segura e portátil, ela só não é perfeita.

Até hoje eu mantenho a minha chave principal em um container cifrado com o software TrueCrypt, o qual está armazenado um set de midias offline,  quando necessito utilizá-la por algum motivo isso é feito em um computador dedicado a essa atividade, o qual nunca foi conectado a internet.

Para o uso diário eu tenho 3 sub chaves (uma para cifrar, uma para assinar e uma para autenticar documentos), as quais são renovadas a cada 12 meses.  O keyring com estas subchaves não possui o componente privado da minha chave principal e é mantido em um container criptografado, o qual transporto sempre comigo.

Você deve estar se perguntando, porque o “neurótico” do Brandi não está feliz com a solução atual, afinal ela parece ser “bem segura”. Concordo que é segura, usei por anos desta forma e nunca tive problemas, e na verdade acredito que poucas pessoas chegam a ser radicais como eu em relação a segurança das suas chaves…

Meu desconforto com o método atual vem do fato de que eu mantenho o volume do TrueCrypt montado  e disponível durante 100% do tempo no qual estou no computador trabalhando (o que é natural, afinal preciso de acesso ao keyring para poder usar meu email), ou seja existe o risco  mesmo que minimo, de que alguém tenha acesso não autorizado as minhas subkeys.

Qualquer pessoa que tenha (ou ganhe) acesso “lógico” ao meu computador tem condições de pegar uma cópia do keyring e de instalar um keylogger para pegar minha senha. OK OK OK eu sei que para isso funcionar a pessoa teria que passar por varias camadas de bloqueio, filtros, e softwares de segurança, mas a possibilidade sempre existe, certo?

A forma que encontrei de eliminar este risco em relação as subkeys foi adotar o uso de um GnuPG Smartcard, segue abaixo uma imagem “genérica” de um GnuPG Smartcard, como podem ver é um smartcard normal…

Apesar destes cartões já estarem disponíveis no mercado há algum tempo, faz apenas 3 semana que decidi que já passava da hora de resolver esse desconforto com as subkeys, e encomendei 2 cartões GnuPG na Kernel Concepts, posso dizer que fiquei muito satisfeito com a qualidade do atendimento e com a agilidade da loja,  tanto que pretendo comprar novamente com eles no futuro 🙂

O custo total de cada cartão GnuPG, já incluindo o frete como carta registrada via deutch post (3 semanas de para chegar no brasil), foi de aproximadamente 18 euros.

O leitor de smartcard que estou utilizando é um Omnikey Cardman 3021, que é bem facil de achar para comprar nas lojas brasileiras, tendo inclusive um otimo custo, menos de R$ 60,00.

Não chega a ser barato, mas valeu a pena… principalmente se eu considerar o valor absurdo que paguei no token OTP da Blizzard na ultima semana.

Os meus cartões chegaram ontem e já fiz o seu setup,  movendo minhas sub chaves para o smartcard:

% gpg --card-status
Application ID ...: D2760001240102000005000007D50000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 000007D5
Name of cardholder: Edson Brandi
Language prefs ...: en
Sex ..............: male
URL of public key : http://blog.ebrandi.eti.br/401FF8F3.asc
Login data .......: hidden
Signature PIN ....: forced
Key attributes ...: 2048R 2048R 2048R
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 3 3
Signature counter : 5
Signature key ....: ADE3 488D 2868 B427 974C  EC40 068F 9429 1765 8828
      created ....: 2010-10-30 12:09:30
Encryption key....: 9A0C 7F5C EBF8 DB17 C580  0CD0 0BCB DBC8 82AF B782
      created ....: 2010-10-21 11:36:27
Authentication key: 207E C732 4B33 5C26 67EF  B6F5 8262 A0A8 6789 CD84
      created ....: 2010-10-30 12:10:01
General key info..: pub  2048R/17658828 2010-10-30 Edson Brandi
sec#  2048R/401FF8F3  created: 2010-10-21  expires: never
ssb>  2048R/82AFB782  created: 2010-10-21  expires: 2011-10-30
                      card-no: 0005 000007D5
ssb>  2048R/17658828  created: 2010-10-30  expires: 2011-10-30
                      card-no: 0005 000007D5
ssb>  2048R/6789CD84  created: 2010-10-30  expires: 2011-10-30
                      card-no: 0005 000007D5

O GnuPG Smartcard suporta senhas de até 32 caracteres, ficando bloqueado no caso da senha de usuário ser inserida errada 3 vezes, da mesma forma se a senha de administração for inseria errada 3 vezes o cartão é inutilizado de forma definitiva.

Não existe uma forma de se extrair as chaves depois que elas são movidas para o smartcard, ou seja, posso dizer que finalmente tenho  a partir de hoje uma forma 100% segura para transporte e uso rotineiro das minhas subchaves gnupg.

Se no futuro o smartcard for danificado, bastará acessar o backup keyring,  o qual está armazenado em segurança junto com a chave principal, e gerar um novo cartão (por isso que comprei 2) 🙂

Agora o próximo próximo passo será configurar o meu cliente de SSH para trabalhar com o cartão, de forma a habilitar  seu uso para  “two factor autentication” nos  meus servidores.

[ ]´s Edson

Comments are closed.