nitrokey:linuxmint:pro

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
nitrokey:linuxmint:pro [30.08.2020 14:49. ] – [Nitrokey und Thunderbird] djangonitrokey:linuxmint:pro [18.11.2024 18:56. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 62: Zeile 62:
  
 Diese Pakete installieren wir, falls diese nicht bereits im System vorhanden sind, bei Bedarf mit Hilfe von **apt**. Diese Pakete installieren wir, falls diese nicht bereits im System vorhanden sind, bei Bedarf mit Hilfe von **apt**.
-   apt-get install scdaemon libccid+   $ sudo apt install scdaemon libccid
  
 /*  /* 
Zeile 108: Zeile 108:
  
 Alternativ können wir natürlich das Programm auch direkt auf der Konsole starten: Alternativ können wir natürlich das Programm auch direkt auf der Konsole starten:
-   nextcloud-app+   nitrokey-app
  
 Ein Hinweis zur Nitrokey App wird ausgegeben. Ein Hinweis zur Nitrokey App wird ausgegeben.
Zeile 214: Zeile 214:
 {{ :nitrokey:nitropad_056.png?nolink&375 |Bild: Nitrokey App - Ninweis zum erfolgreichen Kopieren des Passortes aus dem Passwort-Safe}} {{ :nitrokey:nitropad_056.png?nolink&375 |Bild: Nitrokey App - Ninweis zum erfolgreichen Kopieren des Passortes aus dem Passwort-Safe}}
  
-==== Nitrokey Pro und GnuPG  ====+==== GnuPG  ====
 Da es sich bei der Chipkarte des **Nitrokey Pro** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https://www.gnupg.org/|GnuPG]]** verwaltet werden. Hierzu installieren wir uns das Paket **gnupg2**, sofern es nicht bereits bei der Erstkonfiguration unseres Rechner installiert wurde. Da es sich bei der Chipkarte des **Nitrokey Pro** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https://www.gnupg.org/|GnuPG]]** verwaltet werden. Hierzu installieren wir uns das Paket **gnupg2**, sofern es nicht bereits bei der Erstkonfiguration unseres Rechner installiert wurde.
-   apt-get install gpg+   $ sudo apt install gpg
  
 Alle Sicherheitsfunktionen wie z.B. das Erzeugen/Speichern von GPG-Schlüsseln, das Verschlüsseln/Entschlüsseln einer Datei, das Signieren einer Nachricht, die auf der Hardware ausgeführt werden, können mit Hilfe des Befehls **gpg** gesteuert werden.  Alle Sicherheitsfunktionen wie z.B. das Erzeugen/Speichern von GPG-Schlüsseln, das Verschlüsseln/Entschlüsseln einer Datei, das Signieren einer Nachricht, die auf der Hardware ausgeführt werden, können mit Hilfe des Befehls **gpg** gesteuert werden. 
Zeile 618: Zeile 618:
  
 Real name: Django aka Bastard Operator from Hell Real name: Django aka Bastard Operator from Hell
-Email address: django@mailserver.guru+Email address: django@nausch.org
 Comment:  Comment: 
 You selected this USER-ID: You selected this USER-ID:
-    "Django aka Bastard Operator from Hell <django@mailserver.guru>"+    "Django aka Bastard Operator from Hell <django@nausch.org>"
  
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
Zeile 670: Zeile 670:
       created ....: 2020-08-29 20:42:00       created ....: 2020-08-29 20:42:00
 General key info..:  General key info..: 
-pub  rsa4096/56D31D76E0C812E8 2020-08-29 Django aka Bastard Operator from Hell <django@mailserver.guru>+pub  rsa4096/56D31D76E0C812E8 2020-08-29 Django aka Bastard Operator from Hell <django@nausch.org>
 sec>  rsa4096/56D31D76E0C812E8  created: 2020-08-29  expires: never      sec>  rsa4096/56D31D76E0C812E8  created: 2020-08-29  expires: never     
                                 card-no: 0005 000034D4                                 card-no: 0005 000034D4
Zeile 698: Zeile 698:
 pub   rsa4096 2020-08-30 [SC] pub   rsa4096 2020-08-30 [SC]
       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7
-uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 sub   rsa4096 2020-08-30 [E] sub   rsa4096 2020-08-30 [E]
  
Zeile 711: Zeile 711:
 sec   rsa4096 2020-08-30 [SC] sec   rsa4096 2020-08-30 [SC]
       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7
-uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 ssb   rsa4096 2020-08-30 [E] ssb   rsa4096 2020-08-30 [E]
  
Zeile 765: Zeile 765:
 pub   rsa4096 2020-08-30 [SC] pub   rsa4096 2020-08-30 [SC]
       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7
-uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 sub   rsa4096 2020-08-30 [E] sub   rsa4096 2020-08-30 [E]
  
Zeile 782: Zeile 782:
 ssb  rsa4096/D5D9674D9331F388 ssb  rsa4096/D5D9674D9331F388
      created: 2020-08-30  expires: never       usage: E         created: 2020-08-30  expires: never       usage: E   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg> </code> gpg> </code>
Zeile 834: Zeile 834:
 ssb  rsa4096/A6EC2C062AEE3AB8 ssb  rsa4096/A6EC2C062AEE3AB8
      created: 2020-08-30  expires: never       usage: S         created: 2020-08-30  expires: never       usage: S   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 gpg></code> gpg></code>
  
Zeile 936: Zeile 936:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg> gpg>
Zeile 952: Zeile 952:
 sec   rsa4096 2020-08-30 [SC] sec   rsa4096 2020-08-30 [SC]
       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7       FEFA8BFEC18C32F19968C5EE412BC6B241503EC7
-uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+uid           [ultimate] Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 ssb   rsa4096 2020-08-30 [E] ssb   rsa4096 2020-08-30 [E]
 ssb   rsa4096 2020-08-30 [S] ssb   rsa4096 2020-08-30 [S]
Zeile 978: Zeile 978:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1001: Zeile 1001:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1018: Zeile 1018:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1047: Zeile 1047:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1063: Zeile 1063:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1077: Zeile 1077:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1102: Zeile 1102:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1118: Zeile 1118:
 ssb  rsa4096/28B0CB362EC9939D ssb  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1132: Zeile 1132:
 ssb* rsa4096/28B0CB362EC9939D ssb* rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1156: Zeile 1156:
 ssb* rsa4096/28B0CB362EC9939D ssb* rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1188: Zeile 1188:
 Authentication key: 140B 5460 7269 96FE 98F7  C9AA 28B0 CB36 2EC9 939D Authentication key: 140B 5460 7269 96FE 98F7  C9AA 28B0 CB36 2EC9 939D
       created ....: 2020-08-30 12:07:06       created ....: 2020-08-30 12:07:06
-General key info..: sub  rsa4096/A6EC2C062AEE3AB8 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+General key info..: sub  rsa4096/A6EC2C062AEE3AB8 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
 sec   rsa4096/412BC6B241503EC7  created: 2020-08-30  expires: never      sec   rsa4096/412BC6B241503EC7  created: 2020-08-30  expires: never     
 ssb>  rsa4096/D5D9674D9331F388  created: 2020-08-30  expires: never      ssb>  rsa4096/D5D9674D9331F388  created: 2020-08-30  expires: never     
Zeile 1200: Zeile 1200:
 == Schlüssel aus dem lokalen Schlüsselspeicher entfernen ==  == Schlüssel aus dem lokalen Schlüsselspeicher entfernen == 
 Löschen wir nun den kompletten Schlüssel aus der lokalen Schlüsseldatei, können wir folgenden Befehl verwenden. Löschen wir nun den kompletten Schlüssel aus der lokalen Schlüsseldatei, können wir folgenden Befehl verwenden.
-   $ gpg --delete-secret-key django@mailserver.guru+   $ gpg --delete-secret-key django@nausch.org
 <code>gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc. <code>gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it. This is free software: you are free to change and redistribute it.
Zeile 1206: Zeile 1206:
  
  
-sec  rsa4096/412BC6B241503EC7 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+sec  rsa4096/412BC6B241503EC7 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 Delete this key from the keyring? (y/N) y Delete this key from the keyring? (y/N) y
Zeile 1238: Zeile 1238:
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
      card-no: 0005 000034D4      card-no: 0005 000034D4
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg> gpg>
Zeile 1249: Zeile 1249:
  
 Nun löschen wir den primären Signierungsschlüssel inkl. der Unterschlüssel. Nun löschen wir den primären Signierungsschlüssel inkl. der Unterschlüssel.
-   $ gpg --delete-secret-key django@mailserver.guru+   $ gpg --delete-secret-key django@nausch.org
 <code>gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc. <code>gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it. This is free software: you are free to change and redistribute it.
Zeile 1255: Zeile 1255:
  
  
-sec  rsa4096/412BC6B241503EC7 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+sec  rsa4096/412BC6B241503EC7 2020-08-30 Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 Delete this key from the keyring? (y/N) y Delete this key from the keyring? (y/N) y
Zeile 1265: Zeile 1265:
 Nun importieren wir wieder die zuvor gesicherten privaten Unterschlüssel Nun importieren wir wieder die zuvor gesicherten privaten Unterschlüssel
    $ gpg --import subkeys    $ gpg --import subkeys
-<code>gpg: key 412BC6B241503EC7: "Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>" not changed+<code>gpg: key 412BC6B241503EC7: "Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>" not changed
 gpg: To migrate 'secring.gpg', with each smartcard, run: gpg --card-status gpg: To migrate 'secring.gpg', with each smartcard, run: gpg --card-status
 gpg: key 412BC6B241503EC7: secret key imported gpg: key 412BC6B241503EC7: secret key imported
Zeile 1290: Zeile 1290:
 sub  rsa4096/28B0CB362EC9939D sub  rsa4096/28B0CB362EC9939D
      created: 2020-08-30  expires: never       usage: A         created: 2020-08-30  expires: never       usage: A   
-[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@mailserver.guru>+[ultimate] (1). Django aka BOfH (Bastard Operator from Hell) <django@nausch.org>
  
 gpg></code> gpg></code>
Zeile 1316: Zeile 1316:
 pub   rsa4096 2020-08-29 [S] pub   rsa4096 2020-08-29 [S]
       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8
-uid          Django aka Bastard Operator from Hell <django@mailserver.guru>+uid          Django aka Bastard Operator from Hell <django@nausch.org>
  
 A revocation certificate is a kind of "kill switch" to publicly A revocation certificate is a kind of "kill switch" to publicly
Zeile 1367: Zeile 1367:
 pub   rsa4096 2020-08-29 [SC] pub   rsa4096 2020-08-29 [SC]
       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8
-uid           [ultimate] Django aka Bastard Operator from Hell <django@mailserver.guru+uid           [ultimate] Django aka Bastard Operator from Hell <django@nausch.org
-sig 3        56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@mailserver.guru>+sig 3        56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@nausch.org>
 sub   rsa4096 2020-08-29 [A] sub   rsa4096 2020-08-29 [A]
-sig          56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@mailserver.guru>+sig          56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@nausch.org>
 sub   rsa4096 2020-08-29 [E] sub   rsa4096 2020-08-29 [E]
-sig          56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@mailserver.guru>+sig          56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@nausch.org>
  
 </code> </code>
Zeile 1379: Zeile 1379:
    $ gpg --gen-revoke D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8    $ gpg --gen-revoke D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8
  
-<code>sec  rsa4096/56D31D76E0C812E8 2020-08-29 Django aka Bastard Operator from Hell <django@mailserver.guru>+<code>sec  rsa4096/56D31D76E0C812E8 2020-08-29 Django aka Bastard Operator from Hell <django@nausch.org>
  
 Create a revocation certificate for this key? (y/N)</code> Create a revocation certificate for this key? (y/N)</code>
Zeile 1463: Zeile 1463:
  
    $ gpg --import revocation.crt     $ gpg --import revocation.crt 
-<code>gpg: key 56D31D76E0C812E8: "Django aka Bastard Operator from Hell <django@mailserver.guru>" revocation certificate imported+<code>gpg: key 56D31D76E0C812E8: "Django aka Bastard Operator from Hell <django@nausch.org>" revocation certificate imported
 gpg: Total number processed: 1 gpg: Total number processed: 1
 gpg:    new key revocations: 1 gpg:    new key revocations: 1
Zeile 1481: Zeile 1481:
 pub   rsa4096 2020-08-29 [SC] [revoked: 2020-08-30] pub   rsa4096 2020-08-29 [SC] [revoked: 2020-08-30]
       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8       D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8
-rev          56D31D76E0C812E8 2020-08-30  Django aka Bastard Operator from Hell <django@mailserver.guru>+rev          56D31D76E0C812E8 2020-08-30  Django aka Bastard Operator from Hell <django@nausch.org>
       reason for revocation: Key is no longer used       reason for revocation: Key is no longer used
          revocation comment: Dies war nur ein Demonstrationsschlüssel!          revocation comment: Dies war nur ein Demonstrationsschlüssel!
-uid           [ revoked] Django aka Bastard Operator from Hell <django@mailserver.guru+uid           [ revoked] Django aka Bastard Operator from Hell <django@nausch.org
-sig 3        56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@mailserver.guru>+sig 3        56D31D76E0C812E8 2020-08-29  Django aka Bastard Operator from Hell <django@nausch.org>
  
 </code> </code>
Zeile 1590: Zeile 1590:
  
  
-==== Nitrokey Start und Secure Shell  ==== +==== Secure Shell (SSH) ==== 
  
 <WRAP center round important 90%> <WRAP center round important 90%>
Zeile 1600: Zeile 1600:
  
 **[[https://de.wikipedia.org/wiki/Curve25519|EED25519]]** ist ein Elliptic Curve Signature Schema, welches beste Sicherheit bei vertretbaren Aufwand verspricht, als ECDSA oder DSA dies der Fall ist. Zur Auswahl sicherer kryptografischer Kurven bei der //Elliptic-Curve Cryptography// findet man auf der Seite [[https://safecurves.cr.yp.to/|hier]] hilfreiche Erklärungen und eine Gegenüberstellung der möglichen verschiedenen Alternativen. **[[https://de.wikipedia.org/wiki/Curve25519|EED25519]]** ist ein Elliptic Curve Signature Schema, welches beste Sicherheit bei vertretbaren Aufwand verspricht, als ECDSA oder DSA dies der Fall ist. Zur Auswahl sicherer kryptografischer Kurven bei der //Elliptic-Curve Cryptography// findet man auf der Seite [[https://safecurves.cr.yp.to/|hier]] hilfreiche Erklärungen und eine Gegenüberstellung der möglichen verschiedenen Alternativen.
 +
 +Mit Hinblick auf die möglichen Unsicherheiten im Bezug auf die [[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf|RSA-Schlüssellänge]]((BSI TR-02102-1 "Kryptographische Verfahren: Empfehlungen und Schlüssellängen" Version: 2020-01 vom 02.04.2020)) werden wir uns ersteinmal nicht mit diesen Defaultwerten begnügen, sondern die maximale RSA-Schlüssell#nge von 4096 bit verwenden. /*später noch eingehend mit der Erstellung eines [[start#ed25519-schluessel_generieren|ED25519]] beschäftigen!*/
 </WRAP> </WRAP>
  
-Will oder muss man weiterhin auf RSA-Schlüssel zurückgreifen, ist wenigstens auf eine ausreichend große Schlüssellänge zurück zu greifen!+Will oder muss man weiterhin auf RSA-Schlüssel zurückgreifen, ist wenigstens auf eine ausreichend große Schlüssellänge zurück zu greifen! Bei der initialen Einrichtung unseres Nitrokey Pro hbaen wir bei der **[[#schluesseleigenschaften_definieren|Definition der Schlüsseleigenschaften]]** bereits einen **RSA**-Key mit einer Länge von **4096 bit** definiert. In aller Regel wird dies entsprechend ausreichen.
  
-FIXME+=== SSH Client vorbereiten === 
 +/* 
 +=== SSH-Client konfigurieren === 
 +Zur einfacheren Administration unserer Remote-Hosts bedienen wir uns einer User-Konfigurationsdatei im Homeverzeichnis **''~/.ssh''** unseres Admin-Useraccouns.  
 +   $ vim ~/.ssh/config
  
-==== Nitrokey und Thunderbird  ==== +<file bash ~/.ssh/config>Host voip-sc 
 +     Hostname 10.20.30.40 
 +     Port 9922 
 +     User django 
 +     Protocol 2 
 +     PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so 
 + 
 +</file> 
 + 
 +Die passende **''pkcs#11''** Provider-Library befindet sich im PAket **opensc** welches wir uns nun noch installieren, falle diese Datei noch nicht installiert wurde. 
 +   $ sudo apt install opensc 
 + 
 +*/ 
 +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 ''**enable-ssh-support**'' in der Konfigurationsdatei //**~/.gnupg/gpg-agent.conf 
 +**// des GPG-Agenten. 
 +   $ vim ~/.gnupg/gpg-agent.conf 
 +<file bash ~/.gnupg/gpg-agent.conf># File re-created by pEp 
 +# See backup in '/home/django/.gnupg/gpg-agent.conf.1.pep.bkp' 
 + 
 +# File re-created by pEp 
 +# See backup in '/home/django/.gnupg/gpg-agent.conf.0.pep.bkp' 
 + 
 +default-cache-ttl 300 
 +max-cache-ttl 999999 
 + 
 +# Django : 2020-08-05 
 +#          SSH-Unterstützung beim gnupg-agent aktiviert  
 +enable-ssh-support</file> 
 + 
 +Anschließend müssen wir noch die Datei //**~/.bashrc**// erweitern, damit der **SSH_AUTH_SOCK** für den Zugriff des SSH-Schlüssels auf dem Nitrokey Start genutzt werden kann. 
 +   $ vim ~/.bashrc 
 +<file bash ~/.bashrc># .bashrc 
 + 
 +# Source global definitions 
 +if [ -f /etc/bashrc ]; then 
 +        . /etc/bashrc 
 +fi 
 + 
 +# User specific environment 
 +PATH="$HOME/.local/bin:$HOME/bin:$PATH" 
 +export PATH 
 + 
 +# Uncomment the following line if you don't like systemctl's auto-paging feature: 
 +# export SYSTEMD_PAGER= 
 + 
 +# User specific aliases and functions 
 + 
 +# Django : 2020-08-05 
 +#          Definition des SSH_AUTH_SOCK für den Zugriff des SSH-Schlüssels auf dem Nitrokey Start 
 +unset SSH_AGENT_PID 
 +        if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then 
 +        export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" 
 +fi</file> 
 + 
 +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 RSA4096-Keys für 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. 
 +   $ gpg --card-status | grep Authentication\ key 
 + 
 +  Authentication key: 765D 1F7C 8AF0 1360 30FF  FB20 872B 620E 5C5D 1F71 
 + 
 +In diesem Konfigurationsbeispiel ist die Schlüssel-ID des Autentication Keys also die Nummer ''**872B620E5C5D1F71**'' (also die vier letzten vierer Blöcke). 
 + 
 +Nun exportieren wir den öffentlichen Schlüssel und schreiben diesen in eine separate Datei. 
 +   $ $ gpg --export-ssh-key 872B620E5C5D1F71  >> ~/.ssh/872B620E5C5D1F71.pub 
 + 
 +Der Öffentliche Schlüssel in diesen Konfigurationsbeispiel lautet also: 
 +   $ cat ~/.ssh/872B620E5C5D1F71.pub 
 + 
 +  ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCa1OmylijwG9NXLN7OukmiZAtITHOFkEdb4ztmgL87h+Bn4PbEvMcErbXqCEtLTZK8IQYg+7JU1/Nw+FJyqjk2PAaCnrdEUm8aLRGS1/RPv6MCtbVFkqjVO6mp+PDfPURcMKeJrNVIYdJHmQO7UBLCUKCm8HNrPGEZDrOoN0jvxLSss1Cgu30d8eu3TZmAZBt+kHpUeIuovJD6kGHDZk5MVoDWz+w2/f6AisVhnNTND+D7cLwFpDL7aFOZd1CI6a3pIOc1V7dWnWSYtvJWukNbeh1J0cm04QK8e2L5+A7PmdxqXGXBo6U1al4XFb55I51BYDblkc6h5KRbSDUhXlfD8Iaqrq1lR9cMURYfLovnk5botf7CcMZh/pyj6g1xgkqaddS9m5f7mBEitSmOCAAjHXpxkienwT7DidbMLhUJ+uUFRx2XhjQWAep2l+ZM4FRljFllAGETzxVFR/S7U1fzqU2VF+u5XIh1vGi4MdPKHDtmU1gLBHBsvpsYHUz2AR7Q5rUFKHqpY+24iDRYJp//HrBRkLNNPFYAzEfX/WCk8znuX67vloG7i4vlVowQmiCBN2E3gv3Z+liPYLaKbfmS35+3LcxuQA/nwW/gW9SbGt75RA+hDt62KxMF9QZVvz4DDefp3qvIkP5PFOG/WLfrjxPLptxo0A8jZhcsSOOwxQ== openpgp:0x5C5D1F71 
 + 
 +Diesen Schlüssel kopieren wir nun auf das entsprechende Zielsystem an Ort und Stelle ''**~/.ssh/authorized_keys**''
 +   $ scp ~/.ssh/872B620E5C5D1F71.pub zielhost.dmz.nausch.org: && ssh zielhost.dmz.nausch.org 'cat authorized_keys >> ~/.ssh/authorized_keys' 
 + 
 + 
 +=== SSH-Verbindung aufbauen === 
 +Nun können wir wie gewohnt eine Verbindung zu unserem entfernten System aufbauen.  
 +   $ ssh zielhost.dmz.nausch.org 
 +bzw. 
 +   $ ssh <IP-Adresse-des-Zielhosts> 
 + 
 +{{ :nitrokey:nitropad_063.png?nolink&475 |Bild: Bildschirmhardcopy beim Verbindungsaufbau / Passwortabfrage der SSH}} 
 + 
 +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. 
 + 
 +{{ :nitrokey:nitropad_064.png?nolink&475 |Bild: Bildschirmhardcopy beim einer Remote-Verbindung via SSH}} 
 + 
 +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! 
 + 
 +/* 
 +$ ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so voip 
 +############################################################################## 
 +#                                                                            # 
 +#                       This is a private home server.                       # 
 +#                                                                            # 
 +#             Unauthorized access to this system is prohibited !             # 
 +#                                                                            # 
 +#    This system is actively monitored and all connections may be logged.    # 
 +#         By accessing this system, you consent to this monitoring.          # 
 +#                                                                            # 
 +############################################################################## 
 +Enter PIN for 'OpenPGP card (User PIN)':  
 +Last login: Sun Aug 30 16:58:05 2020 from vml000027.dmz.nausch.org 
 +############################################################################## 
 +#                                                                            # 
 +#                 This is the home server of Michael Nausch.                 # 
 +#                                                                            # 
 +#                            vml000177.nausch.org                            # 
 +#                                                                            # 
 +#             Unauthorized access to this system is prohibited !             # 
 +#                                                                            # 
 +#    This system is actively monitored and all connections may be logged.    # 
 +#         By accessing this system, you consent to this monitoring.          # 
 +#                                                                            # 
 +############################################################################## 
 +[django@vml000177 ~]$ 
 +*/ 
 +==== EMail mit Thunderbird  ==== 
 === PGP === === PGP ===
 Unseren zuvor auf dem Nitrokey Pro **[[#schluessel_auf_dem_nitrokey_pro_generieren|erzeugtem Schlüsselmaterial]]** wollen wir nun verwenden, um bei Thunderbird unsere elektronische Kommunikation per eMail abzusichern.  Unseren zuvor auf dem Nitrokey Pro **[[#schluessel_auf_dem_nitrokey_pro_generieren|erzeugtem Schlüsselmaterial]]** wollen wir nun verwenden, um bei Thunderbird unsere elektronische Kommunikation per eMail abzusichern. 
Zeile 1662: Zeile 1789:
 {{ :nitrokey:thunderbird_mint_11.png?nolink&500 |Bild: Bildschirmhardcoby von Thunderbild - Auswahl Add-ons Menü}} {{ :nitrokey:thunderbird_mint_11.png?nolink&500 |Bild: Bildschirmhardcoby von Thunderbild - Auswahl Add-ons Menü}}
  
 +=== S/MIME  (X.509) ===
 +== Vorbereitungen - micro-ca-tool und libengine-pkcs11-openssl==
 +Damit wir ein X.509-Zertifikat bei einer **[[https://de.wikipedia.org/wiki/Zertifizierungsstelle|CA]]**((**C**ertification **A**uthority => Zertifizierungsstelle)) bezioehen können, benötigen wir einen **[[https://de.wikipedia.org/wiki/Certificate_Signing_Request|CSR]]**((**C**ertificate **S**igning **R**equest)). Für die Erstellung dieses **CSR**s verwenden wir das **[[https://github.com/sektioneins/micro-ca-tool|micro-ca-tool]]**.
 +
 +Bevor wir es von **[[https://github.com|GitHub]]** herunterladen installieren wir noch die benötigte **libengine**:
 +   $ sudo apt install libengine-pkcs11-openssl
 +
 +Anschließend legen wir uns ein entsprechendes Verzeichnis für das Toool im Homeverzeichnis **''~/''** unseres Admin-Users an.
 +   $ mkdir ~/nitrokey
 +
 +   $ cd  ~/nitrokey
 +
 +Dann Clonen wir das Projekt.
 +   $ git clone https://github.com/sektioneins/micro-ca-tool.git
 +
 +Anschließend verlinken wir noch das ausführbare Shell-Script, welches uns die Arbeit entsprechend vereinfachen wird.
 +   $ ln -s ~/nitrokey/micro-ca-tool/micro-ca-tool ~/bin/micro-ca-tool
 +
 +Mit der Option **''-h''** können wir uns einen Hilfetext von **micro-ca-tool** anzeigen lassen.
 +   $ micro-ca-tool -h
 +<code>                 mmm    mm         mmmmmmm               ""#
 +           m"   "   ##            #     mmm    mmm     #
 + #   #         #       #  #           #    #" "#  #" "#    #
 + #   #   """   #       #mm#   """     #    #   #  #   #    #
 + #mmm#        "mmm" #    #          #    "#m#"  "#m#"    "mm
 + #
 + "               (C) 2015 SektionEins GmbH / Ben Fuhrmannek
 +                 https://sektioneins.com/
 +                 https://github.com/sektioneins/micro-ca-tool
 +[#] 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: /home/django/bin/micro-ca-tool [-c <config>] [-v] [-h] [<menu> <submenu>]
 +[#]   -c  specify alternative config file
 +[#]   -v  be verbose
 +[#]   -h  show this help message
 +[#]  optional [<menu> <submenu>] directly calls a function, then exits.</code>
 +
 +== CSR mit Hilfe des micro-ca-tool erstellen ==
 +Den **CSR**((**C**ertificate **S**igning **R**equest)) oder auf Deutsch **//[[https://de.wikipedia.org/wiki/Certificate_Signing_Request|Zertifikatsignierungsanforderung]]//** erstellen wir der Einfachheit halber mit Hilfe des **''micro-ca-tool''**.
 +
 +Das Tool hält alle relevanten Konfigurationsparameter in einer zugehörigen Datei **''micro-ca-tool.config''** vor.
 +   $ cat micro-ca-tool.config
 +<file bash micro-ca-tool.config>## autogenerated config file for micro-ca-tool 0.1
 +cfg_app_openssl="/usr/bin/openssl"
 +cfg_app_pkcs15_init="pkcs15-init"
 +cfg_app_pkcs15_tool="pkcs15-tool"
 +cfg_file_engine_pkcs11="/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so"
 +cfg_file_opensc_pkcs11="/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so"
 +</file>
 +
 +Nun erzeugen wir uns einen **CSR** denn wir später bei der **CA** unseres Vertrauens einreichen vund bitten werden, dass diese den CSR signieren und uns siomit ein Zertifikat auisstellen mögen. 
 +
 +Wir müssen dem **''micro-ca-tool''** nun nur noch folgende Parameter mitgeben
 +  * **Subject** : Im Falle eines X.509 für eMailverschlüsselung ist diese die eMailadresse des betreffenden Kontos, in unserem Falle also **''/CN=django@nausch.org''**
 +  * **CSR Filename** : Dateiname der CSR-Datei
 +  * **Private Key** : Zum Erstellen und Signieren des CSR muss des Tool wiossen wo es den privatzen Schlüssel auf der Karte findet. Wir lassen uns also erst  einmal zur Sicherheit den Inhalt der OpenPGP-SmartCard anzeigen. <code> $ micro-ca-tool sc i</code><code>                mmm    mm         mmmmmmm               ""#
 +           m"   "   ##            #     mmm    mmm     #
 + #   #         #       #  #           #    #" "#  #" "#    #
 + #   #   """   #       #mm#   """     #    #   #  #   #    #
 + #mmm#        "mmm" #    #          #    "#m#"  "#m#"    "mm
 + #
 + "               (C) 2015 SektionEins GmbH / Ben Fuhrmannek
 +                 https://sektioneins.com/
 +                 https://github.com/sektioneins/micro-ca-tool
 +[#] Version: 0.1
 +Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00
 +Private RSA Key [Signature key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x20C], sign, signRecover, nonRepudiation
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : yes
 + Auth ID        : 01
 + ID             : 01
 + MD:guid        : 48870840-df64-70eb-2bc0-105a4f678b41
 +
 +Private RSA Key [Encryption key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x22], decrypt, unwrap
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 1 (0x01)
 + Native         : yes
 + Auth ID        : 02
 + ID             : 02
 + MD:guid        : 7b0d3403-7bbc-a9cc-a3e2-213e3296ecb2
 +
 +Private RSA Key [Authentication key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x222], decrypt, unwrap, nonRepudiation
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 2 (0x02)
 + Native         : yes
 + Auth ID        : 02
 + ID             : 03
 + MD:guid        : c805d2b2-2d84-3703-089a-3d691d17e5b3
 +
 +Public RSA Key [Signature key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0xC0], verify, verifyRecover
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : b601
 + ID             : 01
 +
 +Public RSA Key [Encryption key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0x11], encrypt, wrap
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : b801
 + ID             : 02
 +
 +Public RSA Key [Authentication key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0x51], encrypt, wrap, verify
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : a401
 + ID             : 03
 +
 +</code> In unsererm Fall ist das der Schlüssel **''01:01''**. <code>Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00
 +Private RSA Key [Signature key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x20C], sign, signRecover, nonRepudiation
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : yes
 + Auth ID        : 01
 + ID             : 01
 + MD:guid        : 48870840-df64-70eb-2bc0-105a4f678b41</code>
 +
 +Wir rufen nun also das Tool **''micro-ca-tool''** wir folgt auf und geben dann die entsprechenden Daten an:
 +   $ micro-ca-tool sc new-csr
 +<code>                 mmm    mm         mmmmmmm               ""#
 +           m"   "   ##            #     mmm    mmm     #
 + #   #         #       #  #           #    #" "#  #" "#    #
 + #   #   """   #       #mm#   """     #    #   #  #   #    #
 + #mmm#        "mmm" #    #          #    "#m#"  "#m#"    "mm
 + #
 + "               (C) 2015 SektionEins GmbH / Ben Fuhrmannek
 +                 https://sektioneins.com/
 +                 https://github.com/sektioneins/micro-ca-tool
 +[#] Version: 0.1
 +[?] Subject [/CN=Hans Wurst] /CN=django@nausch.org
 +[?] CSR Filename [usercert-0094.csr] django-nausch.org-csr.pem
 +[?] Private Key (<Auth-ID>:<Key-ID>) [02:03] 01:01
 +OpenSSL> (dynamic) Dynamic engine loading support
 +[Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/libpkcs11.so
 +[Success]: ID:pkcs11
 +[Success]: LIST_ADD:1
 +[Success]: LOAD
 +[Success]: MODULE_PATH:/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
 +Loaded: (pkcs11) pkcs11 engine
 +OpenSSL> engine "pkcs11" set.
 +Enter PKCS#11 token PIN for OpenPGP card (User PIN (sig)):
 +OpenSSL></code>
 +
 +Nach Eingabe der **USER**-PIN wird der CSR im aktuell genutzten Pfad gespeichert. Bei Interesse können wir mit dem Befehl **''openssl''** uns den Inhalt dieses CSRs ausgeben und anzeigen lassen.
 +   $ openssl req -noout -text -in django-nausch.org-csr.pem
 +
 +<code>Certificate Request:
 +    Data:
 +        Version: 1 (0x0)
 +        Subject: CN = django@nausch.org
 +        Subject Public Key Info:
 +            Public Key Algorithm: rsaEncryption
 +                RSA Public-Key: (4096 bit)
 +                Modulus:
 +                    00:9d:ff:71:02:88:0f:9f:68:7a:04:13:97:76:7f:
 +                    d5:93:0a:29:5f:4d:07:b5:1e:1f:44:8a:21:f4:76:
 +                    33:52:a1:85:1c:6d:81:da:52:18:01:7c:53:0e:35:
 +                    8a:df:0e:97:b9:90:d5:f2:20:2d:ab:92:8a:4f:4e:
 +                    40:ba:99:70:2a:d3:6c:32:9c:47:45:e2:b6:35:62:
 +                    71:60:e4:ae:00:7c:39:90:32:d6:bf:69:18:7e:19:
 +                    a2:9d:92:20:69:95:47:18:ed:01:87:11:ea:04:8b:
 +                    26:79:56:d4:76:3a:c1:68:25:b7:13:0f:58:41:fd:
 +                    2d:33:b9:e4:80:ab:da:25:e1:65:b0:9d:52:61:4d:
 +                    49:e9:6e:60:ef:7a:67:e0:e3:07:0e:86:49:36:51:
 +                    dc:31:89:95:ad:cc:d4:b6:72:f8:91:82:c2:05:d6:
 +                    54:6b:c3:30:ac:dc:e5:65:c9:08:01:8a:e3:f5:f9:
 +                    7c:47:06:c7:16:24:81:f0:6b:0c:78:f9:fa:cc:7a:
 +                    73:b0:4d:a7:c1:c3:d8:cc:da:1c:ae:a8:91:34:4a:
 +                    9f:7e:87:fe:1f:48:2b:17:fb:1c:10:bd:32:3c:29:
 +                    4e:98:e0:d0:53:24:7a:ae:09:9e:0b:40:98:68:65:
 +                    57:fd:c2:86:a3:5e:a1:ec:c6:60:72:63:bb:b3:b3:
 +                    95:e6:ac:8f:56:fd:37:3e:25:c8:f7:4c:a5:e6:d8:
 +                    ab:f6:f6:8b:63:ff:bc:1f:5f:28:8f:5b:c4:43:11:
 +                    65:d7:1d:1d:ca:e7:89:bc:95:4b:ca:64:c1:d2:d4:
 +                    2e:61:01:0d:78:56:5e:04:5a:00:e0:e7:93:ca:61:
 +                    c2:2f:d4:03:ce:fd:68:98:be:d1:4f:d6:b8:cb:40:
 +                    1c:7d:fe:6d:33:76:70:50:9e:69:54:d0:d6:e9:8a:
 +                    85:aa:37:ee:ce:94:8d:b1:ad:54:9a:4d:5c:39:bf:
 +                    0b:24:06:62:b6:05:dd:ee:17:47:04:17:5e:f3:6a:
 +                    a6:b1:cc:c4:c0:70:3c:43:3b:c1:ea:e2:73:68:41:
 +                    22:8f:a4:d6:14:9e:5e:50:de:e0:f3:de:df:5d:a1:
 +                    bd:44:41:3a:ba:27:78:4c:78:39:8b:f1:60:17:8b:
 +                    99:61:b3:13:29:7f:d4:02:14:76:42:34:39:00:e5:
 +                    9d:a7:36:d3:6e:72:f9:9a:8f:0c:c5:b5:5b:14:b4:
 +                    fa:29:d0:28:e2:f1:d0:db:80:44:52:00:43:28:3b:
 +                    15:be:e1:b8:1e:b1:10:5d:71:b2:e6:8c:2b:7a:a8:
 +                    f3:90:8d:b7:29:d8:58:ce:36:e2:7e:59:b7:11:b8:
 +                    ec:c7:41:22:07:ec:ce:83:67:10:c4:4a:b0:92:12:
 +                    4b:a2:59
 +                Exponent: 65537 (0x10001)
 +        Attributes:
 +            a0:00
 +    Signature Algorithm: sha256WithRSAEncryption
 +         8a:8e:89:d6:8b:b1:01:b4:92:0c:f6:1e:64:0e:8a:d3:ab:22:
 +         46:f7:47:f7:2e:32:a9:7d:33:51:31:78:7c:a1:fd:21:25:22:
 +         c9:38:45:32:56:2f:34:8b:88:a7:24:f3:6f:28:bd:c1:96:fc:
 +         7f:3f:e6:2e:80:0d:71:81:d5:01:63:38:d7:3e:aa:e8:e1:a8:
 +         3d:0a:d6:b1:6d:15:d1:f3:d2:9f:a7:56:c5:f1:74:fb:ad:bc:
 +         90:a2:ad:4d:ec:fc:dd:35:fb:a2:30:7d:87:32:5c:e9:b2:9c:
 +         86:e9:89:48:d3:9d:f1:4a:ec:a0:ba:6f:08:d5:7a:29:37:54:
 +         60:69:a0:f8:12:87:ff:02:d5:37:ca:8a:42:57:8e:96:36:f7:
 +         e6:b0:97:51:01:03:d8:db:73:21:65:52:c4:3d:d6:51:c9:ef:
 +         1d:b9:1a:cb:d0:b9:50:ab:5c:46:ab:0b:9c:66:92:30:08:52:
 +         bd:74:09:2b:37:e8:6c:39:0f:9a:c3:cc:ed:3b:77:07:f8:d4:
 +         ec:c7:32:76:78:0c:31:af:57:9d:cd:29:f0:5f:ad:5e:cd:c4:
 +         21:be:2a:5f:c9:82:a6:db:47:23:cd:8a:71:81:4e:13:04:e2:
 +         31:b3:fb:d6:52:c9:65:42:0f:5d:b5:b3:8a:c9:fb:b4:f6:2b:
 +         f4:44:ec:45:8a:00:96:f0:a0:19:6d:e6:bd:0d:5f:59:68:09:
 +         9d:c0:f1:d4:c4:e8:37:fd:0e:6f:fb:a9:48:69:27:2e:3b:3e:
 +         9e:d7:5b:3e:08:f2:f6:9a:82:b5:a6:e3:7f:0f:b9:a7:34:1a:
 +         f5:7a:d6:e9:62:1e:d7:c9:2e:6c:dd:88:87:b4:82:ef:3e:e9:
 +         ff:35:05:ca:fe:f5:2e:1e:fd:44:0a:06:ba:cd:95:5f:99:79:
 +         2b:0f:a8:b3:13:2a:a2:0e:32:66:bb:82:9a:bb:e5:73:82:32:
 +         20:6b:af:56:8a:c8:49:16:07:7d:f1:9d:7b:7c:99:00:f7:e0:
 +         69:68:17:6b:8a:25:1c:98:45:20:35:41:d3:3a:42:ae:c3:67:
 +         b8:21:5b:f4:21:0a:54:99:59:1e:28:ed:79:a0:e4:ac:11:de:
 +         91:ca:4c:1a:38:ac:83:15:ea:82:2c:c8:7e:33:9c:ec:34:90:
 +         4c:58:85:b5:6d:2a:80:b2:7c:c6:49:3d:46:99:83:cd:8f:08:
 +         67:a5:c7:8d:ea:66:d3:2f:59:3b:09:59:0f:e1:69:62:e1:7c:
 +         e2:c8:04:7d:6d:bb:27:63:08:c1:fc:5a:1c:07:89:1e:1b:37:
 +         84:79:63:33:22:bc:6a:58:5a:3e:55:30:6f:d0:79:0d:1a:59:
 +         f9:20:49:1a:fd:75:65:1a</code>
 +
 +Die Date laden wir nun entweder auf der WEB-GUI der CA hoch oder kopieren den Inhalt der Datei und fügen diese im Betreffenden Formularfeld ein, welches die CA zur Verfügung stellt.
 +   $ cat django-nausch.org-csr.pem
 +<code>-----BEGIN CERTIFICATE REQUEST-----
 +MIIEZjCCAk4CAQAwITEfMB0GA1UEAwwWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTCC
 +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ3/cQKID59oegQTl3Z/1ZMK
 +KV9NB7UeH0SKIfR2M1KhhRxtgdpSGAF8Uw41it8Ol7mQ1fIgLauSik9OQLqZcCrT
 +bDKcR0XitjVicWDkrgB8OZAy1r9pGH4Zop2SIGmVRxjtAYcR6gSLJnlW1HY6wWgl
 +txMPWEH9LTO55ICr2iXhZbCdUmFNSeluYO96Z+DjBw6GSTZR3DGJla3M1LZy+JGC
 +wgXWVGvDMKzc5WXJCAGK4/X5fEcGxxYkgfBrDHj5+sx6c7BNp8HD2MzaHK6okTRK
 +n36H/h9IKxf7HBC9MjwpTpjg0FMkeq4JngtAmGhlV/3ChqNeoezGYHJju7Ozleas
 +j1b9Nz4lyPdMpebYq/b2i2P/vB9fKI9bxEMRZdcdHcrnibyVS8pkwdLULmEBDXhW
 +XgRaAODnk8phwi/UA879aJi+0U/WuMtAHH3+bTN2cFCeaVTQ1umKhao37s6UjbGt
 +VJpNXDm/CyQGYrYF3e4XRwQXXvNqprHMxMBwPEM7weric2hBIo+k1hSeXlDe4PPe
 +312hvURBOroneEx4OYvxYBeLmWGzEyl/1AIUdkI0OQDlnac2025y+ZqPDMW1WxS0
 ++inQKOLx0NuARFIAQyg7Fb7huB6xEF1xsuaMK3qo85CNtynYWM424n5ZtxG47MdB
 +IgfszoNnEMRKsJISS6JZAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAio6J1oux
 +AbSSDPYeZA6K06siRvdH9y4yqX0zUTF4fKH9ISUiyThFMlYvNIuIpyTzbyi9wZb8
 +fz/mLoANcYHVAWM41z6q6OGoPQrWsW0V0fPSn6dWxfF0+628kKKtTez83TX7ojB9
 +hzJc6bKchumJSNOd8UrsoLpvCNV6KTdUYGmg+BKH/wLVN8qKQleOljb35rCXUQED
 +2NtzIWVSxD3WUcnvHbkay9C5UKtcRqsLnGaSMAhSvXQJKzfobDkPmsPM7Tt3B/jU
 +7McydngMMa9Xnc0p8F+tXs3EIb4qX8mCpttHI82KcYFOEwTiMbP71lLJZUIPXbWz
 +isn7tPYr9ETsRYoAlvCgGW3mvQ1fWWgJncDx1MToN/0Ob/upSGknLjs+ntdbPgjy
 +9pqCtabjfw+5pzQa9XrW6WIe18kubN2Ih7SC7z7p/zUFyv71Lh79RAoGus2VX5l5
 +Kw+osxMqog4yZruCmrvlc4IyIGuvVorISRYHffGde3yZAPfgaWgXa4olHJhFIDVB
 +0zpCrsNnuCFb9CEKVJlZHijteaDkrBHekcpMGjisgxXqgizIfjOc7DSQTFiFtW0q
 +gLJ8xkk9RpmDzY8IZ6XHjepm0y9ZOwlZD+FpYuF84sgEfW27J2MIwfxaHAeJHhs3
 +hHljMyK8alhaPlUwb9B5DRpZ+SBJGv11ZRo=
 +-----END CERTIFICATE REQUEST-----</code>Nach erfolgter Verifizierung durch die CA wird uns diese ein Zertifikat präsentieren oder zum Download anbieten.
 +   $ vim django-nausch.org-certificat.pem
 +
 +<code>-----BEGIN CERTIFICATE-----
 +MIIGfzCCBGegAwIBAgIDFKmlMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv
 +b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
 +dEBjYWNlcnQub3JnMB4XDTIwMDgzMDE4MDgyNVoXDTIyMDgzMDE4MDgyNVowQTEY
 +Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y
 +MBYGA1UEAxMPQ0FjZXJ0IFdvVCBVc2VyMSUwIwYJKoZIhvcNAQkBFhZkamFuZ29A
 +bWFpbHNlcnZlci5ndXJ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
 +nf9xAogPn2h6BBOXdn/VkwopX00HtR4fRIoh9HYzUqGFHG2B2lIYAXxTDjWK3w6X
 +uZDV8iAtq5KKT05AuplwKtNsMpxHReK2NWJxYOSuAHw5kDLWv2kYfhminZIgaZVH
 +GO0BhxHqBIsmeVbUdjrBaCW3Ew9YQf0tM7nkgKvaJeFlsJ1SYU1J6W5g73pn4OMH
 +DoZJNlHcMYmVrczUtnL4kYLCBdZUa8MwrNzlZckIAYrj9fl8RwbHFiSB8GsMePn6
 +zHpzsE2nwcPYzNocrqiRNEqffof+H0grF/scEL0yPClOmODQUyR6rgmeC0CYaGVX
 +/cKGo16h7MZgcmO7s7OV5qyPVv03PiXI90yl5tir9vaLY/+8H18oj1vEQxFl1x0d
 +yueJvJVLymTB0tQuYQENeFZeBFoA4OeTymHCL9QDzv1omL7RT9a4y0Acff5tM3Zw
 +UJ5pVNDW6YqFqjfuzpSNsa1Umk1cOb8LJAZitgXd7hdHBBde82qmsczEwHA8QzvB
 +AOWdpzbTbnL5mo8MxbVbFLT6KdAo4vHQ24BEUgBDKDsVvuG4HrEQXXGy5owreqjz
 +6uJzaEEij6TWFJ5eUN7g897fXaG9REE6uid4THg5i/FgF4uZYbMTKX/UAhR2QjQ5
 +kI23KdhYzjbiflm3Ebjsx0EiB+zOg2cQxEqwkhJLolkCAwEAAaOCAUYwggFCMAwG
 +A1UdEwEB/wQCMAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5b3VyIG93biBjZXJ0
 +aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5DQWNlcnQu
 +b3JnMA4GA1UdDwEB/wQEAwIDqDBABgNVHSUEOTA3BggrBgEFBQcDBAYIKwYBBQUH
 +AwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcB
 +AQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNhY2VydC5vcmcwMQYDVR0f
 +VR0RBBowGIEWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTANBgkqhkiG9w0BAQsFAAOC
 +BCowKDAmoCSgIoYgaHR0cDovL2NybC5jYWNlcnQub3JnL3Jldm9rZS5jcmwwIQYD
 +AgEACkbMXEhM1FGXrJUWXwkmld3vEulz62u8Frzcv/966o4qFs2UiXQ44rZNJQf6
 +Gu5+26SlnyjCFtF3nHVY005abfri3Bvc0BNAiibodV1SFnSk9AuHFRRSGtaw4TLk
 +PybeS8dq+NB376nOpdtj8xbYU6oJV479QKuHM2etgWpFWRHWsrjoBkbAQ7I5sQZb
 +H9a21pYqdHeElkHPlfmSI3KQ+z0vo7SLqOE3alRPZnw9CUg3rh99MP11ZB5GEDOj
 +Dk3TQHfWbPQ9J3G004YfPKbfz/mJnIGN3nyxRzgV/LaRtI57XOKbKoDi1Q0zSxlg
 +sU2Q/GEQsnCJHSLkbDMNg99YgeqMstfM6jblaaWmubIn0yyohlPj7JSmDrP0Fw/N
 +2xpyVq3+qZwxxUQxK3mSD4LZ6XwBiiMPWF50qibfEWNajpyi3uUcPyDeOesjtNKO
 +CmjnItTPUJXrFImv8S56G4Eu5PCau0PRcLP/7tflt0eEStRpL1AHzu/4gwBUu2LX
 +ZVBseQdtbKV6ePB58SEk6tOXNeNFtsWlrpWmlzuVH2ukaT9G/NfVc3vOx1TCylUr
 +3COLw+Rtw6TWRo3+izMjOREmK5O8eMHZoHaMShA3q3aAr1jwxFmk5cFU2jUzZrOh
 +105SyG2nNDn1ndsvyka2L57qb8j6V8Hkdig/7ond+xx+j5I=
 +-----END CERTIFICATE-----
 +</code> 
 +
 +Dieses Zertifikatsfile importieren wir nun mit Hilfe des Prgramms **''pkcs15-init''** in die OpenPGP Smart-Card des Nitrokey Pros.
 +   $ pkcs15-init --store-certificate  django-nausch.org-certificat.pem --id 3
 +
 +  Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00
 +  Security officer PIN [Admin PIN] required.
 +  Please enter Security officer PIN [Admin PIN]:
 +
 +Beim Import werden wir wie erwartet nach der **ADMIN**-PIN gefragt.
 +
 +Zum Schluss können wir uns nocheinmal anzeigen lassen und somit überzeugen, dass das betreffende Zertifikat richtig importiert wurde.
 +   $ micro-ca-tool sc i
 +<code>                 mmm    mm         mmmmmmm               ""#
 +           m"   "   ##            #     mmm    mmm     #
 + #   #         #       #  #           #    #" "#  #" "#    #
 + #   #   """   #       #mm#   """     #    #   #  #   #    #
 + #mmm#        "mmm" #    #          #    "#m#"  "#m#"    "mm
 + #
 + "               (C) 2015 SektionEins GmbH / Ben Fuhrmannek
 +                 https://sektioneins.com/
 +                 https://github.com/sektioneins/micro-ca-tool
 +[#] Version: 0.1
 +Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00
 +X.509 Certificate [Cardholder certificate]
 + Object Flags   : [0x00]
 + Authority      : no
 + Path           : 3f007f21
 + ID             : 03
 + Encoded serial : 02 03 14A9A5
 +
 +Private RSA Key [Signature key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x20C], sign, signRecover, nonRepudiation
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : yes
 + Auth ID        : 01
 + ID             : 01
 + MD:guid        : 48870840-df64-70eb-2bc0-105a4f678b41
 +
 +Private RSA Key [Encryption key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x22], decrypt, unwrap
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 1 (0x01)
 + Native         : yes
 + Auth ID        : 02
 + ID             : 02
 + MD:guid        : 7b0d3403-7bbc-a9cc-a3e2-213e3296ecb2
 +
 +Private RSA Key [Authentication key]
 + Object Flags   : [0x03], private, modifiable
 + Usage          : [0x222], decrypt, unwrap, nonRepudiation
 + Access Flags   : [0x1D], sensitive, alwaysSensitive, neverExtract, local
 + ModLength      : 4096
 + Key ref        : 2 (0x02)
 + Native         : yes
 + Auth ID        : 02
 + ID             : 03
 + MD:guid        : c805d2b2-2d84-3703-089a-3d691d17e5b3
 +
 +Public RSA Key [Signature key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0xC0], verify, verifyRecover
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : b601
 + ID             : 01
 +
 +Public RSA Key [Encryption key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0x11], encrypt, wrap
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : b801
 + ID             : 02
 +
 +Public RSA Key [Authentication key]
 + Object Flags   : [0x02], modifiable
 + Usage          : [0x51], encrypt, wrap, verify
 + Access Flags   : [0x02], extract
 + ModLength      : 4096
 + Key ref        : 0 (0x00)
 + Native         : no
 + Path           : a401
 + ID             : 03
 +
 +</code>
 +
 +== Vorbereitungen - Thunderbird Einstellungen ==
 +
 +Nun müssen wir die PGP-Unterstützung und den zugehörigen PGP-Key dem Konto zuweisen. Dazu klicken wir erneut auf das Menü-Icon rechts oben am Bildschirm (das Icon mit den drei Querstreifen) wählen nun den Menüpunkt **Preferences** aus.
 +
 +{{ :nitrokey:thunderbird_mint_06.png?nolink&800 |Bild: Bildschirmhardcoby von Thunderbild - Auswahl Preferences Menü}}
 +
 +Die Einstelungen zu den Konten finden wir unter dem Menüpunkt **Account Settings**.
 +
 +{{ :nitrokey:thunderbird_mint_07.png?nolink&800 |Bild: Bildschirmhardcoby von Thunderbild - Auswahl Account-Settings Menü}}
 +
 +In dem Fenster zu den Account-Einstellungen wählen wir dann den Punkt **Security** aus.
 +
 +{{ :nitrokey:thunderbird_mint_13.png?nolink&600 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Punkt Security}}
 +
 +Hier klicken wir dann auf die Schaltfläche **[ Securit__y__ Devices ]**
 +
 +{{ :nitrokey:thunderbird_mint_14.png?nolink&600 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Punkt Security Devices}}
 +
 +Damit Thunderbird auf die OpenPGP-SmartCard des Nitrokey Pro zugreifen kann, müssen wir noch die dazu benötigte Bibliothek **''/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so''**. Wir klicken also dazu die Schaltfläche **[ __L__oad ]** an und wäheln dann den Speicherort dieser Bibliothek entsprechend aus.
 +
 +{{ :nitrokey:thunderbird_mint_15.png?nolink&350 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Load PKC#S11 Device Treiber Auswahl}}
 +
 +Zum Sichern der Eingaben klicken wir hier auf die Schaltfläche **[ OK ]**. Da auf die OpenPGP-SmartVCard des Nitrokey zugegriffen werden muss, wird entsprechend nach der **USER**-PIN gefragt. 
 +
 +{{ :nitrokey:thunderbird_mint_16.png?nolink&350 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Load PKC#S11 Device Treiber Auswahl}}
 +
 +Da nur ein Zertifikat auf dem Nitrokey Pro gespeichert ist, fällt die Auswahl für das betreffende Zertifikat nicht sonderlich schwer.
 +
 +{{ :nitrokey:thunderbird_mint_17.png?nolink&450 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Auswahl Zertifikat}}
 +
 +Zum Sichern der Eingaben klicken wir auch hier auf die Schaltfläche **[ OK ]**.
 +
 +{{ :nitrokey:thunderbird_mint_18.png?nolink&525 |Bild: Bildschirmhardcopy Thunderbird-Account-Einstellungen - Auswahl Zertifikat}}
 +
 +Da wir ja mit dem Zertifikat unsere ausgehende Post signieren wollen und natürlich eingehende verschlüsselte Nachrichten entschlüsseln wollen, bejahren wir diese Frage hier natürlich mit einem Klick auf die Schaltfläche **[ __Y__es ]**.
 +
 +{{ :nitrokey:thunderbird_mint_19.png?nolink&600 |Bild: Bildschirmhardcoby von Thunderbild - Auswahl Account-Settings Menü}}
 +
 +Sobald wir nun eine Nachricht verschicken die signiert werden soll, wird vor dem Versand die PIN abgefragt und die Nachricht mit dem Signatur-Unterschlüssel unterschrieben.
 +
 +{{ :nitrokey:thunderbird_mint_20.png?nolink&600 |Bild: Bildschirmhardcoby von Thunderbild - Abfrage User PIN bei Versand/Signierung einer eMail}}
 +
 +Sobald wir eine verschlüsselte Nachricht öffnen, werden wir nach der PIN gefragt, damit der Schlüssel zum Entschlüsseln auf der SmartCard freigeschalten werden kann.
 +
 +{{ :nitrokey:thunderbird_mint_21.png?nolink&801 |Bild: Bildschirmhardcoby von Thunderbild - Abfrage User PIN beim Versuch eine verschlüsselte eMail zu öffnen}}
 +
 +Nach eingabe der USER-PIN wird die Anchricht mit Hilfe des [[#schluessel_auf_dem_nitrokey_pro_generieren|secret-keys]] auf der OpenPGP-SmartCard entschlüsselt und angezeigt.
 +
 +{{ :nitrokey:thunderbird_mint_22.png?nolink&800 |Bild: Bildschirmhardcoby von Thunderbild - Anzeige der entschlüsselten eMail}}
 +
 +Über das Schloß-Symbol in der eMailansicht können wir uns Details zu der verschlüsselten Nachricht bzw. zum verwendetetn Schlüssel anzeigen lassen.
 +
 +{{ :nitrokey:thunderbird_mint_23.png?nolink&400 |Bild: Bildschirmhardcoby von Thunderbild - Details zur Mailverschlüsselung}}
 +
 +====== Links ======
 +  * **[[wiki:start#sicherheit-_und_vertraulichkeit|Zurück zu Projekte und Themenkapitel]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
  
  • nitrokey/linuxmint/pro.1598798949.txt.gz
  • Zuletzt geändert: 30.08.2020 14:49.
  • von django