Exkurs - Vorbereitung eines E-Mail-Programms

Grundbaustein: GnuPG

Voraussetzung dafür, das bisher Gelernte auch praktisch anzuwenden, ist ein Programm, das den OpenPGP-Standard umsetzt (beschrieben in RFC4880).

GnuPG ist ein freies Kryptosystem, das eine solche Umsetzung leistet. GnuPG ist in der Lage, Schlüssel zu verwalten, Daten zu ver- und entschlüsseln sowie Signaturen zu erzeugen und zu überprüfen. Dabei ist GnuPG zunächst eine Konsolenanwendung, seine direkte Bedienung über die Konsole ist z.B. hier beschrieben.

Für GnuPG existieren zahlreiche grafische Benutzeroberflächen (GUI). Für Windows-Benutzer z.B. gpg4win.

An dieser Stelle werden wir ein E-Mail-Programm (Thunderbird) so einrichten, dass eine alltagsfähige Sicherheitsinfrastruktur aufgebaut werden kann.

Thunderbird-Portable

Thunderbird mit Enigmail

Im Folgenden wird beschrieben, wie unter Windows Thunderbird mit Enigmail auf einen USB-Stick installiert werden kann, so dass von einem beliebigen Windows-Rechner sicherer E-Mail-Verkehr durchgeführt werden kann. Hab aber Geduld! Das Starten vom USB-Stick dauert deutlich länger, als du es sonst gewohnt bist.

  1. Installation von Thunderbird Portable (z.B. in F:\_portable\ThunderbirdPortable)
  2. Installation von GPG_for_Thunderbird_Portable (z.B. in F:\_portable\ThunderbirdPortable)
  3. Starten (Geduld!) und Einrichten eines eigenen E-Mail-Kontos in Thunderbird Portable (z.B. F:\_portable\ThunderbirdPortable\ThunderbirdPortable.exe)
  4. Enigmail-Addon hinzufügen: Extras > Add-ons > "Rädchen anklicken" > Add-on aus Datei installieren > (enigmail-XX.xpi)
    Auch das braucht evtl. etwas länger - evtl. muss du noch einmal bestätigen, dass das Script weiter ausgeführt wird.
  5. Neustart von Thunderbird Portable

In Thunderbird gibt es nun einen zusätzlichen Menüpunkt "OpenPGP".

OpenPGP-Assistent

Ein eigenes Schlüsselpaar erzeugen

  1. OpenPGP > OpenPGP-Assistent > (... mehrfach weiter...) > "Ich möchte ein neues Schlüsselpaar erzeugen"
  2. Wähle ein Passphrase (Kennwort), die sicher ist und die du dir aber auch gut merken kannst
  3. Im nächsten Schritt kannst du dir ein Widerrufszertifikat erzeugen - das kannst du aber auch später noch nachholen.
  4. Jetzt bist du fertig!
    Du kannst dir nun alle Schlüssel an deinem "Schlüsselbund" anzeigen lassen: OpenPGP > Schlüssel verwalten
    Setze noch das Häkchen bei "Standardmäßig alle Schlüssel anzeigen". Jetzt siehst du alle Schlüssel - bisher ist das nur dein Schlüsselpaar.

Den eigenen öffentlichen Schlüssel exportieren und betrachten

Exportiere nun deinen öffentlichen Schlüssel in einer externen Datei. Benutze hierzu das Kontextmenü deines Schlüssels in der Schlüsselverwaltung. Gib der Datei mit deinem öffentlichen Schlüssel einen aussagekräftigen Namen, wie z.B. bob_public_key.asc.

Öffne jetzt diese Datei mit einem Texteditor.
Du solltest dann einen Text sehen, der (natürlich mit einer anderen Zeichenfolge) so aussieht:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.14 (MingW32)

mQENBEyczhkBCACoZBxBUYMQdU3qlWjQJR8zrqKJrcH9gsKHWG+Xg6PnMXrEdeEg
Ou9dx3TNJ8YoU8uTtaui65dFcE2O0cXDne5XycQVMjGXAHLEuCPRQR/tuhJwsk6u
7TFPGgC3aSuKbq2Hu6lxBUokXx8YnYW7uTNrhOLKp2OEJCS+GiUC3drfYldmNy8+
YOwNDRbfabcxPo5AGo75qcGxAsat+WIzMZseQHcfAW9l43kjG3C7w9rgKO+40OCY
b/5DHxN8KlgMh1POgYryREZHIYNutegEBL4NIURWGmdhpRmtFwTAvLTJt0wExJhK
NHpBwXxM4/eHfETNntTxagWxvAb4zx/C0mH1ABEBAAG0GEJvYiBMdWNreSA8Ym9i
QGx1Y2t5LmRlPokBOAQTAQIAIgUCTJzOGQIbDwYLCQgHAwIGFQgCCQoLBBYCAwEC
HgECF4AACgkQTzL5DFFLX71Tqwf/fMqmiXk5fwDJ16sVpAJZCO2hL9Jb8cbS2lqm
RRWbiBYPo1uyRLsmJOJOVufFgRF7BSJm79HYRjumwSjc92zOFE1nvmBMSkkZhxQ/
XtU2iGehGTnuo4KN13A9VIvvwcm4n1LRllaxYt7KWLhWy2cu8D4yA2/DDjFDzWtK
D3wjs6uEngaYkqO6JXMikAgE5XrHsC4KQymuMLnFt967sjYxufoHc0YD2NMxgqAW
1yt2j6rr2wtYW3nrHHL36I5Vew3vKMFoRVWiATuzK61Hn//C14CgEWEdjKoVorTm
ZlWvVzlXN+zNdVXs6jmfmqrzCOEGZZRQa6mhplxlXjkcVnSCB5kBDQRMnvYaAQgA
srpJ5rVc31D5Ari82OW91+oSbOKFdMTcNQOctt447QGU0ZfNuunZapLZwt0lOkmV
sdPr7VKirI1eiMuWZjEHwjuRGj593Hi+eYkurYvQ1y3HPb5kW72qV710TgpevhGu
rC9/nVqkuUeUvzGtVNBHjfaJUd7nrzL9ZOMVmt06CebDYo4B/+Kyt5uvG8byQ1yG
ubpPUfLbdhwEszTNNGF5c/tspAb768oibTCVphgZXDCMcfM06nyjrG2A0kA+JukJ
HqrXwW1BHbSGVBCn7vw6IlSQn4poBjNBXy9tmUQHm8nw2MlexI5eNK53UK//InBf
pzhWFXtT0CD+1fM9a8KtVwARAQABtBhCb2IgTHVja3kgPGJvYkBsdWNreS5kZT6J
AT4EEwECACgFAkye9hoCGwMFCQAnjQAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
AAoJEKLrGTFP+D/ISJEH/iTvX42XPMUmgclDvTQRYuJcKObggbYCv/lmqJ77Gisa
w2BekjNK9NueLdcDjgo6yGiKcdrfwGLJ9RrwOZ3iVoaR/wEIeQcGYB9UD0mOq44k
QrUam+1l4KvPmbEv+QQQkOcX8maWHlT+0ZVOdjM1DG55coVvNPEI9rkp6Yc3jIzn
AihIarM1KwEhqZORnkk47mCLe0XOSRNI17hOmwTk6V30ExDXJBVzTSj9kV5G+8OT
q5NWuF9alAzAiujz5Gwi/ob/oc2ppK1BmWLieiRzOBMrczWnn0rxzxzznwLu5GT6
l+AQG7t/rkY/jasbZ9bzav1zvEYsa1u1wpZ3SYcP6na5AQ0ETJ72GgEIALasrdKd
rfN58lIcqsYm1kXRfTpkoBmclaDxWdF81mYo1ayFBKstg0F84sP7qYeux5sE1Ed/
oT4KppXHX5xEu1x0lkUGzBzyqdDjTP3e4WdtDyrqrfDePXV8NU3QAS3NaCGDNki1
L3o1TPW3Sfo5adTY9RdBN59RTiyvro2ZjAOR2DRs1EFvuGbrOL2PzsGc3tZhx8c/
m6G+VjDfvp9LubxK2R9PwWzQNqpWyvqah2cjQW94fa702qGotzFteFoXkj+A2QH0
E06paQcAkjlCwfeWH/QsR7QEecufV+sUe5r+kPC5wzZgx1h5ARXesu/WbPXMZX8/
p+3Yc7OEZbEkcBEAEQEAAYkBJQQYAQIADwUCTJ72GgIbDAUJACeNAAAKCRCi6xkx
T/g/yN6iB/9gNzthQk8b8kBUAtOShX0lzWweyobQh2uiWpYOz5bCSVm91YMwwl0P
/jDOqvdY+JagbOY4TRhCvqL8/2bDIX5IIXDuT8rdpjRdknvhRhC6pEyxgLTpkBkw
cuUIQPcK3BOEmuf3aA/MKk6nqI0fhHW8xnTqvB4tA6g44loJOnjza2cUakR2zl6A
I3n+QlMi6YQ1bwEnYaSAFf2abUr6LTfSZaU7vOwMfxACj9yEIYfCcuszkHQvGsX0
Ed8FWRhPgHgdew/51E3d+5Avx1mbtdtKek7pcg6QGgx6HS7yJm6VZAsrW9CTWtzh
CDcNzdH/s4Y0o5/MvX67NDQEE20iWbzL
=VPa7
-----END PGP PUBLIC KEY BLOCK-----

Auf der Webseite PGPDump kann man sich die in der Datei dargestellte Information anzeigen lassen.

 PGPDump

Im vorliegenden Fall erhält man u.a. die beiden Zahlen, die den öffentlichen Schlüssel nach dem RSA-Verfahren ausmachen:

Old: Public Key Packet(tag 6)(269 bytes) 
Ver 4 - new 
Public key creation time - Fri Sep 24 16:13:13 UTC 2010 
Pub alg - RSA Encrypt or Sign(pub 1) 
RSA n(2048 bits) - 
a8 64 1c 41 51 83 10 75 4d ea 95 68 d0 25 1f 33 ae a2 89 ad 
c1 fd 82 c2 87 58 6f 97 83 a3 e7 31 7a c4 75 e1 20 3a ef 5d 
c7 74 cd 27 c6 28 53 cb 93 b5 ab a2 eb 97 45 70 4d 8e d1 c5 
c3 9d ee 57 c9 c4 15 32 31 97 00 72 c4 b8 23 d1 41 1f ed ba 
12 70 b2 4e ae ed 31 4f 1a 00 b7 69 2b 8a 6e ad 87 bb a9 71 
05 4a 24 5f 1f 18 9d 85 bb b9 33 6b 84 e2 ca a7 63 84 24 24 
be 1a 25 02 dd da df 62 57 66 37 2f 3e 60 ec 0d 0d 16 df 69 
b7 31 3e 8e 40 1a 8e f9 a9 c1 b1 02 c6 ad f9 62 33 31 9b 1e 
40 77 1f 01 6f 65 e3 79 23 1b 70 bb c3 da e0 28 ef b8 d0 e0 
98 6f fe 43 1f 13 7c 2a 58 0c 87 53 ce 81 8a f2 44 46 47 21 
83 6e b5 e8 04 04 be 0d 21 44 56 1a 67 61 a5 19 ad 17 04 c0 
bc b4 c9 b7 4c 04 c4 98 4a 34 7a 41 c1 7c 4c e3 f7 87 7c 44 
cd 9e d4 f1 6a 05 b1 bc 06 f8 cf 1f c2 d2 61 f5 
RSA e(17 bits) - 
01 00 01 

Mit dem folgenden Python-Programm kann man die hexadezimal dargestellten Zahlen in eine dezimale Darstellung umwandeln.

n_hex = '0xa8641c41518310754dea9568d0251f33aea289adc1fd82c287586f9783a3e7317ac475e1203aef5dc774cd27c62853cb93b5aba2eb9745704d8ed1c5c39dee57c9c4153231970072c4b823d1411fedba1270b24eaeed314f1a00b7692b8a6ead87bba971054a245f1f189d85bbb9336b84e2caa763842424be1a2502dddadf625766372f3e60ec0d0d16df69b7313e8e401a8ef9a9c1b102c6adf96233319b1e40771f016f65e379231b70bbc3dae028efb8d0e0986ffe431f137c2a580c8753ce818af244464721836eb5e80404be0d2144561a6761a519ad1704c0bcb4c9b74c04c4984a347a41c17c4ce3f7877c44cd9ed4f16a05b1bc06f8cf1fc2d261f5'
e_hex = '0x010001'
n = int(n_hex, 16)
e = int(e_hex, 16)
print('n = ', n)
print('e = ', e)

Es ergeben sich die folgenden Ergebnisse:

>>> 
n =  21257401498479011359050603733535299964981915555116347728020718941
4979927591883940053938988374917464762893307669048967202314254097150044
9207487578697971408378406024073619434737409525857176339127738486055245
7700551303631950998430608890605549738448001265354538102922007163341293
3758524894890397337770039317383201567151671922812297428367397046290582
6707287739072813102220788181993732810158057513614310683568432663710510
0723571393382869095829124235827944386268935561541442610526224069745941
6788017290549815858245587367933981252479878835433929188970275686578557
93746791410781043965045372773921120542700472045403767997358581
e =  65537

Die Modulzahl n ist hier eine Zahl mit 617 Stellen.

Schlüssel weitergeben

Wenn du deinen öffentlichen Schlüssel weitergeben möchtest, dann musst du den kompletten Block weitergeben. Und der geht vom ersten Minus-Zeichen links oben bis zum letzten Minus-Zeichen rechts unten. Am besten, du gibst die Textdatei mit dem abgespeicherten öffentlichen Schlüssel weiter.

Wenn du deinen privaten Schlüssel in eine Datei speicherst, dann solltest du genau wissen, was du damit machst. Du lässt ja auch nicht deinen Haustürschlüssel rumliegen ...

Aufgabe 1

Überlege dir drei verschiedene Möglichkeiten, deinen öffentlichen Schlüssel weiterzugeben und beschreibe diese.

Aufgabe 2

Betrachte deinen öffentlichen Schlüssel noch einmal ganz genau. Welche Art von Zeichen tauchen hier auf und welche Art von Zeichen tauchen nicht auf? Hast du dafür eine Erklärung?

X

Fehler melden

X

Suche