Im Oktober 2022 hat Proton seine eigene OpenPGP-Zertifizierungsstelle (CA), ProtonCA, entwickelt und begonnen, Verschlüsselungsschlüssel zu signieren, um zu garantieren, dass sie einem bestimmten Konto gehören. Das ermöglicht OpenPGP-Nutzern, anderen Nutzern PGP-Schlüsseln zu vertrauen und das Senden von Ende-zu-Ende-verschlüsselten Nachrichten zu vereinfachen.
Dieser Artikel erklärt, warum Zertifizierungsstellen für OpenPGP notwendig sind, warum wir uns entschieden haben, eine CA zu entwickeln, und wie unsere CA funktioniert.
Warum agiert Proton als Zertifizierungsstelle?
OpenPGP, der Open-Source-Verschlüsselungsstandard, den wir verwenden, um E-Mails auf Proton Mail Ende-zu-Ende zu verschlüsseln, ist eine der sichersten Kommunikationsmethoden online, aber auch er hat kleinere potenzielle Schwachstellen. Ein Problem ist, dass jeder einen Schlüssel erstellen und behaupten kann, er gehöre zu einer bestimmten E-Mail-Adresse. Das könnte einem Angreifer potenziell ermöglichen, einen von ihm erstellten PGP-Schlüssel gegen deinen auszutauschen und so Zugang zu allen Nachrichten zu erhalten, die mit diesem Schlüssel verschlüsselt wurden.
Dieses Problem besteht auch bei anderen Kryptographieprotokollen. Zum Beispiel verlässt sich das Transport Layer Security-Protokoll (TLS), das alle Websites schützt, die HTTPS verwenden, auf einige zentralisierte Zertifizierungsstellen, um zu verifizieren, dass ein bestimmter Schlüssel der Person oder Website gehört, die ihn beansprucht. Um dieses Problem anzugehen, hat die OpenPGP-Gemeinschaft kürzlich OpenPGP CA(neues Fenster) entwickelt, was es einfach macht, dezentrale Zertifizierungsstellen einzusetzen. Das Ziel ist es, ein breites System mit vielen zusammenarbeitenden Zertifizierungsstellen zu schaffen, um Ausfallpunkte zu eliminieren.
Wir haben uns entschieden, ProtonCA zu starten, weil wir einzigartig positioniert sind, um als Zertifizierungsstelle zu agieren. Wir können leicht bestätigen, dass ein bestimmter Schlüssel zu einer bestimmten E-Mail-Adresse gehört, da wir die E-Mail-Domain kontrollieren. Während Proton-Nutzer keinen großen Unterschied im Service feststellen werden, wird dies das Leben für Personen, die PGP verwenden, um Ende-zu-Ende-verschlüsselte E-Mails an Proton-Nutzer zu senden, erheblich erleichtern. Jetzt kannst du dir sicher sein, dass ein PGP-Schlüssel eines Proton-Nutzers gültig und aktuell ist (innerhalb der letzten sechs Monate aktiv genutzt), wenn ProtonCA ihn signiert hat, egal wie du an den Schlüssel gekommen bist.
Signaturen Dritter
Die zugrundeliegende Technologie, die OpenPGP CA verwendet — Signaturen Dritter — existiert schon seit Jahren. Signaturen Dritter sind das Hauptwerkzeug, das Zertifizierungsstellen zur Authentifizierung eines Schlüssels verwenden. Im Grunde fügst du, wenn du eine Zertifizierungsstelle bist, deine Signatur zu dem Schlüssel einer anderen Person hinzu und erklärst, dass du verifiziert hast, dass er ihnen gehört. Das schafft eine manipulationssichere Verbindung zwischen dem Schlüssel und dem Nutzer.
Zum Beispiel möchte Alice eine E-Mail an Bob schicken, also holt sie sich zuerst seinen öffentlichen Verschlüsselungsschlüssel. Dieser heruntergeladene Schlüssel enthält eine Signatur von Ted, die besagt, dass er zertifiziert, dass dieser Schlüssel Bob gehört. Wenn Alice Ted vertraut, dass er Bobs Identität korrekt verifiziert hat, dann vertraut sie indirekt auch Bobs Schlüssel. Ted ist in diesem Fall die vertrauenswürdige Autorität und agiert als eine (sehr kleine) Zertifizierungsstelle.
Wie ProtonCA funktioniert
Bei Proton haben wir ProtonCA nach dem von OpenPGP CA umrissenen System entwickelt, um als Zertifizierungsstelle für die Schlüssel von Millionen von Proton-Nutzern zu agieren.
Alle von Proton gehosteten E-Mail-Adressen haben einen Schlüssel, der es ihnen ermöglicht, Ende-zu-Ende-verschlüsselte Nachrichten zu empfangen. ProtonCA fügt jeder E-Mail-Verschlüsselung einen Drittanbietersignatur hinzu, die mit einem Master-Schlüssel namens CA-Schlüssel signiert wird. Das bestätigt, dass Proton garantiert, dass der Schlüssel zur zugehörigen Adresse gehört. Wenn ein Schlüssel in Proton Mail generiert oder importiert wird, überprüft ProtonCA, dass er nur mit einer E-Mail-Adresse verbunden ist, nämlich der, für die er hochgeladen wurde. Wir signieren dann den Schlüssel und speichern ihn auf unseren Servern. Proton überprüft nicht die Identität einzelner Nutzer (zum Beispiel fordern wir nicht, dass unsere Nutzer einen amtlichen Ausweis vorlegen). ProtonCA bestätigt lediglich, dass eine bestimmte E-Mail-Adresse einem spezifischen Schlüssel entspricht.
Kehren wir zu unserem ursprünglichen Beispiel mit Alice und Bob zurück, aber ersetzen wir Ted durch ProtonCA. Wenn Alice jetzt Bobs Schlüssel abruft, erhält sie einen Schlüssel mit einer ProtonCA-Signatur, die besagt, dass [email protected] diesen Schlüssel verwendet. Alice, die eventuell einen externen OpenPGP-Client verwendet, kann die Echtheit dieser Signatur überprüfen und, wenn sie Proton vertraut, wird sie diesem Schlüssel indirekt automatisch vertrauen. Dieses Vertrauen gilt unabhängig davon, wie Alice Bobs Schlüssel erhalten hat. Selbst wenn sie ihn über ein unsicheres Medium gefunden hat, macht die Signatur von ProtonCA ihn fälschungssicher.
Die Signatur von ProtonCA fügt den von Proton bereitgestellten Schlüsseln auch Nichtabstreitbarkeit hinzu. Mit anderen Worten, wenn Proton einen schlechten Schlüssel bereitstellt, beweist die Signatur von ProtonCA, dass der Schlüssel von Proton heruntergeladen wurde. Das würde das Vertrauen in Proton verringern und uns davon abhalten, bösartige Schlüssel bereitzustellen.
Um alte Schlüssel nicht zu zertifizieren, setzt ProtonCA eine strenge Ablaufpolitik durch. Jeder Schlüssel wird für sechs Monate zertifiziert. Einen Monat vor Ablauf eines Zertifikats überprüft ProtonCA, ob die zugehörige E-Mail-Adresse noch aktiv ist und der aktuelle Schlüssel nicht entfernt wurde. Wenn beide Kriterien erfüllt sind, wird ProtonCA die Zertifizierung um weitere sechs Monate verlängern.
Wie man ProtonCA in anderen OpenPGP-Clients vertraut
Der ProtonCA-Schlüssel kann hier abgerufen werden(neues Fenster) und hat folgenden Fingerabdruck:
Du kannst diesen Schlüssel in deinen GnuPG-Schlüsselbund mit dem folgenden Befehl importieren:
$ gpg -- import -key pubkey.asc |
Du musst dann das folgende Vertrauensniveau festlegen:
$ gpg --edit-key 0xD806C1AF5978E8C7 > trust > 5 > y > quit |
PGP wird dann automatisch diesen Schlüssel als vertrauenswürdig kennzeichnen und alle von diesem Schlüssel signierten Schlüssel als indirekt vertrauenswürdig.
Vertrauensstufe fünf (ultimativ) ist notwendig, wenn du keinen eigenen OpenPGP-Schlüssel hast. Jeder indirekte Vertrauenspfad muss mit einem ultimativ vertrauenswürdigen Schlüssel beginnen.
Um ein Vertrauensniveau niedriger als fünf festzulegen, musst du den [email protected] Schlüssel lokal signieren. Das kannst du mit den folgenden Befehlen tun:
$ gpg --edit-key 0xD806C1AF5978E8C7> lsign> y> save |
Das erstellt eine nicht exportierbare Signatur auf dem ProtonCA-Schlüssel. Nachdem du diesen Schritt ausgeführt hast, kannst du ein anderes Vertrauensniveau festlegen:
$ gpg --edit-key 0xD806C1AF5978E8C7> trust> 4> quit |
Eigene Zertifizierungen verwenden
Da das Ziel von OpenPGP CA darin besteht, ein dezentrales Signatursystem einzurichten, würde eine einzelne zentrale Zertifizierungsstelle, die Signaturen ausstellt, dem Zweck zuwiderlaufen. Deswegen haben wir die Unterstützung für Zertifizierungen bei importierten PGP-Schlüsseln hinzugefügt.
Du kannst deine eigene Instanz von OpenPGP CA(neues Fenster) einrichten oder die Schlüssel mit Sequoia oder GnuPG signieren und diese dann direkt in Proton importieren. Du musst lediglich den signierten privaten Schlüssel für die gewünschte Adresse importieren. Der öffentliche Schlüssel, den wir Proton Mail-Nutzern über das Web Key Directory (WKD)(neues Fenster) oder unseren Public Key Server (PKS) zur Verfügung gestellt haben, enthält die importierte Signatur.
Beachte, dass wenn du einen neuen Schlüssel hinzufügen möchtest, die Signatur nicht automatisch auf den neuen Schlüssel übertragen wird. Du musst sie nach dem Hinzufügen manuell erneut signieren.
AKTUALISIERUNG 28. Oktober 2022: Dieser Artikel wurde um drei Absätze erweitert, die erklären, wie du dein Vertrauenslevel niedriger als fünf einstellen kannst.