
Ich möchte mit einer Gemalto .NET Smart Card als Authentifizierungsmethode per SSH auf meinen Rechner zugreifen können. Wie kann dies auf einem Rechner mit Fedora 13 (oder einem generischen Red Hat-Modell) erfolgen?
Dies sind die groben Schritte, die meiner Meinung nach erforderlich sind:
- Bereitstellungszertifikat für die Smartcard (und ggf. eine Zertifizierungsstelle zur Ausstellung?)
- Holen Sie sich das Zertifikat auf die Chipkarte
- Konfigurieren Sie den SSH-Server, um die Smartcard-Authentifizierung zu ermöglichen, und konfigurieren Sie ihn für die Verwendung eines bestimmten Zertifikats/einer bestimmten Zertifizierungsstelle
- Ein SSH-Client mit Smartcard-Unterstützung (Extrapunkte für einen kostenlosen Windows-basierten Client)
Antwort1
Ich glaube, Gemalto-Treiber sind jetzt Open Source. Der Quellcode ist auf der Website verfügbar.
Sie müssen das pam
Modul konfigurieren (ich bin nicht sicher, wie das geht, aber der Code ist sicherlich vorhanden). Ich stelle mir vor, dass die pam
Konfiguration eine Zuordnung eines Zertifikatsprinzips zu einer lokalen Benutzer-ID erfordern würde.
Ich glaube, GDM unterstützt jetzt Smartcards, aber ich bin nicht sicher, wie es sie erkennt. Ich werde später versuchen, das herauszufinden (am einfachsten ist es wahrscheinlich, einfach einen Blick auf den gdm
Quellcode zu werfen).
Natürlich muss hierfür pcscd
und libpcsclite
installiert sein. Sie müssen außerdem die libgtop11dotnet.so
nach kopieren /usr/lib
.
Quellcode zum Kompilieren von libgtop11dotnet.so:https://github.com/AbigailBuccaneer/libgtop11dotnet
Antwort2
Ich würde Kerberos empfehlen. Das MIT stellt einen krb5-Client und -Server her.
vwduder, könnten Sie einen Smartcard-Leser und eine Quelle für FIPS-201-kompatible Karten empfehlen?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
Ich habe eine Kopie auf meinem eigenen Server, bin aber im Moment auf diesem Stacktrace nicht beliebt genug, um sie mit Ihnen zu teilen. Das Obige ist nur geringfügig weniger zuverlässig als unsere eigenen Server, Sie werden es also wahrscheinlich von ihnen bekommen können ;)
[Bearbeiten] Ich bin jetzt beliebt genug!
Antwort3
Bei der Verwendung von RSA-Schlüsseln sind 1) und 2) trivial, da, wie wir in 3) sehen werden, das eigentliche Zertifikat in diesem Zusammenhang irrelevant ist. Gehen Sie einfach zu cacert.org oder generieren Sie ein selbstsigniertes Zertifikat und schon sind Sie fertig.
Für 3) müssen Sie Ihren öffentlichen Schlüssel extrahieren und in $HOME/.ssh/authorized_keys installieren. Achten Sie auf Dateieigentümerschaft und Berechtigungen! (700 für .ssh, 600 für authorized_keys). Von einer hostweiten Authentifizierung mit öffentlichem Schlüssel wird abgeraten, sie bleibt aber als Übung für neugierige Köpfe.
Zu 4) sollten Sie sich PuTTY SC ansehen (http://www.joebar.ch/puttysc/) oder -vorzugsweise- PuTTY-CAC (http://www.risacher.org/putty-cac/), das PuTTY SC durch einen besseren Algorithmus zur Extraktion öffentlicher Schlüssel verbessert und außerdem die Kerberos-GSSAPI-Unterstützung aus dem Entwicklungszweig von PuTTY enthält.
Antwort4
Ich habe ein Video gemacht, um zu zeigen, wie man eine Smartcard mit einem Linux-Server unter Verwendung von PuttySC verwendet undSicheresCRT. Sie können es hier ansehen:So nutzen Sie SSH mit Ihrer Smartcard
Ich erkläre nicht, wie man ein Zertifikat auf der Karte bereitstellt, aber wenn Sie das tun, denken Sie daran, dass der Administratorschlüssel der Karte mithilfe eines Kartenverwaltungssystems geändert werden muss. Es wird für Sie viel einfacher sein, wenn Ihr Unternehmen Ihnen eine Smartcard zur Verfügung stellt, sodass Sie sich um diesen Teil nicht kümmern müssen.
Sobald Sie die Karte bereitgestellt haben, müssen Sie den öffentlichen Schlüssel extrahieren und ihn dann zu ~/.sshd/authorized_key hinzufügen.
Um eine Verbindung zum Server herzustellen, können Sie Tools wie PuttySC oder SecureCRT verwenden. Sie müssen die PSKC#11-Bibliothek für die Karte beziehen (entweder vom Smartcard-Hersteller oder eine Open-Source-Version). Konfigurieren Sie das SSH-Tool mit der Bibliothek. Es sollte in der Lage sein, sie zu lesen und das Zertifikat zu finden.
Bei der Authentifizierung werden Sie vom Tool zur Eingabe der Smartcard-PIN aufgefordert.