Warnung

Auf dieser Seite findet ihr das Skript von fts. Diese Lektion wurde aber von Frau Helmy unterrrichtet!

Die Unterlagen von Frau Helmy findet man hier:
https://sites.google.com/view/praktikuminformatik/kryptologie/digitale-signaturen

Asymmetrie umkehren

Wir erinnern uns an das Prinzip der reinen asymmetrische Verschlüsselung:

Gedankenexperiment

Was würde geschehen, wenn wir den Vorgang ändern?

Bei der asymmetrischen Verschlüsselung gibt es zwei Schlüssel, den öffentlichen und den privaten. Normalerweise verwendet Alice zur Verschlüsselung den öffentlichen Schlüssel von Bob. Bob wieder entschlüsselt den übermittelten Geheimtext mit seinem privaten Schlüssel.

Aufgabe: Frage

Was geschieht, wenn Alice den Klartext mit ihrem eigenen privaten Schlüssel «verschlüsselt»?

Dies lässt sich mit Schloss und Schlüssel leider nicht mehr sinnvoll und verständlich darstellen. Wir stellen uns die asymmetrische Ver-/Entschlüsselung einfach als reine mathematische Angelegenheit vor:

Der Verschlüsselungsfunktion E wird normalerweise der Klartext p und der öffentliche Schlüssel e übergeben, dabei entsteht der Geheimtext c:

c=E(p,e)

Die Entschlüsselungsfunktion D berechnet aus dem Geheimtext c und dem privaten Schlüssel d wieder den Klartext p:

p=D(c,d)

Aufgabe: Gedankenexperiment

  1. Was erhalten wir, wenn wir der Verschlüsselungsfunktion anstelle des öffentlichen Schlüssels von Bob den privaten Schlüssel von Alice übergeben?

    ?=E(p,d)
  2. Wie lässt sich dieses «Produkt» wieder in einen Klartext verwandeln?

    p=?(?,?)
Lösung: Gedankenexperiment
  1. Es entsteht ebenso ein «spezieller Geheimtext», also etwas, das nicht direkt verstanden werden kann, wir bezeichnen dieses Produkt mit dem Buchstaben s.

    s=E(p,d)
  2. Da dieser spezielle «spezielle Geheimtext» s mit dem privaten Schlüssel von Alice «verschlüsselt» wurde, kann er nur mit dem zugehörigen öffentlichen Schlüssel von Alice wieder in Klartext umgewandelt werden.

    p=D(s,e)

Aufgabe: Bedeutung des Gedankenexperimentes

Was bedeutet es, wenn jemand einen Text mit seinem eigenen privaten Schlüssel «verschlüsselt», so dass der Geheimtext nur mit dem zugehörigen öffentlichen Schlüssel «entschlüsselt» werden kann?

Was sagt die Tatsache, dass man einen solchen Geheimtext mit einem fremden (nicht dem eigenen) öffentlichen Schlüssel entschlüsseln kann, aus?

Digitale Signatur

Wir haben soeben das Prinzip der digitalen Signatur entdeckt.

Digitale Signatur

Tipp: Digitale Signatur

Wenn Bob die Nachricht mit dem öffentlichen Schlüssel von Alice entschlüsseln kann, dann muss diese Nachricht vorher mit dem privaten Schlüssel von Alice verschlüsselt worden sein. Somit kann sie von niemandem anders stammen als von Alice. D.h. diese Nachricht ist quasi digital signiert.

Aufgabe: mehrere Leute

Überlege dir, wie ein signiertes Dokument von mehr als zwei Personen angeschaut und überprüft wird. Welche Schlüssel werden verwendet?

Lösung: mehrere Leute

Es wird nur das Schlüsselpaar von Alice verwendet:

Überprüfung der Signatur durch mehrere Personen

Nachteile

Die bisher kennengelernte Art der digitalen Signatur ist nicht optimal, denn es gibt mehrere Probleme:

  • Wegen der «Signatur» ist der Klartext nicht mehr lesbar (er ist ja nun speziell «verschlüsselt»). Dies ist umständlich, denn wenn du ein Dokument auf Papier unterschreibst, bleibt dieses trotzdem lesbar.
  • Asymmetrische Verfahren sind langsam, d.h. wenn wir ein grosses Dokument (z.B. ein Video) signieren, dauert dieser Vorgang unnötig lange – ebenso das Überprüfen der Signatur (also das Entschlüsseln).

Integrität

Lesbarkeit und Signatur

Das im letzten Kapitel beschriebene Verfahren hat den grossen Nachteil, dass ein Dokument erst lesbar ist, wenn es «entschlüsselt» – oder anders ausgedrückt: wenn die Signatur entfernt – wurde. Das ist unpraktisch, schliesslich sind sämtliche deine von Hand unterschriebenen Dokumente trotzdem stets lesbar. Sobald das Dokument entschlüsselt (also lesbar) ist, ist aber auch die Signatur verschwunden – und somit auch die Überprüfbarkeit, welche Person was unterschrieben hat.

Wir suchen folglich eine Lösung, die das gleichzeitige Betrachten des Dokuments und der Signatur ermöglicht.

Manipulationen erkennen

Ist der Klartext stets sichtbar, so müssen wir sicherstellen, dass er nicht manipuliert werden kann. Schliesslich wollen wir nicht, dass ein Vertrag nach dem Signieren noch unentdeckt verändert werden kann.

Hashwerte

Hashwerte kennen wir bisher nur zur sicheren Speicherung von Passwörtern. Hashfunktionen können allerdings nicht nur Passwörter in Hashwerte umwandeln, sondern irgendwelche Daten.

wie ein Fingerabdruck[1]

Wir haben gesehen, dass Hashwerte eine Art digitale Fingerabdrücke sind. Es ist extrem schwierig (resp. in vernünftiger Zeit nicht möglich), zu einem bestehenden Text einen anderen zu finden, der denselben Hashwert erzeugt.

Auch wenn verschiedene Personen den Hashwert desselben Textes berechnen, ergibt sich stets derselbe Hashwert – aber natürlich nur, wenn dieselbe Hashfunktion verwendet wird. Ist ein Text auch nur ein wenig anders (wie im untenstehenden Beispiel gezeigt), so ergibt sich sofort ein völlig anderer Hashwert, womit leicht zu erkennen ist, dass die Texte nicht übereinstimmen.

Hashwerte von verschiedenen Mitteilungen

Verfahren kombinieren

Wichtig ist uns:

  • Die Dokumente sind stets lesbar und trotzdem vor Manipulationen geschützt sein.
  • Asymmetrische Verfahren sollen eingesetzt werden, aber nicht zum Verschlüsseln des ganzen Dokuments, weil dies langsam ist.

Aus diesem Grund müssen wir – ähnlich wie bei der asymmetrischen Verschlüsselung – auch bei den digitalen Signaturen «nachbessern», wenn es um den konkreten Einsatz im Alltag geht.

Hashwerte

Hashwerte derselben Hashfunktion haben stets dieselbe Länge. Sie sind im Vergleich zum eingegebenen Text sehr kurz (wie der Fingerabdruck eines Menschen sehr klein ist im Vergleich zu all dem, was den Menschen mit diesem Fingerabdruck ausmacht).

Tipp

Anstelle des gesamten Textes signieren wir nur den Hashwert, das beseitigt die beiden obengenannten Nachteile.

Digitale Signaturen richtig verwenden

Wir versuchen, mehrere Verfahren zu kombinieren und deren Vorteile zu nutzen. Einerseits berechnen wir den Hashwert eines Dokuments, andererseits «verschlüsseln» wir nur diesen Hashwert asymmetrisch. Somit reduziert sich der Einsatz von asymmetrischer Verschlüsselung wiederum auf ganz kurze Werte. Zudem bleibt das Dokument intakt und stets lesbar.

Digitale Signatur: Hashwert und asymmetrische Verschlüsselung

Aufgabe: Digitale Signatur überprüfen

Überlege dir, wie man eine solche digital signierte Nachricht überprüfen kann. Zeichne die benötigten Schritte auf.

Lösung: Digitale Signatur überprüfen
Digitale Signatur überprüfen

Zertifizierungsstellen

Übertragung öffentlicher Schlüssel

Öffentliche Schlüssel enthalten keine geheime Information, können also problemlos über einen offenen Kanal übertragen werden. Oder?

Angriff auf den öffentlichen Schlüssel

Aufgabe: Angriff auf den öffentlichen Schlüssel

Alice schickt ihren öffentlichen Schlüssel (also ihr Vorhängeschloss) per Post an Bob. Überlege dir, was der bösartige Mallory anstellen könnte, um Alice und Bob zu überlisten.

Lösung: Angriff auf den öffentlichen Schlüssel

Da der öffentliche Schlüssel nur aus Zahlen besteht, ist es für Bob nicht erkennbar, ob er den richtigen Schlüssel erhalten hat.

Man-in-the-middle-Attacke

Schutz gegen Man-in-the-Middle-Attacken

Wie können wir uns vor Man-in-the-Middle-Attacken schützen? Kann uns Trent helfen?

Die Rolle von Trent

Aufgabe: Zertifizierungsstellen

Wie könnte Trent dafür sorgen, dass die öffentlichen Schlüssel besser überprüfbar sind?

Lösung: Zertifizierungsstellen

Trent ist bekannt und akzeptiert als Zertifizierungsstelle, alle kennen seinen öffentlichen Schlüssel. Wenn Trent die Kunden gut überprüft und deren Schlüssel signiert, kann Bob sicher sein, den richtigen Schlüssel zu verwenden. Er akzeptiert folglich keine unsignierten Schlüssel mehr.

Schutz vor Man-in-the-Middle-Attacken

  1. pogoneo via Openclipart (PD) ↩︎