Smartcard-Authentifizierung unter CentOS

722
Lesuno

Ich habe versucht, eine Smartcard-Authentifizierung in einer Samba4-Domäne (Samba AD) zu implementieren. Derzeit habe ich zwei Domänencontroller (CentOS), einen Dateiserver und mehrere Clients (CentOS und Windows). In Bezug auf die Chipkarte habe ich einen "Téo by Xiring" -Kartenleser und eine "Gemalto IDPrime 510 (.Net V3)" -Karte. Ich habe auch die entsprechenden Treiber und kann mich unter Windows mit einer Smartcard authentifizieren, aber unter CentOS ist dies nicht möglich.

Der Chipkartenleser und die Karte scheinen von CentOS erkannt zu werden (vorhanden in lsusb -v und Einsetzen der Karte startet "Smart Card Manager", informiert jedoch darüber, dass das Zertifikat nicht bekannt ist und die Karte nicht formatiert ist). Mit dem Modul libgtop11dotnet kann ich jedoch das Zertifikat lesen und sogar eine Verbindung (mit der entsprechenden PIN) mit dem pkcs11-tool herstellen (aber ich muss das Modul angeben). Trotz alledem kann ich mich nicht mit der Smartcard bei CentOS anmelden. Auch wenn die Verwendung der Smartcard zur Anmeldung erzwungen wird, passiert nichts. Gibt es eine spezielle Modifikation für pam_pkcs11 oder Kerberos, um anzugeben, welches Modul verwendet werden soll, oder um das Benutzerzertifikat mit dem Domänenbenutzer zu verknüpfen?

Alle Befehle wie: opensc-tool -n, pklogin_finder debug, pkcs11_inspect debug und pkcs11_listcerts debug geben einen Fehler zurück.

Befehle:

[MYDOMAIN\administrator@Client1 ~]$ pkcs11-tool --module=/usr/local/lib/libgtop11dotnet.so -l -O Using slot 0 with a present token (0x0) Logging in to ".NET #514CA4DC28D2DF4D". Please enter User PIN: Certificate Object; type = X.509 cert label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Public Key Object; RSA 2048 bits label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Usage: encrypt, verify Private Key Object; RSA label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Usage: decrypt, sign   [MYDOMAIN\administrator@Client1 ~]$ modutil -list -dbdir /etc/pki/nssdb Listing of PKCS #11 Modules ----------------------------------------------------------- 1. NSS Internal PKCS #11 Module slots: 2 slots attached status: loaded  slot: NSS Internal Cryptographic Services token: NSS Generic Crypto Services  slot: NSS User Private Key and Certificate Services token: NSS Certificate DB  2. libgtop11dotnet library name: /usr/local/lib/libgtop11dotnet.so slots: 5 slots attached status: loaded  slot: XIRING Teo 00 00 token: .NET #514CA4DC28D2DF4D  slot: empty token:  slot: empty token:  slot: empty token:  slot: empty token: -----------------------------------------------------------   [MYDOMAIN\administrator@Client1 ~]$ opensc-tool -l # Detected readers (pcsc) Nr. Card Features Name 0 Yes XIRING Teo 00 00   [MYDOMAIN\administrator@Client1 ~]$ pcsc_scan PC/SC device scanner V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.8 Using reader plug'n play mechanism Scanning present readers... 0: XIRING Teo 00 00  Tue Sep 25 07:18:18 2018 Reader 0: XIRING Teo 00 00 Card state: Card inserted, Shared Mode, ATR: 3B 16 96 41 73 74 72 69 64  ATR: 3B 16 96 41 73 74 72 69 64 + TS = 3B --> Direct Convention + T0 = 16, Y(1): 0001, K: 6 (historical bytes) TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU 250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s + Historical bytes: 41 73 74 72 69 64 Category indicator byte: 41 (proprietary format)  Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 16 96 41 73 74 72 69 64 Gemalto .NET v2.0   [MYDOMAIN\administrator@Client1 ~]$ opensc-tool -n Using reader with a card: XIRING Teo 00 00 Unsupported card   [MYDOMAIN\administrator@Client1 ~]$ pkcs11_listcerts debug DEBUG:pam_config.c:238: Using config file /etc/pam_pkcs11/pam_pkcs11.conf DEBUG:pkcs11_lib.c:182: Initializing NSS ... DEBUG:pkcs11_lib.c:192: Initializing NSS ... database=/etc/pki/nssdb DEBUG:pkcs11_lib.c:210: ... NSS Complete DEBUG:pkcs11_listcerts.c:69: loading pkcs #11 module... DEBUG:pkcs11_lib.c:235: Looking up module in list DEBUG:pkcs11_lib.c:238: modList = 0x21a49c0 next = 0x21bf3c0  DEBUG:pkcs11_lib.c:239: dllName= <null>  DEBUG:pkcs11_lib.c:238: modList = 0x21bf3c0 next = 0x0  DEBUG:pkcs11_lib.c:239: dllName= libgtop11dotnet.so  DEBUG:pkcs11_listcerts.c:77: initialising pkcs #11 module... DEBUG:pkcs11_listcerts.c:94: no token available 

Danke im Voraus.

1
Zeigt das pkcs11-tool die Zertifikate _ohne_ die `-l`-Option an? grawity vor 5 Jahren 1
Ja, ab dem Moment, an dem ich das Modul spezifiziere, funktioniert dieser Befehl gut. Ich habe einfach nicht den letzten Teil: `[MYDOMAIN \ administrator @ Client1 ~] $ pkcs11-tool --module = / usr / local / lib / libgtop11dotnet.so -O Verwendung von Slot 0 mit einem vorhandenen Token (0x0) -Zertifikat Objekt; Typ = X.509 Zertifizierungsetikett: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Objekt mit öffentlichem Schlüssel; RSA 2048-Bit-Label: a1b062f9-7bfd-af90-3d7e-61cfd2105a0a ID: a1b062f97bfdaf903d7e61cfd2105a0a145fec47 Verwendung: verschlüsseln, überprüfen ' Lesuno vor 5 Jahren 0
pam_pkcs11 wird verwendet, um sich am lokalen Rechner anzumelden. Möglicherweise müssen Sie einen pam_krrb5 verwenden. Kerberos verwendet PKINT zur Authentifizierung mithilfe der Smartcard beim Domänencontroller (KDC). Douglas Engert vor 5 Jahren 0
Hast Du Dir angesehen; https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s1-kerberos-pam.html Douglas Engert vor 5 Jahren 0
Um zu sehen, was mit PKCS # 11 los ist, können Sie [OpenSC SPY] (https://github.com/OpenSC/OpenSC/wiki/Using-OpenSC) verwenden. Es ist ein PKCS # 11-Modul, das ein anderes PKCS # lädt. 11 Modul. Douglas Engert vor 5 Jahren 0
https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html kann hilfreich sein. Suchen Sie nach dem Abschnitt PKINIT. Der Client-Computer und das KDC müssen den jeweils anderen Zertifizierungsstellen vertrauen. Sie können das pkcs11-tool --test --login verwenden, um zu testen, ob die Karte etwas signieren kann. https://github.com/AbigailBuccaneer/libgtop11dotnet kann hilfreich sein. Der "Smart Card Manager" könnte stören. Douglas Engert vor 5 Jahren 0
Hallo, zunächst einmal vielen Dank für Ihre Hilfe. Ich habe bereits OpenSC SPY, aber alle Befehle, außer dem pkcs11-tool (wenn ich das Modul: libgtop11dotnet spezifiziere), geben einen Fehler zurück. Der Befehl erkennt, dass die Karte eingelegt ist, kehrt jedoch zurück: "Verbindung zur Karte fehlgeschlagen: Karte ist ungültig oder kann nicht verarbeitet werden". In Bezug auf PKINIT habe ich auch Probleme. Mit der Modifikation von krb5.conf kann ich mich mit einer Smartcard auf Kerberos verbinden. Wenn ich ein "kinit" mache, wird die PIN erwartet und wenn ich den richtigen Pin stecke, funktioniert es. Lesuno vor 5 Jahren 0
Aber auch nach der Bearbeitung von pam.d-Dateien (wie hier: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system-level_authentication_guide/krb-smart-cards), jedoch durch Ändern des Moduls libgtop11dotnet.so) Ich kann immer noch keine Verbindung zu einer Sitzung mit einer Smartcard herstellen. Es passiert nichts, wenn ich die Karte auf den Sperrbildschirm schiebe. Ich glaube, ich bin auf dem richtigen Weg, aber ich bin blockiert. Lesuno vor 5 Jahren 0
Ich habe auch den Befehl "pkcs11-tool --module = / usr / local / lib / libgtop11dotnet.so --test --login" ausprobiert, gibt jedoch Folgendes zurück: `Verwendung von Steckplatz 0 mit einem vorhandenen Token (0x0) Anmelden bei" .NET # 514CA4DC28D2DF4D ". Bitte geben Sie die Benutzer-ID ein: 0 (0). Bitte geben Sie die Benutzer-ID ein: 0: 0. DouglasEngert Lesuno vor 5 Jahren 0

0 Antworten auf die Frage