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
centos:nitrokey:start [24.11.2018 19:37. ] – [Schlüssel in die ChipCard des Nitrokey Start verschieben] djangocentos:nitrokey:start [22.07.2019 14:55. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 349: Zeile 349:
 Dabei ist es unerheblich ob nun eine Schlüssellänge von **2048** oder **4096** ausgewählt wird! Dabei ist es unerheblich ob nun eine Schlüssellänge von **2048** oder **4096** ausgewählt wird!
  
-Ähnlich wie schon beim Vorgängermodell **[[centos:cryptos-manag#schluessel_generieren|GPF Cryptostick]]** sollte eigentlich das Schlüsselmaterial auf dem Nitrokey Pro-Stick generiert worden sein.+Ähnlich wie schon beim Vorgängermodell **[[centos:cryptos-manag#schluessel_generieren|GPF Cryptostick]]** sollte eigentlich das Schlüsselmaterial auf dem Nitrokey Start-Stick generiert worden sein.
  
 </WRAP> </WRAP>
Zeile 424: Zeile 424:
 </code> </code>
  
-Obwohl wir zuvor "nur einen" //[[centos:nitrokey:pro#schluessel_generieren|PGP-Schlüssel generiert]]// generiert hatten, sehen wir nun aber plötzlich zwei Schlüssel. Der eine ist mit dem Wert **pub** gekennzeichnet und hat die Schlüssel-ID **2ADD88EB** und der zweite Schlüssel ist als **sub** gekennzeichnet und hat die Schlüssel-ID **B815F8ED**. +Obwohl wir zuvor "nur einen" //[[centos:nitrokey:start#schluessel_generieren|PGP-Schlüssel generiert]]// generiert hatten, sehen wir nun aber plötzlich zwei Schlüssel. Der eine ist mit dem Wert **pub** gekennzeichnet und hat die Schlüssel-ID **2ADD88EB** und der zweite Schlüssel ist als **sub** gekennzeichnet und hat die Schlüssel-ID **B815F8ED**. 
  
 Beide Schlüssel sehen wir auch, wenn wir uns den Inhalt des secrings anzeigen lassen. Hierzu verwenden wir die Option ''**--list-secret-keys**'' bzw. alternative dazu die Kurzform ''**-K**'': Beide Schlüssel sehen wir auch, wenn wir uns den Inhalt des secrings anzeigen lassen. Hierzu verwenden wir die Option ''**--list-secret-keys**'' bzw. alternative dazu die Kurzform ''**-K**'':
Zeile 1039: Zeile 1039:
  
   - Zunächst Wir legen uns erst einmal ein beliebiges Testdokument an. <code> $ cat /etc/redhat-release > testdatei.txt</code> Die Date hat nun folgenden Inhalt:<code> $ cat testdatei.txt</code><code>CentOS Linux release 7.5.1804 (Core)</code>   - Zunächst Wir legen uns erst einmal ein beliebiges Testdokument an. <code> $ cat /etc/redhat-release > testdatei.txt</code> Die Date hat nun folgenden Inhalt:<code> $ cat testdatei.txt</code><code>CentOS Linux release 7.5.1804 (Core)</code>
-  - Nun verschlüsseln wir dieses Textdokument: <code> $ gpg2 -o testdatei.txt.pgp -a -r secmail@mailserver.guru -e testdatei.txt</code> Wir haben also nun zwei Dokumente auf der Platte liegen. <code> $ ll testdatei.txt*</code><code>-rw-rw-r-- 1 django django  38 Nov 21 14:21 testdatei.txt +  - Nun verschlüsseln wir dieses Textdokument: <code> $ gpg2 -o testdatei.txt.pgp -a -r django@mailserver.guru -e testdatei.txt</code> Wir haben also nun zwei Dokumente auf der Platte liegen. <code> $ ll testdatei.txt*</code><code>-rw-rw-r--1 django django  38 24. Nov 20:38 testdatei.txt 
--rw-rw-r-- 1 django django 962 Nov 21 14:37 testdatei.txt.pgp</code>Die Datei **testdatei.txt.pgp** können wir nun soweit nicht mehr lesen.<code> $ cat testdatei.txt.pgp</code><code>� +-rw-rw-r--1 django django 962 24. Nov 20:38 testdatei.txt.pgp</code>Die Datei **testdatei.txt.pgp** können wir nun soweit nicht mehr lesen.<code> $ cat testdatei.txt.pgp</code><code>-----BEGIN PGP MESSAGE----- 
-  �̯VK����ꠔ��oY]�T>Jm��c������76]Ԛ�a&+Version: GnuPG v2.0.22 (GNU/Linux) 
-SZ,(��                                    ��w��+�Ao؃�l| + 
-=�Y����v,C���}z�狒*�fU�H=��J�l�O�������颣�*�ݴ'��ɟ +hQIMA8oyvX4CemyZAQ/9Gnw8NSIvqSoTsWxITtV7d5oWIhBRYW5D7/OkDm4q+eYr 
-                              MQ[Ce<��)X�yS$�2��`=� +4dFI2XipORxOS6KIJ+xp9IcziV4D+RpqmI0kjCy/4pDotYWERLA8bX5JToPkUdgZ 
-                                                    u�뇙�P����1<�R�cE���2cTj���|�@}~.t!���V?���q]�ѻ��MӚ��W�$ +nAvrZIL5SWKMPUnozKDlACAt4LifvPdejyMhDgaUBt+YHJGt8N7xKNg9MvKZ+kN2 
-��߿�W.�-I����^�V�-��+A�i�                                                                                        �f��mi�pPw��mh����]���38n�w�Iб]�� +0kHDsTUPGfjgaFl9lntLIuoqX8qROG7PuKbAIJoOI0eQKhmOhXC9Bc/ExOV1UkKT 
-                           L�����\�v�R +DMysmwv2sXHiftkJLw94znC+If+Kc0ql2MyvsqgcMelvTyov6jOy8hopf2SkwTSJ 
-*�]��-�t,-�A�9�6>�ZW�m������-�S{$�(}C@)��hZ +LLtSMxOq/44h8CM2QzxplOGAc5rqWLsMEuJSb/+InhDtCtOdVnw1dwMvgFJGn3R7 
-                                             ��QUw�~�[�F�%�:BB�TnD�8���`!� 'J�w�������!���LJ�PH�kj���k�����Q��u���s_���@�G��ʁ}!?D7݈.%w�[�xX�ِ����U��;���15���d����n�-;Z����x�3-MTt�i�L1̣�E�+��� +IJYrwd4ip6R7Q9uPm3eAx/RmKtowiHRrgKNC1yzrPUCgYVOCE87mjZVn/Ksvi9kp 
-                                   ��}��w�St�ls� +RIrMeuiGQ+igF/VYKnhTd9XOL1A35eP+CtMbY24pT2LLfXLTgJBTtJABmwZCHyPS 
-��6��n�#?��*('�㔛��y�, �j� �ᡞ���M/��YW��ݤ�r؎�B$�</code> +y7NXNCwKqxv46ZzIhdUikxYvBcbT5Xc8ME82Z648M0pcBCo4L3q2TmbEvCPobj0/ 
-  - Nun entschlüsseln wir unser Dokument wieder.<code> gpg2 --decrypt testdatei.txt.pgp > testdatei-entschlüsselt.txt</code><code>gpg: encrypted with 4096-bit RSA key, ID 564BA287, created 2018-11-21+2qzpNrO9YVAvhqiqFlfu4cdV5Jf+sRDGMoTRjae9fut+oA8Hi6gmR92nsnX223Wn 
 +oG34HfLTJKLNTT/Tng6AJOLrWKtiAoWC3ApIcoHN2M53HUOCRgN2gtj79I6pjdLS 
 +bgEvj9LJp5YbZJbd7mO+YTJ4N1NNJ8yeKXrL9f0gx7otGI54tpPrk58JJQnCxG3o 
 +ldJT1hH1Iq6QrOZ6kGDF5oLhoRHzQzh8QQkD5bD9YVHC03V4c00eXDCEk5jDvSld 
 +GClAjm+uZQngqfUwHhMZ 
 +=mDf3 
 +-----END PGP MESSAGE-----</code> 
 +  - Nun entschlüsseln wir unser Dokument wieder.<code> gpg2 --decrypt testdatei.txt.pgp > testdatei-entschlüsselt.txt</code><code>gpg: encrypted with 4096-bit RSA key, ID 2ADD88EB, created 2018-11-24
       "Django aka BOfH <secmail@mailserver.guru></code> Den Inhalt dieser Datei können wir nun nach erfolgter Entschlüsselung natürlich wieder lesen.<code> $ cat testdatei-entschlüsselt.txt</code><code>CentOS Linux release 7.5.1804 (Core)</code>       "Django aka BOfH <secmail@mailserver.guru></code> Den Inhalt dieser Datei können wir nun nach erfolgter Entschlüsselung natürlich wieder lesen.<code> $ cat testdatei-entschlüsselt.txt</code><code>CentOS Linux release 7.5.1804 (Core)</code>
  
 +=== 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.
 +   $ gpg --delete-secret-key michael.nausch@it.piratenpartei.de
 +<code>gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +
 +sec  4096R/2ADD88EB 2018-11-24 Django aka Bastard Operator from Hell <django@mailserver.guru>
 +
 +Diesen Schlüssel aus dem Schlüsselbund löschen? (j/N) j
 +Dies ist ein privater Schlüssel! - Wirklich löschen? (j/N) j
 +</code>
 +
 +<WRAP center round alert 95%>
 +__**Doch Achtung:**__
 +Hier wird der komplette Schlüssel gelöscht, also den **privaten Primären Signing Key** und nicht nur die Proxy-Einträge! Dies kann zu Problemen bei der späteren Verwendung des Nitrokey Start auf der Konsole führen, da das gpg-Programm versucht den Schlüssel im Schlüsselbund zu finden!
 +</WRAP>
 +
 +Der gpg-Befehl ''**%%--%%delete-secret-keys**'' hat als Bezugspunkt den primären Signierungsschlüssel und würde beim Entfernen dieses Schlüssels natürlich auch die Unterschlüssel entfernen. Da wir nur den privaten primären Signierungsschlüssel aus dem Schlüsselbund löschen wollen, exportieren wir die privaten Unterschlüssel, bevor wir den privaten Primary Signing Key löschen und werden diese dann anschliessend wieder importieren.
 +
 +Wir exportieren also erst einmal die Unterschlüssel und legen diese in einer lokalen Datei ab. Zunächst holen wir uns aber noch die Schlüssel-IDs da wir diese beim Exportieren eiegns angeben müssen.
 +   $ gpg2 --list-secret-keys
 +<code>/home/django/.gnupg/secring.gpg
 +------------------------------
 +sec   4096R/2ADD88EB 2018-11-24
 +uid                  Django aka Bastard Operator from Hell <django@mailserver.guru>
 +ssb>  4096R/B815F8ED 2018-11-24
 +ssb>  4096R/25704226 2018-11-24
 +ssb>  4096R/E8B122B0 2018-11-24
 +</code>
 +Nun exportieren wir die Unterschlüssel mit Hilfe folgenden Aufrufs, bei dem wir die IDs der Unterschlüssel gefolgt von einem **!** jeweils angeben:
 +   $ gpg2 -o subkeys --export-secret-subkeys B815F8ED! 25704226! E8B122B0!
 +
 +Nun löschen wir den primären Signierungsschlüssel inkl. der Unterschlüssel.
 +   $ gpg2 --delete-secret-key django@mailserver.guru
 +<code>gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +
 +sec  4096R/2ADD88EB 2018-11-24 Django aka Bastard Operator from Hell <django@mailserver.guru>
 +
 +Diesen Schlüssel aus dem Schlüsselbund löschen? (j/N) j
 +Dies ist ein privater Schlüssel! - Wirklich löschen? (j/N) j</code>
 +
 +Ein erneuter Aufruf des privaten Schlüsselspeichers zeigt und, dass dort nun keine Einträge mehr vorhanden sind.
 +   $ gpg2 --list-secret-keys
 +
 +Nun importieren wir wieder die zuvor gesicherten privaten Unterschlüssel
 +   $ gpg2 --import subkeys
 +<code>gpg: Schlüssel 2ADD88EB: geheimer Schlüssel importiert
 +gpg: Schlüssel 2ADD88EB: "Django aka Bastard Operator from Hell <django@mailserver.guru>" nicht geändert
 +gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
 +gpg:                             unverändert: 1
 +gpg:              gelesene geheime Schlüssel: 1
 +gpg:            geheime Schlüssel importiert: 1</code>
 +
 +Lassen wir uns nun den Inhalt des privaten Schlüsselbundes anzeigen, sehen wir die zurückgesicherten Unterschlüssel wieder.
 +   $ gpg2 --list-secret-keys
 +<code>/home/django/.gnupg/secring.gpg
 +------------------------------
 +sec#  4096R/2ADD88EB 2018-11-24
 +uid                  Django aka Bastard Operator from Hell <django@mailserver.guru>
 +ssb>  4096R/B815F8ED 2018-11-24
 +ssb>  4096R/25704226 2018-11-24
 +ssb>  4096R/E8B122B0 2018-11-24</code>
 +
 +Zu guter letzt vernichten wir die Datei mit den gesicherten privaten Unterschlüsseln.
 +   $ shred --zero --remove subkeys
  
  
Zeile 1089: Zeile 1166:
  
 === change-pin === === change-pin ===
-Wie schon mit der **[[centos:nitrokey:pro#nitrokey-app|Nitrokey App]]** können wir auch mit Hilfe des Befehls ''**gpg %%--%%change-pin**'' die Benutzer- und die Admin-PIN, wie auch die PIN zum Zurücksetzen der Benutzer-PIN, ändern.+<WRAP center round warn 95%> 
 +**WICHTIG**: 
 +Unbedingt vor dem ersten Ändern der PINs ist es notwendig, erst einmal Schlüssel zu generieren bzw. zu importieren! Denn sonst schlägt das Ändern der Benutzer-PIN fehl, bzw. wird die Benutzer-PIN beim Überschreiben von Schlüsseln auf den Default-Wert von **123456** zurückgesetzt. Die Default-PIN für den Admin lautet **12345678**. 
 +</WRAP> 
 + 
 +Mit Hilfe des Befehls ''**gpg %%--%%change-pin**'' können wir die Benutzer- und die Admin-PIN, wie auch die PIN zum Zurücksetzen der Benutzer-PIN, ändern.
  
 Die Benutzer-PIN (Menüpunkt **1**) wird benötigt für den täglichen Betrieb wie z.B. zum Entsperren des Token, oder zum  Signieren und Verschlüsseln. Die Mindestlänge für den User-Pin beträgt 6 Zeichen. Die Benutzer-PIN (Menüpunkt **1**) wird benötigt für den täglichen Betrieb wie z.B. zum Entsperren des Token, oder zum  Signieren und Verschlüsseln. Die Mindestlänge für den User-Pin beträgt 6 Zeichen.
Zeile 1095: Zeile 1177:
 Die Admin-PIN (Menüpunkt **3**) wird für die Karten-/Token-Verwaltung verwendet, so z.B. für das Laden von Schlüsseln auf den Krypto-Stick, das Erzeugen von Schlüsseln oder das Ändern von Informationen wie die Inhaberdaten auf der Karte. Die Mindestlänge für die Admin-PIN beträgt 8 Zeichen. Die Admin-PIN (Menüpunkt **3**) wird für die Karten-/Token-Verwaltung verwendet, so z.B. für das Laden von Schlüsseln auf den Krypto-Stick, das Erzeugen von Schlüsseln oder das Ändern von Informationen wie die Inhaberdaten auf der Karte. Die Mindestlänge für die Admin-PIN beträgt 8 Zeichen.
  
-<WRAP center round important 80%>+<WRAP center round important 95%>
 Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlußt aller Kartendaten!) zurück gesetzt werden! Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlußt aller Kartendaten!) zurück gesetzt werden!
 +
 +Ferner ist darauf zu achten, dass zunächst die Admin-PIN und erst dann die Nutzer-PIN geändert. Ansonsten wird nämlich der //[[http://www.fsij.org/doc-gnuk/gnuk-passphrase-setting.html#|admin-less mode]]// aktiviert.
 </WRAP> </WRAP>
  
 Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt. Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt.
  
-Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey Pro an seine Mitarbeiter ausgeben, werden bestimmte Daten, wie z.B. Namen, die Public Key URL oder auch das erzeugte Schlüsselmaterial zentral vorgegeben. Da der Benutzer selbst diese Daten nicht verändern können soll, wird dieser auch nicht Kenntnis von der Admin-PIN haben. Sperrt sich nun der Mitarbeiter aus, weil er die Benutzer-PIN 3x falsch eingegeben hat, kann der Neutzer natürlich nicht die Admin-PIN eingeben, da er diese nicht kennt. Hier kommt nun der Reset-Code ins Spiel. Mit Hilfe dieses Codes kann der Benutzer nun die Benutzer-PIN zurücksetzen.+Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey Start an seine Mitarbeiter ausgeben, werden bestimmte Daten, wie z.B. Namen, die Public Key URL oder auch das erzeugte Schlüsselmaterial zentral vorgegeben. Da der Benutzer selbst diese Daten nicht verändern können soll, wird dieser auch nicht Kenntnis von der Admin-PIN haben. Sperrt sich nun der Mitarbeiter aus, weil er die Benutzer-PIN 3x falsch eingegeben hat, kann der Neutzer natürlich nicht die Admin-PIN eingeben, da er diese nicht kennt. Hier kommt nun der Reset-Code ins Spiel. Mit Hilfe dieses Codes kann der Benutzer nun die Benutzer-PIN zurücksetzen.
  
    $ gpg --change-pin    $ gpg --change-pin
Zeile 1114: Zeile 1198:
 Ihre Auswahl?</code> Ihre Auswahl?</code>
  
-Beim Menüpunkt 1 können wir z.B. die Benutzer-PIN abändern. Wir werden dann nach der aktuellen PIN gefragt und müssen die neue PIN 2x eingeben zum Abändern.+Wir ändern also zu erste die Admin-PIN durch Auswahl des Menüpunkts **3** aus und erst anschliessend die Benutzer-PIN mit **1**. Wir werden dann nach der aktuellen PIN gefragt und müssen die neue PIN 2x eingeben zum Abändern.
  
 {{ :centos:nitrokey:nitrokey-gpg_01.png?nolink&275 |Bild: PIN-Eingabedialog beim Abändern der Benutzer-/Admin-PIN}} {{ :centos:nitrokey:nitrokey-gpg_01.png?nolink&275 |Bild: PIN-Eingabedialog beim Abändern der Benutzer-/Admin-PIN}}
  
 +<code>Ihre Auswahl? 3
 +PIN changed.
 +
 +1 - change PIN
 +2 - unblock PIN
 +3 - change Admin PIN
 +4 - set the Reset Code
 +Q - quit
 +
 +Ihre Auswahl? 1
 +PIN changed.
 +
 +1 - change PIN
 +2 - unblock PIN
 +3 - change Admin PIN
 +4 - set the Reset Code
 +Q - quit
 +
 +Ihre Auswahl? q</code>
 +
 +==== Nitrokey und Thunderbird ==== 
 +Unseren zuvor präparierten Kryptostick wollen wir nun verwenden um bei Thunderbird unsere elektronische Kommunikation per eMail abzusichern. Hierzu werden wir nun den schlüssel dem betreffenden Konto zuweisen. 
 +Über das Menü wählen wir den Punkt **Konten-Einstellungen** aus.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_10.png?nolink&850 |Bild: Thunderbird - Menüpunkt Konten-Einstellungen }}
 +
 +Beim passenden Konto wählen wir dann die Option **OpenPGP-Sicherheit** aus.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_11.png?nolink&800 |Bild: Thunderbird - Menüpunkt OpenPGP-Sicherheit }}
 +
 +Hier wählen wir nun den Schlüssel aus, den wir zuvor erstellt und auf die SmartCard des Kryptostick Start verschoben hatten.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_12.png?nolink&850 |Bild: Thunderbird - Auswahl des Schlüssels auf dem Kryptostick. }}
 +
 +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.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_13.png?nolink&850 |Bild: Thunderbird - Signieren und Versenden einer Nachricht. }}
 +
 +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.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_14.png?nolink&850 |Bild: Thunderbird - Abfrage der PIN zum Entschlüsseln der Nachricht }}
 +
 +Habne wir die PIN richtig eigegeben, wird die entschlüsselte Nachricht angezeigt.
 +
 +{{ :centos:nitrokey:nitrokey-gpg_15.png?nolink&850 |Bild: Thunderbird - Anzeige der entschlüsselten Nachricht }}
  
  
  • centos/nitrokey/start.1543088232.txt.gz
  • Zuletzt geändert: 24.11.2018 19:37.
  • von django