Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
nitrokey:linuxmint:3cnfc [21.07.2023 19:36. ] – [Nitrokey 3C NFC und Nitrokey 3A mini und Secure Shell] django | nitrokey:linuxmint:3cnfc [18.11.2024 18:55. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Nitrokey 3C NFC in der Praxis unter Linux Mint 21.1 (Vera) ====== | + | ====== Nitrokey 3C NFC und Nitrokey 3A mini in der Praxis unter Linux Mint 21.2 (Victoria) ====== |
- | {{: | + | {{: |
- | //**Der neue Nitrokey 3 mit NFC, USB-C, Rust, Common Criteria EAL 6+** | + | //**Der neue Nitrokey 3 wahlweise mit mit NFC, USB-C oder USB-A Mini sowie 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, | 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, | ||
- | 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 [[https:// | + | 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 [[https:// |
Zeile 29: | Zeile 29: | ||
I: If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm | I: If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm | ||
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms | E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
+ | E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
+ | </ | ||
+ | |||
+ | Beziehungsweise hier exeplarisch die Ausgabe beim **Nitrokey 3A mini**: | ||
+ | < | ||
+ | D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 # | ||
+ | P: Vendor=20a0 ProdID=42b2 Rev=01.05 | ||
+ | S: Manufacturer=Nitrokey | ||
+ | S: Product=Nitrokey 3 | ||
+ | C: #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=100mA | ||
+ | I: If#= 0 Alt= 0 #EPs= 2 Cls=0b(scard) Sub=00 Prot=00 Driver=usbfs | ||
+ | E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
+ | E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
+ | I: If#= 1 Alt= 0 #EPs= 2 Cls=03(HID | ||
+ | E: Ad=02(O) Atr=03(Int.) MxPS= 64 Ivl=5ms | ||
+ | E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=5ms | ||
+ | I: If#= 2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=00 Driver=cdc_acm | ||
+ | E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=255ms | ||
+ | I: If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm | ||
+ | E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms | E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms | ||
</ | </ | ||
Zeile 42: | Zeile 62: | ||
# lsusb | # lsusb | ||
- | Bus 001 Device | + | Bus 001 Device |
Im Syslog wird uns beim Anstecken des Sticks dies entsprechend protokolliert: | Im Syslog wird uns beim Anstecken des Sticks dies entsprechend protokolliert: | ||
- | < | + | < |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.203649] usb 1-1.2: new full-speed USB device number | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574335] usb 1-1.2: New USB device found, idVendor=20a0, |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314951] usb 1-1.2: New USB device found, idVendor=20a0, | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574348] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 |
- | 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 | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574353] usb 1-1.2: Product: Nitrokey 3 |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314958] usb 1-1.2: Product: Nitrokey 3 | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.574356] usb 1-1.2: Manufacturer: |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.314961] usb 1-1.2: Manufacturer: | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.577711] hid-generic 0003: |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.316882] hid-generic 0003: | + | Jul 22 11:43:25 djangos-thinkpad-x230 kernel: [26709.578121] cdc_acm 1-1.2:1.2: ttyACM3: USB ACM device |
- | Nov 3 17:34:33 djangos-thinkpad-x230 kernel: [113260.317184] cdc_acm 1-1.2:1.2: ttyACM3: USB ACM device | + | Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: checking bus 1, device |
- | Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device | + | Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: bus: 1, device: |
- | Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: | + | Jul 22 11:43:25 djangos-thinkpad-x230 snapd[999]: hotplug.go:200: hotplug device add event ignored, enable experimental.hotplug |
- | Nov 3 17:34:33 djangos-thinkpad-x230 snapd[1106]: hotplug.go:199: hotplug device add event ignored, enable experimental.hotplug | + | Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: checking bus 1, device |
- | Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: checking bus 1, device | + | Jul 22 11:43:25 djangos-thinkpad-x230 mtp-probe: bus: 1, device: |
- | Nov 3 17:34:33 djangos-thinkpad-x230 mtp-probe: bus: 1, device: | + | |
===== Paketabhängigkeiten ===== | ===== Paketabhängigkeiten ===== | ||
Zeile 66: | Zeile 85: | ||
===== udev-Regeln ===== | ===== udev-Regeln ===== | ||
- | Für den Betrieb unter **[[https:// | + | Für den Betrieb unter **[[https:// |
Wir wechseln also erst einmal in das entsprechende Konfigurationsverzeichnis ''/ | Wir wechseln also erst einmal in das entsprechende Konfigurationsverzeichnis ''/ | ||
Zeile 151: | Zeile 170: | ||
$ nitropy nk3 wink | $ nitropy nk3 wink | ||
< | < | ||
+ | |||
+ | ===== Nitrokey App 2 ===== | ||
+ | Den Update der Firmware auf den jeweiligen Nitrokey nehmen wir am Besten mit Hilfe der **[[https:// | ||
+ | |||
+ | Dieses Hilfsprogramm holen wir uns nun in der aktuellen Version von der GitHub-Seite mit Hilfe von **'' | ||
+ | $ wget https:// | ||
+ | |||
+ | Anschliessend entpacken wir das heruntergeladene **'' | ||
+ | $ tar -zvxf nitrokey-app-v2.1.2-x64-linux-binary.tar.gz -C ~/bin/ | ||
+ | |||
+ | Zu guter Letzt geben wir dem Programm noch die x-Rechte, damit wir es direkt ausführen können. | ||
+ | $ chmod +x ~/ | ||
+ | |||
+ | <WRAP center round important 90%> | ||
+ | Unter **Ubuntu 22.04 LTS** und auch unter **Linux Mint 21.2 (Victoria)** scheitert aktuell((Stand: | ||
+ | < | ||
+ | File " | ||
+ | ImportError: | ||
+ | [41746] Failed to execute script ' | ||
+ | |||
+ | Daher legen wir uns kurzer Hand einfach ein kleines Start-Script an: | ||
+ | $ vim bin/ | ||
+ | <file bash bin/ | ||
+ | export LD_PRELOAD=/ | ||
+ | ~/ | ||
+ | |||
+ | Auch dieses Script verpassen wir nun noch die **x**-Rechte zum einfachen ausführen. | ||
+ | $ chmod +x bin/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Zum Starten der **Nitrokey-App v2** rufen wir nun einfach das angelegte Script auf. | ||
+ | $ nitrokey-app-v2 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über die Auswahl der angezeigten **UUID** auf der linken Seite des angesteckten Nitrokey 3 kann mann dann menügeführt einen Update der Firmware vornehmen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Der erfolgreiche Update der Firmware wird entsprechend angezeigt. | ||
+ | |||
+ | {{ : | ||
===== Anwendungsfälle - Software ===== | ===== Anwendungsfälle - Software ===== | ||
==== GnuPG ==== | ==== GnuPG ==== | ||
- | Da es sich bei der Chipkarte | + | Da es sich bei der Chipkarte |
$ sudo apt install gpg | $ sudo apt install gpg | ||
Zeile 287: | Zeile 349: | ||
<WRAP center round tip 80%> | <WRAP center round tip 80%> | ||
- | Laut der [[https:// | + | Laut der [[https:// |
* RSA-2048 | * RSA-2048 | ||
* RSA-3072 (**__nur__** Schlüssel-Import, | * RSA-3072 (**__nur__** Schlüssel-Import, | ||
Zeile 424: | Zeile 486: | ||
Real name: Django aka [BOfH] | Real name: Django aka [BOfH] | ||
- | Email address: secmail@mailserver.guru | + | Email address: secmail@nausch.org |
Comment: Bastard Operator from Hell | Comment: Bastard Operator from Hell | ||
You selected this USER-ID: | You selected this USER-ID: | ||
- | " | + | " |
Change (N)ame, (C)omment, (E)mail or (O)kay/ | Change (N)ame, (C)omment, (E)mail or (O)kay/ | ||
Zeile 445: | Zeile 507: | ||
pub | pub | ||
E65B2BDF79A2E2E4C28F6E062E22436430385B49 | E65B2BDF79A2E2E4C28F6E062E22436430385B49 | ||
- | uid Django aka [BOfH] (Bastard Operator from Hell) < | + | uid Django aka [BOfH] (Bastard Operator from Hell) < |
sub | sub | ||
sub | sub | ||
Zeile 458: | Zeile 520: | ||
Reader ...........: | Reader ...........: | ||
- | Ferner muss auf dem Rechner, an dem der Stick angesteckt und administriert werden soll, GnuPG in Version 2.1.16 oder höher installiert sein. Bei Linux Mint 21.1 ist dies kein Problem da aktuell((Mai '23)) die Version 2.2.27 bereitgestellt wird. Bei Bedarf können wir die Version z.B. wie folgt abfragen. | + | Ferner muss auf dem Rechner, an dem der Stick angesteckt und administriert werden soll, GnuPG in Version 2.1.16 oder höher installiert sein. Bei Linux Mint 21.2 ist dies kein Problem da aktuell((Mai '23)) die Version 2.2.27 bereitgestellt wird. Bei Bedarf können wir die Version z.B. wie folgt abfragen. |
$ gpg2 --version | grep gpg | $ gpg2 --version | grep gpg | ||
Zeile 603: | Zeile 665: | ||
Real name: Django [BOfH] | Real name: Django [BOfH] | ||
- | Email address: secmail@mailserver.guru | + | Email address: secmail@nausch.org |
Comment: Bastard Operator from Hell | Comment: Bastard Operator from Hell | ||
You selected this USER-ID: | You selected this USER-ID: | ||
- | " | + | " |
Change (N)ame, (C)omment, (E)mail or (O)kay/ | Change (N)ame, (C)omment, (E)mail or (O)kay/ | ||
Zeile 637: | Zeile 699: | ||
created ....: 2023-05-13 20:29:18 | created ....: 2023-05-13 20:29:18 | ||
General key info..: | General key info..: | ||
- | pub ed25519/ | + | pub ed25519/ |
sec> | sec> | ||
card-no: 000F 762D73BE | card-no: 000F 762D73BE | ||
Zeile 650: | Zeile 712: | ||
< | < | ||
4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
- | uid Django [BOfH] (Bastard Operator from Hell) < | + | uid Django [BOfH] (Bastard Operator from Hell) < |
sub | sub | ||
sub | sub | ||
Zeile 667: | Zeile 729: | ||
4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
Card serial no. = 000F 762D73BE | Card serial no. = 000F 762D73BE | ||
- | uid | + | uid |
ssb> | ssb> | ||
ssb> | ssb> | ||
Zeile 681: | Zeile 743: | ||
pub | pub | ||
4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
- | uid | + | uid |
sub | sub | ||
sub | sub | ||
Zeile 689: | Zeile 751: | ||
=== Öffentlichen Schlüssel ausgeben === | === Öffentlichen Schlüssel ausgeben === | ||
Damit wir später unseren öffentlichen Schlüssel auch weitergeben oder zu einem [[https:// | Damit wir später unseren öffentlichen Schlüssel auch weitergeben oder zu einem [[https:// | ||
- | $ gpg --export --armor secmail@mailserver.guru > secmail@mailserver.guru.pubkey | + | $ gpg --export --armor secmail@nausch.org > secmail@nausch.org.pubkey |
Diese Datei enthält unseren Schlüssel in ASCII-lesbarer Form. | Diese Datei enthält unseren Schlüssel in ASCII-lesbarer Form. | ||
- | $ cat secmail@mailserver.guru.pubkey | + | $ cat secmail@nausch.org.pubkey |
- | <file key secmail@mailserver.guru.pubkey> | + | <file key secmail@nausch.org.pubkey> |
mDMEZF/ | mDMEZF/ | ||
Zeile 750: | Zeile 812: | ||
- Zunächst legen wir uns erst einmal ein beliebiges Testdokument an. < | - Zunächst legen wir uns erst einmal ein beliebiges Testdokument an. < | ||
- | - Nun verschlüsseln wir dieses Textdokument: | + | - Nun verschlüsseln wir dieses Textdokument: |
gpg: marginals needed: 3 completes needed: 1 trust model: pgp | gpg: marginals needed: 3 completes needed: 1 trust model: pgp | ||
gpg: depth: 0 valid: | gpg: depth: 0 valid: | ||
Zeile 766: | Zeile 828: | ||
-----END PGP MESSAGE-----</ | -----END PGP MESSAGE-----</ | ||
- Nun entschlüsseln wir unser Dokument wieder.< | - Nun entschlüsseln wir unser Dokument wieder.< | ||
- | " | + | " |
=== Signieren === | === Signieren === | ||
Zeile 789: | Zeile 851: | ||
| | ||
�< | �< | ||
- | 9�.��j2�$�K+�; | + | 9�.��j2�$�K+�; |
gpg: signatures created so far: 8 | gpg: signatures created so far: 8 | ||
Zeile 824: | Zeile 886: | ||
-----END PGP SIGNATURE-----</ | -----END PGP SIGNATURE-----</ | ||
gpg: using RSA key E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | gpg: using RSA key E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | ||
- | gpg: Good signature from " | + | gpg: Good signature from " |
gpg: WARNING: not a detached signature; file ' | gpg: WARNING: not a detached signature; file ' | ||
Hash: SHA256 | Hash: SHA256 | ||
Zeile 841: | Zeile 903: | ||
-----END PGP SIGNATURE-----</ | -----END PGP SIGNATURE-----</ | ||
gpg: using RSA key ID E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | gpg: using RSA key ID E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | ||
- | gpg: BAD signature from " | + | gpg: BAD signature from " |
==== Nitrokey 3C NFC und Thunderbird ==== | ==== Nitrokey 3C NFC und Thunderbird ==== | ||
Zeile 874: | Zeile 936: | ||
=== Öffentlichen Schlüssel importieren === | === Öffentlichen Schlüssel importieren === | ||
Damit wir unseren PGP-Schlüssel unseres **Nitrokey 3C NFC** zum Verschlüsseln und auch zum Signieren verwenden können, müssen wir noch den öffentlichen Schlüssel dem Thunderbird bekannt machen. Wie bereits beim Abschnitt [[# | Damit wir unseren PGP-Schlüssel unseres **Nitrokey 3C NFC** zum Verschlüsseln und auch zum Signieren verwenden können, müssen wir noch den öffentlichen Schlüssel dem Thunderbird bekannt machen. Wie bereits beim Abschnitt [[# | ||
- | $ gpg --export --armor secmail@mailserver.guru > secmail@mailserver.guru.pubkey | + | $ gpg --export --armor secmail@nausch.org > secmail@nausch.org.pubkey |
Rechts im sog. " | Rechts im sog. " | ||
Zeile 1097: | Zeile 1159: | ||
* **[[wiki: | * **[[wiki: | ||
* **[[http:// | * **[[http:// | ||
+ |