- Kryptographie – Schutzziele und Verschlüsselung – Anwendungsentwickler-Podcast #131
- Kryptographie – Hashverfahren und elektronische Signatur – Anwendungsentwickler-Podcast #132
- Kryptographie – Zertifikate und Zertifizierungsstellen – Anwendungsentwickler-Podcast #145
- Kryptographie – Funktionsweise von HTTPS – Anwendungsentwickler-Podcast #146
Die Fortsetzung zum Oberthema Kryptographie mit Zertifikaten und Zertifizierungsstellen gibt es in der einhunderfünfundvierzigsten Episode des Anwendungsentwickler-Podcasts.
Podcast: Play in new window | Download (Duration: 36:05 — 17.0MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Inhalt
- Wiederholung: Für die elektronische Signatur und die Verschlüsselung von Daten werden Paare aus öffentlichen und privaten Schlüsseln benötigt.
- Probleme
- Wer garantiert dem Absender, dass ein öffentlicher Schlüssel auch wirklich dem angegebenen Empfänger gehört?
- Wie kann sichergestellt werden, dass ein öffentlicher Schlüssel nicht von einem Angreifer durch seinen eigenen ausgetauscht wurde?
- Zertifikat
- Mit einem Zertifikat bestätigt eine unabhängige dritte Partei die Echtheit des öffentlichen Schlüssels des Empfängers. Diese dritte Partei wird Zertifizierungsstelle genannt.
- Die Zertifizierungsstelle (englisch Certificate Authority, abgekürzt CA) bestätigt die Authentizität des Schlüssels des Empfängers, indem sie z.B. dessen Adresse und Identität prüft.
- Das kostet meistens Geld, je nachdem wie intensiv diese Prüfung gemacht wird. Das geht von „muss eine E-Mail-Adresse mit dieser Domain abrufen können“ bis hin zu „das Unternehmen existiert tatsächlich unter der postalischen Adresse“.
- Wenn Alice statt dem öffentlichen Schlüssel von Bob ein Zertifikat erhält, kann sie es wiederum mit dem Zertifikat der CA prüfen. Sie weiß nun sicher, dass sie den korrekten öffentlichen Schlüssel nutzt und nicht einen kompromittierten.
- Alice muss dafür allerdings dem Zertifikat der Zertifizierungsstelle selbst vertrauen, da auch diese kompromittiert werden kann. Es entsteht also eine Vertrauenskette, die irgendwo in einem Root-Zertifikat endet. Und diesem Zertifikat muss manuell vertraut werden.
- Das „Urvertrauen“ in die verschiedenen CAs wird hergestellt, indem sie z.B. in Browser wie Firefox oder Chrome vom Hersteller fest „eingebaut“ und als vertrauenswürdig gekennzeichnet werden.
- Sollte ein Zertifikat kompromittiert werden, gibt es sog. Certificate Revocation Lists (CRL), in die die nicht mehr validen Zertifikate eingetragen werden können. Dafür müssen diese Listen aber natürlich bei jeder Prüfung eines Zertifikats kontrolliert werden, was sehr aufwändig ist.
- Technische Umsetzung
- Zertifikate sind (Plain-Text-)Dateien, die verschiedene technische Informationen enthalten wie z.B. den Namen des Ausstellers, den zertifizierten öffentlichen Schlüssel des Empfängers, ein Ablaufdatum, die elektronische Signatur der ausstellenden CA.
- Vereinfacht (!) gesagt, ist das Zertifikat der mit dem privaten Schlüssel der CA signierte öffentliche Schlüssel des Empfängers. Nur mit dem öffentlichen Schlüssel der CA kann diese Signatur geprüft werden. Und dieser öffentliche Schlüssel ist für alle wichtigen CAs im Browser hinterlegt.
- Genauer gesagt werden alle Inhalte des Zertifikats signiert und vom öffentlichen Schlüssel des Empfängers nur der Hash. Und im Browser sind auch nicht nur die öffentlichen Schlüssel der CAs hinterlegt, sondern wiederum Zertifikate, die wiederum zertifizert sind usw.
- Die Root-Zertifikate am Ende dieser Kette werden dann von der CA selbst signiert und heißen selbstsignierte Zertifikate. Dabei garantiert quasi die CA selbst, dass sie wirklich diese CA ist.
- Der Aufbau der Dateien ist standardisiert, z.B. im Format X.509.
- Aussteller und Zertifikatinhaber werden durch eine Reihe von Attributen beschrieben, z.B. den sog. Common Name (CN), Land und Ort.
Nette Folge, schöner kurzer Ritt durch das Thema. Vielen Dank dafür!
Die Prüfung der CRL ist in der Tat ein Problem. Inzwischen gibt es mit OCSP und OCSP-Stapling ja aber ganz gute alternativen.
Wer in das Thema tiefer eintauchen möchte, kann ja hier mal reinhören: https://requestforcomments.de/archives/640
Moin Michael, danke für den Hinweis! Den RfC-Podcast kann ich uneingeschränkt weiterempfehlen! 😀
Hi, super Reihe und sehr verständlich geschildert. Den Hinweis mit Let’s Encrypt als kostenlose trusted CA hasr du ja in der aktuellen Folge.
Zu DigiNotar gibt es eine sehr empfehlenswerte Folge von Darknet Diaries mit einigen Hintergrundinfos und einem Einblick in den Aufwand, der betrieben werden muss, um eine CA zu hacken und daraus nutzen zu ziehen.
https://darknetdiaries.com/episode/3/
Hallo Lukas, vielen Dank für das Feedback. Die Darknet Diaries kannte ich noch gar nicht. Vielen Dank für den Tipp! Da höre ich direkt mal rein! 🙂