Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| suse:nitrokey:start [05.08.2020 20:58. ] – [SSH Client vorbereiten] django | suse:nitrokey:start [18.11.2024 18:51. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 254: | Zeile 254: | ||
| 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 275: | Zeile 275: | ||
| 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 370: | Zeile 370: | ||
| Zum Schluss verlassen wir das Programm **gpg2** mit '' | Zum Schluss verlassen wir das Programm **gpg2** mit '' | ||
| - | gpg/ | + | gpg/ |
| - | Fragen wir nun erneut mit den Befehl '' | + | Fragen wir nun erneut mit den Befehl '' |
| $ gpg2 --card-status | grep Key\ attributes | $ gpg2 --card-status | grep Key\ attributes | ||
| Zeile 428: | Zeile 428: | ||
| 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/ | ||
| gpg: key 9308FC78386863AC marked as ultimately trusted | gpg: key 9308FC78386863AC marked as ultimately trusted | ||
| gpg: revocation certificate stored as '/ | gpg: revocation certificate stored as '/ | ||
| - | public and secret key created and signed.< | + | public and secret key created and signed.</code> |
| Fragen wir nun den Inhalt der SmartCard mit dem Befehl '' | Fragen wir nun den Inhalt der SmartCard mit dem Befehl '' | ||
| Zeile 461: | Zeile 461: | ||
| Authentication key: 9131 32BE D5AF D08E 4464 89B6 77F0 A5B2 F32A 76AE | Authentication key: 9131 32BE D5AF D08E 4464 89B6 77F0 A5B2 F32A 76AE | ||
| created ....: 2020-08-04 21:26:26 | created ....: 2020-08-04 21:26:26 | ||
| - | General key info..: pub ed25519/ | + | General key info..: pub ed25519/ |
| sec> | sec> | ||
| card-no: FFFE 43243711 | card-no: FFFE 43243711 | ||
| Zeile 473: | Zeile 474: | ||
| < | < | ||
| 3E61A50347B523824132EC069308FC78386863AC | 3E61A50347B523824132EC069308FC78386863AC | ||
| - | uid Django aka [BOfH] (Bastard Operator from Hell) < | + | uid Django aka [BOfH] (Bastard Operator from Hell) < |
| sub | sub | ||
| sub | sub | ||
| Zeile 485: | Zeile 486: | ||
| E65B2BDF79A2E2E4C28F6E062E22436430385B49 | E65B2BDF79A2E2E4C28F6E062E22436430385B49 | ||
| Card serial no. = FFFE 43243711 | Card serial no. = FFFE 43243711 | ||
| - | uid | + | uid |
| ssb> | ssb> | ||
| ssb> | ssb> | ||
| Zeile 492: | Zeile 493: | ||
| === Ö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> |
| mQENBFv8ZM0BCADIZ1us1KDfrl+VVZTmjgVDb9XLSJDWOCjjhngzkBNVIYpPRL9P | mQENBFv8ZM0BCADIZ1us1KDfrl+VVZTmjgVDb9XLSJDWOCjjhngzkBNVIYpPRL9P | ||
| Zeile 750: | Zeile 751: | ||
| BUG_REPORT_URL=" | BUG_REPORT_URL=" | ||
| HOME_URL=" | HOME_URL=" | ||
| - | - Nun verschlüsseln wir dieses Textdokument: | + | - Nun verschlüsseln wir dieses Textdokument: |
| - | sub cv25519/ | + | sub cv25519/ |
| | | ||
| Subkey fingerprint: | Subkey fingerprint: | ||
| Zeile 773: | Zeile 774: | ||
| -----END PGP MESSAGE-----</ | -----END PGP MESSAGE-----</ | ||
| - Nun entschlüsseln wir unser Dokument wieder.< | - Nun entschlüsseln wir unser Dokument wieder.< | ||
| - | " | + | " |
| VERSION=" | VERSION=" | ||
| ID=" | ID=" | ||
| Zeile 790: | Zeile 791: | ||
| - Nun signieren wir dieses Textdokument: | - Nun signieren wir dieses Textdokument: | ||
| -rw-r--r-- 1 django users 177 4. Aug 20:57 textdatei.txt.gpg</ | -rw-r--r-- 1 django users 177 4. Aug 20:57 textdatei.txt.gpg</ | ||
| - | sub cv25519/ | + | sub cv25519/ |
| | | ||
| Subkey fingerprint: | Subkey fingerprint: | ||
| Zeile 817: | Zeile 818: | ||
| -----END PGP SIGNATURE-----</ | -----END PGP SIGNATURE-----</ | ||
| gpg: using EDDSA key 3E61A50347B523824132EC069308FC78386863AC | gpg: using EDDSA key 3E61A50347B523824132EC069308FC78386863AC | ||
| - | gpg: Good signature from " | + | gpg: Good signature from " |
| gpg: WARNING: This key is not certified with a trusted signature! | gpg: WARNING: This key is not certified with a trusted signature! | ||
| gpg: There is no indication that the signature belongs to the owner. | gpg: There is no indication that the signature belongs to the owner. | ||
| Zeile 833: | Zeile 834: | ||
| -----END PGP SIGNATURE-----</ | -----END PGP SIGNATURE-----</ | ||
| gpg: using EDDSA key 3E61A50347B523824132EC069308FC78386863AC | gpg: using EDDSA key 3E61A50347B523824132EC069308FC78386863AC | ||
| - | gpg: BAD signature from " | + | gpg: BAD signature from " |
| ==== Nitrokey Start und Thunderbird ==== | ==== Nitrokey Start und Thunderbird ==== | ||
| Zeile 966: | Zeile 967: | ||
| 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. | 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. | ||
| - | {{ :fedora:nitrokey:fedora-nitrokey-ssh.png?nolink&280 |Bild: PIN Abfrage beim Zugriff auf den Authentication Key der SmartCard des Nitrokeys}} | + | {{ :suse: |
| - | Der entsperrte Schlüssel der SmartCard des Nitrokey Start wird nun im Speicher gehalten | + | 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! |
| + | |||
| + | |||
| + | ==== Nitrokey Start und X.509 / S/MIME ==== | ||
| + | === micro-ca-tool === | ||
| + | == Vorbereitung == | ||
| + | $ mkdir ~/ | ||
| + | |||
| + | $ cd ~/ | ||
| + | |||
| + | $ git clone https:// | ||
| + | |||
| + | $ ln -s ~/ | ||
| + | |||
| + | $ micro-ca-tool -h | ||
| + | < | ||
| + | | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | " | ||
| + | | ||
| + | | ||
| + | [#] Version: 0.1 | ||
| + | |||
| + | Welcome to µ-CA. | ||
| + | This tool will help you to perform basic tasks with your CA: | ||
| + | * Create CA as files | ||
| + | * or Create CA on a SmartCard | ||
| + | * or Create CA as files and store on SmartCard | ||
| + | * Create intermediate CA | ||
| + | * Sign other certificates | ||
| + | * Backup CA key with n-of-m scheme key sharing | ||
| + | * Create client certificates | ||
| + | * Basic SmartCard functions: Info, Read, Write, Generate keys, Reset | ||
| + | |||
| + | SECURITY NOTE: This tool handles secret keys. As such it is best to follow the | ||
| + | following guidelines: | ||
| + | * Use this tool only on single-user and non-networked systems. | ||
| + | * Make sure files are stored on an encrypted filesystem only. E.g. copy this | ||
| + | script to a crypto-container. | ||
| + | * Do not leave unencrypted private keys when done. Better encrypt them for | ||
| + | backup or store them on an HSM. | ||
| + | * When done, unmount the encrypted filesystem. | ||
| + | |||
| + | [#] Usage: / | ||
| + | [#] | ||
| + | [#] | ||
| + | [#] | ||
| + | [#] optional [< | ||
| + | |||
| + | == PIN Setzen == | ||
| + | Zunächst setzen | ||
| + | $ micro-ca-tool gpg pin | ||
| + | < | ||
| + | | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | " | ||
| + | | ||
| + | | ||
| + | [#] Version: 0.1 | ||
| + | gpg: OpenPGP Karte Nr. D276000124010200FFFE432438190000 erkannt | ||
| + | |||
| + | 1 - change PIN | ||
| + | 2 - unblock PIN | ||
| + | 3 - change Admin PIN | ||
| + | 4 - set the Reset Code | ||
| + | Q - quit | ||
| + | |||
| + | Ihre Auswahl?</ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | /* | ||
| + | https:// | ||
| + | |||
| + | $ openpgp-tool | ||
| + | |||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | |||
| + | [django@T410 Schreibtisch]$ gpg2 --card-status | ||
| + | Reader ...........: | ||
| + | Application ID ...: D276000124010200FFFE432108430000 | ||
| + | Version ..........: 2.0 | ||
| + | Manufacturer .....: unmanaged S/N range | ||
| + | Serial number ....: 43210843 | ||
| + | Name of cardholder: [nicht gesetzt] | ||
| + | Language prefs ...: [nicht gesetzt] | ||
| + | Sex ..............: | ||
| + | URL of public key : [nicht gesetzt] | ||
| + | Login data .......: [nicht gesetzt] | ||
| + | Signature PIN ....: zwingend | ||
| + | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
| + | Max. PIN lengths .: 127 127 127 | ||
| + | PIN retry counter : 3 3 3 | ||
| + | Signature counter : 0 | ||
| + | Signature key ....: [none] | ||
| + | Encryption key....: [none] | ||
| + | Authentication key: [none] | ||
| + | General key info..: [none] | ||
| + | [django@T410 Schreibtisch]$ gpg2 --card-edit | ||
| + | |||
| + | Reader ...........: | ||
| + | Application ID ...: D276000124010200FFFE432108430000 | ||
| + | Version ..........: 2.0 | ||
| + | Manufacturer .....: unmanaged S/N range | ||
| + | Serial number ....: 43210843 | ||
| + | Name of cardholder: [nicht gesetzt] | ||
| + | Language prefs ...: [nicht gesetzt] | ||
| + | Sex ..............: | ||
| + | URL of public key : [nicht gesetzt] | ||
| + | Login data .......: [nicht gesetzt] | ||
| + | Signature PIN ....: zwingend | ||
| + | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
| + | Max. PIN lengths .: 127 127 127 | ||
| + | PIN retry counter : 3 3 3 | ||
| + | Signature counter : 0 | ||
| + | Signature key ....: [none] | ||
| + | Encryption key....: [none] | ||
| + | Authentication key: [none] | ||
| + | General key info..: [none] | ||
| + | |||
| + | gpg/ | ||
| + | |||
| + | Reader ...........: | ||
| + | Application ID ...: D276000124010200FFFE432108430000 | ||
| + | Version ..........: 2.0 | ||
| + | Manufacturer .....: unmanaged S/N range | ||
| + | Serial number ....: 43210843 | ||
| + | Name of cardholder: [nicht gesetzt] | ||
| + | Language prefs ...: [nicht gesetzt] | ||
| + | Sex ..............: | ||
| + | URL of public key : [nicht gesetzt] | ||
| + | Login data .......: [nicht gesetzt] | ||
| + | Signature PIN ....: zwingend | ||
| + | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
| + | Max. PIN lengths .: 127 127 127 | ||
| + | PIN retry counter : 3 3 3 | ||
| + | Signature counter : 0 | ||
| + | Signature key ....: [none] | ||
| + | Encryption key....: [none] | ||
| + | Authentication key: [none] | ||
| + | General key info..: [none] | ||
| + | |||
| + | gpg/ | ||
| + | Admin-Befehle sind erlaubt | ||
| + | |||
| + | gpg/ | ||
| + | quit Menü verlassen | ||
| + | admin Zeige Admin-Befehle | ||
| + | help Diese Hilfe zeigen | ||
| + | list Alle vorhandenen Daten auflisten | ||
| + | name | ||
| + | url Schlüssel-holen-URL ändern | ||
| + | fetch Holen des Schlüssels mittels der URL auf der Karte | ||
| + | login Ändern der Logindaten | ||
| + | lang | ||
| + | sex Ändern des Geschlechts des Kartenbesitzers | ||
| + | cafpr Ändern des CA-Fingerabdrucks | ||
| + | forcesig | ||
| + | generate | ||
| + | passwd | ||
| + | verify | ||
| + | unblock | ||
| + | factory-reset | ||
| + | kdf-setup | ||
| + | key-attr | ||
| + | |||
| + | gpg/ | ||
| + | Familienname des Kartenbesitzers: | ||
| + | Vorname des Kartenbesitzers: | ||
| + | |||
| + | gpg/ | ||
| + | Spracheinstellungende | ||
| + | |||
| + | gpg/ | ||
| + | Geschlecht: (Männlich (M), Weiblich (F) oder Leerzeichen): | ||
| + | |||
| + | gpg/ | ||
| + | gpg: OpenPGP Karte Nr. D276000124010200FFFE432108430000 erkannt | ||
| + | |||
| + | 1 - change PIN | ||
| + | 2 - unblock PIN | ||
| + | 3 - change Admin PIN | ||
| + | 4 - set the Reset Code | ||
| + | Q - quit | ||
| + | |||
| + | Ihre Auswahl? 3 | ||
| + | PIN changed. | ||
| + | |||
| + | 1 - change PIN | ||
| + | 2 - unblock PIN | ||
| + | 3 - change Admin PIN | ||
| + | 4 - set the Reset Code | ||
| + | Q - quit | ||
| + | |||
| + | Ihre Auswahl? 1 | ||
| + | Error changing the PIN: Nutzungsvorraussetzungen nicht erfüllt | ||
| + | |||
| + | 1 - change PIN | ||
| + | 2 - unblock PIN | ||
| + | 3 - change Admin PIN | ||
| + | 4 - set the Reset Code | ||
| + | Q - quit | ||
| + | |||
| + | Ihre Auswahl? | ||
| + | |||
| + | 1 - change PIN | ||
| + | 2 - unblock PIN | ||
| + | 3 - change Admin PIN | ||
| + | 4 - set the Reset Code | ||
| + | Q - quit | ||
| + | |||
| + | Ihre Auswahl? q | ||
| + | |||
| + | gpg/ | ||
| + | |||
| + | Reader ...........: | ||
| + | Application ID ...: D276000124010200FFFE432108430000 | ||
| + | Version ..........: 2.0 | ||
| + | Manufacturer .....: unmanaged S/N range | ||
| + | Serial number ....: 43210843 | ||
| + | Name of cardholder: Michael Nausch | ||
| + | Language prefs ...: de | ||
| + | Sex ..............: | ||
| + | URL of public key : [nicht gesetzt] | ||
| + | Login data .......: [nicht gesetzt] | ||
| + | Signature PIN ....: zwingend | ||
| + | Key attributes ...: rsa2048 rsa2048 rsa2048 | ||
| + | Max. PIN lengths .: 127 127 127 | ||
| + | PIN retry counter : 3 3 3 | ||
| + | Signature counter : 0 | ||
| + | Signature key ....: [none] | ||
| + | Encryption key....: [none] | ||
| + | Authentication key: [none] | ||
| + | General key info..: [none] | ||
| + | |||
| + | gpg/ | ||
| + | |||
| + | |||
| + | $ opensc-explorer | ||
| + | OpenSC Explorer version 0.19.0 | ||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | Failed to connect to card: Reader in use by another application | ||
| + | |||
| + | |||
| + | $ opensc-explorer | ||
| + | OpenSC Explorer version 0.19.0 | ||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | OpenSC [3F00]> | ||
| + | |||
| + | |||
| + | $ openpgp-tool --erase | ||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | Erase card | ||
| + | |||
| + | |||
| + | $ opensc-explorer | ||
| + | OpenSC Explorer version 0.19.0 | ||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | OpenSC [3F00]> help | ||
| + | Supported commands: | ||
| + | echo [< | ||
| + | ls [< | ||
| + | find [<start id> [<end id> | ||
| + | find_tags [<start tag> [<end tag> | ||
| + | cd {.. | <file id> | aid:<DF name> | ||
| + | cat [<file id> | sfi:<sfi id> | ||
| + | info [<file id> | ||
| + | create <file id> < | ||
| + | mkdir <file id> < | ||
| + | delete <file id> | ||
| + | rm <file id> | ||
| + | verify {CHV|KEY|AUT|PRO}< | ||
| + | change CHV<pin ref> [[<old pin>] <new pin> | ||
| + | unblock CHV<pin ref> [< | ||
| + | put <file id> [<input file> | ||
| + | get <file id> [<output file> | ||
| + | do_get <hex tag> [<output file> | ||
| + | do_put <hex tag> < | ||
| + | erase erase card | ||
| + | random < | ||
| + | update_record <file id> <rec no> <rec offs> < | ||
| + | update_binary <file id> < | ||
| + | apdu < | ||
| + | asn1 [<file id> | ||
| + | sm open|close | ||
| + | debug [< | ||
| + | quit quit this program | ||
| + | exit quit this program | ||
| + | help show this help | ||
| + | OpenSC [3F00]> exit | ||
| + | |||
| + | |||
| + | Pairs of key & certificate from P12 file: | ||
| + | $ pkcs15-init --verbose --delete-objects privkey, | ||
| + | Using reader with a card: Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00 | ||
| + | Connecting to card in reader Nitrokey Nitrokey Start (FSIJ-1.2.10-43210843) 00 00... | ||
| + | Using card driver OpenPGP card. | ||
| + | Found OpenPGP card | ||
| + | User PIN required. | ||
| + | Please enter User PIN [Admin PIN]: | ||
| + | About to delete object(s). | ||
| + | NOTE: couldn' | ||
| + | NOTE: couldn' | ||
| + | Deleted 0 objects | ||
| + | About to store private key. | ||
| + | error: | ||
| + | Please enter passphrase to unlock secret key: | ||
| + | Importing 3 certificates: | ||
| + | 0: / | ||
| + | 1: / | ||
| + | 2: / | ||
| + | Failed to store private key: Invalid arguments | ||
| + | |||
| + | Vermutliche Ursache, private key zu groß! | ||
| + | |||
| + | */ | ||
| + | |||
| + | ... coming soon! | ||
| - | <WRAP center round important 90%> | ||
| - | **WICHTIG: | ||
| - | Da wir den Schlüssel **__nicht__** aus einer Datei geladen hatten, können wir diese auch nicht mit Hilfe von '' | ||
| - | $ pkill gpg-agent | ||
| - | </ | ||
| - | Anschließend lassen sich Verbindungen zu unseren Remote-Systemen erst wieder aufbauen, wenn der GPG-Agent geladen und die Karte nach Eingabe der PIN entsperrt wurde! | + | # zypper install opensc |