System-Authentifizierung via Nitrokey – Digitaler Schutzschild Teil9

Vorwort

Ich nenne die Serie »digitaler Schutzschild«, weil alle Maßnahmen in der Summe dazu beitragen, die Privatsphäre und auch Sicherheit bestmöglich bzw. meinen Anforderungen entsprechend zu schützen. Die Beiträge werden eher kurz bzw. kompakt sein und gehen nicht zu sehr ins Detail. Das soll dem Informationsgehalt jedoch keinen Abbruch tun.

Digitaler Schutzschild

Mein Notebook steht nicht nur zu Hause auf dem Schreibtisch, sondern bereist die Welt – auch mal im Flugzeug. Daher lege ich Wert auf eine Festplattenverschlüsselung mittels dm-crypt, konfiguriert mit dem Logical Volume Management (LVM). Damit aber nicht genug, die Anmeldung / Authentifizierung an Debian GNU/Linux ist wie folgt konfiguriert:

  • Anmeldung am System nur mit eingestecktem Nitrokey (Pro) via RSA-Keys + PIN
  • Als Fallback (Stick nicht vorhanden) ist auch die Eingabe einer Passphrase möglich (50 stellig)

Auf einem Debian GNU/Linux benötigt ihr dafür die folgenden Pakete: libccid nitrokey-app libpam-poldi

Danach könnt ihr den Nitrokey mit den RSA-Schlüsseln vorbereiten, wie im Beitrag »GnuPG-Schlüsselerstellung und Smartcard-Transfer – Nitrokey Teil2« beschrieben. Die Poldi-PAM-Konfiguration läuft anschließend wie folgt ab:

Schritt [1] – Application-ID herausfinden:

gpg --card-status | grep Application

Ausgabe:

Application ID ...: D376000124010303000500006B440000
Application type .: OpenPGP

Schritt [2] – Dann muss der Nutzer mit der Smartcard verknüpft werden:

nano /etc/poldi/localdb/users
D376000124010303000500006B440000    mike

Schritt [3] – Public-Key des Nitrokeys in Poldi-Datenbank bekannt machen:

gpg-connect-agent "/datafile /etc/poldi/localdb/keys/D376000124010303000500006B440000" "SCD READKEY --advanced OPENPGP.3" /bye

Schritt [4] – Zum Schluss noch PAM konfigurieren:

nano /etc/pam.d/common-auth
# Nitrokey auth
auth      sufficient                    pam_poldi.so 
# here are the per-package modules (the "Primary" block) 
auth      [success=1 default=ignore]    pam_unix.so nullok_secure
[...]
Dieser Beitrag ist Teil einer Artikelserie:
Du kannst den Blog aktiv unterstützen! Mitmachen ➡