Dies ist eine alte Version des Dokuments!
Nitrokey 3C NFC in der Praxis unter Linux Mint 20.2 Cinnamon
In diesem Kapitel befassen wir uns eingehend mit dem Nitrokey 3C NFC unter Linux Mint 20.2 Cinnamon. Weitere Informationen zu den Nitrokey-Sticks findet man auch hier bzw. im Support Forum.
Der neue Nitrokey 3 mit NFC, USB-C, Rust, Common Criteria EAL 6+
Der neue Nitrokey 3 ist der beste Nitrokey den wir je entwickelt haben. Er bietet erstmals NFC, USB-C. Der Nitrokey 3 vereint die Funktionen vorheriger Nitrokey Modelle: FIDO2, Einmalpasswörter, OpenPGP Chipkarte, Curve25519, Passwort-Manager, Common Criteria EAL 6+ zertifiziertes Secure Element, Firmware-Updates. Damit werden Ihre Accounts zuverlässig gegen Phishing und Passwort-Diebstahl geschützt und Ihre Kommunikation und Daten verschlüsselt. Mit starker Hardware-Verschlüsselung, vertrauenswürdig dank Open Source, Qualität made in Germany.
Quelle: https://shop.nitrokey.com/de_DE/shop/product/nk3cn-nitrokey-3c-nfc-148
Mit Hilfe von asymmetrischen Schlüsselmaterials (PGP und S/MIME) können eMails sowie Dateien und ganze Festplatten verschlüsselt und natürlich auch wieder entschlüsselt werden. Hierzu verwenden wir den Nitrokey 3C NFC welcher hier für einen Betrag von 49 € erstanden werden kann. In dem folgenden Beitrag gehen wir auf die Verwendung unter Linux Mint 20.2 Cinnamon ein.
WICHTIGER HINWEIS (Stand Nov. 2021)
Stand November 2021:
Bei der aktuelle Auslieferung1) der Nitrokey 3C NFC handelt sich um eine Vorbestellung. Das ausgelieferte Gerät wird erst einmal nur FIDO2 sowie FIDO U2F unterstützen und bereits die Hardware (inkl. Secure Element) für alle aufgeführten Funktionen beinhalten.
Weitere Funktionen wie Einmalpasswörter, Passwortmanager und OpenPGP Chipkarte sind noch nicht implementiert, sondern werden erst später per Firmware-Updates bereitgestellt!
Hardwareinformationen
Informationen über den Stick können wir mit Hilfe des Befehls usb-devices
aus dem RPM-Paket usbutils dem System abverlangen.
# usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=20a0 ProdID=42b2 Rev=01.00 S: Manufacturer=Nitrokey S: Product=Nitrokey 3 C: #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=100mA I: If#=0x0 Alt= 0 #EPs= 2 Cls=0b(scard) Sub=00 Prot=00 Driver=(none) I: If#=0x1 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid I: If#=0x2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm I: If#=0x3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ac
Mit dem Befehl lshw
können wir uns ebenso anzeigen lassen, ob der Stick angesteckt und erkannt wird. Da der USB-Stick unter die Klasse input
fällt suchen wir gezielt nach diesen Geräte-Typus.
# lshw -short -C input
H/W path Device Class Description ====================================================== /0/100/1a/1/1/2 input Nitrokey 3
Mit Hilfe des Befehls lsusb
aus dem RPM-Paket usbutils können wir auch die Produkt- und Hersteller-Identifikationsnummer des Nitrokey-Sticks ermitteln.
# lsusb
Bus 001 Device 005: ID 20a0:42b2 Clay Logic
Im Syslog wird uns beim Anstecken des Sticks dies entsprechend protokolliert:
Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [108360.162781] thinkpad_acpi: battery 1 registered (start 0, stop 0) Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.203649] usb 1-1.2: new full-speed USB device number 5 using ehci-pci Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314951] usb 1-1.2: New USB device found, idVendor=20a0, idProduct=42b2, bcdDevice= 1.00 Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314956] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314958] usb 1-1.2: Product: Nitrokey 3 Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314961] usb 1-1.2: Manufacturer: Nitrokey Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.316882] hid-generic 0003:20A0:42B2.0015: hiddev3,hidraw0: USB HID v1.11 Device [Nitrokey Nitrokey 3] on usb-0000:00:1a.0-1.2/input1 Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.317184] cdc_acm 1-1.2:1.2: ttyACM3: USB ACM device Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: 5 was not an MTP device Nov 3 17:34:33 djangos-thinkpad-x230 snapd[1106]: hotplug.go:199: hotplug device add event ignored, enable experimental.hotplug Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2" Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: 5 was not an MTP device
Paketabhängigkeiten
Für den Zugriff auf die SmartCard bzw. auf den Nitrokey Pro benötigen wir z.B. für GPG den SmartCard-Daemon scdeamon und die Bibliothek libccid welche bei Linux Mint bereits in der Basisinstallation enthalten ist und mit Hilfe der Pakets scdaemon und libccid bereitgestellt werden.
Diese Pakete installieren wir, falls diese nicht bereits im System vorhanden sind, bei Bedarf mit Hilfe von apt.
$ sudo apt install scdaemon libccid
udev-Regeln
Für den Betrieb unter Linux Mint 20 insbesondere beim NitroPad X230 müssen wir uns noch passende udev-Definitionen hier besorgen.
Wir wechseln also erst einmal in das entsprechende Konfigurationsverzeichnis /etc/udev/rules.d/
.
# cd /etc/udev/rules.d/
Dann holen wir uns die entsprechende Musterdatei auf unseren Rechner.
# wget https://www.nitrokey.com/sites/default/files/41-nitrokey.rules
Zum Aktivieren unserer neuen udev-Regeldatei lassen wir diese nun erneut einlesen; hierzu verwenden wir folgenden Befehl:
# udevadm control --reload-rules
Browser
Verwenden wir den Browser Google Chrome bzw. Chromium müssen wir nichts besonderes unternehmen, da diese bereits bestens vorbereitet sind. Auch beim Browser Firefox 78.0.2esr (64-bit) bedarf es keiner gesonderten Konfiguration mehr. Im Zweifelsfall kann man sich aber auch vergewissern, ob die Option hier richtig gesetzt ist.
Im Zweifelsfall geben wir also in der Adresszeile about:config
ein und suchen dann nach der Option u2f.
Mit einem Doppelklick würden wir die Option aktivieren indem wir den Parameter auf auf true setzen..
Webserver/Anwendung
Nextcloud
Vorbereitende Arbeiten
Bevor wir unseren Nitrokey 3C NFC als zusätzliches Authentifizierungs-Gerät verwenden können, melden wir uns wie gewohnt an unserem Konto an.
Die Einrichtung unseres Nitrokey 3C NFC erfolgt über das Menü [ Einstellungen ] und Sicherheit. Hier finden wir im Abschnitt Zwei-Faktor-Authentifizierung den entsprechenden Abschnitt.
Zum An- bzw. Einbinden unseres Nitrokey 3C NFC klicken wir auf die Schaltfläche [U2F-Gerät hinzufügen].
Den Hinweisen entsprechend stecken wir nun den Kryptostick an den USB-C Port des Rechners und berühren die grün leuchtende Fläche auf dem Kryptostick.
Anschließend vergeben wir noch einen Namen für das verbundene Krypto-Device.
Anmelden mit zwei Faktor-Authentifizierung
Wenn wir uns nun zukünftig an unserer Cloud anmelden, werden wir wie gewohnt nach dem User und Passwort gefragt.
Nach dem Bestätigen der Daten werden wir nun gebeten unseren Nitrokey 3C NFC-Stick anzustecken und die Touch-Taste darauf zu drücken bzw. genauer gesagt zu berühren.
Nach einer Sekunde werden wir automatisch angemeldet und wir können den Stick wieder vom USB-Port abziehen.
Anmelden mit zwei Faktor-Authentifizierung
Wenn wir uns nun zukünftig bei GitHub anmelden, werden wir wie gewohnt nach dem User und Passwort gefragt.
Anschließend werden wir aufgefordert den Nitrokey 2C NFC anzustecken und die Touch-Taste darauf zu drücken bzw. genauer gesagt zu berühren.
Nach dem Bestätigen der Daten werden wir nun gebeten unseren Nitrokey 3C NFC-Stick anzustecken bzw. die Touch-Taste darauf zu drücken bzw. genauer gesagt zu berühren.
Nach einer Sekunde werden wir automatisch angemeldet und wir können den Stick wieder vom USB-Port abziehen.