Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
nitrokey:linuxmint:3cnfc [13.05.2023 16:27. ] – [RSA-Schlüssel generieren] 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 20.2 Cinnamon | + | ====== 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:// |
- | + | ||
- | ===== WICHTIGER HINWEIS (Stand Nov. 2021) ===== | + | |
- | <WRAP center round alert 85%> | + | |
- | **Stand November 2021**: \\ | + | |
- | Bei der aktuelle Auslieferung((Stand : 01.11.2021)) 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 // | + | |
- | </ | + | |
Zeile 36: | 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 49: | 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 73: | 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 158: | 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 217: | Zeile 272: | ||
^ PIN retry counter | ^ PIN retry counter | ||
^ Signature counter | ^ Signature counter | ||
- | ^ Signature key | Signatur-Schlüssel (primärer | + | ^ Signature key | Signatur-Schlüssel (**__primärer__ |
^ | ^ | ||
- | ^ Encryption key | Entschlüsselungs-Schlüssel (Unterschlüssel des primären (Signature-)Schlüssels. | + | ^ Encryption key | Entschlüsselungs-Schlüssel (Unterschlüssel des primären (Signatur-)Schlüssels. |
^ | ^ | ||
- | ^ Authentication key | Authentifizierung-Schlüssel (Unterschlüssel des primären (Signature-)Schlüssels. | + | ^ Authentication key | Authentifizierung-Schlüssel (Unterschlüssel des primären (Signatur-)Schlüssels. |
^ | ^ | ||
^ General key info | Diese primäre USer ID wird angezeigt, sobald ein entsprechender | ^ General key info | Diese primäre USer ID wird angezeigt, sobald ein entsprechender | ||
Zeile 294: | 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 302: | Zeile 357: | ||
</ | </ | ||
- | Mit Hinblick auf die möglichen Unsicherheiten im Bezug auf die [[https:// | + | Mit Hinblick auf die möglichen Unsicherheiten im Bezug auf die [[https:// |
Welche **__RSA__-Schlüssellänge** eingestellt ist, können wir mit den Befehl '' | Welche **__RSA__-Schlüssellänge** eingestellt ist, können wir mit den Befehl '' | ||
Zeile 308: | Zeile 363: | ||
Key attributes ...: rsa2048 rsa2048 rsa2048 | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
- | |||
- | FIXME FIXME FIXME FIXME | ||
- | |||
Bevor wir nun unseren RSA-Schlüssel erzeugen, werden wir noch die Schlüssellänge von **2048** auf **4096** abändern. | Bevor wir nun unseren RSA-Schlüssel erzeugen, werden wir noch die Schlüssellänge von **2048** auf **4096** abändern. | ||
Zeile 393: | Zeile 445: | ||
Login data .......: [not set] | Login data .......: [not set] | ||
Signature PIN ....: forced | Signature PIN ....: forced | ||
- | Key attributes ...: rsa4096 rsa4096 rsa4096 | + | Key attributes ...: rsa2048 rsa2048 rsa2048 |
Max. PIN lengths .: 127 127 127 | Max. PIN lengths .: 127 127 127 | ||
PIN retry counter : 3 0 3 | PIN retry counter : 3 0 3 | ||
Zeile 408: | Zeile 460: | ||
Admin commands are allowed | Admin commands are allowed | ||
- | Die Erzeugung der Schlüssel erfolgt wie immer mit dem Befehk | + | Die Erzeugung der Schlüssel erfolgt wie immer mit dem Befehl |
gpg/ | gpg/ | ||
Zeile 434: | 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 497: | ||
<WRAP center round tip 95%> | <WRAP center round tip 95%> | ||
- | Die Erzeugung eines Schlüssels mit einer Länge von **2048** dauert ca. 5 Minuten, also keinesfalls den Nitrokey | + | Die Erzeugung eines Schlüssels mit einer Länge von **2048** dauert ca. 5 Minuten, also keinesfalls den Nitrokey |
</ | </ | ||
Zeile 455: | 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 | ||
- | /* | ||
- | django@djangos-thinkpad-x230: | ||
- | Reader ...........: | + | === ED25519-Schlüssel generieren === |
+ | In dem Artikel **[[https:// | ||
+ | |||
+ | Damit auf einem **Nitrokey 3C NFC** Schlüssel auf Basis elliptischer Kurven generiert werden können, muss dieser mindestens die Firmware Version 1.2 verfügen. Dies kontrolliert man am einfachsten mit Folgendem Befehl. | ||
+ | $ gpg2 --card-status | grep 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.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 | ||
+ | |||
+ | gpg (GnuPG) 2.2.27 | ||
+ | |||
+ | Nun werden wir uns Schlüsselpaar auf Basis elliptischer Kurven auf dem Nitrokey 3C NFC generieren. Bevor wir die eigentlichen [[https:// | ||
+ | Welcher Typ eingestellt ist können wir mit den Befehl '' | ||
+ | $ gpg2 --card-status | grep Key\ attributes | ||
+ | |||
+ | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
+ | |||
+ | Zum Ändern der Vorgabewerte benutzen wir die Option '' | ||
+ | $ gpg2 --card-edit | ||
+ | |||
+ | < | ||
Application ID ...: D276000124010304000F762D73BE0000 | Application ID ...: D276000124010304000F762D73BE0000 | ||
Application type .: OpenPGP | Application type .: OpenPGP | ||
Zeile 474: | Zeile 546: | ||
Login data .......: [not set] | Login data .......: [not set] | ||
Signature PIN ....: forced | Signature PIN ....: forced | ||
- | Key attributes ...: rsa4096 rsa4096 rsa4096 | + | Key attributes ...: rsa2048 rsa2048 rsa2048 |
Max. PIN lengths .: 127 127 127 | Max. PIN lengths .: 127 127 127 | ||
PIN retry counter : 3 0 3 | PIN retry counter : 3 0 3 | ||
Zeile 484: | Zeile 556: | ||
General key info..: [none] | General key info..: [none] | ||
- | gpg/ | + | gpg/ |
- | Admin commands are allowed | + | |
- | gpg/ | + | Im Admin-Bereich finden wir den Befehl '' |
- | quit quit this menu | + | |
- | admin show admin commands | + | |
- | help show this help | + | |
- | list list all available data | + | |
- | name | + | |
- | url change URL to retrieve key | + | |
- | fetch fetch the key specified in the card URL | + | |
- | login change the login name | + | |
- | lang | + | |
- | salutation | + | |
- | cafpr change a CA fingerprint | + | |
- | forcesig | + | |
- | generate | + | |
- | passwd | + | |
- | verify | + | |
- | unblock | + | |
- | factory-reset | + | |
- | kdf-setup | + | |
- | key-attr | + | |
- | gpg/ | + | Admin commands are allowed |
- | Changing card key attribute for: Signature key | + | |
+ | Hier rufen wir dann den Befehl '' | ||
+ | | ||
+ | |||
+ | Im folgenden ändern wir dann für die drei (Unterschlüssel) die Schlüsselart von **ECC** und bei der Frage nach der elliptischer Kurve wählen wir dann die Option **Curve 25519**. | ||
+ | < | ||
Please select what kind of key you want: | Please select what kind of key you want: | ||
(1) RSA | (1) RSA | ||
Zeile 543: | Zeile 601: | ||
The card will now be re-configured to generate a key of type: ed25519 | The card will now be re-configured to generate a key of type: ed25519 | ||
- | gpg/card> quit | + | </code> |
- | django@djangos-thinkpad-x230: | + | |
- | Key attributes ...: ed25519 cv25519 ed25519 | + | |
- | django@djangos-thinkpad-x230: | + | |
- | Reader ...........: | + | Zum Schluss verlassen wir das Programm **gpg2** mit '' |
+ | gpg/ | ||
+ | |||
+ | Fragen wir nun erneut mit den Befehl '' | ||
+ | $ gpg2 --card-status | grep Key\ attributes | ||
+ | |||
+ | Key attributes ...: ed25519 cv25519 ed25519 | ||
+ | |||
+ | Nun erstellen wir uns unsere gewünschten Schlüssel auf der SmartCard der **Nitrokey 3C NFC**. Wie schon beim [[# | ||
+ | $ gpg2 --card-edit | ||
+ | < | ||
Application ID ...: D276000124010304000F762D73BE0000 | Application ID ...: D276000124010304000F762D73BE0000 | ||
Application type .: OpenPGP | Application type .: OpenPGP | ||
Zeile 568: | Zeile 633: | ||
Encryption key....: [none] | Encryption key....: [none] | ||
Authentication key: [none] | Authentication key: [none] | ||
- | General key info..: [none] | + | General key info..: [none]</ |
- | gpg/ | ||
- | Admin commands are allowed | ||
- | gpg/ | + | Die Schlüsselgenerierung erfolgt im Adminmenü, in welches wir nun erst einmal wechseln werden. |
- | Make off-card backup of encryption key? (Y/n) n | + | |
+ | |||
+ | Admin commands are allowed | ||
+ | |||
+ | Die Erzeugung der Schlüssel erfolgt wie immer mit dem Befehk '' | ||
+ | | ||
+ | |||
+ | < | ||
Please note that the factory settings of the PINs are | Please note that the factory settings of the PINs are | ||
Zeile 586: | Zeile 656: | ||
<n>m = key expires in n months | <n>m = key expires in n months | ||
<n>y = key expires in n years | <n>y = key expires in n years | ||
- | Key is valid for? (0) | + | Key is valid for? (0) o |
+ | invalid value | ||
+ | Key is valid for? (0) 0 | ||
Key does not expire at all | Key does not expire at all | ||
Is this correct? (y/N) y | Is this correct? (y/N) y | ||
Zeile 592: | Zeile 664: | ||
GnuPG needs to construct a user ID to identify your key. | GnuPG needs to construct a user ID to identify your key. | ||
- | Real name: John Doe | + | Real name: Django [BOfH] |
- | Email address: | + | Email address: |
- | Comment: | + | Comment: |
You selected this USER-ID: | You selected this USER-ID: | ||
- | "John Doe <john.doe@example.com>" | + | "Django [BOfH] (Bastard Operator from Hell) <secmail@nausch.org>" |
Change (N)ame, (C)omment, (E)mail or (O)kay/ | Change (N)ame, (C)omment, (E)mail or (O)kay/ | ||
- | gpg: key 944C908987158269 | + | gpg: key 8A088B4A80BBD384 |
- | gpg: revocation certificate stored as '/ | + | gpg: revocation certificate stored as '/ |
public and secret key created and signed. | public and secret key created and signed. | ||
+ | < | ||
- | + | Fragen wir nun den Inhalt der SmartCard mit dem Befehl '' | |
- | gpg/ | + | gpg/ |
- | pub | + | <code>Version ..........: 3.4 |
- | DD7CCCA64B92ECBEDAFDC684944C908987158269 | + | |
- | uid John Doe <john.doe@example.com> | + | |
- | sub | + | |
- | sub | + | |
- | + | ||
- | django@djangos-thinkpad-x230: | + | |
- | Reader ...........: | + | |
- | Application ID ...: D276000124010304000F762D73BE0000 | + | |
- | Application type .: OpenPGP | + | |
- | Version ..........: 3.4 | + | |
Manufacturer .....: unknown | Manufacturer .....: unknown | ||
Serial number ....: 762D73BE | Serial number ....: 762D73BE | ||
Zeile 629: | Zeile 692: | ||
Signature counter : 4 | Signature counter : 4 | ||
KDF setting ......: off | KDF setting ......: off | ||
- | Signature key ....: DD7C CCA6 4B92 ECBE DAFD C684 944C 9089 8715 8269 | + | Signature key ....: 4FEC 76FF 42F8 B44C 6903 D0A8 8A08 8B4A 80BB D384 |
- | created ....: 2023-05-11 19:41:59 | + | created ....: 2023-05-13 20:29:18 |
- | Encryption key....: | + | Encryption key....: |
- | created ....: 2023-05-11 19:41:59 | + | created ....: 2023-05-13 20:29:18 |
- | Authentication key: EF3E 9DBE 5FE7 97DF 73F0 0499 2052 0AC1 C6A0 E09A | + | Authentication key: BC6A CA82 9949 01CB 5925 78A8 F64E 773E 877E 941A |
- | created ....: 2023-05-11 19:41:59 | + | created ....: 2023-05-13 20:29:18 |
- | General key info..: pub ed25519/944C908987158269 | + | General key info..: |
- | sec> | + | pub ed25519/8A088B4A80BBD384 |
+ | sec> | ||
card-no: 000F 762D73BE | card-no: 000F 762D73BE | ||
- | ssb> | + | ssb> |
card-no: 000F 762D73BE | card-no: 000F 762D73BE | ||
- | ssb> | + | ssb> |
card-no: 000F 762D73BE | card-no: 000F 762D73BE | ||
- | */ | + | </ |
+ | Wir verlassen nun das Programm **'' | ||
+ | gpg/card> quit | ||
- | === change-pin === | + | < |
+ | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
+ | uid Django [BOfH] (Bastard Operator from Hell) < | ||
+ | sub | ||
+ | sub | ||
+ | </ | ||
- | FIXME Platzhalter für später | + | === privaten Schlüsselbund === |
+ | Fragen wir nun den privaten Schlüsselbund ab, finden wir den gerade angelegten Schlüssel bzw. den zugehörigen Proxy-Eintrag mit dem Verweis auf den Kryptostick. Dazu verwenden wir den Befehl '' | ||
+ | $ gpg2 -K | ||
+ | < | ||
+ | gpg: marginals needed: 3 completes needed: 1 trust model: pgp | ||
+ | gpg: depth: 0 valid: | ||
+ | / | ||
+ | ------------------------------- | ||
+ | sec> | ||
+ | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
+ | Card serial no. = 000F 762D73BE | ||
+ | uid | ||
+ | ssb> | ||
+ | ssb> | ||
+ | |||
+ | </ | ||
+ | |||
+ | === öffentlichen Schlüsselbund === | ||
+ | Fragen wir nun den öffentlichen Schlüsselbund ab, finden wir den gerade angelegten Schlüssel. Dazu verwenden wir den Befehl '' | ||
+ | |||
+ | $ gpg2 --list-public-key | ||
+ | < | ||
+ | ------------------------------- | ||
+ | pub | ||
+ | 4FEC76FF42F8B44C6903D0A88A088B4A80BBD384 | ||
+ | uid | ||
+ | sub | ||
+ | sub | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Öffentlichen Schlüssel ausgeben === | ||
+ | Damit wir später unseren öffentlichen Schlüssel auch weitergeben oder zu einem [[https:// | ||
+ | $ gpg --export --armor secmail@nausch.org > secmail@nausch.org.pubkey | ||
+ | |||
+ | Diese Datei enthält unseren Schlüssel in ASCII-lesbarer Form. | ||
+ | $ cat secmail@nausch.org.pubkey | ||
+ | <file key secmail@nausch.org.pubkey> | ||
+ | |||
+ | mDMEZF/ | ||
+ | gYrfHgC0RERqYW5nbyBbQk9mSF0gKEJhc3RhcmQgT3BlcmF0b3IgZnJvbSBIZWxs | ||
+ | KSA8c2VjbWFpbEBtYWlsc2VydmVyLmd1cnU+iJAEExYIADgWIQRP7Hb/ | ||
+ | 0KiKCItKgLvThAUCZF/ | ||
+ | CItKgLvThKXPAP90D5rhiWccU9cmMM5T9RaqE1Ep4gfUctqXdt64WfsW0AEA1V8g | ||
+ | rTprSNDUMX9Tw62Ko3JFHCiToqNrxUKqIDePHQ64MwRkX/ | ||
+ | B0A4swxnk2PG9J1EN7LKQaNYeLlRnTO86mGOVEe6ye/ | ||
+ | / | ||
+ | 8MEquXdAJeL7h7R93SC0y0eiPRQwiTh1gaYA/ | ||
+ | BV5HSvn1JmCg8LQLuDgEZF/ | ||
+ | QhZ6qIh8eRXfM9Lo1PWpYhcAAwEIB4h4BBgWCAAgFiEET+x2/ | ||
+ | SoC704QFAmRf8x4CGwwACgkQigiLSoC704QD4gEAlNCgutORJhmHM4OXujuSihNM | ||
+ | SFOruQ0p30cb136eLfoBAKoOV+jsBzixXc14c0Yg+ewgukc+4ewKF81zn7SdAJEK | ||
+ | =Jk/+ | ||
+ | -----END PGP PUBLIC KEY BLOCK-----</ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Diese Datei benötigen wir später, wenn wir den public-key im [[# | ||
+ | </ | ||
+ | |||
+ | |||
+ | === change-pin === | ||
Wie schon mit der **[[centos: | Wie schon mit der **[[centos: | ||
Zeile 655: | Zeile 786: | ||
<WRAP center round important 80%> | <WRAP center round important 80%> | ||
- | Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlußt | + | Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlust |
</ | </ | ||
Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt. | Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt. | ||
- | Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey Pro an seine Mitarbeiter ausgeben, werden bestimmte Daten, wie z.B. Namen, die Public Key URL oder auch das erzeugte Schlüsselmaterial zentral vorgegeben. Da der Benutzer selbst diese Daten nicht verändern können soll, wird dieser auch nicht Kenntnis von der Admin-PIN haben. Sperrt sich nun der Mitarbeiter aus, weil er die Benutzer-PIN 3x falsch eingegeben hat, kann der Neutzer | + | Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey Pro an seine Mitarbeiter ausgeben, werden bestimmte Daten, wie z.B. Namen, die Public Key URL oder auch das erzeugte Schlüsselmaterial zentral vorgegeben. Da der Benutzer selbst diese Daten nicht verändern können soll, wird dieser auch nicht Kenntnis von der Admin-PIN haben. Sperrt sich nun der Mitarbeiter aus, weil er die Benutzer-PIN 3x falsch eingegeben hat, kann der Nutzer |
$ gpg --change-pin | $ gpg --change-pin | ||
Zeile 677: | Zeile 808: | ||
{{ : | {{ : | ||
- | ===== Browser | + | === Verschlüsseln und entschlüsseln |
+ | Nun werden wir kurz einmal testen, ob wir mit Hilfe der Hardware-Schlüssel-Karte eine Datei ver- und wieder entschlüsseln können. | ||
+ | |||
+ | - Zunächst legen wir uns erst einmal ein beliebiges Testdokument an. < | ||
+ | - Nun verschlüsseln wir dieses Textdokument: | ||
+ | gpg: marginals needed: 3 completes needed: 1 trust model: pgp | ||
+ | gpg: depth: 0 valid: | ||
+ | -rw-rw-r-- 1 django django 573 May 13 18:26 testdatei.txt.pgp</ | ||
+ | |||
+ | hQEMA+fq0wZY6Y4UAQf9GLHhNN5BdDZNmX6Gq3eDIVnNEnZX3fuqr/ | ||
+ | AQXTu0ZKdHRJztOcnu8UtBlbPCK54950xcOmH2TzpAM0+AMIsnDttdG8rykJW2/ | ||
+ | +Rvp4D49vK4wJrn367U3slTHggK3IVGKds+MB4SDvR4FxaroorC9TeFBF/ | ||
+ | hV9DAmpHLfhHgLjMs6OuS2WJSTKGXL8PMQg1JuZavYaeyBP1wkDY/ | ||
+ | UYXksbKu4HR7BTeNqtQVDg8+zrCsEpCAKQiGyftI+jerHpeXhpLxvVakQj8r074d | ||
+ | H4h44TV4ufXB7AiIari8DcuUD1sZGb4/ | ||
+ | +ELcXqw4/ | ||
+ | jf5te63+BtJrphbSoY3qFK+zOMCxbnHCBS0L5BYV4YfcwNg/ | ||
+ | =U5Ad | ||
+ | -----END PGP MESSAGE-----</ | ||
+ | - Nun entschlüsseln wir unser Dokument wieder.< | ||
+ | " | ||
+ | |||
+ | === Signieren === | ||
+ | Nun werden wir kurz einmal testen, ob wir mit Hilfe der Hardware-Schlüssel-Karte eine Datei signieren und die Signatur auch wieder prüfen können. | ||
+ | |||
+ | - Wir legen uns also erst einmal ein beliebiges Testdokument an. < | ||
+ | - Nun signieren wir dieses Textdokument: | ||
+ | gpg: signatures created so far: 5 | ||
+ | |||
+ | Please enter the PIN | ||
+ | [sigs done: 5]</ | ||
+ | -rw-rw-r-- 1 django django 383 May 13 18:36 textdatei.txt.gpg</ | ||
+ | y���kL�xKR+JRKR3�J���=���% | ||
+ | ��� | ||
+ | �� | ||
+ | fVƦV& | ||
+ | � | ||
+ | ή�! | ||
+ | FF�\���, | ||
+ | � | ||
+ | | ||
+ | | ||
+ | �< | ||
+ | 9�.��j2�$�K+�; | ||
+ | gpg: signatures created so far: 8 | ||
+ | |||
+ | Please enter the PIN | ||
+ | [sigs done: 8]</ | ||
+ | gpg: signatures created so far: 9 | ||
+ | |||
+ | Please enter the PIN | ||
+ | [sigs done: 9]</ | ||
+ | |||
+ | owGbwMvMwMHodeDVCnmP9POMa0ySeEtSK0pSEktSM/ | ||
+ | FQzMrIxNrUwsFQJ8FZxdg0MUjAyMjLk6GY1ZGBg5GGTFFFmetK9p1ma28W85+vkq | ||
+ | zFhWJpAxDFycAjCRB94cDPvZpr5pP26SIV+TsFxoAvOXFSd2KnyVmtVfeepx8rLH | ||
+ | Wk0nTuXMenX7D2/ | ||
+ | PDfycH/ | ||
+ | 93zEz4UxN1mtm/ | ||
+ | 5npJrsZpfteyuhP/ | ||
+ | mdc09kzSlotkCFOSFul9IFy6e1brMaNb9+1Zf0+0Nnbr52wN/ | ||
+ | =qGsv | ||
+ | -----END PGP MESSAGE-----</ | ||
+ | Hash: SHA256 | ||
+ | |||
+ | Sat May 13 06:35:49 PM CEST 2023 | ||
+ | -----BEGIN PGP SIGNATURE----- | ||
+ | |||
+ | iQEzBAEBCAAdFiEE5IesgysDPE+ExfPVSsDqqB9IZ88FAmRfvjYACgkQSsDqqB9I | ||
+ | Z89a+wf9G8p8WwMI7YiOwD73qV0XmDovBd4DFc13Jm+0Rocz3W54MdGhcgsk3u0t | ||
+ | 4cg5cqX4S4DxYIL15u9yYv5LVWlWqCiTyxUAiN7qxY42lUtR0+9w3Eizc6MuR7YX | ||
+ | 0Va54V5o8jd/ | ||
+ | AlAXEZb+xNni38wuClvqz03v0kL6+m9DTyLwmoGOUHEtaZIn7OR1XHv7W52v9bA6 | ||
+ | rfhcY1xXERfjuNd6oe8SBGR428GZzbhw4m/ | ||
+ | TDTH3OGzdvgSZl2vAd0KSzJ7i4+Dvg== | ||
+ | =TCtk | ||
+ | -----END PGP SIGNATURE-----</ | ||
+ | gpg: using RSA key E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | ||
+ | gpg: Good signature from " | ||
+ | gpg: WARNING: not a detached signature; file ' | ||
+ | Hash: SHA256 | ||
+ | |||
+ | Sat May 13 06:35:49 PM CEST 2023 | ||
+ | -----BEGIN PGP SIGNATURE----- | ||
+ | |||
+ | IQEzBAEBCAAdFiEE5IesgysDPE+ExfPVSsDqqB9IZ88FAmRfvjYACgkQSsDqqB9I | ||
+ | Z89a+wf9G8p8WwMI7YiOwD73qV0XmDovBd4DFc13Jm+0Rocz3W54MdGhcgsk3u0t | ||
+ | 4cg5cqX4S4DxYIL15u9yYv5LVWlWqCiTyxUAiN7qxY42lUtR0+9w3Eizc6MuR7YX | ||
+ | 0Va54V5o8jd/ | ||
+ | AlAXEZb+xNni38wuClvqz03v0kL6+m9DTyLwmoGOUHEtaZIn7OR1XHv7W52v9bA6 | ||
+ | rfhcY1xXERfjuNd6oe8SBGR428GZzbhw4m/ | ||
+ | TDTH3OGzdvgSZl2vAd0KSzJ7i4+Dvg== | ||
+ | =TCtk | ||
+ | -----END PGP SIGNATURE-----</ | ||
+ | gpg: using RSA key ID E487AC832B033C4F84C5F3D54AC0EAA81F4867CF | ||
+ | gpg: BAD signature from " | ||
+ | |||
+ | ==== Nitrokey 3C NFC und Thunderbird ==== | ||
+ | Nachdem wir nun unsere Schlüssel auf dem Kryptostick erstellt haben, wollen wir diesen nun verwenden um bei Thunderbird unsere elektronische Kommunikation per eMail abzusichern. | ||
+ | |||
+ | === Schlüssel einem Konto zuweisen === | ||
+ | Damit wir unser Kryptodevice unter Thunderbird nutzen können müssen wir unsere zuvor erzeugten Schlüsse unserem betreffenden Konto zuweisen. | ||
+ | Über das Menü wählen wir den Punkt **Konten-Einstellungen** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Beim passenden Konto wählen wir dann die Option **Ende-zu-Ende-Verschlüsselung** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier wählen wir den letzten Menüpunkt **__E__xternen Schlüssel mittels GnuPG benutzen** (z.B. von einer Smartcard) aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | In dem nun angezeigten Fenster, tragen wir nun die Long-Key-ID unseres Schlüssels ein. Dazu holen wir uns die Key-ID aus unserem Krypto-Device wie folgt. | ||
+ | $ gpg2 --card-status | grep sec\> | ||
+ | < | ||
+ | |||
+ | In diesem Beipiel haben wir also die Key-ID: **8A088B4A80BBD384**. Diese tragen wir ein und klicken auf die Schaltfläche **[ Schlüssel-ID Speichern ]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Schritt eins ist erledigt, der Schlüssel unseres Krypto-Devices ist nun Thunderbird bekannt. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | === Ö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 [[# | ||
+ | $ gpg --export --armor secmail@nausch.org > secmail@nausch.org.pubkey | ||
+ | |||
+ | Rechts im sog. " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dieses wählen wir aus und klicken dann als nächstes auf den Menüpunkt **O__p__enPGP-Schlüssel verwalten**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Unter dem Menüpunkt **Datei** wählen wir nun **Öffentliche(n) Schlüssel aus __D__atei importieren** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wir wählen unsere zuvor exportierte Schlüsseldatei mit dem öffentlichen Schlüssel aus und wählen die Option **Akzeptiert (nicht verifiziert)** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Bevor wir nun den Import mit einem Klick auf die Schaltfläche **[ OK ]** abschliessen, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Da wir ja unseren Schlüssel selbst aus dem **Nitrokey 3C NFC** exportiert und im Thunderbird importiert hatten, spricht nichts dagegen, diesem Schlüssel das entsprechende Vertrauen auszusprechen. Natürlich prüfen wir hier auch den entsprechenden Fingerprint, | ||
+ | $ gpg2 --card-status | grep Signature\ key | ||
+ | < | ||
+ | Stimmen die Daten überein, wählen wir nun den Punkt **Ja, ich selbst habe geprüft, dass der Schlüssel über den korrekten Fingerabdruck verfügt** und klicken auf die Schaltfläche **[OK ]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Unser öffentlicher Schlüssel ist im Keyring nun auch unserem MUA((**M**ail **U**ser **A**gent)) Thunderbird bekannt und wir können nun eMails signieren, verschlüsseln und auch empfangene verschlüsselte Nachrichten auch wieder entschlüsseln wie gewohnt. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Nitrokey 3C NFC und Nitrokey 3A mini und Secure Shell ==== | ||
+ | <WRAP center round important 90%> | ||
+ | Ob man in Zeiten von Überwachungsphantasten in Unternehmen und vor allem auch bei einer NSA oder BND, noch **[[http:// | ||
+ | |||
+ | Der Sicherheitsguru Bruce Schneier hat in seinem **[[https:// | ||
+ | |||
+ | <wrap em>//" | ||
+ | |||
+ | **[[https:// | ||
+ | </ | ||
+ | |||
+ | Auf RSA Schlüssel muss man aber nicht mehr zwingend zurückgreifen, | ||
+ | Diesen Schlüssel wollen wir nun auch zur Serveradministration verwenden. | ||
+ | |||
+ | === SSH Client vorbereiten === | ||
+ | Damit wir beim Verbindungsaufbau auf den Authentication Key zugreifen können, müssen wir unseren Client entsprechend vorbereiten. | ||
+ | |||
+ | Hierzu aktivieren wir zunächst die Option '' | ||
+ | **// des GPG-Agenten. | ||
+ | $ vim ~/ | ||
+ | <file bash ~/ | ||
+ | # See backup in '/ | ||
+ | |||
+ | # File re-created by pEp | ||
+ | # See backup in '/ | ||
+ | |||
+ | default-cache-ttl 300 | ||
+ | max-cache-ttl 999999 | ||
+ | |||
+ | # Django : 2023-07-21 | ||
+ | # SSH-Unterstützung beim gnupg-agent aktiviert | ||
+ | enable-ssh-support</ | ||
+ | |||
+ | Anschließend müssen wir noch die Datei // | ||
+ | $ vim ~/.bashrc | ||
+ | <file bash ~/ | ||
+ | |||
+ | # Source global definitions | ||
+ | if [ -f /etc/bashrc ]; then | ||
+ | . / | ||
+ | fi | ||
+ | |||
+ | # User specific environment | ||
+ | PATH=" | ||
+ | export PATH | ||
+ | |||
+ | # Uncomment the following line if you don't like systemctl' | ||
+ | # export SYSTEMD_PAGER= | ||
+ | |||
+ | # User specific aliases and functions | ||
+ | |||
+ | # Django : 2023-07-27 | ||
+ | # Definition des SSH_AUTH_SOCK für den Zugriff des SSH-Schlüssels auf dem Nitrokey Start | ||
+ | unset SSH_AGENT_PID | ||
+ | if [ " | ||
+ | export SSH_AUTH_SOCK=" | ||
+ | fi</ | ||
+ | |||
+ | Damit unsere Änderungen aktiv werden, müssen wir nun zum Schluss noch den **pgp-agent** restarten bzw. einen Neustart des Clients erwirken. Der Einfachheit halber für den pragmatischen weg und melden uns einmal von unserer X-Session an unserem Clientrechner ab und wieder an! | ||
+ | |||
+ | === Public-Key des ED25519 SSH exportieren === | ||
+ | Für den Zugriff auf unser Ziel-System mit Hilfe der **SSH** benötigen wir noch den öffentlichen Schlüssel unseres Authentication Keys, den wir nun exportieren werden. | ||
+ | Zunächst besorgen wir uns die betreffende Schlüsselkennung des Autentication Keys, genauer gesagt die 4 letzten Zahlenreihen des nachfolgenden Aufrufs. | ||
+ | $ gpg2 --card-status | grep Authentication\ key | ||
+ | |||
+ | Authentication key: 52A9 FF83 7DAF 9A77 7914 C5B1 B2DC 29E1 28F5 834D | ||
+ | |||
+ | In diesem Konfigurationsbeispiel ist die Schlüssel-ID des Autentication Keys also die Nummer '' | ||
+ | |||
+ | Nun exportieren wir den öffentlichen Schlüssel und schreiben diesen in eine separate Datei. | ||
+ | $ keyid=$(gpg2 --card-status | grep Authentication\ key | sed 's/ //g' | sed ' | ||
+ | gpg2 --export-ssh-key $keyid >> ~/ | ||
+ | Der Öffentliche Schlüssel in diesen Konfigurationsbeispiel lautet also: | ||
+ | $ cat .ssh/ | ||
+ | |||
+ | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJA+NwP2KxzqkrhKxi6JDRDUyE/ | ||
+ | |||
+ | Diesen Schlüssel kopieren wir nun auf das entsprechende Zielsystem an Ort und Stelle '' | ||
+ | $ scp ~/ | ||
+ | ssh zielhost.dmz.nausch.org 'cat authorized_keys >> ~/ | ||
+ | |||
+ | <WRAP round info>Das Kopieren des Public-Keys auf unseren Zielhost mit Anpassen der Dateiberechtigungen kann man natürlich auch einfacher vornehmen. Man benutzt hierzu einfach den Befehl **ssh-copy-id** aus dem Paket // | ||
+ | * ed25519-Key < | ||
+ | |||
+ | Mit der Angabe von '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === SSH-Verbindung aufbauen === | ||
+ | Nun können wir wie gewohnt eine Verbindung zu unserem entfernten System aufbauen. | ||
+ | $ ssh zielhost.dmz.nausch.org | ||
+ | |||
+ | Da der SSH-Key zur Authentication nicht im Dateisystem liegt, sondern auf der SmartCard des Nitrokey werden wir nun nach der User-PIN gefragt, damit auf den privaten Schlüssel der Karte zugegriffen werden kann. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Der entsperrte Schlüssel der SmartCard des Nitrokey Start wird nur für den Verbindungsaufbau zum Zielsystem verwendet. Bei jedem erneuten SSH-Verbindung müssen wir **__erneut__** bei angestecktem Nitrokey Start die PIN Nummer zum Entsperren eingeben! | ||
+ | |||
+ | |||
+ | ===== Web(-server)-Anwendung ===== | ||
+ | ==== Browser | ||
Verwenden wir den Browser **[[https:// | Verwenden wir den Browser **[[https:// | ||
Zeile 683: | Zeile 1076: | ||
{{ : | {{ : | ||
- | |||
Mit einem Doppelklick würden wir die Option aktivieren indem wir den Parameter auf auf **// | Mit einem Doppelklick würden wir die Option aktivieren indem wir den Parameter auf auf **// | ||
- | ===== Webserver/ | ||
==== Nextcloud ==== | ==== Nextcloud ==== | ||
=== Vorbereitende Arbeiten === | === 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. | + | Bevor wir unseren **Nitrokey 3C NFC** als zusätzliches Authentifizierungs-Gerät verwenden können, |
- | {{ : | + | |
+ | Zuerst installieren wir uns, angemeldet als User mit entsprechenden Admin-Rechten, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Anschliessend | ||
+ | |||
+ | {{ : | ||
Die Einrichtung unseres **Nitrokey 3C NFC** erfolgt über das Menü **[ Einstellungen ]** und **Sicherheit**. Hier finden wir im Abschnitt **Zwei-Faktor-Authentifizierung** den entsprechenden Abschnitt. | 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ünbläulich leuchtende Fläche |
- | {{ : | + | {{ : |
- | Den Hinweisen entsprechend stecken | + | Unserem nun angemeldeten Stick verpassen |
- | {{ : | + | {{ : |
- | Anschließend vergeben | + | Da wir ab sofort nun unseren **Nitrokey 3C NFC** zum Anmelden brauchen, erzeugen wir uns nun noch entsprechende Backup-Codes, |
+ | |||
+ | {{ : | ||
=== Anmelden mit zwei Faktor-Authentifizierung === | === 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. | 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 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. | Nach einer Sekunde werden wir automatisch angemeldet und wir können den Stick wieder vom USB-Port abziehen. | ||
Zeile 721: | Zeile 1121: | ||
Im nächsten Konfigurationsbeispiel wollen wir unseren GitHub-Account mit einer Zweifaktorathentifizierungsoption mit Hilfe unseres **Nitrokey 3C NFC** ausstatten. | Im nächsten Konfigurationsbeispiel wollen wir unseren GitHub-Account mit einer Zweifaktorathentifizierungsoption mit Hilfe unseres **Nitrokey 3C NFC** ausstatten. | ||
=== Vorbereitende Arbeiten === | === Vorbereitende Arbeiten === | ||
- | Das Einrichten eines zweiten Faktors ist [[https:// | + | Das Einrichten eines zweiten Faktors ist [[https:// |
Bevor wir unser Krypto-Gerät als zweiten Faktor einrichten und verwenden können, müssen wir bei **[[https:// | Bevor wir unser Krypto-Gerät als zweiten Faktor einrichten und verwenden können, müssen wir bei **[[https:// | ||
Zeile 728: | Zeile 1128: | ||
- Links finden wir nun in den persönlichen Einstellungsmöglichkeiten die Option **Account security**. {{ : | - Links finden wir nun in den persönlichen Einstellungsmöglichkeiten die Option **Account security**. {{ : | ||
- Hier aktivieren wir nun den Punkt **[ Enable two-factor authentication ]**. {{ : | - Hier aktivieren wir nun den Punkt **[ Enable two-factor authentication ]**. {{ : | ||
- | - Beim Einstellunkspunkt | + | - Beim Einstellungspunkt |
- | - Unter **Authentication verification**, | + | - Unter **Authentication verification**, |
- | - Den sechsstelligen Code, den wir nun als SMS auf unser Mobiltelefon gesendet bekommen tragen wir nun in das Feld **Enter the six-digit code sent to your phone** ein und klicken | + | - Den sechsstelligen Code, den wir nun als SMS auf unser Mobiltelefon gesendet bekommen tragen wir nun in das Feld **Enter the six-digit code sent to your phone** ein und klicken |
- | - Die Codes speichern wir am besten auf einem sicheren Speichergerät ab. Anschließend | + | - Die Codes speichern wir am besten auf einem sicheren Speichergerät ab. Nun klicken wir auf die Schaltfläche **[ I have saved my recovery codes ]** zum Aktivieren der Zweifaktorauthentifizierung unseres |
- Zu guter Letzt melden wir uns einmal ab und erneut bei GitHub an. Nach Eingabe des Passwortes wird uns nun per SMS der Zugangscode zugeschickt den wir in das betreffende Feld eingeben. {{ : | - Zu guter Letzt melden wir uns einmal ab und erneut bei GitHub an. Nach Eingabe des Passwortes wird uns nun per SMS der Zugangscode zugeschickt den wir in das betreffende Feld eingeben. {{ : | ||
- Nun können wir endlich unseren **Nitrokey 3C NFC** als zweiten Faktor einbinden. Die ggf. nötige originale Beschreibung hierzu findet sich [[https:// | - Nun können wir endlich unseren **Nitrokey 3C NFC** als zweiten Faktor einbinden. Die ggf. nötige originale Beschreibung hierzu findet sich [[https:// | ||
Zeile 737: | Zeile 1137: | ||
- Hier wählen wir die Option **Security Keys** aus in dem wir auf die Schaltfläche **[ Add ]** klicken. {{ : | - Hier wählen wir die Option **Security Keys** aus in dem wir auf die Schaltfläche **[ Add ]** klicken. {{ : | ||
- Unter **Security keys** wählen wir nun die Schaltfläche **[ Register new security key ]** an. {{ : | - Unter **Security keys** wählen wir nun die Schaltfläche **[ Register new security key ]** an. {{ : | ||
- | - Anschließend | + | - Nun geben wir einen " |
- Nach Eingabe des Namen 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 Eingabe des Namen werden wir nun gebeten unseren **Nitrokey 3C NFC**-Stick anzustecken bzw. die Touch-Taste darauf zu drücken bzw. genauer gesagt zu berühren. {{ : | ||
- Wurde der **Nitrokey 3C NFC** erkannt, wird dies in unserem Benutzerkonto entsprechend positiv vermerkt. | - Wurde der **Nitrokey 3C NFC** erkannt, wird dies in unserem Benutzerkonto entsprechend positiv vermerkt. | ||
Zeile 746: | Zeile 1146: | ||
{{ : | {{ : | ||
- | Anschließend | + | Anschliessend |
{{ : | {{ : | ||
Zeile 759: | Zeile 1159: | ||
* **[[wiki: | * **[[wiki: | ||
* **[[http:// | * **[[http:// | ||
+ |