Weitere Anforderungen an die Kommunikation

An die Kommunikation über das Internet werden mehrere Anforderungen gestellt:

Vertraulichkeit bedeutet, dass nur der Adressat einer Nachricht diese lesen kann. Dies wird mit Verschlüsselung erreicht.

Authentifizierung bedeutet, dass der Empfänger einer Nachricht sich sicher sein kann, dass die Nachricht wirklich von dem kommt, den er für den Sender hält.

Integrität heißt, dass die Nachricht dem Empfänger in der Version vorliegt, wie sie versendet wurde, also nicht unterwegs manipuliert wurde.

Und Verbindlichkeit schließlich heißt, dass der Sender nicht leugnen kann, eine Nachricht, die von ihm stammt, geschickt zu haben.

Aufgabe 1

Nenne für alle 4 Forderungen Beispiele aus dem Alltag, wo diese notwendig sind und erläutere, warum.

Aufgabe 2

Überlege für jede der Forderungen, wie diese in der "analogen" Welt, sprich mit Papier und Tinte etc., erreicht werden.

Wie sicher sind diese "analogen" Varianten?

Die Vertraulichkeit wird mit Verschlüsselung erreicht. Die Verschlüsselung nützt uns aber nichts für die drei restlichen Forderungen, wir können aber Verfahren der Kryptographie für die anderen drei Forderungen verwenden.

Digitale Signaturen

Eine digitale Signatur ist eine Art Unterschrift. Mit Hilfe der Signatur soll die Forderung nach Authentizität, Integrität und Verbindlichkeit erreicht werden.

Diese wird ebenfalls mit Verfahren der Kryptographie erreicht.

Hash-Funktionen

Für eine Signatur brauchen wir zunächst einen Hash-Wert der Nachricht.

Der Hash-Wert ist eine Art Fingerabdruck der Nachricht. Nachrichten unterschiedlicher Länge bekommen einen Fingerabdruck, der immer die gleiche Länge hat.

Die Hash-Funktion soll wieder eine Einwegfunktion sein. Aus einer Nachricht wird ein Hash-Wert fester Länge berechnet, der in der Regel kürzer ist als die Nachricht, umgekehrt soll es aber so gut wie unmöglich sein, zu einem bestimmten Hash-Wert einen sinnvollen Text zu finden, der diesen Hash-Wert hat, obwohl die Hashfunktion bekannt ist.

Aufgabe 3

Erstelle unter Linux eine Textdatei, z.B. Test.txt.

Öffne ein Terminal und navigiere in das entsprechende Verzeichnis mit Test.txt. Führe den Befehl md5sum Test.txt aus. Dieser liefert einen Hash-Wert zu der Datei, also eine Arte Fingerabdruck.

Versuche nun Kopien der Test.txt zu erstellen und diese abzuändern, sodass du zwei von einander verschiedene Versionen findest, die den gleichen Hash-Wert haben.

Falls dir das gelingen sollte, rufe deine Informatik-Lehrerin und lass dich feiern!

Wenn nicht, dann lies noch einmal weiter oben, warum. ;o)

Aufgabe 4

Erkläre deinem Deutschlehrer, wie du unter Linux sehr leicht prüfen kannst, ob zwei Versionen einer Datei vollkommen identisch sind.

Aufgabe 5

Berechne die Wahrscheinlichkeit, dass zwei verschiedene Dateien den gleichen MD5-Hashwert haben.

Vergleiche dies mit der Wahrscheinlichkeit, vom Blitz getroffen zu werden (1 zu 3.000.000) und der Wahrscheinlichkeit vom Blitz getroffen zu werden und im Lotto zu gewinnen (1 zu 2,6*10^12), sowie der Wahrscheinlichkeit von einem Meteoriten getroffen zu werden (1 zu 300 Mrd.). Suche dir eine "Lieblingswahrscheinlichkeit" heraus, die du benutzt um fortan kryptographische Risiken damit zu vergleichen.

Die Signatur

Der RSA-Algorithmus hat die schöne Eigenschaft, dass Verschlüsselung eines Klartextes mit dem geheimen Schlüssel und anschließende Entschlüsselung mit dem öffentlichen Schlüssel den Klartext ergibt.

Das Verschlüsseln mit dem geheimen Schlüssel stellt übrigens kein Sicherheitsrisiko dar.

Ablauf des Signierens (vereinfacht)

  1. Der Absender verschlüsselt seine Nachricht mit seinem eigenen geheimen Schlüssel.
  2. Der Empfänger entschlüsselt mit dem öffentlichen Schlüssel des Senders.
  3. Kommt dabei der Klartext wieder heraus, geht er davon aus, dass die Nachricht authentisch ist.

Wird nun ein Geheimtext mit dem öffentlichen Schlüssel entschlüsselt und der Klartext kommt heraus, kann man sicher sein, dass dieser mit dem geheimen Schlüssel des Senders verschlüsselt wurde, denn es ist nur durch einen Brute-Force-Angriff möglich, einen Geheimtext zu generieren, der mit dem öffentlichen Schlüssel wieder den Klartext ergibt.

Da den geheimen Schlüssel nur der Besitzer hat, ist die Authentizität sicher gestellt.

Achtung! Gerät dein geheimer Schlüssel in fremde Hände, können andere in deinem Namen Nachrichten unterschreiben!

Die Rolle der Hash-Funktion

Da es unpraktisch wäre, die ganze Nachricht mit dem geheimen Schlüssel zu verschlüsseln, wird nur ein Hash-Wert signiert. Denn würde man tatsächlich wie weiter oben in der vereinfachten Variante signieren, dann würde sich die Nachrichtenlänge durch das Signieren verdoppeln. Auch würde hierfür unnötig Rechenzeit verschwendet.

Der Empfänger der Nachricht und der Signatur muss dann prüfen, ob der mit dem öffentlichen Schlüssel entschlüsselte Hash-Wert dem korrekten Hash-Wert der Nachricht entspricht.

Durch den Hash-Wert ist auch die Integrität sicher gestellt, weil Änderungen im Klartext den Hash-Wert verändern.

Aufgabe 6

Informiere dich über die Möglichkeit, mit dem Personalausweis zu signieren, z.B. mithilfe dieses Werbevideos des Fraunhofer-Instituts, des Berichts von Stiftung Warentest, oder dieses Interviews.

Was ist dabei der Vorteil gegenüber der Signatur mit einem per PGP selbst erzeugten Schlüssel?

Aufgabe 7

Informiere dich über das deutsche Signaturgesetz.

Wieso besteht hier die Notwendigkeit eines Gesetzes?

Aufgabe 8 - Hashfunktionen und Passwörter

Informiere dich, wie Hash-Funktionen genutzt werden, um Authentifizierung per Passwort zu ermöglichen, ohne jedoch das Passwort selbst zu speichern. Welche Vorteile bietet dies?

Tipp: Für IT-Sicherheitsthemen ist secupedia.info eine gute Quelle.

Ende des Kryptographie-Kurses.