[FUG-BR] Autenticando com SmartCard no SSH (era: Security Incident on FreeBSD Infrastructure)

Edson Brandi ebrandi em FreeBSD.org
Domingo Novembro 18 11:21:37 BRST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Em 18/11/2012 09:28, Otacílio escreveu:
>> Mas voltando ao tópico, todas as informações sobre o incidente
>> estão sendo disponibilizadas no url:
>> 
> 
> Edson, e qual o leitor que você está usando?

Eu utilizo um Omnikey Cardman 3201 e um Gemalto IDBridge CT30, ambos
funcionam muito bem no FreeBSD.

Segue um howto rapido :)

Você vai precisar instalar o gnupg pelo ports, e terá de habilitar o
suporte ao scdaemon e ao pinentry-curses.

Depois de instalar basta executar o scdaemon:

# /usr/local/bin/scdaemon --daemon

Para testar se o seu sistema está lendo o smartcard basta executar:

# gpg --card-status

Ele deve listar os dados das suas chaves armazenadas no smartcard.

Para configurar o sistema para usar o smartcard para autenticar sua
sessão ssh, vc precisa configurar o gpg-agent, para isso vc deve executar:

# gpg-agent --daemon --scdaemon-program /usr/local/bin/scdaemon
- --write-env-file --use-standard-socket --default-cache-ttl 600
- --enable-ssh-support --default-cache-ttl-ssh 600

O output do comando acima vai listar 3 variaveis de ambiente que vc
precisa setar para que o ssh consiga falar com o gpg-agent, observe
que uma delas precisa do PID do gpg-agent, logo isso vai mudar a cada
vez que vc iniciar o daemon:

Se você usa bash, a forma mais facil de fazer isso é usar um:

eval `gpg-agent --daemon --scdaemon-program /usr/local/bin/scdaemon
- --write-env-file --use-standard-socket --default-cache-ttl 600
- --enable-ssh-support --default-cache-ttl-ssh 600`

no seu ~/.bashrc :)

Para listar e adicionar as chaves disponiveis para uso com o SSH no
smartcard use um:

# ssh-add -l

Para exportar a chave publica do cartão para por adicionar ao
~/.ssh/authorized_keys da maquinas que quiser acessar, use um:

# ssh-add -L

Agora é so fazer o ssh para a maquina desejada, o sistema irá
apresentar um prompt em "curses" solicitando o seu PIN, o qual pode
ser uma senha com letras, numeros, caracteres especiais, etc. Você não
está limitado a um pin numerico.

Se precisar ver como gerar as chaves no smartcard, de uma olhada no
post do beu blog:

http://blog.ebrandi.eti.br/2010/11/como-configurar-um-smartcard-gnupg-passo-a-passo/

O procedimento para uso com o putty está em:

http://blog.ebrandi.eti.br/2010/11/o-uso-do-gnupg-smartcard-para-autenticacao-two-factor-no-openssh-usando-putty/

Se optar por usar outro smartcard que não o do openpgp, vc vai
precisar de um driver diferente para usá-lo no putty, as duas outras
opções que conheço estão nos links abaixo:

http://www.risacher.org/putty-cac/
http://www.joebar.ch/puttysc/

Como eu nunca usei outros smartcards com o FreeBSD não sei dar
detalhes de como configurar o pcsc-lite e o ccid :/

Espero ter ajudado

- -- 
[  ]'s Edson

Edson Brandi - ebrandi em FreeBSD.org
FreeBSD Documentation Committer

The FreeBSD Documentation Project
FreeBSD Brazilian Portuguese Documentation Project - http://doc.fug.com.br

OpenPGP Key: 0xA5C45B43401FF8F3
1BAB 0B87 EE89 B8D4 B418  66D6 A5C4 5B43 401F F8F3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (MingW32)

iQEcBAEBAgAGBQJQqODhAAoJEO49BRlAkRPXCC4IAMREJ2YhXS2z68JFQ6uBpOzf
gAKOp8C7its60LmX25li0FJhY6a1bksE7oLIWIhaKCfMZBSO/of3TQVCDa4aZitD
XRtpuG2VjbKkQQH1pHscyxLHN/R9p37onnGPB+hg1Cmo9C8QPUqCeX+6Y1hBzQ+p
LG0NLJO0XRJO9csumW6cM6KUqFt6x3jQFVZIIYNjXd+fYU/Hx2qhQJfWHy9Tfp4s
HD976UL0kdStuI6BXA3Dq0cflQiZoRyzTJE3r3eKzWuQ3YLjeU5ik69Ke/FhIuQN
sSxAXFlnxX/zsgZG6+skKF2LQBegZK0eG2lCKCdLTvDYF9OKiLZRs0liMTOCWoE=
=g7SO
-----END PGP SIGNATURE-----


Mais detalhes sobre a lista de discussão freebsd