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 18:54. ] – [CSR mit Hilfe des micro-ca-tool erstellen] django | nitrokey:linuxmint:pro [03.11.2021 16:54. ] (aktuell) – [Nitrokey-App] django | ||
---|---|---|---|
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 216: | Zeile 216: | ||
==== 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 1622: | Zeile 1622: | ||
Die passende **'' | Die passende **'' | ||
- | $ sudo apt-get install opensc | + | $ sudo apt install opensc |
*/ | */ | ||
Zeile 1790: | Zeile 1790: | ||
=== S/ | === S/ | ||
- | == Vorbereitung | + | == Vorbereitungen |
Damit wir ein X.509-Zertifikat bei einer **[[https:// | Damit wir ein X.509-Zertifikat bei einer **[[https:// | ||
- | Bevor wir es von **[[https:// | + | Bevor wir es von **[[https:// |
+ | $ sudo apt install libengine-pkcs11-openssl | ||
+ | |||
+ | Anschließend | ||
$ mkdir ~/nitrokey | $ mkdir ~/nitrokey | ||
Zeile 1804: | Zeile 1807: | ||
$ ln -s ~/ | $ ln -s ~/ | ||
- | Mit der Option **##-h'' | + | Mit der Option **'' |
$ micro-ca-tool -h | $ micro-ca-tool -h | ||
< | < | ||
Zeile 1844: | Zeile 1847: | ||
== CSR mit Hilfe des micro-ca-tool erstellen == | == CSR mit Hilfe des micro-ca-tool erstellen == | ||
- | Den **CSR**((**C**ertificate **S**igning **R**equest | + | Den **CSR**((**C**ertificate **S**igning **R**equest)) oder auf Deutsch **// |
Das Tool hält alle relevanten Konfigurationsparameter in einer zugehörigen Datei **'' | Das Tool hält alle relevanten Konfigurationsparameter in einer zugehörigen Datei **'' | ||
Zeile 1856: | Zeile 1859: | ||
</ | </ | ||
- | FIXME | + | 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 | $ micro-ca-tool sc new-csr | ||
< | < | ||
Zeile 1884: | Zeile 1976: | ||
OpenSSL></ | 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-mailserver-guru-csr.pem | $ openssl req -noout -text -in django-mailserver-guru-csr.pem | ||
+ | |||
< | < | ||
Data: | Data: | ||
Zeile 1962: | Zeile 2056: | ||
| | ||
+ | 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-mailserver-guru-csr.pem | $ cat django-mailserver-guru-csr.pem | ||
< | < | ||
Zeile 1988: | Zeile 2083: | ||
gLJ8xkk9RpmDzY8IZ6XHjepm0y9ZOwlZD+FpYuF84sgEfW27J2MIwfxaHAeJHhs3 | gLJ8xkk9RpmDzY8IZ6XHjepm0y9ZOwlZD+FpYuF84sgEfW27J2MIwfxaHAeJHhs3 | ||
hHljMyK8alhaPlUwb9B5DRpZ+SBJGv11ZRo= | hHljMyK8alhaPlUwb9B5DRpZ+SBJGv11ZRo= | ||
- | -----END CERTIFICATE REQUEST-----</ | + | -----END CERTIFICATE REQUEST-----</ |
$ vim django-mailserver-guru-certificat.pem | $ vim django-mailserver-guru-certificat.pem | ||
- | /* | ||
< | < | ||
MIIGfzCCBGegAwIBAgIDFKmlMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv | MIIGfzCCBGegAwIBAgIDFKmlMA0GCSqGSIb3DQEBCwUAMHkxEDAOBgNVBAoTB1Jv | ||
b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ | b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ | ||
+ | dEBjYWNlcnQub3JnMB4XDTIwMDgzMDE4MDgyNVoXDTIyMDgzMDE4MDgyNVowQTEY | ||
Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y | Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y | ||
- | dEBjYWNlcnQub3JnMB4XDTIwMDgzMDE4MDgyNVoXDTIyMDgzMDE4MDgyNVowQTEY | ||
MBYGA1UEAxMPQ0FjZXJ0IFdvVCBVc2VyMSUwIwYJKoZIhvcNAQkBFhZkamFuZ29A | MBYGA1UEAxMPQ0FjZXJ0IFdvVCBVc2VyMSUwIwYJKoZIhvcNAQkBFhZkamFuZ29A | ||
bWFpbHNlcnZlci5ndXJ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA | bWFpbHNlcnZlci5ndXJ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA | ||
Zeile 2008: | Zeile 2101: | ||
yueJvJVLymTB0tQuYQENeFZeBFoA4OeTymHCL9QDzv1omL7RT9a4y0Acff5tM3Zw | yueJvJVLymTB0tQuYQENeFZeBFoA4OeTymHCL9QDzv1omL7RT9a4y0Acff5tM3Zw | ||
UJ5pVNDW6YqFqjfuzpSNsa1Umk1cOb8LJAZitgXd7hdHBBde82qmsczEwHA8QzvB | UJ5pVNDW6YqFqjfuzpSNsa1Umk1cOb8LJAZitgXd7hdHBBde82qmsczEwHA8QzvB | ||
+ | AOWdpzbTbnL5mo8MxbVbFLT6KdAo4vHQ24BEUgBDKDsVvuG4HrEQXXGy5owreqjz | ||
6uJzaEEij6TWFJ5eUN7g897fXaG9REE6uid4THg5i/ | 6uJzaEEij6TWFJ5eUN7g897fXaG9REE6uid4THg5i/ | ||
- | AOWdpzbTbnL5mo8MxbVbFLT6KdAo4vHQ24BEUgBDKDsVvuG4HrEQXXGy5owreqjz | ||
kI23KdhYzjbiflm3Ebjsx0EiB+zOg2cQxEqwkhJLolkCAwEAAaOCAUYwggFCMAwG | kI23KdhYzjbiflm3Ebjsx0EiB+zOg2cQxEqwkhJLolkCAwEAAaOCAUYwggFCMAwG | ||
A1UdEwEB/ | A1UdEwEB/ | ||
Zeile 2016: | Zeile 2109: | ||
AwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcB | AwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMGCWCGSAGG+EIEATAyBggrBgEFBQcB | ||
AQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNhY2VydC5vcmcwMQYDVR0f | AQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNhY2VydC5vcmcwMQYDVR0f | ||
- | BCowKDAmoCSgIoYgaHR0cDovL2NybC5jYWNlcnQub3JnL3Jldm9rZS5jcmwwIQYD | ||
VR0RBBowGIEWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTANBgkqhkiG9w0BAQsFAAOC | VR0RBBowGIEWZGphbmdvQG1haWxzZXJ2ZXIuZ3VydTANBgkqhkiG9w0BAQsFAAOC | ||
+ | BCowKDAmoCSgIoYgaHR0cDovL2NybC5jYWNlcnQub3JnL3Jldm9rZS5jcmwwIQYD | ||
AgEACkbMXEhM1FGXrJUWXwkmld3vEulz62u8Frzcv/ | AgEACkbMXEhM1FGXrJUWXwkmld3vEulz62u8Frzcv/ | ||
Gu5+26SlnyjCFtF3nHVY005abfri3Bvc0BNAiibodV1SFnSk9AuHFRRSGtaw4TLk | Gu5+26SlnyjCFtF3nHVY005abfri3Bvc0BNAiibodV1SFnSk9AuHFRRSGtaw4TLk | ||
Zeile 2031: | Zeile 2124: | ||
-----END CERTIFICATE----- | -----END CERTIFICATE----- | ||
</ | </ | ||
- | */ | ||
+ | Dieses Zertifikatsfile importieren wir nun mit Hilfe des Prgramms **'' | ||
$ pkcs15-init --store-certificate | $ pkcs15-init --store-certificate | ||
Zeile 2039: | Zeile 2132: | ||
Please enter Security officer PIN [Admin PIN]: | Please enter Security officer PIN [Admin PIN]: | ||
- | /* | + | Beim Import werden wir wie erwartet nach der **ADMIN**-PIN gefragt. |
- | < | + | |
- | | i List public keys, private keys and certificates | + | Zum Schluss können wir uns nocheinmal anzeigen lassen und somit überzeugen, |
- | | ssh Show SSH public key with pkcs15-tool | + | $ micro-ca-tool sc i |
- | | + | < |
- | | new-key | + | m |
- | | new-csr | + | # # |
- | | store-key | + | # # |
- | | store-crt | + | # |
- | | | + | # |
- | | cryptostick-reset-REALLY | + | " |
- | | < | + | https:// |
- | SC> i | + | https:// |
+ | [#] Version: 0.1 | ||
Using reader with a card: Nitrokey Nitrokey Pro (000034D40000000000000000) 00 00 | 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] | Private RSA Key [Signature key] | ||
Object Flags : [0x03], private, modifiable | Object Flags : [0x03], private, modifiable | ||
Zeile 2116: | Zeile 2217: | ||
ID : 03 | ID : 03 | ||
- | |||
- | [#] SMARTCARD MENU | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | cryptostick-reset-REALLY | ||
- | | ||
</ | </ | ||
- | */ | + | |
+ | == 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 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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:// | ||
+ |