Verschlüsselung mit X.509-Zertifikat: Wie funktioniert es?

PRINZIP

Die Public-Key-Verschlüsselung mit X.509-Zertifikaten ermöglicht die Sicherung des Datenaustauschs ohne vorher geteiltes Geheimnis. Der Absender verwendet den öffentlichen Schlüssel des Empfängers (verfügbar in dessen X.509-Zertifikat), um ein temporäres Geheimnis zu verschlüsseln, das dann zur Verschlüsselung des Inhalts mit einem leistungsfähigen symmetrischen Algorithmus verwendet wird.

TECHNISCHE DETAILS

Die Verschlüsselung mit X.509-Zertifikat kombiniert zwei Arten der Kryptographie:

  1. Asymmetrische Kryptographie (oder Public-Key): wird für den sicheren Austausch des Sitzungsschlüssels verwendet
  2. Symmetrische Kryptographie: wird für die effiziente Datenverschlüsselung verwendet

Die Anwendung bietet zwei symmetrische Verschlüsselungsalgorithmen zur Auswahl:

  • AES-GCM (Advanced Encryption Standard im Galois/Counter Mode mit AAD - Additional Authenticated Data)
  • ChaCha20-Poly1305 (Kombination der ChaCha20-Stromchiffre mit dem Poly1305-Authentifikator)

VERSCHLÜSSELUNGSPROZESS

  1. Der Absender ruft das X.509-Zertifikat des Empfängers ab, das seinen öffentlichen Schlüssel enthält
  2. Ein zufälliger symmetrischer Schlüssel (Sitzungsschlüssel) wird generiert
  3. Dieser Sitzungsschlüssel wird mit dem öffentlichen Schlüssel aus dem X.509-Zertifikat des Empfängers verschlüsselt
  4. Der Sitzungsschlüssel wird mit dem gewählten Algorithmus (AES-GCM oder ChaCha20-Poly1305) zur Datenverschlüsselung verwendet
  5. Die finale Nachricht enthält:
  • Den verschlüsselten Sitzungsschlüssel
  • Die verschlüsselten Daten
  • Informationen über den verwendeten Algorithmus
  • Authentifizierungs-Metadaten

CHARAKTERISTIKEN DER SYMMETRISCHEN ALGORITHMEN

AES-GCM

  • Verwendet den AES-Algorithmus mit einer Schlüsselgröße von 256 Bit
  • GCM-Modus (Galois/Counter Mode) mit AAD, der sowohl Vertraulichkeit als auch Authentizität gewährleistet
  • Benötigt einen eindeutigen Initialisierungsvektor (IV) für jede Nachricht
  • Weit verbreiteter und geprüfter Standard
  • Exzellente Leistung auf Prozessoren mit AES-NI-Instruktionen

ChaCha20-Poly1305

  • Kombiniert die ChaCha20-Stromchiffre (256 Bit) mit dem Poly1305-Authentifikator
  • Benötigt eine eindeutige Nonce für jede Nachricht
  • Exzellente Leistung auf mobilen Geräten und Prozessoren ohne AES-NI-Instruktionen
  • In modernen Protokollen wie TLS 1.3 eingesetzt

KRYPTOGRAPHISCHE UNABHÄNGIGKEIT

Die beiden Algorithmen (AES-GCM und ChaCha20-Poly1305) basieren auf unterschiedlichen kryptographischen Prinzipien:

  • AES-GCM verwendet Blockchiffre-Verschlüsselung
  • ChaCha20-Poly1305 verwendet Stromchiffre-Verschlüsselung

Diese Unabhängigkeit bietet einen wichtigen Sicherheitsvorteil: Wenn in einem der Algorithmen eine Schwachstelle entdeckt würde, wäre der andere normalerweise nicht von derselben Schwachstelle betroffen. Dies bietet der Anwendung zusätzliche Sicherheit, da bei Bedarf von einem Algorithmus zum anderen gewechselt werden kann.