Begleitmaterial zum Unterricht M114 «Kryptografie»

Symmetrische- und asymmetrische Verschlüsselungsverfahren

1. Klassische, symmetrische Verschlüsselungsverfahren

1.1 Die Rotationschiffre

Schon der römische Feldherr und spätere Kaiser Julius Cäsar kannte den folgenden Trick und nutzte ihn bei seinen geheimen Botschaften: «Ersetze jeden Buchstaben durch den, der drei Stellen später im Alphabet folgt!» Somit konnte Cäsar z.B. mit folgender Order seine Gegner sehr effektiv überraschen: «Dqjulii huirojw cxu Whhchlw»

Obwohl Cäsar's Angriffe sicher nicht nur zur Teezeit stattfanden, war sein Trick bald durchschaut und der gute Mann musste etwas nachbessern. Sein Kurier überbrachte nun Botschaften wie die folgende: «Qre Jhresry vfg trsnyyra». Was war nun damit gemeint? Nun aber nicht wie Wild drauflos probieren. Machen sie etwas Kryptoanalyse, indem sie die Tatsache nutzen, dass in der deutschen Sprache der Buchstabe «e» am häufigsten vorkommt. Und? Sind bei ihnen die Würfel gefallen?

1.2 Vigenèreverschlüsselung

Ein paar Jahrhunderte später beschrieb der französischer Diplomat und Kryptograf Blaise de Vigenère, basierend auf den Ideen eines Benediktinermönches, die nach ihm benannte Vigenère-Verschlüsselung. Im Fachbeitrag Kryptografie finden sie eine Bescreibung der Vigenère-Verschlüsselung. Lesen sie diesen aufmerksam durch.

  1. Verschlüsseln sie nun das Wort «BEEF» mit dem Schlüsselwort «AFFE».
  2. Was bedeutet die Chiffre «WRKXQT», wenn das Schlüsselwort «SECRET» heisst?
  3. Funktioniert hier die Häufigkeitsanalyse so effizient, wie bei der Rotationschiffre?

2. Moderne, symmetrische Verschlüsselungsverfahren

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.1 Die XOR-Stromchiffre

Im Fachbeitrag Kryptografie finden sie eine Bescreibung der Vigenère-Verschlüsselung. Lesen sie diesen aufmerksam durch.

Wie sicher ist die XOR-Verschlüsselung? Oder was kann passieren, wenn einem Angreifer die XOR-verschlüsselte Nachricht und der entschlüsselte Text (Klartext) in die Hände fällt? Probieren sie es doch gleich selber aus. Wie lautet der im folgenden Bild eingesetzte Schlüssel?

Bei der Stromchiffre werden Zeichen des Klartextes mit den Zeichen eines Schlüsselstroms XOR-verknüpft. Der Schlüsselstrom ist eine pseudozufällige Zeichenfolge, die aus dem Schlüssel abgeleitet wird. Hat ein Angreifer sowohl den Klartext als auch den Chiffretext, so kann er den Schlüsselstrom rekonstruieren. Weitere Nachrichten, die mit diesem Schlüsselstrom verschlüsselt werden, können also zumindest solange entschlüsselt werden, wie Bits im Schlüsselstrom vorliegen. Genau diese Lücke tritt bei der Verschlüsselung von drahtlosen Netzen mittels WEP (Wired Equivalent Privacy) auf.

2.2 Aufgabe zur XOR-Stromchiffre

Verschlüsseln sie die Dezimalzahl 4711 als XOR-Stromchiffre. Der binäre Schlüssel lautet: 1000‘1101. Zur Kontrolle entschlüsseln sie die erhaltene Chiffre wieder.
Hinweis: Sie müssen die Dezimalzahl zuerst in eine 16-Bit Binärzahl umwandeln (Führende Nullen nicht weglassen). Sollte der Schlüssel für die Verschlüsselung zu kurz sein, wird dieser einfach (auch mehrmals) wiederholt. Der Datenstrom soll in dieser Aufgabe mit der Übertragung des MSB‘s, also von links nach rechts beginnen.

2.3 Schlussbetrachtung zu symmetrischen Verschlüsselungsverfahren

  • Man verschlüsselt und entschlüsselt mit demselben Schlüssel
  • Wie soll die Schlüsselübergabe erfolgen?
  • Wieviele Schlüssel werden zwischen 10, 20 oder 100 Kommunikationspartnern erforderlich?

Die Formel für die Berechnung der Anzahl Schlüssel lautet: S = N * (N-1) / 2 wobei S=Schlüsselanzahl und N=Teilnehmeranzahl. Die Anzahl der Schlüssel wächst somit quadratisch. Bei zwanzig Personen werden bereits 190 Schlüssel nötig.

Der Schlüsseltausch muss über einen sicheren und geheimen Weg/Kanal erfolgen. Dabei stellt sich die Frage, ob dieser auch für die Übermittlung der Nachricht selbst verwendet werden könnte. Damit würde sich nämlich die Verschlüsselung erübrigen.

3. Asymmetrische Verschlüsselungsverfahren

3.1 Das Problem des Schlüsseltauschs

Wie war das beim symmetrischen Verfahren?

Und was werden wir nun anders machen?

Und was ändert sich nun beim Verschlüsselungsverfahren?

Und wo erhalte ich die öffentlichen Schlüssel?

3.2 Die digitale Unterschrift

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.

3.3 Aufgabe RSA-Verschlüsselung versus digitale RSA-Signatur

Finden sie heraus, was die beiden Verfahren unterscheidet.

3.4 Studium der Grundlagen zu «Asymmetrische Verschlüsselungsverfahren» und «Digitale Signatur»

Lesen sie die Theorie zu den Themen nochmals sorgfältig durch und erstellen sie eine Zusammenfassung in der Grössenordnung von 1..2 Seiten. Etwa so, wie wenn sie einen Spickzettel für eine Prüfung zusammenstellen würden. Sie finden z.B. auf dieser Webseite entsprechende Fachbeiträge.

3.5 Laborübung mit «Cryptool» zu Verschlüsselungsverfahren

Installieren sie das Cryptool1 auf ihrem Notebook, bei Sicherheitsbedenken als virtuelle Applikation. Das Cryptool ist ein frei verfügbares Kryptografie-Labor. Das Cryptool1 erhalten sie unter: https://www.cryptool.org/en/cryptool1

Beschäftigen sie sich mit den folgenden Funktionen in Cryptool1:

  • Einzelverfahren/Tools/Passwort-Qualitätsmesser
  • Je ein klassisches und ein modernes symmetrisches Verschlüsselungsverfahren
    (Siehe Ver/Entschlüsseln)
  • Hybrid RSA/AES Verschlüsselung (Siehe Ver- /Entschlüsseln)
  • Hybrid RSA/AES Entschlüsselung (Siehe Ver- /Entschlüsseln)
  • Zwei Varianten von Einzelverfahren Hashverfahren
  • Digitale Signaturen/PKI Signaturdemo

Dokumentieren sie ihre Arbeiten in ihrem Arbeitsheft.

3.6 Aufgabe «Sichere Email’s» verschicken

Hoffentlich haben sie beim Einrichten ihres EMail-Zugangs an die Verbindungssicherheit gedacht und eine Verschlüsselungsmethode wie SSL/TLS vorgesehen. 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.
Im folgenden lernen sie anhand einer Einzelpraxisarbeit zwei Methoden der Mailverschlüsselung, bzw. der Ver- und Entschlüsselung von Emails mit PGP, kennen. Dokumentieren sie dabei ihre Installations- und Konfigurationsschritte.

3.6.1 Einführung

OpenPGP und S/MIME sind die beiden wichtigsten Standards für E-Mail-Verschlüsselung. Das S/MIME-Protokoll verwendet dabei X.509-Zertifikate und ist deshalb nicht kompatibel zu OpenPGP,  das ein «Web of Trust» mit öffentlichen OpenPGP Schlüsselservern ist, auch wenn es dieselben kryptografischen Verfahren (Asymmetrische Verschlüsselung mit privaten und öffentlichen Schlüsseln für Schlüsseltausch und Textverschlüsselung mit symmetrischem Verfahren) verwendet.  (PGP = Pretty Good Privacy; S/MIME = Secure Multipurpose Internet Mail Extensions). 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).

Das OpenPGP-Protokoll wird von vielen Produkten unterstützt. Zum Beispiel das kommerzielle PGP und das freie Open-Source-Programm GnuPG. Ein wichtiges Thema ist auch die Schlüsselbeglaubigung (Schlüsseltausch), wird in dieser Übung aber nicht behandelt.

Als Datei abgespeichert hat das OpenPGP-Schlüsselpaar die Endung «*.asc»,  wobei asc für ASCII steht.

  • So sieht der öffentliche Schlüssel aus:
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v2

    mHjzBFYjc.
    ...
    ...
    Gw==

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

  • So sieht der private Schlüssel aus:
    -----BEGIN PGP PRIVATE KEY BLOCK-----
    Version: Mailvelope v1.2.0
    Comment: https://www.mailvelope.com

    wqdsf
    ...
    ...
    fAp77rQ

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

  • Und so sieht die verschlüsselte Botschaft aus:
    -----BEGIN PGP MESSAGE-----
    Charset: utf-8
    Version: GnuPG v2

    Qqvms5xQ160
    ...
    ...
    xeyXD

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

3.6.2 Auftrag

Die folgenden Arbeiten erfolgen auf ihrem Notebook. Wenn nötig in einer virtuellen Maschine. Beachten Sie:

  • Im Auftrag «Sichere Web-Emails mit Mailvelope aus Firefox verschicken» verschlüsseln wir die Emails mit Mailvelope. Dies ist ein Verschlüsselungs-AddOn mit OpenPGP für Webmail. Anhänge können damit nicht verschlüsselt werden. Dieses AddOn macht von JavaScript Gebrauch und kann darum ein gewisses Sicherheitsrisiko darstellen. Darum nur als Notlösung für z.B. Webmail verwenden. Das Mailvelope-AddOn ist für verschiedene Webbrowser verfügbar. Wir werden es in dieser Übung inner-halb Firefox verwenden.

  • Unter Verwendung des frei verfügbaren GnuPG (PGP wäre übrigens die kommerzielle Variante)  bzw. der Windows-Variante Gpg4win werden wir im Auftrag «Sichere Emails in Thunderbird mit Enigmail verschicken» innerhalb eines Email-Clients (Thunderbird) Emails mit dem AddOn Enigmail ver- und entschlüsseln.

3.6.2.1 Vorbereitung

  1. Thunderbird als MailClient installieren (https://www.mozilla.org/de/thunderbird/)
  2. Firefox installieren (https://www.mozilla.org/de/firefox/new/)
  3. Gpg4win installieren. (http://gpg4win.org/download.html) Dies ist die Free-Windows-Variante von GnuPG bzw. OpenPGP für die Generierung der Schlüsselpaare.
  4. Sie benötigen einen Email-Account, den sie über einen Mailclient wie Thunderbird, Outlook etc. aber auch über ein Webmail-Interface bewirtschaften können. Verwenden sie für diese Übung ihren TBZ-Email-Account oder den Account, auf den ihre TBZ-Email‘s weitergeleitet werden. Sollte ihnen dies nicht gelingen, weil ihnen z.B. ihre Zugangsdaten fehlen, richten sie einfach einen Gratis-Email-Account bei z.B. Swisscom/Bluewin ein. Für das Einrichten ihres Email-Accounts auf Thunderbird benötigen sie ihre folgenden Emailaccount-Zugangsdaten:
    > Benutzername und Passwort
    > Eingangsserver URL wie z.B. «pop.myEmail.ch» und Port-Nr. wie z.B. 110=POP3
    > Ausgangsservers URL wie z.B. «smtp.myEmail.ch» und Port-Nr. wie z.B. 25=SMTP
    Für die Benutzung des Firefox-Plugins auf dem Webmail benötigen sie ausserdem:
    > URL des Webmailers wie z.B. «webmail.the_tld.ch» und Benutzername/Passwort
  5. Einrichten ihres Email-Accounts auf Thunderbird mit ihren persönlichen Email-Zugangsdaten.

3.6.2.2 Schlüsselpaar erzeugen:

Erzeugen sie in Kleopatra (siehe gpg4win) unter «Datei/Neues Zertifikat/Persönliches OpenPGP-Schlüsselpaar erzeugen» ihr eigenes Schlüsselpaar. Alternativ können sie das Schlüsselpaar auch im Mailvelope erstellen. Beim Erzeugen eines Schlüsselpaars wird von ihnen eine sog. Passphrase verlangt. Dies ist ein Passwort, das sie später beim Erstellen und Öffnen einer verschlüsselten Nachricht eingeben müssen. Die Passphrase also nicht vergessen und unter keinen Umständen weitergeben. (Kleopatra ist übri-gens der Zertifikatsmanager von GnuPG. Damit können sie Schlüssel verwalten. Öffentliche Schlüssel, die sie von ihren Kommunikationspartner erhalten, müssen sie zuerst in Kleopatra einlesen.)

3.6.2.3 Veröffentlichung ihres Public-Key’s:

Nachdem sie ihr Schlüsselpaar (Privater Schlüssel und öffentlicher Schlüssel) erstellt haben, stellen sie ihren öffentlichen Schlüssel ihren Mitschülern zur Verfügung. Dies kann über ein PinBoard, Pool etc. geschehen. Sprechen sie sich darüber innerhalb der Klasse ab.

3.6.2.4 Sichere Web-Emails mit Mailvelope aus Firefox verschicken:

  • Öffnen sie Firefox und gehen sie auf die Mailvelope-Webseite www.mailvelope.com (https://www.mailvelope.com/de/)
  • 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.
  • Öffnen sie ihr Webmail und erstellen sie darin verschlüsselte Emails:
    Testen sie jetzt ihre Konfiguration aus, indem sie ihren Klassenkameraden/innen verschlüsselte Emails zuschicken. Vorher müssen sie aber dem Gegenüber ihren öffentlichen Schlüssel bekannt geben. Am einfachsten über den Tausch der .asc-Files.
  • Erkundigen sie sich nach den Public-Key’s ihrer Mitschüler «Cut and Paste» des Public-Keys in eine .asc-Datei
  • Schicken sie nun ihren Mitschülern verschlüsselte Email’s.

Das AddOn Mailvelope tritt also dann in Erscheinung, wenn sie den Email-Text eingeben. Am rechten Fensterrand erscheint ein Schreibblock-Symbol. Wenn sie dieses anklicken, öffnet sich der Mailvelope-Editor. 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 chiffriert und mit dem PHP-Header -----BEGIN PGP MESSAGE----- versehen. Die verschlüsselten Botschaften können auch mit «gpg4win» entschlüsselt werden.

3.6.2.5 Sichere Emails in Thunderbird mit Enigmail verschicken:

  • Installieren sie in Thunderbird das AddOn Enigmail (https://www.enigmail.net/download/)
  • Testen sie jetzt ihre Thunderbird-Konfiguration aus, indem sie ihren Klassenkameraden/innen verschlüsselte Emails zuschicken. Vorher müssen sie aber dem Gegenüber ihren öffentlichen Schlüssel bekannt geben. Am einfachsten über den Tausch der .asc-Files.
  • Verwenden sie auch in dieser Übung die Public-Key’s ihrer Mitschüler «Cut and Paste» des Public-Keys in eine .asc-Datei.
  • Erstellen sie nun in Thunderbird verschlüsselte Email’s an ihre Mitschüler und schicken sie ihnen diese zu.

Nach der Installation von Enigmail erhalten sie in der oberen Menuezeile den Eintrag «Enigmail». Hier können sie die Schlüssel importieren. Wenn sie eine Nachricht verfassen, erscheint in der oberen Menuezeile ebenfalls der Eintrag «Enigmail». Dort haben sie die Möglichkeit mit «Verschlüsselung ein» die 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.

3.7 «Steganographie» Praxis

Theorieaufgabe

Was versteht man unter «Steganographie»? Erstellen sie eine kurze Zusammenfassung.

Installation

Laden sie «Openstegano» herunter und installieren sie es. Sie finden die Software «Setup-OpenStego-0.6.1.exe» (oder höhere Version) hier:
http://www.openstego.com
https://github.com/syvaidya/openstego/releases
Falls sie Sicherheitsbedenken haben, verwenden sie eine virtuelle Windows Maschine. Das Programm ist unter WIN10 lauffähig.

Auftrag A

Sie erhalten die Bilddatei detective.png. Darin ist eine geheime «Openstegano»-Botschaft versteckt. Das Passwort lautet gleich wie der Filename, nämlich «detective». Was wird ihnen da mitgeteilt? Hier kann man die Bilddatei «detective.png» herunterladen.

Aufgabe B

Verschlüsseln sie nun selber mit «Openstegano». Suchen sie sich dazu im Internet ein originelles Bild (jpg mit ca. 300x300Pixel). Dies soll das «Cover File» sein. Erstellen sie mit Notepad oder einem anderen ASCII-Editor ein Textfile mit einer kurzen Botschaft. Dies ist das «Message File». Verschlüsseln sie es nun mit einem Passwort, bestehend aus den ersten drei Buchstaben ihres Vornamens. (Achtung: Umlaute «ä», «ö», «ü» gelten als zwei Buchstaben ae, oe und ue. Somit wäre das Passwort von Björn=bjo oder von Yürsa=yue) Tauschen sie die verschlüsselten Bilddaten gegenseitig aus und versuchen sie herauszufinden, was ihnen ihr Mitschüler mitzuteilen hat.


Lösungen zu 1.1 Die Rotationschiffre

ROT-3: «Dqjulii huirojw cxu Whhchlw» ergibt «Angriff erfolgt zur Teezeit»
ROT-13: «Qre Jhresry vfg trsnyyra» ergibt «Der Wuerfel ist gefallen»

Lösungen zu 1.2 Vigenèreverschlüsselung

Text «BEEF» mit dem Schlüsselwort «AFFE» ergibt «BJJJ»
Chiffre «WRKXQT» mit dem Schlüsselwort «SECRET» ergibt «ENIGMA»

Lösung zu 2.2 Aufgabe zur XOR-Stromchiffre

(«4711» ergibt binär «0001'0010'0110'0111»)
«0001'0010'0110'0111» (Den Klartext...)
«1000‘1101'1000‘1101» (...mit 2x wiederholtem Key XOR verknüpft...)
«1001'1111'1110'1010» (...ergibt diese Chiffre)

Lösungen zu 2.3 Schlussbetrachtung zu symmetrischen Verschlüsselungsverfahren

Wieviele Schlüssel werden zwischen 10, 20 oder 100 Kommunikationspartnern erforderlich?
10 Teilnehmer: 45 Schlüssel
20 Teilnehmer: 190 Schlüssel
100 Teilnehmer: 4950 Schlüssel

Lösung zu 3.7 «Steganographie» Praxis

In der Bilddatei detective.png ist die folgende geheime «Openstegano»-Botschaft versteckt: «Wenn Sie das lesen koennen, waren Sie erfolgreich.»

Hinweise zu 3.6.2.5 Sichere Emails in Thunderbird mit Enigmail verschicken

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.

Installation des AddOn's Enigmail innerhalb Thunderbird:

Kontrolle, ob die Verbindung zu gpg4win steht:

Verschlüsselte EMail verschicken: