ti-enxame.com

Como posso configurar a autenticação Smart Card SSH?

Eu gostaria de ser capaz de ssh na minha máquina usando um cartão inteligente do Gemalto .NET como o método de autenticação. Como isso poderia ser feito em uma máquina Fedora 13 (ou Generic Red Hat)?

Estes são os passos difíceis que eu acho que são necessários:

  1. Certificado de provisão para o cartão inteligente (e possivelmente um CA para emiti-lo?)
  2. Obtenha o certificado no cartão inteligente
  3. Configure o servidor SSH para permitir a autenticação do cartão inteligente e configurá-lo para usar um certificado/ca específica
  4. Um cliente SSH que tem suporte a cartão inteligente (pontos extras para um Windows Grátis Baseado)
9
Geoff Childs

Drivers Gemalto agora são de código aberto eu acredito. Eles têm o código-fonte em seu site.

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

GDM Eu acredito que suporta cartões inteligentes agora, mas não tenho certeza de como detecta. Eu tentarei olhar isso mais tarde (maneira mais fácil é provavelmente apenas espiar no código-fonte gdm).

Claro que tudo isso requer pcscd e libpcsclite para ser instalado. Você também precisará copiar o libgtop11dotnet.so para /usr/lib.

2
vwduder

Eu recomendaria Kerberos. MIT produz um cliente e servidor KRB5.

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

http://csrc.nist.gov/publications/fips/fips201-1/fips-201-1-chng1.pdf

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

[editar] Agora eu sou popular o suficiente!

http://www.colliertech.org/state/fips-201-1-chng1.pdf

2
cjac

Ao usar as teclas RSA, 1) e 2) são triviais, porque, como veremos em 3), o certificado real é irrelevante neste contexto. Basta cabeça para cacert.org ou gerar um certificado auto-assinado e você está todo definido.

Para 3) você precisará extrair sua chave pública e instalá-lo em $ HOME/.SSH/AUTORIZED_KEYS. Preste atenção à propriedade e permissões do arquivo! (700 para .ssh, 600 para autorizado_keys). A autenticação de chave pública do Host-Wide é desencorajada, mas deixada como um exercício para mentes inquisitivas.

Quanto a 4) você deve olhar para Putty SC ( http://www.joebar.ch/puttysc/ ) ou - ou-Putty-CAC (- http://www.risacher.org/putty-cac/ ) que melhora a Putty SC com um melhor algoritmo de extração de chave pública e também inclui o suporte do Kerberos-Gssapi de o ramo de desenvolvimento da massa.

1
codehead

Eu fiz um vídeo para mostrar para usar um cartão inteligente com um servidor Linux usando Puttysc e Securecrt . Você pode assistir aqui: Como ssh com seu cartão inteligente

Eu não explico como provisionar um certificado no cartão, mas se você fizer, lembre-se que a chave de administração 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.

Depois de ter o cartão provisionado, você precisa extrair a chave pública e adicioná-lo a ~/.sshd/autorized_key.

Para se conectar ao servidor, você pode usar ferramentas como Puttysc ou Securecr. Você precisará obter a biblioteca do PSKC # 11 para o cartão (no 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 ler e encontrar o certificado.

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

0
Matthias Buchner