Comment configurer l'authentification SSH par carte à puce?

9

Je voudrais pouvoir SSH sur ma machine en utilisant une carte à puce Gemalto .NET comme méthode d'authentification. Comment cela pourrait-il être fait sur une machine Fedora 13 (ou style générique Red Hat)?

Voici les étapes approximatives qui, selon moi, sont nécessaires:

  1. Fournir un certificat pour la carte à puce (et éventuellement une autorité de certification pour l’émettre?)
  2. Obtenez le certificat sur la carte à puce
  3. Configurer le serveur SSH pour autoriser l'authentification par carte à puce et le configurer pour utiliser un certificat / CA particulier
  4. Un client SSH qui prend en charge les cartes à puce (points supplémentaires pour un logiciel Windows gratuit)
Geoff Childs
la source

Réponses:

2

Les pilotes Gemalto sont maintenant open source je crois. Ils ont le code source sur leur site Web.

Vous devrez configurer le pammodule (je ne sais pas comment faire, mais le code est certainement là). J'imagine que la pamconfiguration nécessiterait une cartographie d'un principe de certificat à un identifiant d'utilisateur local.

Je pense que GDM prend en charge les cartes à puce maintenant, mais je ne sais pas comment il les détecte. J'essaierai de vérifier cela plus tard (le moyen le plus simple est probablement de jeter un œil au gdmcode source).

Bien sûr, tout cela nécessite pcscdet libpcsclitedoit être installé. Vous aurez également besoin de copier le libgtop11dotnet.soà /usr/lib.

vwduder
la source
Merci! Cela m'a mis sur la bonne voie. Il y a aussi des informations très utiles ici si quelqu'un regarde une configuration basée sur RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Geoff Childs
Où trouvez-vous le fichier libgtop11dotnet.so?
user568021
2

Je recommanderais des kerberos. Le MIT produit un client et un serveur krb5.

vwduder, pourriez-vous recommander un lecteur de carte à puce et une source de cartes compatibles FIPS-201?

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

J'ai une copie sur mon propre serveur, mais je ne suis pas assez populaire sur ce stacktrace pour le partager avec vous en ce moment. Ce qui précède n'est que légèrement moins fiable que nos propres serveurs, vous pourrez donc probablement les obtenir d'eux;)

[modifier] Je suis maintenant assez populaire!

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

cjac
la source
@vwduder a essayé de répondre, mais il ne fait pas encore partie de la version bêta fermée
cjac
Merci cjac! Combiné avec la contribution de vwduder, je pense que je l'ai léché.
Geoff Childs
Cool! Un de plus pendant que j'y pense. Mon père a le mérite de les avoir trouvés. smartcardworld.com
cjac
1

Lorsque vous utilisez des clés RSA, 1) et 2) sont triviales, car comme nous le verrons en 3) le certificat réel n'est pas pertinent dans ce contexte. Rendez-vous simplement sur cacert.org ou générez un certificat auto-signé et vous êtes prêt.

Pour 3), vous devrez extraire votre clé publique et l'installer dans $ HOME / .ssh / authorized_keys. Faites attention à la propriété et aux autorisations des fichiers! (700 pour .ssh, 600 pour les touches_autorisées). L'authentification par clé publique à l'échelle de l'hôte est déconseillée mais laissée comme exercice aux esprits curieux.

En ce qui concerne 4), vous devriez regarder dans PuTTY SC ( http://www.joebar.ch/puttysc/ ) ou - de préférence - PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) qui améliore PuTTY SC avec un meilleur algorithme d'extraction de clé publique et inclut également le support Kerberos-GSSAPI de la branche de développement de PuTTY.

codehead
la source
0

J'ai fait une vidéo pour montrer comment utiliser une carte à puce avec un serveur Linux en utilisant PuttySC et SecureCRT . Vous pouvez le regarder ici: Comment SSH avec votre carte à puce

Je n'explique pas comment fournir un certificat sur la carte, mais si vous le faites, n'oubliez pas que la clé d'administration de la carte doit être modifiée à l'aide d'un système de gestion de carte. Ce sera beaucoup plus facile pour vous si votre entreprise vous fournit une carte à puce afin que vous n'ayez pas à vous soucier de cette partie.

Une fois la carte provisionnée, vous devez extraire la clé publique, puis l'ajouter à ~ / .sshd / authorized_key.

Pour vous connecter au serveur, vous pouvez utiliser des outils tels que PuttySC ou SecureCRT. Vous devrez obtenir la bibliothèque PSKC # 11 pour la carte (auprès du fabricant de la carte à puce ou d'une version open source). Configurez l'outil SSH avec la bibliothèque, il devrait pouvoir le lire et trouver le certificat.

Lorsque vous vous authentifiez, l'outil vous demandera le code PIN de la carte à puce.

Matthias Buchner
la source