Proton

OpenPGP, der Standard, der definiert, wie Nachrichten mit PGP, dem am weitesten verbreiteten E-Mail-Verschlüsselungsformat, verschlüsselt und signiert werden, hat ein großes Upgrade erhalten, das verschiedene Sicherheitsverbesserungen und modernere kryptografische Algorithmen einführt.

PGP wird seit den 90er Jahren verwendet, um E-Mail-Nachrichten zu sichern. In den letzten 25 Jahren wurde der Standard mehrmals aktualisiert. Allerdings haben kryptografische Fortschritte die Grenzen von Privatsphäre und Sicherheit stetig erweitert. Seit 2016, als wir begannen, OpenPGP.js(new window), eine der weltweit am häufigsten verwendeten Open-Source-Bibliotheken zur E-Mail-Verschlüsselung, zu pflegen, haben wir daran gearbeitet, PGP zu modernisieren und dabei eines seiner Hauptmerkmale zu bewahren – die Interoperabilität. Dadurch können wir das Beste der modernen Krypto-Technologie zu Proton Mail bringen, während wir sicherstellen, dass Proton Mail kein geschlossenes System ist.

Standardisierung gewährleistet zukünftige Interoperabilität, und Proton war auch aktiv am Standardisierungsprozess mit der OpenPGP-Arbeitsgruppe bei der Internet Engineering Task Force (IETF) beteiligt. Das Ergebnis davon ist die „crypto refresh(new window)“ des OpenPGP-Standards, wie es genannt wurde, hat moderne authentifizierte Verschlüsselung, sicherere Kurven, memory-hard Passwort-Hashing und mehr gebracht.

Indem wir diese Verbesserungen standardisieren statt proprietäre Protokolle zu verwenden, bereiten wir den Weg für ein insgesamt sichereres E-Mail-Ökosystem und stellen sicher, dass verschlüsselte E-Mails interoperabel bleiben.

Sicherheitsverbesserungen

Hier ist ein Überblick über die größten Sicherheitsverbesserungen in der PGP-Krypto-Aktualisierung.

Moderne authentifizierte (AEAD) Verschlüsselung

Moderne Verschlüsselung sollte gegen heimliches Manipulieren resistent sein. Ein Angreifer ohne Zugriff auf deinen geheimen Schlüssel sollte nicht in der Lage sein, deine Nachricht unbemerkt zu verändern. Verschlüsselung mit dieser Eigenschaft wird als „authentifizierte Verschlüsselung“ bezeichnet.

OpenPGP verfügt schon lange über authentifizierte Verschlüsselung, die mit einem Mechanismus namens „Modification Detection Code“ (MDC) arbeitet. Obwohl dies seinen Zweck erfüllt, erreichen moderne authentifizierte Verschlüsselungsverfahren Geheimhaltung und Authentifizierung in einem integrierten Algorithmus. Solche Verschlüsselungsmodi, die als AEAD-Algorithmen bezeichnet werden, bieten bei gleicher Sicherheitsstufe eine verbesserte Leistung.

Der neue Standard umfasst GCM, einen AEAD-Algorithmus, der in der Web Cryptography API verfügbar ist, die webbasierten Anwendungen native Implementierungen von kryptografischen Primitiven bietet und verbesserte Leistung und Sicherheit verspricht. Aus diesem Grund werden wir diesen Modus bald in allen Proton-Produkten verwenden.

Sicherere Kurven

Neu in der Spezifikation der Krypto-Aktualisierung ist eine Reihe von Public-Key-Algorithmen, die Curve25519 und Curve448 für Verschlüsselung und Entschlüsselung (X25519 und X448) sowie für Signierung und Verifizierung (Ed25519 und Ed448) verwenden. Mitglieder der Proton-Community wissen vielleicht, dass wir Curve25519 seit Jahren verwenden. Dennoch wird es das erste Mal sein, dass es formell spezifiziert ist.

Wir haben auch vorgeschlagen, Curve25519 und Curve448 zur Web Cryptography API hinzuzufügen(new window). Einige Browser, wie Chrome und Safari, haben begonnen, Curve25519 zu implementieren. Wir planen, dies in OpenPGP.js zu nutzen, um die Leistung und Sicherheit unserer Webanwendungen zu verbessern, sobald es verfügbar ist.

Speicherintensive Passwort-Hashing-Funktion

OpenPGP verwendet eingebaute Passwort-Hashing-Funktionen, die als „String-to-Key (S2K) Algorithmen“ bezeichnet werden. Allerdings waren bis zur Krypto-Aktualisierung alle ziemlich schwach. Der stärkste Algorithmus, „iterierter und gesalzener S2K“, salzt das Passwort und hashet dann das Salz und das Passwort wiederholt mit einer kryptografischen Hashfunktion wie SHA-2 für eine konfigurierbare Anzahl von Iterationen, jedoch mit einer Obergrenze von 62 MiB für die gehashten Daten. Da das Hashing mit SHA-2 sehr schnell und günstig geworden ist, reicht dies nicht mehr aus, um ein Passwort sicher zu hashen. Aus diesem Grund verwendet Proton seit langem eine zusätzliche Passwort-Hashing-Funktion, bcrypt, um Passwörter zu hashen, bevor sie zur Verschlüsselung von OpenPGP-Nachrichten oder Schlüsseln verwendet werden.

OpenPGP wird zu Argon2(new window) übergehen, dem Gewinner des Password Hashing Wettbewerbs. Diese Funktion ist „speicherintensiv(new window)“, was bedeutet, dass sie eine erhebliche Menge an Speicher benötigt, um ein Passwort zu hashen. Das macht es für einen Angreifer schwieriger, den Passwort-Rateverlauf mit spezifischer Hardware, wie anwendungsspezifischen integrierten Schaltkreisen(new window), zu optimieren, da die Hashgeschwindigkeit durch die Geschwindigkeit des Speichers begrenzt bleibt. Mit dem aktualisierten OpenPGP-Standard werden wir bei Proton ebenfalls auf Argon2 umstellen.

Veraltete Algorithmen werden abgeschafft

Die Krypto-Aktualisierung schafft alte kryptografische Primitive und Algorithmen ab, einschließlich der Hash-Algorithmen MD5, SHA1 und RipeMD, der symmetrischen Algorithmen IDEA, 3DES und CAST5 sowie der Public-Key-Algorithmen ElGamal, DSA und RSA-Schlüssel mit weniger als 3072 Bits (die Sicherheitsstufe vergleichbar mit Curve25519). Diese gelten alle als weniger sicher als ihre modernen Alternativen und sind daher für die Verwendung in neuen Daten oder in einigen Fällen sogar für die Nutzung bestehender Daten ungeeignet. Protons Standard war schon lange Curve25519, was sicherer ist.

Verhinderung von Schlüsselüberschreibungsangriffen

Ein Bereich der Forschung des Proton Crypto-Teams waren Schlüsselüberschreibungsangriffe, und im Jahr 2022 haben wir eine Forschungsarbeit(new window) zu diesem Thema zusammen mit Professor Kenneth Paterson von der ETH Zürich veröffentlicht. Diese Forschung wurde auch auf der ACM-Konferenz für Computersicherheit und Kommunikationssicherheit in Los Angeles im November 2022 vorgestellt. Während wir Sicherheitspatches zu OpenPGP.js und GopenPGP(new window) hinzugefügt haben, sobald wir diese Probleme entdeckten, adressiert die neueste OpenPGP-Spezifikation die Schwachstellen auf effizientere Weise.

Robustheit gegenüber zukünftigen Schwachstellen

Während die meisten Änderungen im Krypto-Refresh darauf abzielen, bekannte Schwachstellen zu beheben oder die verwendeten kryptografischen Primitive zu modernisieren, sind einige dazu gedacht, potenzielle Schwachstellen in kryptografischen Primitiven, die in der Zukunft entdeckt werden könnten, daran zu hindern, OpenPGP zu beeinflussen.

Insbesondere werden Signaturen jetzt gesalzen – mit anderen Worten, ein zufälliger Wert wird vor der zu signierenden Nachricht oder dem Dokument gehasht. Das erschwert es, einen Kollisionsangriff durchzuführen, bei dem ein Angreifer eine Signatur eines bestimmten Dokuments durch eine Signatur eines anderen Dokuments ersetzt, das denselben Präfix teilt, da diese Signatur möglicherweise mit einem anderen Salz gehasht wurde, was bedeutet, dass der Präfix nicht übereinstimmen würde.

Das bedeutet, dass wenn ein Angriff wie SHAttered(new window) (der eine Kollision in SHA1 demonstrierte) jemals gegen aktuelle Hash-Algorithmen (wie SHA2) gefunden wurde, OpenPGP nicht so stark betroffen wäre.

Bevorstehende Verbesserungen

Nach der Krypto-Aktualisierung des OpenPGP-Standards planen wir, weiterhin mit der OpenPGP-Arbeitsgruppe zusammenzuarbeiten, um noch fortschrittlichere Kryptografie und zusätzliche Funktionen zu PGP zu bringen, wie zum Beispiel:

Sicherheitsverbesserungen

  • Post-Quanten-Kryptografie (ein Thema, an dem wir bereits gearbeitet haben. Wir werden in Kürze einen separaten Blogbeitrag dazu veröffentlichen.)
  • Vorwärtsgeheimhaltung (Schutz von Nachrichten, die heute gesendet werden, selbst wenn ein Schlüssel morgen kompromittiert wird)
  • Domänentrennung für Signierung und/oder Verschlüsselung

Ermöglichung neuer Funktionalitäten

  • Automatische Weiterleitung mit Proxy-Re-Verschlüsselung
  • Beständige symmetrische Schlüssel für die langfristige Speicherung von symmetrischem Schlüsselmaterial, symmetrisch verschlüsselten Nachrichten und symmetrischen Beglaubigungen
  • Designierter Widerrufer zur Ersetzung des veralteten Widerrufsschlüssel-Mechanismus
  • Beglaubigungs-Signaturen zur Erleichterung von Erstpartei-beglaubigten Drittpartei-Zertifizierungen (1PA3PC).
  • Überholte Schlüssel zur Erleichterung des Übergangs zu neuen Schlüsseln
  • Zustandsloses OpenPGP-Interface (SOP)
  • Erweiterungen zu RFC 3156(new window) (PGP/MIME)

Spezifikationen und Verbesserungen von netzwerkbasierten Schlüsselentdeckungsmechanismen

  • HTTP-Schlüsselserverprotokoll (HKP)
  • Web Key Directory (WKD)

Weitere Details zu den vorgeschlagenen Themen findest du hier(new window).

Spezifikation und Implementierungen

Das „Crypto-Refresh“-Update des OpenPGP-Standards wird derzeit vom Sicherheitsbereichsleiter der IETF geprüft. Sobald das Dokument diese Prüfung besteht, wird es als neuer Standard veröffentlicht.

Die Spezifikation wurde von Daniel Huigens von Proton, Justus Winter von Sequoia-PGP und Niibe Yutaka von der Free Software Initiative of Japan (FSIJ) mitverfasst. Sie wurde von Paul Wouters von Aiven bearbeitet. Die Arbeitsgruppenvorsitzenden, Daniel Kahn Gillmor von der American Civil Liberties Union (ACLU) und Stephen Farell vom Trinity College Dublin, leiteten den Prozess. Wir möchten ihnen und allen anderen, die zum Crypto-Refresh beigetragen haben, danken, weil sie das Internet sicherer gemacht haben!

Wir haben das Crypto-Refresh bereits in OpenPGP.js und GopenPGP implementiert, den beiden Open-Source-OpenPGP-Bibliotheken, die Proton pflegt. Wir werden bald neue Versionen mit diesen Verbesserungen veröffentlichen, sodass jede Anwendung, die diese Bibliotheken verwendet, einschließlich Proton Mail, Proton Drive, Proton Pass und viele andere, von den Sicherheits- und Leistungsverbesserungen des Crypto-Refresh profitieren kann.

Wir möchten auch dem Sovereign Tech Fund(new window), einer vom deutschen Bundesministerium für Wirtschaft und Klimaschutz finanzierten Initiative, die Open-Source-Projekte unterstützt, die zur digitalen Infrastruktur im öffentlichen Interesse beitragen, für die Finanzierung der Implementierung des Crypto-Refresh in OpenPGP.js und GopenPGP(new window) danken.

Den Implementierungsfortschritt verschiedener OpenPGP-Bibliotheken, einschließlich OpenPGP.js und GopenPGP, kannst du in den Ergebnissen der OpenPGP-Interoperabilitätstestsuite für das Crypto-Refresh(new window) einsehen. Diese Testreihe wurde von Sequoia-PGP entwickelt, um OpenPGP-Implementierungen auf Interoperabilität zu testen und sicherzustellen, dass E-Mail-Nachrichten zwischen zwei Benutzern gesendet werden können, unabhängig davon, welche Anwendung oder OpenPGP-Implementierung sie verwenden.

Einfluss

PGP wird verwendet, um mehrere Proton-Dienste wie Proton Mail, Proton Drive und Proton Pass zu sichern, aber das sind bei weitem nicht die einzigen. Thunderbird, der beliebte Desktop-E-Mail-Client, unterstützt OpenPGP standardmäßig. Mailvelope und Flowcrypt, beides Browser-Erweiterungen, die OpenPGP.js verwenden, ermöglichen es jedem, seine E-Mails mit OpenPGP Ende-zu-Ende zu verschlüsseln, auch wenn ihr E-Mail-Anbieter keine Ende-zu-Ende-Verschlüsselung unterstützt. Letztere bieten auch mobile Apps für Android und iOS an. All diese Anwendungen und viele mehr bilden das OpenPGP-Ökosystem, das es Benutzern ermöglicht, interoperabel verschlüsselte Nachrichten zu senden, ohne an einen einzigen Anbieter oder eine einzige Anwendung gebunden zu sein. Der offene Standard fördert Innovationen und verhindert Lock-in-Effekte, was letztlich den Endbenutzern zugutekommt.

Dank des Crypto-Refresh werden die Millionen von Menschen, die diese Anwendungen nutzen, von all den oben genannten Sicherheits- und Leistungsverbesserungen profitieren. Deine Nachrichten werden sicherer verschlüsselt, egal ob du mit einem anderen Proton-Nutzer oder einem Nutzer einer der anderen Anwendungen mit OpenPGP-Unterstützung kommunizierst.

Mit deiner Unterstützung freuen wir uns darauf, weiterhin interoperable, quelloffene und offene Standards für Kryptografie zu entwickeln, um die Mission von Proton und das gesamte Ökosystem der Open-Source-Privatsphäre voranzutreiben.

Diese Arbeit wurde von Daniel Huigens, Lara Bruseghini und Lukas Burkhalter aus dem Proton Kryptografie-Team durchgeführt.

Related articles

A cover image for a blog describing the next six months of Proton Pass development which shows a laptop screen with a Gantt chart
Take a look at the upcoming features and improvements coming to Proton Pass over the next several months.
The Danish mermaid and the Dutch parliament building behind a politician and an unlocked phone
We searched the dark web for Danish, Dutch, and Luxembourgish politicians’ official email addresses. In Denmark, over 40% had been exposed.
Infostealers: What they are, how they work, and how to protect yourself
Discover insights about what infostealers are, where your stolen information goes, and ways to protect yourself.
Mockup of the Proton Pass app and text that reads "Pass Lifetime: Pay once, access forever"
Learn more about our exclusive Pass + SimpleLogin Lifetime offer. Pay once and enjoy premium password manager features for life.
A cover image for a blog announcing that Pass Plus will now include premium SimpleLogin features
We're changing the price of new Pass Plus subscriptions, which now includes access to SimpleLogin premium features.
Infinity symbol in purple with the words "Call for submissions" and "Proton Lifetime Fundraiser 7th Edition"
It’s time to choose the organizations we should support for the 2024 edition of our annual charity fundraiser.