Grundlagen der Kryptographie Die Kryptographie, aus dem Altgriechischen „Geheimschrift“ abgeleitet, ist die Wissenschaft der Verschlüsselung von Nachrichten. Ursprünglich in der Antike eingesetzt, um diplomatischen und militären Briefwechsel geheim zu halten, entwickelte sich die Kryptographie zu einer unverzichtbaren Wissenschaft im heutigen digitalen Informationszeitalter. Neben des ursprünglichen Ziels der Geheimhaltung von Informationen gibt es heutzutage diverse Schutzziele für die Sicherheit von IT-Systemen. Grundlage ist das Kommunikationsystem, welches für alle Kommunikationsarten zwischen zwei Parteien zutrifft (siehe Abbildung 1). Die klassischen Protagonisten sind „Alice“ und „Bob“, die Nachrichten austauschen. Ein Angreifer meist „Eve“, „Mallory“ oder „Oskar“ genannt, wirkt auf den Kommunikationskanal zwischen A und B ein. Je nach Stärke des Angreifers kann er passiv, die Daten abhören oder aktiv in das Geschehen eingreifen, indem er gesendete Daten manipuliert, selbst Nachrichten schickt und verhindert, dass gesendete Nachrichten bei dem Empfänger ankommen. Oskar (O) Alice (A) ? Abbildung 1: Modell des Kommunikationssystems - Bob (B) Durch kryptographische Mechanismen (nicht nur Verschlüsselung) können nun diverse Schutzziele adressiert werden: • Vertraulichkeit. Nachrichten zwischen A und B können nicht von O gelesen werden. 8 michael braun • Integrität. Nachrichten zwischen A und B werden nicht verändert, bzw. A und B können erkennen, ob Daten verändert wurden. • Nachrichtenauthentizität. B kann Nachrichten, welche von A gesendet wurden, zweifelsfrei A zuordnen. • Teilnehmerauthentizität. B kann die Identität des aktuellen Kommunikationspartners A zweifelsfrei feststellen. • Verbindlichkeit. B kann Nachrichten, die von A gesendet werden, zweifelsfrei einer dritten Partei als Nachrichten von A nachweisen. Die kryptographischen Methoden mit welchen man diese Schutzziele sicherstellen kann, werden in zwei Kategorien eingeteilt: in symmetrische und asymmetrische Verfahren. Bei dem symmetrischen Ansatz besitzen beide Parteien A und B denselben geheimen Schlüssel k, welcher vorab über einen vertraulichen und authentischen Kanal ausgetauscht werden muss. Bei dem asymmetrischen Ansatz hingegen besitzt jeder Teilnehmer A und B ein eigenes Schlüsselpaar (e, d), bestehend aus einem öffentlichen Schlüssel e und einem dazugehörigen privaten Schlüssel d. Der öffentliche Schlüssel eines Teilnehmers wird vor dem eigentlichen Nachrichtenaustausch über einen authentischen Kommunikationskanal an den entsprechenden Kommunikationsteilnehmer übermittelt. Im Gegensatz zum symmetrischen Ansatz muss die Übertragung des öffentlichen Schlüssel nicht geheim sein. Aufgrund dieser Eigenschaft werden asymmetrische Verfahren auch als Public-Key-Verfahren bezeichnet. Wir betrachten nun einige rudimentäre Protokolltypen für symmetrische und asymmetrische Verfahren, um die genannten Schutzziele zu erreichen. Symmetrische Verschlüsselung Sei „enc“ ein symmetrischer Verschlüsselungsalgorithmus mit dazugehöriger Entschlüsselung „dec“, d.h. für alle Klartexte m und alle Schlüssel k gilt die Bedingung dec(k, enc(k, m)) = m. Ein vertraulicher Nachrichtenaustausch von A nach B ergibt sich also wie folgt: public-key-algorithmen A Schlüssel: k c := enc(k, m) B Schlüssel: k c ≠æ mÕ := dec(k, c) Mittels symmetrischer Verschlüsselung wird das Schutzziel der Vetraulichkeit realisiert. Beispiele symmetrischer Verschlüsselungsalgorithmen mit unterschiedlicher Bitlänge sind die Blockchiffren DES (Luzifer) bzw. 3DES, AES (Rijndael), Blowfish, Serpent oder Twofish. Message-Authentication-Code (MAC) Ein MAC-Algorithmus „mac“ bestimmt bei Eingabe eines symmetrischen Schlüssels k und einer Nachricht m einen kurzen (möglichst) eindeutigen Wert t := mac(k, m) fester Länge, welcher charakteristisch für die Nachricht m ist. Wie der Name sagt, möchte man also mit einem MAC die Nachrichtenauthentizität feststellen. Da unendlich viele Nachrichten auf eine endliche Menge von Werten einer festen Länge abgebildet werden können, gibt es nach dem Schubfachprinzip (oder auch Taubenschlagprinzip genannt), Kollisionen. Mit dem gleichen Schlüssel k gibt es zwei Nachrichten m und mÕ mit mac(k, m) = mac(k, mÕ ). Da sich dies mathematisch nicht vermeiden lässt, muss der MAC-Algorithmus so entworfen werden, dass solche Kollisionen nur mit einer ausreichend niedrigen Wahrscheinlichkeit entstehen. Das Protokoll zur Überprüfung der Nachrichtenauthentizität mit einem MACAlgorithmus sieht nun wie folgt aus. Beide Seiten benötigen denselben geheimen Schlüssel k. Algorithmen zur Berechnung eines Message-AuthenticationCodes basieren meist auf Hashfunktionen oder Blockchiffren. Symmetrisches Challenge-Response-Protokoll Bei einem solchen Protokoll geht es darum, dass ein Kommunikationspartner B gegenüber dem anderen Teilnehmer A nachweist, dass er im Besitz eines geheimen Schlüssels ist ohne explizit den 9 Abbildung 2: Symmetrische Verschlüsselung 10 michael braun A Schlüssel: k B Schlüssel: k t := mac(k, m) Abbildung 3: MessageAuthentication-Code (MAC) m,t ≠æ tÕ := mac(k, m) if tÕ = t then accept else reject geheimen Schlüssel zu verraten. Dies dient dem Teilnehmerauthentizität. Der Teilnehmer B zeigt, dass er den für ihn vorgesehenen geheimen Schlüssel k kennt. Die Idee dieser Challenge-ResponseProtokolle basiert darauf, dass A dem Teilnehmer B eine sogenannte Challenge c schickt, für die B die korrekte Respone r mit Hilfe des geheimen Schlüssels k berechnen kann. Es wird dabei angenommen, dass r aus c auch nur mit dem dazugehörigen Schlüssel k berechnet werden kann. Es gibt mehrere Varianten für Challenge-Reponse-Protokolle. Beispielsweise kann eine symmetrische Chiffre oder ein MAC-Algorithmus verwendet werden. Im folgenden Protokoll wird eine Verschlüsselungs- und Entschlüsselungsroutine verwendet. A Schlüssel: k choose random c B Schlüssel: k c ≠æ r := dec(k, r ) if cÕ = c then accept else reject cÕ r := enc(k, c) Ω≠ Asymmetrische Verschlüsselung Wie bereits erwähnt besitzt ein Kommunikationsteilnehmer B ein Paar (e, d) bestehend aus dem öffentlichen Schlüssel e und dem privaten Schlüssel d. Der öffentliche Schlüssel e wird vor Beginn der eigentlichen vertraulichen Kommunikation dem Abbildung 4: Symmetrisches Challenge-ResponseVerfahren public-key-algorithmen 11 zweiten Kommunikationsteilnehmer A mitgeteilt. Dabei muss beachtet werden, dass der Schlüssel manipulationsgeschützt an A übermittelt wird. Der vertrauliche Nachrichtenaustausch von A nach B geschieht dann wie folgt: B Schlüssel: (e, d) A e c := enc(e, m) Ω≠ c ≠æ mÕ := dec(d, c) Die verwendete Verschlüsselung bzw. Entschlüsselung erfüllen für alle Klartexte m die Eigenschaft dec(d, enc(e, m)) = m. Die Grundidee des asymmetrischen Ansatzes besteht darin, dass man den öffentlichen Schlüssel e auf nicht vertraulichen Wege verbreiten kann. Diese Eigenschaft impliziert, dass man mittels e keine Klartexte aus Geheimtexte berechnen kann und dass man aus e auch nicht den privaten Schlüssel d gewinnen kann. Asymmetrische Verschlüsselungsverfahren sind beispielsweise RSA, ElGamal, oder ElGamal-Varianten auf Basis elliptischer Kurven. Digitale Signatur Das Analogon eines MACs für die asymmetrische Situation ist die so genannte digitale Signatur. Der Kommunikationsteilnehmer A besitzt das asymmetrische Schlüsselpaar (eÕ , dÕ ). Zunächst übermittelt A an den Kommunikationsteilnehmer den öffentlichen Schlüssel eÕ . Anschließend signiert A eine Nachricht m mittels eines Signaturalgorithmus „sign“ und mittels des eigenen privaten Schlüssels dÕ . Anschließend wird die Signatur s zusammen mit der Nachricht m an den Teilnehmer B gesendet. Dieser kann nun mittels des Verifikationsalgorithmus „verify“ und mittels des öffentlichen Schlüssels eÕ von A überprüfen, ob die Nachricht m wirklich von A erstellt wurde. Dieses Verfahren setzt voraus, dass man mit dem öffentlichen Schlüssel keine korrekte digitale Signatur erstellen kann oder aus dem öffentlichen Schlüssel nicht den dazugehörigen privaten Schlüssel generieren kann. Beispiels für Digitale Signaturverfahren Abbildung 5: Asymmetrische Verschlüsselung 12 michael braun A Schlüssel: (eÕ , dÕ ) s := sign(dÕ , m) B m,s ≠æ v := verify(eÕ , m, s) if v = true then accept else reject sind RSA-Signatur, Digital Signature Algorithm (DSA) oder auch die elliptische Kurvenvariante EC-DSA. Neben der Nachrichtenauthentizität und Integrität kann man mit einer digitalen Signatur auch das Schutzziel Verbindlichkeit realisieren, da nur der Besitzer des privaten Schlüssels eine gültige Signatur erzeugen kann. Asymmetrisches Challenge-Response-Protokoll Ähnlich der symmetrischen Variante geht es bei dem ChallengeResponse-Protokoll hier darum, nachzuweisen, dass man in Besitz des privaten Schlüssels ist, ohne diesen direkt an den Kommunikationspartner zu übermitteln. Der erste Teilnehmer A übermittelt eine zufällige Challenge, auf die der zweite Teilnehmer mit einer entsprechenden Response antwortet. Die gültige Response kann dabei nur mit dem korrekten privaten Schlüssel von B berechnet werden. Anschließend verifiziert A die erhaltene Reponse mit dem öffentlichen Schlüssel von B. Das folgende Protokoll zeigt eine Variante mit einem asymmetrischen Verschlüsselungsverfahren. Abbildung 6: Digitale Signatur public-key-algorithmen B Schlüssel (e, d) A e choose random rÕ c := enc(e, rÕ ) Ω≠ c ≠æ r if = r then accept else reject rÕ Ω≠ r := dec(d, c) 13 Abbildung 7: Asymmetrisches Challenge-ResponseVerfahren
© Copyright 2024 ExpyDoc