Como posso configurar a autenticação SSH do cartão inteligente?

8

Eu gostaria de poder usar o SSH na minha máquina usando um Smart Card Gemalto .NET como o método de autenticação. Como isso poderia ser feito em uma máquina Fedora 13 (ou estilo genérico da Red Hat)?

Estas são as etapas aproximadas que considero necessárias:

  1. Provisão de certificado para o cartão inteligente (e possivelmente uma CA para emiti-lo?)
  2. Obtenha o certificado no cartão inteligente
  3. Configurar o servidor SSH para permitir a autenticação por cartão inteligente e configurá-lo para usar um determinado certificado / CA
  4. Um cliente SSH com suporte a cartão inteligente (pontos extras para um baseado no Windows gratuito)
por Geoff Childs 11.08.2010 / 22:11

4 respostas

2

Os drivers da Gemalto agora são de código aberto, acredito. Eles têm o código-fonte em seu site.

Você precisará configurar o módulo pam (não sei como fazer isso, mas o código certamente está lá). Eu imagino que a configuração pam exigiria um mapeamento de um princípio de certificado para um ID de usuário local.

Eu acredito que o GDM suporta cartões inteligentes agora, mas não sei como ele é detectado. Eu tentarei pesquisar isso mais tarde (a maneira mais fácil é provavelmente dar uma olhada no código-fonte gdm ).

É claro que tudo isso requer que pcscd e libpcsclite sejam instalados. Você também precisará copiar o libgtop11dotnet.so para /usr/lib .

    
por 17.08.2010 / 21:32
2

Eu recomendo kerberos. MIT produz um cliente & krb5 servidor.

vwduder, você poderia recomendar um leitor de cartão inteligente e uma fonte de cartões compatíveis com FIPS-201?

link

Eu tenho uma cópia no meu próprio servidor, mas neste momento não sou popular o bastante neste stack para poder compartilhá-lo com você. O acima é apenas um pouco menos confiável do que os nossos próprios servidores, então você provavelmente será capaz de obtê-lo deles;)

[edit] Agora sou popular o suficiente!

link

    
por 11.08.2010 / 22:28
1

Ao usar chaves RSA, 1) e 2) são triviais, porque, como veremos em 3), o certificado real é irrelevante neste contexto. Basta ir ao cacert.org ou gerar um certificado auto-assinado e está tudo pronto.

Para 3) você precisará extrair sua chave pública e instalá-la em $ HOME / .ssh / authorized_keys. Preste atenção à propriedade e permissões de arquivos! (700 para .ssh, 600 para authorized_keys). A autenticação de chave pública em todo o host é desencorajada, mas deixada como um exercício para mentes curiosas.

Quanto a 4) você deve procurar em PuTTY SC ( link ) ou -preferivelmente- PuTTY-CAC ( link ) que melhora o PuTTY SC com um melhor algoritmo de extração de chave pública e também inclui o suporte a Kerberos-GSSAPI do ramo de desenvolvimento do PuTTY .

    
por 12.08.2010 / 14:22
0

Eu fiz um vídeo para mostrar o uso de um cartão inteligente com um servidor Linux usando o PuttySC e SecureCRT . Você pode assisti-lo aqui: Como fazer SSH com seu cartão inteligente

Eu não explico como provisionar um certificado no cartão, mas se fizer isso, lembre-se de que a chave administrativa do cartão deve ser alterada usando um sistema de gerenciamento de cartões. Será muito mais fácil para você se sua empresa lhe fornecer um cartão inteligente para que você não precise se preocupar com essa parte.

Uma vez que você tenha o cartão provisionado, você precisa extrair a chave pública e adicioná-la a ~ / .sshd / authorized_key.

Para se conectar ao servidor, você pode usar ferramentas como PuttySC ou SecureCRT. Você precisará obter a biblioteca PSKC # 11 para o cartão (do fabricante do cartão inteligente ou de uma versão de código aberto). Configure a ferramenta SSH com a biblioteca, ela deve ser capaz de lê-la e encontrar o certificado.

Quando você se autenticar, a ferramenta solicitará o PIN do cartão inteligente.

    
por 13.07.2014 / 17:57

Tags