Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
nitrokey:linuxmint:pro [30.08.2020 15:49. ] – [SSH-Verbindung aufbauen] django | nitrokey: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: | ||
- | | + | |
Ein Hinweis zur Nitrokey App wird ausgegeben. | Ein Hinweis zur Nitrokey App wird ausgegeben. | ||
Zeile 214: | Zeile 214: | ||
{{ : | {{ : | ||
- | ==== 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:// | Da es sich bei der Chipkarte des **Nitrokey Pro** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https:// | ||
- | # apt-get install gpg | + | $ sudo apt install gpg |
Alle Sicherheitsfunktionen wie z.B. das Erzeugen/ | Alle Sicherheitsfunktionen wie z.B. das Erzeugen/ | ||
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: | ||
- | " | + | " |
Change (N)ame, (C)omment, (E)mail or (O)kay/ | Change (N)ame, (C)omment, (E)mail or (O)kay/ | ||
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/ | + | pub rsa4096/ |
sec> | sec> | ||
card-no: 0005 000034D4 | card-no: 0005 000034D4 | ||
Zeile 698: | Zeile 698: | ||
pub | pub | ||
FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | ||
- | uid | + | uid |
sub | sub | ||
Zeile 711: | Zeile 711: | ||
sec | sec | ||
FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | ||
- | uid | + | uid |
ssb | ssb | ||
Zeile 765: | Zeile 765: | ||
pub | pub | ||
FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | ||
- | uid | + | uid |
sub | sub | ||
Zeile 782: | Zeile 782: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 834: | Zeile 834: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 936: | Zeile 936: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 | sec | ||
FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | FEFA8BFEC18C32F19968C5EE412BC6B241503EC7 | ||
- | uid | + | uid |
ssb | ssb | ||
ssb | ssb | ||
Zeile 978: | Zeile 978: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1001: | Zeile 1001: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1018: | Zeile 1018: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1047: | Zeile 1047: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1063: | Zeile 1063: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1077: | Zeile 1077: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1102: | Zeile 1102: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1118: | Zeile 1118: | ||
ssb rsa4096/ | ssb rsa4096/ | ||
| | ||
- | [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 1132: | Zeile 1132: | ||
ssb* rsa4096/ | ssb* rsa4096/ | ||
| | ||
- | [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 1156: | Zeile 1156: | ||
ssb* rsa4096/ | ssb* rsa4096/ | ||
| | ||
- | [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 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/ | + | General key info..: sub rsa4096/ |
sec | sec | ||
ssb> | ssb> | ||
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, | Löschen wir nun den kompletten Schlüssel aus der lokalen Schlüsseldatei, | ||
- | $ gpg --delete-secret-key django@mailserver.guru | + | $ gpg --delete-secret-key django@nausch.org |
< | < | ||
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/ | + | sec rsa4096/ |
Delete this key from the keyring? (y/N) y | Delete this key from the keyring? (y/N) y | ||
Zeile 1238: | Zeile 1238: | ||
| | ||
| | ||
- | [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 |
< | < | ||
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/ | + | sec rsa4096/ |
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 | ||
- | < | + | < |
gpg: To migrate ' | gpg: To migrate ' | ||
gpg: key 412BC6B241503EC7: | gpg: key 412BC6B241503EC7: | ||
Zeile 1290: | Zeile 1290: | ||
sub rsa4096/ | sub rsa4096/ | ||
| | ||
- | [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 1316: | Zeile 1316: | ||
pub | pub | ||
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" | A revocation certificate is a kind of "kill switch" | ||
Zeile 1367: | Zeile 1367: | ||
pub | pub | ||
D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | ||
- | uid | + | uid |
- | sig 3 56D31D76E0C812E8 2020-08-29 | + | sig 3 56D31D76E0C812E8 2020-08-29 |
sub | sub | ||
- | sig 56D31D76E0C812E8 2020-08-29 | + | sig 56D31D76E0C812E8 2020-08-29 |
sub | sub | ||
- | sig 56D31D76E0C812E8 2020-08-29 | + | sig 56D31D76E0C812E8 2020-08-29 |
</ | </ | ||
Zeile 1379: | Zeile 1379: | ||
$ gpg --gen-revoke D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | $ gpg --gen-revoke D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | ||
- | < | + | < |
Create a revocation certificate for this key? (y/ | Create a revocation certificate for this key? (y/ | ||
Zeile 1463: | Zeile 1463: | ||
$ gpg --import revocation.crt | $ gpg --import revocation.crt | ||
- | < | + | < |
gpg: Total number processed: 1 | gpg: Total number processed: 1 | ||
gpg: new key revocations: | gpg: new key revocations: | ||
Zeile 1481: | Zeile 1481: | ||
pub | pub | ||
D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | D7ACC16061ABF3C6E14B1C3856D31D76E0C812E8 | ||
- | rev 56D31D76E0C812E8 2020-08-30 | + | rev 56D31D76E0C812E8 2020-08-30 |
reason for revocation: Key is no longer used | reason for revocation: Key is no longer used | ||
| | ||
- | 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 | + | sig 3 56D31D76E0C812E8 2020-08-29 |
</ | </ | ||
Zeile 1590: | Zeile 1590: | ||
- | ==== Nitrokey Start und Secure Shell ==== | + | ==== Secure Shell (SSH) ==== |
<WRAP center round important 90%> | <WRAP center round important 90%> | ||
Zeile 1622: | Zeile 1622: | ||
Die passende **'' | Die passende **'' | ||
- | $ sudo apt-get install opensc | + | $ sudo apt install opensc |
*/ | */ | ||
Zeile 1733: | Zeile 1733: | ||
[django@vml000177 ~]$ | [django@vml000177 ~]$ | ||
*/ | */ | ||
- | ==== Nitrokey und Thunderbird | + | ==== EMail mit Thunderbird |
=== PGP === | === PGP === | ||
Unseren zuvor auf dem Nitrokey Pro **[[# | Unseren zuvor auf dem Nitrokey Pro **[[# | ||
Zeile 1789: | Zeile 1789: | ||
{{ : | {{ : | ||
+ | === S/ | ||
+ | == Vorbereitungen - micro-ca-tool und libengine-pkcs11-openssl== | ||
+ | Damit wir ein X.509-Zertifikat bei einer **[[https:// | ||
+ | |||
+ | Bevor wir es von **[[https:// | ||
+ | $ sudo apt install libengine-pkcs11-openssl | ||
+ | |||
+ | Anschließend legen wir uns ein entsprechendes Verzeichnis für das Toool im Homeverzeichnis **'' | ||
+ | $ mkdir ~/nitrokey | ||
+ | |||
+ | $ cd ~/nitrokey | ||
+ | |||
+ | Dann Clonen wir das Projekt. | ||
+ | $ git clone https:// | ||
+ | |||
+ | Anschließend verlinken wir noch das ausführbare Shell-Script, | ||
+ | $ ln -s ~/ | ||
+ | |||
+ | Mit der Option **'' | ||
+ | $ 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 [< | ||
+ | |||
+ | == CSR mit Hilfe des micro-ca-tool erstellen == | ||
+ | Den **CSR**((**C**ertificate **S**igning **R**equest)) oder auf Deutsch **// | ||
+ | |||
+ | Das Tool hält alle relevanten Konfigurationsparameter in einer zugehörigen Datei **'' | ||
+ | $ cat micro-ca-tool.config | ||
+ | <file bash micro-ca-tool.config>## | ||
+ | cfg_app_openssl="/ | ||
+ | cfg_app_pkcs15_init=" | ||
+ | cfg_app_pkcs15_tool=" | ||
+ | cfg_file_engine_pkcs11="/ | ||
+ | cfg_file_opensc_pkcs11="/ | ||
+ | </ | ||
+ | |||
+ | 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 **'' | ||
+ | * **Subject** : Im Falle eines X.509 für eMailverschlüsselung ist diese die eMailadresse des betreffenden Kontos, in unserem Falle also **''/ | ||
+ | * **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. < | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | " | ||
+ | | ||
+ | | ||
+ | [#] 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 | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Auth ID : 01 | ||
+ | ID : 01 | ||
+ | MD: | ||
+ | |||
+ | Private RSA Key [Encryption key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 1 (0x01) | ||
+ | Native | ||
+ | Auth ID : 02 | ||
+ | ID : 02 | ||
+ | MD: | ||
+ | |||
+ | Private RSA Key [Authentication key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 2 (0x02) | ||
+ | Native | ||
+ | Auth ID : 02 | ||
+ | ID : 03 | ||
+ | MD: | ||
+ | |||
+ | Public RSA Key [Signature key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : b601 | ||
+ | ID : 01 | ||
+ | |||
+ | Public RSA Key [Encryption key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : b801 | ||
+ | ID : 02 | ||
+ | |||
+ | Public RSA Key [Authentication key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : a401 | ||
+ | ID : 03 | ||
+ | |||
+ | </ | ||
+ | Private RSA Key [Signature key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Auth ID : 01 | ||
+ | ID : 01 | ||
+ | MD: | ||
+ | |||
+ | Wir rufen nun also das Tool **'' | ||
+ | $ micro-ca-tool sc new-csr | ||
+ | < | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | " | ||
+ | | ||
+ | | ||
+ | [#] Version: 0.1 | ||
+ | [?] Subject [/CN=Hans Wurst] / | ||
+ | [?] CSR Filename [usercert-0094.csr] django-nausch.org-csr.pem | ||
+ | [?] Private Key (< | ||
+ | OpenSSL> (dynamic) Dynamic engine loading support | ||
+ | [Success]: SO_PATH:/ | ||
+ | [Success]: ID:pkcs11 | ||
+ | [Success]: LIST_ADD:1 | ||
+ | [Success]: LOAD | ||
+ | [Success]: MODULE_PATH:/ | ||
+ | Loaded: (pkcs11) pkcs11 engine | ||
+ | OpenSSL> engine " | ||
+ | Enter PKCS#11 token PIN for OpenPGP card (User PIN (sig)): | ||
+ | OpenSSL></ | ||
+ | |||
+ | Nach Eingabe der **USER**-PIN wird der CSR im aktuell genutzten Pfad gespeichert. Bei Interesse können wir mit dem Befehl **'' | ||
+ | $ openssl req -noout -text -in django-nausch.org-csr.pem | ||
+ | |||
+ | < | ||
+ | Data: | ||
+ | Version: 1 (0x0) | ||
+ | Subject: CN = django@nausch.org | ||
+ | Subject Public Key Info: | ||
+ | Public Key Algorithm: rsaEncryption | ||
+ | RSA Public-Key: (4096 bit) | ||
+ | Modulus: | ||
+ | 00: | ||
+ | d5: | ||
+ | 33: | ||
+ | 8a: | ||
+ | 40: | ||
+ | 71: | ||
+ | a2: | ||
+ | 26: | ||
+ | 2d: | ||
+ | 49: | ||
+ | dc: | ||
+ | 54: | ||
+ | 7c: | ||
+ | 73: | ||
+ | 9f: | ||
+ | 4e: | ||
+ | 57: | ||
+ | 95: | ||
+ | ab: | ||
+ | 65: | ||
+ | 2e: | ||
+ | c2: | ||
+ | 1c: | ||
+ | 85: | ||
+ | 0b: | ||
+ | a6: | ||
+ | 22: | ||
+ | bd: | ||
+ | 99: | ||
+ | 9d: | ||
+ | fa: | ||
+ | 15: | ||
+ | f3: | ||
+ | ec: | ||
+ | 4b:a2:59 | ||
+ | Exponent: 65537 (0x10001) | ||
+ | Attributes: | ||
+ | a0:00 | ||
+ | Signature Algorithm: sha256WithRSAEncryption | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | < | ||
+ | MIIEZjCCAk4CAQAwITEfMB0GA1UEAwwWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTCC | ||
+ | AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ3/ | ||
+ | KV9NB7UeH0SKIfR2M1KhhRxtgdpSGAF8Uw41it8Ol7mQ1fIgLauSik9OQLqZcCrT | ||
+ | bDKcR0XitjVicWDkrgB8OZAy1r9pGH4Zop2SIGmVRxjtAYcR6gSLJnlW1HY6wWgl | ||
+ | txMPWEH9LTO55ICr2iXhZbCdUmFNSeluYO96Z+DjBw6GSTZR3DGJla3M1LZy+JGC | ||
+ | wgXWVGvDMKzc5WXJCAGK4/ | ||
+ | n36H/ | ||
+ | j1b9Nz4lyPdMpebYq/ | ||
+ | XgRaAODnk8phwi/ | ||
+ | VJpNXDm/ | ||
+ | 312hvURBOroneEx4OYvxYBeLmWGzEyl/ | ||
+ | +inQKOLx0NuARFIAQyg7Fb7huB6xEF1xsuaMK3qo85CNtynYWM424n5ZtxG47MdB | ||
+ | IgfszoNnEMRKsJISS6JZAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAio6J1oux | ||
+ | AbSSDPYeZA6K06siRvdH9y4yqX0zUTF4fKH9ISUiyThFMlYvNIuIpyTzbyi9wZb8 | ||
+ | fz/ | ||
+ | hzJc6bKchumJSNOd8UrsoLpvCNV6KTdUYGmg+BKH/ | ||
+ | 2NtzIWVSxD3WUcnvHbkay9C5UKtcRqsLnGaSMAhSvXQJKzfobDkPmsPM7Tt3B/ | ||
+ | 7McydngMMa9Xnc0p8F+tXs3EIb4qX8mCpttHI82KcYFOEwTiMbP71lLJZUIPXbWz | ||
+ | isn7tPYr9ETsRYoAlvCgGW3mvQ1fWWgJncDx1MToN/ | ||
+ | 9pqCtabjfw+5pzQa9XrW6WIe18kubN2Ih7SC7z7p/ | ||
+ | Kw+osxMqog4yZruCmrvlc4IyIGuvVorISRYHffGde3yZAPfgaWgXa4olHJhFIDVB | ||
+ | 0zpCrsNnuCFb9CEKVJlZHijteaDkrBHekcpMGjisgxXqgizIfjOc7DSQTFiFtW0q | ||
+ | gLJ8xkk9RpmDzY8IZ6XHjepm0y9ZOwlZD+FpYuF84sgEfW27J2MIwfxaHAeJHhs3 | ||
+ | hHljMyK8alhaPlUwb9B5DRpZ+SBJGv11ZRo= | ||
+ | -----END CERTIFICATE REQUEST-----</ | ||
+ | $ vim django-nausch.org-certificat.pem | ||
+ | |||
+ | < | ||
+ | MIIGfzCCBGegAwIBAgIDFKmlMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv | ||
+ | b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ | ||
+ | dEBjYWNlcnQub3JnMB4XDTIwMDgzMDE4MDgyNVoXDTIyMDgzMDE4MDgyNVowQTEY | ||
+ | Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y | ||
+ | MBYGA1UEAxMPQ0FjZXJ0IFdvVCBVc2VyMSUwIwYJKoZIhvcNAQkBFhZkamFuZ29A | ||
+ | bWFpbHNlcnZlci5ndXJ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA | ||
+ | nf9xAogPn2h6BBOXdn/ | ||
+ | uZDV8iAtq5KKT05AuplwKtNsMpxHReK2NWJxYOSuAHw5kDLWv2kYfhminZIgaZVH | ||
+ | GO0BhxHqBIsmeVbUdjrBaCW3Ew9YQf0tM7nkgKvaJeFlsJ1SYU1J6W5g73pn4OMH | ||
+ | DoZJNlHcMYmVrczUtnL4kYLCBdZUa8MwrNzlZckIAYrj9fl8RwbHFiSB8GsMePn6 | ||
+ | zHpzsE2nwcPYzNocrqiRNEqffof+H0grF/ | ||
+ | / | ||
+ | yueJvJVLymTB0tQuYQENeFZeBFoA4OeTymHCL9QDzv1omL7RT9a4y0Acff5tM3Zw | ||
+ | UJ5pVNDW6YqFqjfuzpSNsa1Umk1cOb8LJAZitgXd7hdHBBde82qmsczEwHA8QzvB | ||
+ | AOWdpzbTbnL5mo8MxbVbFLT6KdAo4vHQ24BEUgBDKDsVvuG4HrEQXXGy5owreqjz | ||
+ | 6uJzaEEij6TWFJ5eUN7g897fXaG9REE6uid4THg5i/ | ||
+ | kI23KdhYzjbiflm3Ebjsx0EiB+zOg2cQxEqwkhJLolkCAwEAAaOCAUYwggFCMAwG | ||
+ | A1UdEwEB/ | ||
+ | aWZpY2F0ZSBmb3IgRlJFRSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5DQWNlcnQu | ||
+ | b3JnMA4GA1UdDwEB/ | ||
+ | AwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcB | ||
+ | AQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNhY2VydC5vcmcwMQYDVR0f | ||
+ | VR0RBBowGIEWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTANBgkqhkiG9w0BAQsFAAOC | ||
+ | BCowKDAmoCSgIoYgaHR0cDovL2NybC5jYWNlcnQub3JnL3Jldm9rZS5jcmwwIQYD | ||
+ | AgEACkbMXEhM1FGXrJUWXwkmld3vEulz62u8Frzcv/ | ||
+ | Gu5+26SlnyjCFtF3nHVY005abfri3Bvc0BNAiibodV1SFnSk9AuHFRRSGtaw4TLk | ||
+ | PybeS8dq+NB376nOpdtj8xbYU6oJV479QKuHM2etgWpFWRHWsrjoBkbAQ7I5sQZb | ||
+ | H9a21pYqdHeElkHPlfmSI3KQ+z0vo7SLqOE3alRPZnw9CUg3rh99MP11ZB5GEDOj | ||
+ | Dk3TQHfWbPQ9J3G004YfPKbfz/ | ||
+ | sU2Q/ | ||
+ | 2xpyVq3+qZwxxUQxK3mSD4LZ6XwBiiMPWF50qibfEWNajpyi3uUcPyDeOesjtNKO | ||
+ | CmjnItTPUJXrFImv8S56G4Eu5PCau0PRcLP/ | ||
+ | ZVBseQdtbKV6ePB58SEk6tOXNeNFtsWlrpWmlzuVH2ukaT9G/ | ||
+ | 3COLw+Rtw6TWRo3+izMjOREmK5O8eMHZoHaMShA3q3aAr1jwxFmk5cFU2jUzZrOh | ||
+ | 105SyG2nNDn1ndsvyka2L57qb8j6V8Hkdig/ | ||
+ | -----END CERTIFICATE----- | ||
+ | </ | ||
+ | |||
+ | Dieses Zertifikatsfile importieren wir nun mit Hilfe des Prgramms **'' | ||
+ | $ pkcs15-init --store-certificate | ||
+ | |||
+ | 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, | ||
+ | $ micro-ca-tool sc i | ||
+ | < | ||
+ | | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | " | ||
+ | | ||
+ | | ||
+ | [#] Version: 0.1 | ||
+ | Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00 | ||
+ | X.509 Certificate [Cardholder certificate] | ||
+ | Object Flags : [0x00] | ||
+ | Authority | ||
+ | Path : 3f007f21 | ||
+ | ID : 03 | ||
+ | Encoded serial : 02 03 14A9A5 | ||
+ | |||
+ | Private RSA Key [Signature key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Auth ID : 01 | ||
+ | ID : 01 | ||
+ | MD: | ||
+ | |||
+ | Private RSA Key [Encryption key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 1 (0x01) | ||
+ | Native | ||
+ | Auth ID : 02 | ||
+ | ID : 02 | ||
+ | MD: | ||
+ | |||
+ | Private RSA Key [Authentication key] | ||
+ | Object Flags : [0x03], private, modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x1D], sensitive, alwaysSensitive, | ||
+ | ModLength | ||
+ | Key ref : 2 (0x02) | ||
+ | Native | ||
+ | Auth ID : 02 | ||
+ | ID : 03 | ||
+ | MD: | ||
+ | |||
+ | Public RSA Key [Signature key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : b601 | ||
+ | ID : 01 | ||
+ | |||
+ | Public RSA Key [Encryption key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : b801 | ||
+ | ID : 02 | ||
+ | |||
+ | Public RSA Key [Authentication key] | ||
+ | Object Flags : [0x02], modifiable | ||
+ | Usage | ||
+ | Access Flags : [0x02], extract | ||
+ | ModLength | ||
+ | Key ref : 0 (0x00) | ||
+ | Native | ||
+ | Path : a401 | ||
+ | ID : 03 | ||
+ | |||
+ | </ | ||
+ | |||
+ | == 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die Einstelungen zu den Konten finden wir unter dem Menüpunkt **Account Settings**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | In dem Fenster zu den Account-Einstellungen wählen wir dann den Punkt **Security** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier klicken wir dann auf die Schaltfläche **[ Securit__y__ Devices ]** | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Damit Thunderbird auf die OpenPGP-SmartCard des Nitrokey Pro zugreifen kann, müssen wir noch die dazu benötigte Bibliothek **''/ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Da nur ein Zertifikat auf dem Nitrokey Pro gespeichert ist, fällt die Auswahl für das betreffende Zertifikat nicht sonderlich schwer. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Zum Sichern der Eingaben klicken wir auch hier auf die Schaltfläche **[ OK ]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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 ]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nach eingabe der USER-PIN wird die Anchricht mit Hilfe des [[# | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über das Schloß-Symbol in der eMailansicht können wir uns Details zu der verschlüsselten Nachricht bzw. zum verwendetetn Schlüssel anzeigen lassen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||