Digitale Signatur
Das Prinzip der digitalen Signatur ist einfach: Die Absender:in verschlüsselt eine Nachricht mit ihrem privaten Schlüssel und beweist dadurch, dass sie die Nachricht tatsächlich verfasst hat. Empfänger:innen können diese Nachricht dann mit dem öffentlichen Schlüssel der Absender:in entschlüsseln und somit verifizieren, dass die Nachricht tatsächlich von der Absender:in stammt.
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 niemand anderem stammen als von Alice selbst. D.h. diese Nachricht ist quasi digital signiert.
Überlegen Sie sich, wie ein signiertes Dokument von mehr als einer Person angeschaut und überprüft wird. Welche Schlüssel werden verwendet?
Nachteile
Die oben beschrieben Art der digitalen Signatur ist nicht optimal, denn es gibt mehrere Probleme:
- Klartext unlesbar
- Wegen der «Signatur» ist der Klartext nicht mehr lesbar.
- Dies ist umständlich, denn wenn Sie ein Dokument auf Papier unterschreiben, bleibt dieses trotzdem lesbar.
- Geschwindigkeit
- Asymmetrische Verfahren sind langsam, d.h. wenn ein grosses Dokument (z.B. ein Video) signiert wird, dauert dieser Vorgang unnötig lange, genauso wie das Überprüfen der Signatur (also das Entschlüsseln).
Wie könnten Hashwerte helfen, dieses Problem zu lösen?
Manipulationen erkennen
Ist der Klartext stets sichtbar, muss sichergestellt werden, dass er nicht manipuliert werden kann. Schliesslich will man nicht, dass ein Vertrag nach dem Signieren noch unentdeckt verändert werden kann.
Hashwerte sind digitale FingerabdrückeAuch wenn verschiedene Personen den Hashwert desselben Textes berechnen, ergibt sich stets derselbe Hashwert (sofern dieselbe Hashfunktion verwendet wird). Ist ein Text auch nur ein wenig anders, so ergibt sich sofort ein völlig anderer Hashwert, womit leicht zu erkennen ist, dass die Texte nicht übereinstimmen.
Da die Hashwerte im Vergleich zum eingegebenen Text sehr kurz sind, kann der Hashwert eines Textes signiert werden (also mit dem privaten Schlüssel verschlüsseln) und so die Authentizität und Integrität des Textes sicherstellen.
Anstelle des gesamten Textes wird nur der Hashwert signiert.
- Klartext
- bleibt durchgehgehend lesbar
- Geschwindigkeit
- ist schnell, da nur der Hashwert signiert wird
Digitale Signatur: Hashwert und asymmetrische Verschlüsselung
Im obigen Bild ist das digitale Signatur-Verfahren dargestellt. Ein wesentlicher Schritt fehlt aber noch: die Überprüfung der digitalen Signatur. Was muss die Empfänger:in noch tun, um die digitale Signatur zu überprüfen?
Erklären Sie den Vorgang bspw. mit Alice und Bob - wann wird welcher Schlüssel verwendet und was wird wie überprüft?
Signaturen und Zertifikate
Täglich verwenden Sie digitale Signaturen und vertrauen darauf, dass diese korrekt sind. Bei jedem Besuch einer Webseite mit HTTPS wird eine digitale Signatur überprüft, um sicherzustellen, dass die Webseite tatsächlich von der Organisation stammt, die sie vorgibt zu sein. Dies geschieht über Zertifikate, die von vertrauenswürdigen Zertifizierungsstellen (Certificate Authorities, CAs) ausgestellt werden. Dies verhindert schlussendlich auch 👉 MITM-Angriffe.
Die Funktionsweise basiert auf den bisherigen Erkenntnissen und löst das Problem, wie Empfänger:innen den öffentlichen Schlüssel der Absender:in sicher erhalten können.
Zertifizierungsstellen stellen digitale Zertifikate aus. Diese bestätigen, dass ein öffentlicher Schlüssel zu einer bestimmten Identität gehört, beispielsweise zu einer Website. Die Zertifizierungsstelle signiert das Zertifikat mit ihrem privaten Schlüssel. Wer ihrem öffentlichen Schlüssel vertraut, kann damit die Signatur des Zertifikats überprüfen und anschliessend den darin bestätigten öffentlichen Schlüssel zur Überprüfung signierter Daten verwenden.
Die Empfänger:in muss dabei nur einer begrenzten Anzahl von Root-Zertifizierungsstellen unmittelbar vertrauen. Diese können auch weiteren Zertifizierungsstellen Zertifikate ausstellen und sie damit zum Ausstellen eigener Zertifikate berechtigen. So entsteht eine Vertrauenskette, eine sogenannte Chain of Trust, die bis zu einer bereits vertrauenswürdigen Root-Zertifizierungsstelle zurückführt.
Root-Zertifikate enthalten die öffentlichen Schlüssel vertrauenswürdiger Root-Zertifizierungsstellen und sind in den meisten Betriebssystemen und Browsern bereits vorinstalliert. Mithilfe dieser Zertifikate und einer gültigen Vertrauenskette kann überprüft werden, ob ein erhaltener öffentlicher Schlüssel tatsächlich zur angegebenen Absender:in gehört. Mit diesem Schlüssel lässt sich anschliessend die digitale Signatur der empfangenen Daten überprüfen.
Verwenden Sie das obige Tool und überprüfen Sie für Ihre Lieblingswebseite, welche Zertifizierungsstelle das Zertifikat ausgestellt hat, wie viele Zwischenzertifizierungsstellen es gibt und welche Root-Zertifizierungsstelle das Zertifikat signiert hat.