Theorie zu Kryptologie

Inhalt

1. Einführung
1.1 Blockchiffre und Stromchiffre

2. Symmetrische Verschlüsselungsverfahren
2.1 ROT-13
2.2 Vigenèreverschlüsselung
2.3 Die XOR-Stromchiffre
2.4 Vor- und Nachteile von symmetrischen Verschlüsselunsverfahren

3. Asymmetrische Verschlüsselungsverfahren
3.1 Der Schlüsseltausch nach «Diffie-Hellman»
3.2 Das asymmetrische Verfahren «RSA»
3.3 Zahlenbeispiel zum asymmetrischen Verfahren «RSA»
3.4 Bemerkung zur Sicherheit der RSA-Schlüssel
3.5 Hybride Verfahren
3.6 Das Verschlüsselungsverfahren in einer Übersicht

4. Digitale Signatur mit «RSA»
4.1 Die digitale Signatur mit «RSA» in einer Übersicht
4.2 Der Hash-Wert

5. Public Key Infrastruktur
5.1 Aufgaben von TC’s bzw. CA's (X.509)

6. Schwachstellen von «RSA» (Auswahl)
6.1 Der Preimage-Angriff
6.2 Der Geburtstagsangriff
6.3 Beispiel: Chosen Ciphertext

7 Hintergrundwissen zu «Sichere E-Mail’s verschicken»
7.1 S/MIME
7.2 OpenPGP

8. Anhang
8.1 Einen SWISSCOM E-Mail-Account einrichten
8.2 Das E-Mail-Programm Thunderbird einrichten
8.3 GPG4WIN installieren
8.4 Mit Kleopatra ein persönliches Schlüsselpaar erstellen
8.5 Sichere E-Mail: Thunderbird mit Enigmail
8.6 Sichere E-Mail: Firefox mit Mailvelope


1. Einführung

Mit Kryptografie war ursprünglich die Wissenschaft der Verschlüsselung gemeint. Heute umfasst sie allgemein die  Informationssicherheit und die Widerstandsfähigkeit gegen Manipulation und unbefugtes Lesen.

  • Kryptologie: Wissenschaft vom Entwurf, der Anwendung und der Analyse von kryptografischen Verfahren
  • Kryptografie: Wie kann eine Nachricht ver- und entschlüsselt werden?
  • Kryptoanalyse: Wie sicher ist ein Verschlüsselungsverfahren?

Die Akteure in der Krypto-Literatur:

1.1 Blockchiffre und Stromchiffre

Blockchiffre

  • Algorithmus der einen Datenblock von 64 oder 128 Bit mittels Schlüsselwerts verschlüsselt
  • Längerer Nachrichten werden vorerst in Blöcke unterteilt
  • Länge verschlüsselter Block 64 bzw. 128 Bit
  • Typische Schlüssellänge 112, 128 und 168 Bit
  • Beispiele: DES, AES und IDEA

Stromchiffre

  • Symmetrische, kontinuierliche und verzögerungsfreie Ver- oder Entschlüsselung eines Datenstroms
  • Stromchiffre ver- bzw. entschlüsselt Nachrichten Bit für Bit bzw. Zeichen für Zeichen
  • Für Echtzeitübertragungen geeignet (z.B. Mobilfunk)
  • Beispiele: XOR-Verschlüsselung, RC4 (RC4 ist ein in den 80‘er Jahren von Ron Rivest entwickelter Stromchiffre-Algorithmus, der z.B. für eine sichere SSL-Verbindung bzw. Verschlüsselung des Datenstroms bei Webbrowsern sorgt), Scrambling bei 1000Base-T

2. Symmetrische Verschlüsselungsverfahren

2.1 ROT-13

Beim 26 Buchstaben zählenden Alphabet hat die ROT-13 Rotationschiffre den Vorteil, dass derselbe Algorithmus zum ver- bzw. entschlüsseln verwendet wedern kann: Verschlüsseln (Buchstabe um 13 Positionen vorwärts und Entschlüsseln (Buchstabe um 13 Positionen vorwärts)

Unterschied zu einer z.B. ROT-3: Hier werden die Buchstaben und drei Positionen verschoben. Allerdings brauchts zwei Funktionen. Nämlich die Verschlüsselung (Buchstabe um drei Positionen vorwärts) und Entschlüsselung (Buchstabe um drei Positionen rückwärts).

2.2 Vigenèreverschlüsselung

Zur Verschlüsselung eines Klartextes wird ein Schlüssel benötigt. Idealerweise ist dieser gleich lang wie der Klartext. Ist der Schlüssel kürzer als der Klartext, wird dieser einfach wiederholt. Die chiffrierten Buchstaben ermittelt man mit dem Vigenère-Quadrat, einer quadratischen Anordnung von untereinander stehenden verschobenen Alphabeten. Dazu sucht man den Kreuzungspunkt der durch den jeweiligen Schlüsselbuchstaben gekennzeichneten Zeile und der Spalte des Quadrats, die oben durch den Klartextbuchstaben gekennzeichnet ist. Der Empfänger benutzt zum Entschlüsseln der Nachricht denselben Schlüssel wie der Absender. Er kann durch Umkehren des Verschlüsselungsverfahren den Klartext zurückgewinnen.

Das komplette Vigenère-Quadrat:

2.3 Die XOR-Stromchiffre

Bei der Stromchiffre werden Klartext Bit für Bit bzw. Zeichen für Zeichen XOR-ver- bzw. entschlüsselt. Sender und Empfänger benutzen denselben Schlüssel.

Ein grosser Nachteil der XOR-Verschlüsselung
Sind Original und Chiffre bekannt, kann der Schlüssel rekonstruiert und für eine weitere Dechiffrierung verwendet werden. Beispiel:

Korrekte Verwendung:

  • Original 00101001
  • Schlüssel 10011010
  • XOR-Chiffre 10110011

Schlüssel rekonstruieren:

  • Original 00101001
  • XOR-Chiffre 10110011
  • Schlüssel 10011010

2.4 Vor- und Nachteile von symmetrischen Verschlüsselungsverfahren

VORTEILE:

  • Schlüssel sind «kürzer» als Nachricht.
  • Ein sicherer Kanal für einen «kurzen» Schlüssel ist einfacher zu haben als ein sicherer Kanal für eine komplette Nachricht.

NACHTEILE:

  • Sender und Empfänger müssen denselben Schlüssel besitzen.
  • Der Schlüsseltausch benötigt einen sicheren Kanal.
    Falls ein sicherer Kanal vorhanden wäre, könnte ja die Nachricht selbst darüber übertragen werden!
  • Aufwändiges Schlüsselmanagement.
    S=N*(N-1)/2
    S=Anzahl der Schlüssel; N=Anzahl der Teilnehmer
    Die Schlüsselanzahl wächst somit quadratisch!

3. Asymmetrische Verschlüsselungsverfahren

Bei der Public/Privat-Key Kryptografie wird der Schlüssel auf zwei Teilschlüssel aufgeteilt. Das heisst, das jeder Teilnehmer folgendes Schlüsselpaar besitzt:

  • Private-Key bzw. Privater Schlüssel: Dieser dient dem Nachrichten-Empfänger zum Entschlüsseln der Nachricht. Der Private-Key kennt nur der Empfänger und bleibt geheim.
  • Public-Key bzw. Öffentlicher Schlüssel: Dieser dient zum Verschlüsseln einer Nachricht an die Person, die den Public-Key generiert bzw. ihn veröffentlicht hat. Der Public-Key ist jedermann zugänglich.

3.1 Der Schlüsseltausch nach «Diffie-Hellman»

Der Diffie-Hellman-Schlüsseltausch ist ein Protokoll zur Schlüsselvereinbarung. Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann. Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden (z.B. DES Data Encryption Standard oder AES Advanced Encryption Standard). Varianten des Diffie-Hellman-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internets eingesetzt.

Veranschaulichung der Grundidee anhand gemischter Farben:

  • Alice und Bob einigen sich zunächst öffentlich auf die gemeinsame Farbe Gelb.
  • Zudem wählt sowohl Alice wie auch Bob eine eigene geheime Farbe.
  • Bob und Alice mischen nun jeweils die gemeinsame Farbe mit ihrer geheimen Farbe und tauschen diese Farbmischungen über eine öffentliche Leitung aus. Einem Lauscher ist es nicht effizient möglich, aus den öffentlichen Farben Gelb, Beige und Graublau auf die geheimen Farben von Alice und Bob zu schließen.
  • In einem letzten Schritt mischen nun Alice und Bob die Farbmischung ihres Gegenübers mit ihrer eigenen geheimen Farbe. Daraus entsteht wiederum eine neue Farbe, die für beide Kommunikationspartner gleich ist. Ab jetzt haben Alice und Bob für eine weitere Nachrichtenverschlüsselung ein gemeinsames (Farb-)Geheimnis, das ein Lauscher nicht rekonstruieren kann, weil er Alices und Bobs geheime Farbzutaten nicht kennt.

3.2 Das asymmetrische Verfahren «RSA»

RSA gemäss den Erfindern Ronald L. Rivest, Adi Shamir und Leonard Adleman (1977)

Die Rechenvorschrift für die Verschlüsselung der Nachricht: c=ke mod n
Die Rechenvorschrift für die Entschlüsselung der Nachricht: k=cd mod n
Wobei gilt:
c: Ciphertext
k: Klartext
e,n: Public Key des Empfängers
d,n: Secret Key des Empfängers


Die Mathematik ist bei Verschlüsselung und Entschlüsselung dieselbe, die Koeffizienten dagegen sind verschieden. Die Funktion xy mod z ist eine sogenannte Einwegfunktion. Damit ist eine Funktion gemeint, die sich ohne eine Zusatzinformation nur schwerlich umkehren lässt.

3.3 Zahlenbeispiel zum asymmetrischen Verfahren «RSA»

Im Folgenden soll eine Schlüsselberechnung anhand von einem Zahlenbeispiel gezeigt werden:

  1. Alice wählt zufällig zwei Primzahlen p ≠ q, die etwa gleich gross sein sollten und berechnet deren Produkt n=p·q
    Wahl p=11 und q=17; Somit wird n=11*17=187
  2. Danach berechnet Alice x = (p-1) · (q-1)
    x=(11-1)*(17-1)=160
  3. Alice berechnet nun x + 1
    x+1=160+1=161
  4. Der Wert e wird ausgewählt, wobei d ein Teiler aus x+1 sein muss
    Der zweite Teiler aus x+1 ist d. Es muss gelten: d*e=x+1
    Unzulässige Werte von d und e (z.B. d=e) werden als unsicher abgelehnt
    Da 161=7*23 sind 7 und 23 geeignete Kandidaten für e und d
  5. Alice hat nun ihr Schlüsselpaar berechnet:
    n und e sind Public-Key von Alice
    d und n sind Secret-Key von Alice
    n=187, e=7, d=23

Nun wird als Ver- und Entschlüsselungsbeispiel der Klartext in Form der Zahl k=12 gewählt.

  1. Die Verschlüsselung mit dem Public-Key von Alice (e=7, n=187) nach der Formel c=kemod n
    c=127mod 187=177
    Der chriffrierte Wert lautet somit c=177
  2. Die Entschlüsselung mit dem Private-Key von Alice (d=23, n=187) nach der Formel k=cdmod n
    k=17723mod 187=12
    Der erhaltene unverschlüsselte Wert lautet somit k=12
    , was zu beweisen war.

3.4 Bemerkung zur Sicherheit der RSA-Schlüssel

Wie in «3.2 Zahlenbeispiel zum asymmetrischen Verfahren» gezeigt, berechnet sich der Schlüssel unter anderem mit diesem Teilschritt: Alice wählt zufällig zwei Primzahlen p ≠ q, die etwa gleich lang sein sollten und berechnet deren Produkt N = p·q. In einigen Veröffentlichungen wird beschrieben, die Stärke des RSA-Algorithmus basiere auf der Tatsache, dass es schwierig sei, grosse Primzahlen zu faktorisieren. Dies ist ein Schreibfehler, denn Primzahlen allgemein, gross oder klein, haben nur zwei Faktoren. Gemeint ist, dass es schwierig ist, grosse Zahlen zu faktorisieren und der Modulus (p*q) ist eine solche grosse Zahl.
Gebräuchliche Schlüssellängen bei RSA sind: 1024 Bit, 2048 Bit, 3072 Bit, 4096 Bit

3.5 Hybride Verfahren

Symmetrische Verschlüsselungsverfahren haben das bereits besprochene Problem des Schlüsseltauschs und Schlüsselmanagements, das bei den asymmetrischen Verfahren so nicht besteht. Allerdings benötigen symmetrische Verfahren weniger Rechenzeit zur Erstellung des Chiffretexts als rein asymmetrische Verfahren. Darum liegt es auf der Hand, dass in einem hybriden Verfahren die Vorteile der beiden Verfahren genutzt werden:

  • Asymmetrisches oder Public-Key-Verfahren für Schlüsselmanagement, zB. RSA
  • Symmetrisches Verfahren zum Versenden der eigentlichen Nachricht, zB. RC4, DES

3.6 Das Verschlüsselungsverfahren in einer Übersicht


4. Digitale Signatur mit «RSA»

Nicht immer ist es das Ziel, eine Nachricht zu verschlüsseln. Oftmals besteht auch das Bedürfnis, die Authentizität, Integrität, Verbindlichkeit etc. einer Nachricht zu erfahren, wie z.B:

  • wer in meinem E-Shop bestellt hat
  • wer mir diese oder jene E-Mail zugestellt hat
  • ob wirklich der Absender das geschrieben hat, was ich da nun lese
  • woher das Applet stammt, das ich gerade auf meinen PC lade
  • ob es sich bei dem Update wirklich um das richtige und unmanipulierte Original handelt
  • wohin meine Kreditkartennummer übermittelt wird
  • wer bei einer Wahlveranstaltung gerade seine Stimme abgegeben hat
  • ob der Inhalt von “www.admin.ch” wirklich von unserer Regierung stammt

Dazu kann mit RSA dasselbe Verfahren genutzt werden, wie bei der Verschlüsselung von Nachrichten: Die digitale Signatur mit RSA.

Ausgehend von seinem Grundprinzip ist das Internet nicht sicher:

  • Mitlesen von Daten (Sniffing)
  • Vortäuschen falscher Identitäten (Spoofing)
  • Angriffe auf die Verfügbarkeit (Denial-of-Service)
  • Übertragen von Programmen mit Schadfunktion (Viren, Würmer...)
  • Menschliches Fehlverhalten (Preisgabe von geheimen Daten)

Das möchten wir erreichen:

  • Authentisierung - Sicherstellung der Identität eines Kommunikationspartners
  • Vertraulichkeit - Zugänglichkeit der Nachricht nur für bestimmten Empfängerkreis
  • Integrität - Schutz vor Verfälschung von Nachrichten bei der Übermittlung
  • Autorisierung - Prüfung der Zugriffsberechtigung auf Ressourcen
  • Verfügbarkeit - Schutz vor Datenverlust, Sicherstellung des laufenden Betriebs
  • Verbindlichkeit - Sicherer Nachweis der Absendung bzw. des Empfangs

Wozu soll die digitale Signatur dienen?

  • Sichere Identifizierung des Absenders eines Dokumentes
  • Sicherheit vor nachträglichen Manipulationen des Dokumentes
  • Elektronisch signierte Dokumente sind mit unterschriebenen Papierdokumenten gleich gesetzt
  • Ist ein Prüfwert einer Information
  • Die Digitale Signatur hat die Aufgabe einer Unterschrift und eines Siegels

4.1 Die digitale Signatur mit «RSA» in einer Übersicht

Wesentlicher Ablauf:

  • Der Inhalt der Nachricht wird auf eine eindeutige Kenngrösse abgebildet. Dazu bedient man sich eines Hash-Algorithmus
  • Der Hash-Wert wird mit dem privatem Schlüssel verschlüsselt und zur Nachricht hinzugefügt
  • Der Empfänger kann mit Hilfe des öffentlichen Schlüssel des Senders prüfen, ob die Information wirklich vom Absender stammt und nicht verändert wurde

4.2 Der Hash-Wert

  • Der Hashwert bildet einen beliebig langen Nachrichtentext auf einen Wert vorgegebener, kurzer Länge an (Hashwert, Prüfsumme)
  • Aus dem Hashwert kann die ursprüngliche Nachricht nicht errechnet werden (Irreversibilität)
  • Die Konstruktion von Nachrichten mit identischem Hashwert muss praktisch unmöglich sein
  • Die zufällige Übereinstimmung von Hashwerten beliebiger Nachrichten ist sehr unwahrscheinlich (Kollisionsresistenz, Integrität prüfbar)

5. Public Key Infrastruktur

  • OpenPGP - Ein dezentraler Standard, der anfangs der 90er Jahre durch Phil Zimmermann entwickelt wurde: Jeder Teilnehmer am Verschlüsselungssystem, der ein gültiges Schlüsselpaar besitzt, kann die Echtheit anderer Schlüssel durch seine Unterschrift bestätigen.
  • X.509 - Zentral und hierarchisch organisiert. Der Besitzer hat seine Identität bzw. Glaubwürdigkeit durch ein X-509 Zertifikat von einer CA (=Certification Authority) bescheinigen lassen. Das heisst: Personenangaben werden mit dem Schlüsselpaar gekoppelt (Elektronischer Ausweis), ausgestellt von einer vertrauenswürdigen Instanz TC (=Trust Center) oder CA

5.1 Aufgaben von TC’s bzw. CA's (X.509)

  • Zertifikate ausstellen - Korrekte Identifikation des Teilnehmers,  Zertifizieren von User, Server, Sub CA's. Erstellung des Zertifikates durch digitale Signatur über Identifikationsdaten  und öffentlichen Schlüssel eines Teilnehmers.  Bei Ausgabe eines Zertifikates an einen Teilnehmer ist dieser über Funktionalität  und Gefahren von zertifizierten Signaturschlüsseln zu unterrichten.
  • Veröffentlichen der Public-Keys der User und Publizieren eigenes Zertifikat
  • Verwalten bzw. Archivierung angelaufener Zertifikate
    Zertifikate zurückziehen oder für ungültig erklären
    Festlegung der Gültigkeitsdauer von Zertifikaten
  • Zeitstempeldienst - Absicherung im Falle des Diebstahls des geheimen Schlüssels. Nachweis einer zeitpunktsbezogenen Willensbekundung. Nachweis und Sicherheit, dass die digitale Signatur nicht nach Ablauf der Gültigkeit des Zertifikates erstellt wurde.

6. Schwachstellen von «RSA» (Auswahl)

Ein Kollisionsangriff ist ein Angriff auf eine kryptologische Hashfunktion mit dem Ziel, zwei verschiedene Dokumente zu finden, die einen identischen Hashwert ergeben. Sind solche Kollisionen einmal gefunden, bedeutet dies, dass die entsprechende Hashfunktion für kryptografische Anwendungen (Datenverschlüsselung, digitale Signaturverfahren) nicht mehr geeignet ist. Bei Hashfunktionen, die nicht entwickelt wurden, um kryptologischen Anforderungen zu genügen, sind solche Kollisionen oft leicht zu finden. Ein Beispiel hierfür ist die CRC-32-Prüfsumme: Die Wörter "buckeroo" und "plumless" führen beide zum Prüfwert 4ddb0c25. Inzwischen weit fortgeschrittene Kollisionsangriffe haben ergeben, dass die Nutzung von MD5 unsicher ist, insbesondere in solchen Szenarien, in denen der Nutzer nicht die zu signierenden Dateien komplett kontrolliert. Ein 2009 durchgeführter Test des Computermagazins c’t unter Verwendung von GPGPU ermöglicht es einem etwa ein Jahr alten Highend-Spiele-PC mit zwei Nvidia GeForce 9800 GX2 (insgesamt vier Grafikprozessoren), in knapp 35 Minuten eine Kollision zu finden.

Übrigens: Eine aktuell hervorragend starke Kollisionsresistenz besitz der SHA-3-Algorithmus.

6.1 Der Preimage-Angriff

Einer der naheliegendsten Ansätze besteht darin, ein Dokument zu wählen, für dieses den Hashwert zu berechnen und dann ein zweites Dokument zu suchen, das ebenfalls denselben Hashwert hat. Dieser Ansatz entspricht einem Preimage-Angriff. Beispiel: SHA-1 hat immer eine binäre 160-Bit-Ausgabe, also 2160 mögliche Hashwerte. Dieser Algorithmus muss bei SHA-1 den Test also durchschnittlich 2160 Wiederholungen ausführen, bis er eine Kollision findet. Für einen Rechner, der 1 Milliarde Versuche pro Sekunde schafft, beträgt die Laufzeit 4.6·1031 Jahre.

6.2 Der Geburtstagsangriff

Eine viel höhere Erfolgswahrscheinlichkeit als beim Preimage-Angriff erreicht man mit dem Geburtstagsangriff. Hier wählen wir zufällig eine Anzahl Dokumente, berechnen jeweils die entsprechenden Hashwerte und testen dann, ob unter den errechneten Hashwerten zwei gleich sind. Hierbei ergibt sich analog zum Geburtstagsparadoxon eine unerwartet höhere Erfolgswahrscheinlichkeit.
(Geburtstagsparadoxon: Befinden sich in einem Raum mindestens 23 Personen, dann ist die Chance grösser als 50%, dass zwei oder mehrere dieser Personen am gleichen Tag (ohne Beachtung des Jahrganges) Geburtstag haben.

Für das Beispiel SHA-1 bedeutet dies, dass 1,18·280 Versuche benötigt werden, um mit einer Wahrscheinlichkeit von 50% eine Kollision zu finden. Für einen Rechner, der eine Milliarde Versuche pro Sekunde schafft, beträgt die Laufzeit hier "nur" noch 4.5·107 Jahre.

Der Ablauf:

  1. Mallory erstellt zwei Versionen eines Dokumentes «Guter Text: Alice an Bob» und «Böser Text: Alice an Mallory»
  2. Mallory erstellt von beiden Dokumenten (Gut und Böse) je verschiedene Varianten. Der jeweilige Inhalt wird dabei geringfügig, dh. von Auge kaum erkennbar, abgeändert (zB. Einfügen von Leerschläge etc.)
  3. Mallory sucht «Gut» und «Böse» Varianten mit demselben Hashwert (Die Chance, einen Treffer zu erzielen ist intakt)
  4. Mallory legt Alice die gefundene Variante von «Guter Text» zur Unterschrift vor.
  5. Alice unterschreibt die «Guter Text: Alice an Bob» Variante für Bob.
  6. Mallory trennt nun die Signatur von «Guter Text» ab und fügt sie «Böser Text: Alice an Mallory» an.
  7. «Böser Text: Alice an Mallory» ist nun ebenfalls gültig.

Was lernen wir daraus: Niemals ein fremdes Dokumment unterschreiben, auch wenn es im Klartext abgefasst ist, es sei denn, man nimmt vor der Unterzeichnung einige subtile Änderungen vor, wie z.B. Einfügen von Leerzeichen. Damit ändert sich der Haschwert und der Geburtstagsangriff ist gescheitert.

6.3 Beispiel: Chosen Ciphertext

Mallory fängt eine an Bob verschlüsselte Nachricht ab und besorgt sich auch Bob's Public-Key. Nun geht Mallory wie folgt vor:

  1. Mallory wählt eine Zufallszahl r, wobei gilt: r<n und r ist teilerfremd zu n
  2. Mallory berechnet RSA-mässig: s=re mod n (e und n sind Bob's Public-Key)
    Dementsprechend wird aber auch die RSA-Umkehrfunktion gelten: r=sd mod n (d und n wären dabei Bob's Private-Key)
  3. Im weiteren berechnet Mallory y=s*C mod n (C ist die an Bob verschlüsselte Nachricht)
  4. Zusätzlich berechnet Mallory t=r-1 mod n
  5. Nun überredet Mallory Bob, die von ihm errechnete Nachricht y digital zu signieren.
  6. Gutmütig wie er ist, signiert nun Bob wie folgt: u=yd mod n (d und n sind Bob's Private-Key)
  7. Nun wird Mallory wieder aktiv und berechnet folgendes:
    t*u mod n = Cd mod n
    Oder anders ausgedrückt:
    Mit t*u mod n erhält Mallory den Wert von Cd mod n, was exakt dem Klartext entspricht, den Bob verschlüsselt erhalten hat. Und dies erreicht er allein mit den ihm bekannten Werten t, u und n.
    Wie konnte dies passieren? Dazu ein paar Mathezeilen:
  8. In t*u mod n wird t durch r-1 mod n ersetzt (Siehe Schritt 4)
  9. Somit erhalten wir: t*u mod n = r-1 mod n * u mod n
  10. Wir ersetzten u durch yd mod n (Siehe Schritt 6)
  11. Somit erhalten wir: t*u mod n = r-1 mod n * (yd mod n) mod n
  12. Das mod n rechts aussen können wir uns auch sparen.
    Somit gilt: t*u mod n = r-1 mod n * yd mod n
  13. Nun kommt eine Modul-Rechenregel zum Einsatz: Nämlich die Homomorphieregel:
    Somit erhalten wir: t*u mod n = r-1 * yd mod n
  14. Wir ersetzen nun y durch s*C mod n (Siehe Schritt 3)
  15. Wir erhalten dadurch: t*u mod n = r-1 * (s*C mod n)d mod n
  16. Etwas umgeformt ergibt dies: t*u mod n = r-1 * sd mod n *Cd mod n
  17. Nun ersetzen wir sd mod n durch r (Siehe Schritt 2)
  18. Wir erhalten dadurch: t*u mod n = r-1 * r * Cd mod n
  19. Da r-1 * r=1 ergibt erhalten wir neu: t*u mod n = Cd mod n

Was lernen wir daraus: Niemals irgendwelche binären Dateien unbekannten Inhalts mit dem eigenen privaten Schlüssel unterschreiben. Es könnte sich um einen Chosen-Ciphertext-Angriff handeln. (Man in the middle-Attack)


7 Hintergrundwissen zu «Sichere E-Mail’s verschicken»

Was Sie beim Einrichten eines E-Mail-Clients beachten sollten: Beim Abfragen und Verschicken von E-Mail's sollte man auch an die Verbindungssicherheit denken: Unverschüsselt können Sie auf dem Transportweg (Mail-Client zu Mail-Server) leicht abgehört werden. Darum ist es von Vorteil, eine Verschlüsselungsmethode wie SSL/TLS einzusetzen, sofern dies von Ihrem Mail-Provider auch angeboten wird. Allerdings muss man wissen, dass es sich dabei "nur" um eine Transportverschlüsselung handelt. Das bedeutet, dass Ihre EMails auf dem Weg zum Mailserver nicht eingesehen werden können. Auf dem Mailserver liegen Ihre EMails allerdings unverschlüsselt vor, ausser Sie bedienen sich einer Mailverschlüsselung. OpenPGP und S/MIME sind dabei die beiden wichtigsten Standards für eine E-Mail-Verschlüsselung.

7.1 S/MIME

S/MIME = Secure Multipurpose Internet Mail Extensions
Dies ist ein Standard für die Verschlüsselung und das Signieren von MIME-gekapselter E-Mail durch ein hybrides Kryptosystem (Asymmetrisch/Symmetrisch). S/MIME wird von den meisten modernen Mailclients unterstützt. Es erfordert X.509-basierte Zertifikate für den Betrieb.

S/MIME-Zertifikate

  • X.509 ist ein Standard für eine Public-Key-Infrastruktur (PKI) zum Erstellen digitaler Zertifikate.
  • Mit Public-Key-Infrastruktur (PKI) bezeichnet man in der Kryptologie ein System, das digitale Zertifikate ausstellen, verteilen und prüfen kann. Die innerhalb einer PKI ausgestellten Zertifikate werden zur Absicherung rechnergestützter Kommunikation verwendet.
  • Die Anbieter von kostenpflichtigen S/MIME-Zertifikaten für sichere E-Mail-Kommunikation klassifizieren diese meist in drei Klassen. Dabei sichert bei Klasse 1 die Zertifizierungsstelle (CA) die Echtheit der E-Mail-Adresse zu und nur diese ist Teil des Zertifikats. Bei Klasse 2 wird zusätzlich der zur E-Mail-Adresse gehörende Name in das Zertifikat mit aufgenommen, sowie die Organisation/Firma. Diese Daten werden mithilfe von Drittdatenbanken und Ausweiskopien verifiziert. Bei Zertifikaten der Klasse 3 muss der Antragsteller sich persönlich ausweisen.
  • Manche Unternehmen und nichtkommerzielle Organisationen bieten kostenlose S/MIME-Zertifikate an. Es können dabei nach einer Registrierung mehrere Zertifikate erstellt werden, die aber erst nach einer gewissen Anzahl von Identitätsnachweisen den Namen beinhalten. Diese können durch Mitglieder in einem Web of Trust oder anderen vertrauenswürdigen Stellen wie Rechtsanwälten oder Wirtschaftstreuhändern erfolgen. Grundsätzlich zerstört eine Ausstellung von Zertifikaten durch Anbieter ohne Identitätsüberprüfung des Antragstellers den Grundgedanken des sicheren Informationsaustauschs zwischen zwei Computern im Netz. So ist es bei einigen Zertifikatsausstellern tatsächlich möglich, mit erfundenen Betreiberangaben ein Zertifikat für eine völlig fremde Website zu erhalten. Der Benutzer würde über ein Umleiten der Informationsübertragung beispielsweise durch den Browser nicht mehr informiert, wenn die Zertifizierungsstelle durch den Browserhersteller von vornherein als vertrauenswürdig eingestuft wurde.

7.2 OpenPGP

PGP = Pretty Good Privacy
PGP bedient sich denselben kryptografischen Verfahren (Asymmetrische Verschlüsselung mit privaten und öffentlichen Schlüsseln für Schlüsseltausch und Textverschlüsselung mit symmetrischem Verfahren) wie S/MIME. Der wichtigste Unterschied besteht in der Schlüsselbeglaubigung (Schlüsseltausch bzw. wem gehört dieser PublicKey tatsächlich): OpenPGP bedient sich einem «Web of Trust» (öffentliche OpenPGP Schlüsselserver) und ist daher zum S/MIME-Protokoll, das X.509-Zertifikate verwendet, nicht kompatibel.

Das OpenPGP-Protokoll wird von vielen Produkten unterstützt. Zum Beispiel das kommerzielle PGP und das freie Open-Source-Programm GnuPG. Hauptanwendungen von OpenPGP sind die Signierung und die Verschlüsselung von E-Mails. Dafür gibt es zwei Formate:

  • PGP/INLINE (z.B. für Webmail)
    Die E-Mail wird dabei von Ihrer Struktur her als gewöhnliche Text-Email erzeugt, die verschlüsselten Text als kodierten Text enthält. Nicht für HTML-Mails! Dateianhänge können vorab verschlüsselt und/oder signiert werden (im Fall von Webmail muss man das ohne entsprechendes Browser-AddOn selber machen). Allerdings garantieren die Signaturen dann nicht die Integrität der Mail insgesamt. Signierte Teile können unbemerkt entfernt werden, in anderem Zusammenhang signierte Daten können hinzugefügt werden (was nur auffiele, wenn man sich die Mühe machte, die Zeitstempel der einzelnen Signaturen zu vergleichen). Nachteile von PGP/Inline: Mailprogramme, die OpenPGP nicht verstehen, zeigen die Signatur im Text an, was verwirrend sein kann.

  • PGP/MIME
    Dieses Verfahren deckt auch Dateianhänge und HTML-Mails ab. Für den Mailbody und alle Anhänge kann jeweils einzeln festgelegt werden, ob sie verschlüsselt und/oder signiert werden sollen. Auch dieses Verfahren schützt aber nur den Inhalt der Email, nicht Ihre Kopfdaten (Absender, Empfänger, Betreff, Datum).

OpenPGP-Schlüsselpaar
Als Datei abgespeichert hat das OpenPGP-Schlüsselpaar die Endung «*.asc»,  wobei asc für ASCII steht. Der Schlüssel kann mit jedem ASCII-Textprogramm (Notepad etc.) angezeigt werden und hat folgendes Aussehen:

  • Beispiel eines öffentlichen Schlüssels (Auszug):
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v2

    mHjzBFYjc.
    ...
    ...
    Gw==

    -----END PGP PUBLIC KEY BLOCK-----

  • Beispiel eines privaten Schlüssel (Auszug):
    -----BEGIN PGP PRIVATE KEY BLOCK-----
    Version: Mailvelope v1.2.0
    Comment: https://www.mailvelope.com

    wqdsf
    ...
    ...
    fAp77rQ

    -----END PGP PRIVATE KEY BLOCK-----

  • Beispiel einer verschlüsselten Botschaft (Auszug):
    -----BEGIN PGP MESSAGE-----
    Charset: utf-8
    Version: GnuPG v2

    Qqvms5xQ160
    ...
    ...
    xeyXD

    -----END PGP MESSAGE-----

8. Anhang

8.1 Einen SWISSCOM E-Mail-Account einrichten

Beim Austesten der E-Mail-Verschlüsselungstechniken besteht die Gefahr, aus Unachtsamkeit seinen offiziellen E-Mail-Account zu schädigen. (Mails versehentlich vom Mailserver löschen etc.). Darum empfiehlt es sich, einen temporären E-Mail-Account bei z.B. Swisscom einzrichten. Vorschlag: SWISSCOM - Service Package Light (Stand Okt. 2018). Beachten Sie, dass Swisscom Ihre Identität über Ihre Mobilenummer, Festnetznummer oder dem Postweg überprüfen will.
Selbstverständlich kann auch ein anderer Mail-Provider verwendet werden, der die Einbindung in ein Mailprogramm zulässt (pop3, imap, smtp) und SSL-Verschlüsselung des Mail-Zugriffs unterstützt.

Für den Swisscom E-Mail-Account gilt:

  • Name: Ihr Vorname und Nachname
    E-Mail-Adresse: xyz@bluewin.ch (Was halt noch frei ist ;-)
    Passwort: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
  • Für alle unten aufgeführten Angaben muss in den Einstellungen SSL aktiviert sein.

  • Posteingangsserver
    IMAP4: imaps.bluewin.ch (Port 993)
    POP3: pop3s.bluewin.ch (Port 995)

  • Postausgangsserver
    SMTP: smtpauths.bluewin.ch (Port 465)

Überprüfen Sie Ihren neuen E-Mail-Account, indem Sie Sich gegenseitig E-Mails zuschicken. Sie können dazu Swisscom-Webmail benutzen. Swisscom bietet auf seiner Webseite übrigens entsprechende Hilfestellung. Z.B. auch beim Einrichten Ihres Kontos in Outlook, Thunderbird, auf Tablets, Smartphones etc.

8.2 Das E-Mail-Programm Thunderbird einrichten

Mozilla's Thunderbird ist OpenSource und neben Microsoft Outlook eines der am weitest verbreiteten Programme zum Lesen von News und E-Mails (E-Mail-Client). Aus diesem Grund sollen Sie nun Thunderbird auf Ihrem Notebook installieren. In den nächsten Übungen werden Sie Thunderbird im Zusammenhang mit E-Mail-Verschlüsselung verwenden. Installieren Sie nun Thunderbird auf Ihrem Notebook und richten Sie Ihr neues Swisscom-E-Mail-Konto darin ein. Ihre Swisscom-Zugangsdaten (Mail-Eingangs/Ausgangserver etc.) sollten Ihnen aus 8.1 bekannt sein.
Hier finden Sie THUNDERBIRD: www.thunderbird.net

8.3 GPG4WIN installieren

GPG4WIN ist eine Free-Windows-Variante von GnuPG bzw. OpenPGP. PGP wäre übrigens die kommerzielle Variante. GPG4WIN beinhaltet den GnuPG-Zertifikatsmanager Kleopatra. Mit diesem kann man neue Schlüsselpaare erstellen und bestehende verwalten. GPG4WIN kann bei Sicherheits- und anderen Bedenken auch auf einer virtuelle Windows-Maschine (vmWare) installiert werden. Bei diesem Schritt soll noch kein Schlüsselpaar erzeugt werden! Falls doch, dann verwenden Sie bitte den für den Schulunterricht zuvor neu erstellten Swisscom-E-Mail-Account! (siehe 8.1)
Hier finden Sie GPG4WIN: www.gpg4win.de

8.4 Mit Kleopatra ein persönliches Schlüsselpaar erstellen

Starten Sie nun den gpg4win-Zertifikatsmanager «Kleopatra». Falls das bei der Installation von gpg4win noch nicht geschehen ist, erzeugen Sie nun Ihr persönliches Schlüsselpaar unter «Datei/Neues Zertifikat/Persönliches OpenPGP-Schlüsselpaar erzeugen». Verwenden Sie dazu Ihre zuvor neu erstellte Swisscom-E-Mail-Adresse! Beim Erzeugen eines Schlüsselpaars wird von Ihnen eine sogenannte Passphrase verlangt. Dies ist ein Passwort, dass Sie später beim Erstellen und Öffnen einer verschlüsselten Nachricht eingeben müssen. Diese Passphrase also keinesfalls vergessen und unter niemals weitergeben. Exportieren Sie nun Ihren öffentlichen Schlüssel. Versichern Sie Sich, dass es sich wirklich um den PublicKey und nicht den PrivateKey handelt. Im Zweifelsfall überprüfen Sie mit einem Texteditor das ASC-File. In der ersten Zeile sollte stehen: -----BEGIN PGP PUBLIC KEY BLOCK-----

Benennen sie Ihr PublicKey wie folgt: Vorname_Nachname_PublicKey.asc

Kleopatra verwaltet die öffentlichen Schlüssel Ihrer Kommunikationspartner. Dazu müssen Sie diesen aber zuerst in Kleopatra einpflegen. Tauschen Sie innerhalb der Klasse Ihre PublicKeys aus. Dies kann z.B. über einen Chat, BSCW, E-Mail etc. geschehen. In unserem Fall vertauen wir darauf, dass der Schlüssel auch von der Personen stammt, auf die der Dateiname hinweist. Im produktiven Einsatz wäre das ein NoGo.

8.5 Sichere E-Mail: Thunderbird mit Enigmail

Enigmail (Enigma/E-Mail) ist eine Erweiterung für Mozilla Thunderbird zum Signieren und Verschlüsseln elektronischer Nachrichten und angehängter Dateien unter Benutzung des OpenPGP-Standards. Es fügt sich nahtlos in die grafische Oberfläche dieser Programme ein. Die kryptografischen Funktionen (verschlüsseln, entschlüsseln, signieren und verifizieren) werden nicht von dem Modul selbst ausgeführt, sondern im Hintergrund an die Software GnuPG übergeben. GnuPG (bzw. gpg4win) muss auf dem System ebenfalls installiert sein.

Im folgenden einen Ablauf, wie Thunderbird mit einem bei Bluewin.ch erstellten EMail-Account konfiguriert wird: (Bildquellennachweis: www.bluewin.ch)
Voraussetzung: Thunderbird installiert und gestartet, gpg4win installiert.
Hier finden Sie THUNDERBIRD: www.thunderbird.net
Hier finden Sie GPG4WIN: www.gpg4win.de
Hier finden Sie das Thunderbird AddOn Enigmail: www.enigmail.net/download) Das AddOn kann auch direkt in Thunderbird geladen und installiert werden!

Installation des AddOn's Enigmail innerhalb Thunderbird:

Kontrolle, ob die Verbindung zu gpg4win steht:

Verschlüsselte EMail verschicken:
In der Menuzeile finden Sie neu den Eintrag «Enigmail»: Öffnen Sie die darunterliegende Schlüsselverwaltung und tragen Sie die PublicKey's Ihrer Kommunikationspartner dort ein.
Erstellen Sie nun in Thunderbird verschlüsselte Email’s an Ihre Kommunikationspartner und schicken Sie ihnen diese zu. Wenn Sie eine Nachricht verfassen, erscheint in der oberen Menuezeile ebenfalls der Eintrag «Enigmail». Dort haben Sie die Möglichkeit mit «Verschlüsselung ein» eine Verschlüsselung zu bewirken. Alternativ haben Sie auch ein Enigmail-Schloss-Symbol links, unterhalb des Senden-Symbols! Eine erhaltene verschlüsselte Email wird durch anklicken automatisch entschlüsselt, wenn man vorher seine Passphrase richtig eingegeben hatte.


8.6 Sichere E-Mail: Firefox mit Mailvelope

Im folgenden eine Variante, wie sichere E-Mails in Firefox oder Chrome mit dem Verschlüsselungs-AddOn «Mailvelope» erstellt werden können.
Mailvelope basiert auf OpenPGP.js, einer JavaScript-Implementierung des OpenPGP-Standards. Hinweis: E-Mail-Anhänge können damit nicht verschlüsselt werden. Da Mailvelope von JavaScript Gebrauch macht, kann dies ein gewisses Sicherheitsrisiko darstellen. Darum nur als Notlösung für z.B. Webmail verwenden.

  1. Firefox installieren (https://www.mozilla.org/de/firefox/new/)
  2. Öffnen Sie Firefox und gehen Sie auf die Mailvelope-Webseite www.mailvelope.com (https://www.mailvelope.com/de/)
  3. Installieren Sie das Firefox-AddOn Mailvelope. Neben der Firefox-URL-Eingabezeile ist neu das Mailvelope-Symbol hinzugekommen, das man anklicken muss, um weitere Einstellungen zu tätigen. Hier könnte man auch ein Schlüsselpaar erzeugen.
  4. Öffnen Sie Ihr Webmail auf www.swisscom.ch und loggen Sie ein.
  5. Klicken Sie das Mailvelope-Icon an, danach Erweiterte Optionen und "Auf dem aktuellen Tab aktivieren" (Bild-1)
  6. Wenn Sie nun eine neue E-mail erstellen, finden Sie am rechten Fensterrand ein Notizblock-Icon. Wenn Sie dieses anklicken, öffnet sich der Mailvelope-Editor. Sie könnnen nun für Ihren Kommunikationspartner eine Mittteilung verfassen. Nach Eingabe Ihres Textes wählen Sie Verschlüsseln und geben an, für wen Sie diesen Text verschlüsseln wollen. Dazu muss der öffentliche Schlüssel Ihres Adressaten zuerst in Mailvelope eingetragen worden sein. Dies können Sie über die Mailvelope-Optionen (Mailvelope-Symbol rechts oben anklicken) unter «Schlüssel importieren» erledigen. Nachdem Sie Ihren Text verschlüsselt haben, erscheint er im Webmail-Fenster eingebettet und mit dem PHP-Header -----BEGIN PGP MESSAGE----- versehen. Die verschlüsselten Botschaften können auch mit «gpg4win» entschlüsselt werden. (Bild-2)

Bild-1:

Bild-2: