Zum Inhalt springen

Kryptografie Deep Dive

Wie Nudge deine Nachrichten schützt (und warum das wichtig ist)

Nudge ist für hochriskante Kommunikation gebaut: Ende‑zu‑Ende‑verschlüsseltes Messaging und Calling, entwickelt, um sicher zu bleiben, auch wenn Gegner und Fähigkeiten sich weiterentwickeln. Diese Seite erklärt die Kryptografie auf detailliertem, technischem Niveau – einschließlich aller kryptografischen Primitiven, Swift‑Pakete und wie sie zusammenarbeiten.

Ende‑zu‑Ende‑Verschlüsselung

Nachrichteninhalte werden auf deinem Gerät verschlüsselt und nur von beabsichtigten Empfängern entschlüsselt. Server können Daten weiterleiten, aber sie können sie nicht lesen.

Forward Secrecy

Wenn ein Geräteschlüssel in der Zukunft kompromittiert wird, bleiben vergangene Nachrichten geschützt, weil Nachrichtenschlüssel sich kontinuierlich weiterentwickeln.

Post‑Compromise‑Sicherheit

Nach einer Kompromittierung kann das Protokoll "heilen", wenn neue Geheimnisse eingeführt werden – was begrenzt, wie lange ein Angreifer den Traffic weiterlesen kann.

Swift‑Pakete & Architektur

Nudges kryptografischer Stack ist aus mehreren Open‑Source‑Swift‑Paketen aufgebaut, jedes mit einer spezifischen Rolle bei der Bereitstellung von sicherem, Post‑Quanten‑Messaging.

📦

PostQuantumSolace

github.com/needletails/post-quantum-solace

Das High‑Level‑Session‑Management‑SDK, das alle kryptografischen Operationen orchestriert. PostQuantumSolace bietet die PQSSession API zum Erstellen von Sessions, Senden von Nachrichten, Verwalten von Geräten und Handhaben der Schlüsselrotation. Es kombiniert Double‑Ratchet‑Protokollausführung mit Post‑Quanten‑Schlüsselaustausch, um Ende‑zu‑Ende‑verschlüsseltes Messaging mit Forward Secrecy und Post‑Compromise‑Sicherheit zu liefern.

Abhängigkeiten: DoubleRatchetKit, NeedleTailLogger, NeedleTailAlgorithms

🧷

DoubleRatchetKit

github.com/needletails/double-ratchet-kit

Implementiert den Double‑Ratchet‑Algorithmus mit Post‑Quantum X3DH (PQXDH)‑Integration. Dieses Paket bietet das Kernprotokoll für Forward Secrecy und Post‑Compromise‑Sicherheit. Es behandelt den hybriden Schlüsselaustausch (Curve25519 + MLKEM1024), Nachrichtenschlüsselableitung, Header‑Verschlüsselung und Zustandsverwaltung für sichere Messaging‑Sessions. Der DoubleRatchetStateManager Actor verwaltet Ratchet‑Zustand und bietet threadsichere Verschlüsselungs‑/Entschlüsselungsoperationen.

Abhängigkeiten: NeedleTailCrypto, NeedleTailLogger, BinaryCodable

🔐

NeedleTailCrypto

github.com/needletails/needletail-crypto

Ein umfassendes kryptografisches Wrapper um Swift Crypto (swift‑crypto) und CryptoKit. NeedleTailCrypto bietet High‑Level‑APIs für Schlüsselgenerierung (Curve25519, P256, P384, P521, MLKEM1024), symmetrische Verschlüsselung/Entschlüsselung (AES‑GCM), Schlüsselvereinbarung (ECDH), Schlüsselableitung (HKDF) und sichere Schlüsselspeicherung über Keychain und Secure Enclave auf Apple‑Plattformen. Dieses Paket abstrahiert Low‑Level‑kryptografische Operationen und bietet eine konsistente, produktionsreife Schnittstelle.

Abhängigkeiten: swift‑crypto (Apple), swift‑collections

⚙️

NeedleTailAlgorithms

github.com/needletails/needletail-algorithms

Bietet Algorithmusimplementierungen, die im gesamten kryptografischen Stack verwendet werden, einschließlich Datenstrukturen und Utilities für kryptografische Operationen. Dieses Paket enthält gemeinsame algorithmische Komponenten, die von PostQuantumSolace und anderen NeedleTails‑Paketen verwendet werden.

📝

NeedleTailLogger

github.com/needletails/needletail-logger

Ein Logging‑Framework, das im gesamten kryptografischen Stack für Debugging, Monitoring und Audit‑Trails verwendet wird. Bietet strukturiertes Logging mit konfigurierbaren Log‑Levels und threadsicheren Logging‑Operationen.

🔢

BinaryCodable

github.com/needletails/binary-codable

Bietet effiziente binäre Codierung und Decodierung für kryptografische Datenstrukturen. Wird zum Serialisieren von Schlüsseln, Nachrichten und Protokollzustand in einem kompakten, plattformunabhängigen Format verwendet.

🍎

swift-crypto

github.com/apple/swift-crypto

Apples plattformübergreifende kryptografische Bibliothek, die die grundlegenden kryptografischen Primitiven bereitstellt. Dieses Paket implementiert MLKEM1024 (Kyber), Curve25519, AES‑GCM, SHA‑256, SHA‑512, HKDF, HMAC und andere Standardalgorithmen. Es ist die Low‑Level‑kryptografische Engine, die NeedleTailCrypto und den gesamten Stack antreibt.

Kryptografische Primitiven

Nudge verwendet eine sorgfältig ausgewählte Menge von kryptografischen Primitiven, jede gewählt für spezifische Sicherheitseigenschaften, Leistungsmerkmale und Widerstandsfähigkeit gegen sowohl klassische als auch Quantenangriffe.

MLKEM‑1024 (Kyber‑1024)

Was es ist: MLKEM‑1024 ist der NIST‑standardisierte Post‑Quanten‑Schlüsselkapselungsmechanismus (KEM) basierend auf dem Kyber‑Algorithmus. Er ist darauf ausgelegt, Angriffen von sowohl klassischen als auch Quantencomputern zu widerstehen.

Was es tut: MLKEM‑1024 ermöglicht es zwei Parteien, einen gemeinsamen Geheimschlüssel über einen unsicheren Kanal zu etablieren. Eine Partei generiert ein öffentliches/privates Schlüsselpaar, und die andere Partei verwendet den öffentlichen Schlüssel, um ein gemeinsames Geheimnis zu kapseln. Der private Schlüsselinhaber kann dann das Geheimnis dekapsulieren. Dies bietet Sicherheit auch gegen Gegner mit Quantencomputern.

Warum es wichtig ist: Klassische Schlüsselaustauschalgorithmen (wie RSA, ECC) werden von großflächigen Quantencomputern gebrochen. MLKEM‑1024 bietet "Harvest now, decrypt later"‑Schutz – selbst wenn ein Angreifer heute verschlüsselten Traffic aufzeichnet, kann er ihn in der Zukunft nicht mit Quantencomputern entschlüsseln.

Implementierung: Bereitgestellt von swift‑crypto (Apple), verwendet im PQXDH‑Handshake

Curve25519

Was es ist: Curve25519 ist eine leistungsstarke elliptische Kurve, die für Elliptic Curve Diffie‑Hellman (ECDH)‑Schlüsselvereinbarung entwickelt wurde. Sie bietet 128 Bit Sicherheit und ist weit verbreitet in modernen kryptografischen Systemen.

Was es tut: Ermöglicht es zwei Parteien, ein gemeinsames Geheimnis durch Austausch von öffentlichen Schlüsseln zu etablieren. Jede Partei kombiniert ihren privaten Schlüssel mit dem öffentlichen Schlüssel der anderen, um dasselbe gemeinsame Geheimnis abzuleiten. Curve25519 wird sowohl für Schlüsselvereinbarung (ECDH) als auch für digitale Signaturen (Ed25519) in Nudge verwendet.

Warum es wichtig ist: Während nicht quantenresistent, bietet Curve25519 sofortige Sicherheit gegen klassische Angreifer und ist extrem schnell. In Nudges hybridem PQXDH‑Design bietet Curve25519 Sicherheit heute, während MLKEM‑1024 Sicherheit gegen zukünftige Quantenbedrohungen bietet. Beide müssen gebrochen werden, damit ein Angreifer die Session kompromittieren kann.

Implementierung: Bereitgestellt von swift‑crypto (Apple), verwendet im PQXDH‑Handshake und bei Geräteschlüsselsignierung

HKDF (HMAC‑basierte Schlüsselableitungsfunktion)

Was es ist: HKDF ist eine Schlüsselableitungsfunktion, die sicher mehrere Schlüssel aus einem einzigen gemeinsamen Geheimnis oder High‑Entropy‑Input ableitet. Sie verwendet HMAC (Hash‑basierter Message Authentication Code) als zugrundeliegende Primitive.

Was es tut: Nimmt ein gemeinsames Geheimnis (vom Schlüsselaustausch) und leitet zweckspezifische Schlüssel für Verschlüsselung, Authentifizierung und andere Verwendungen ab. HKDF verwendet ein Salt (für Domain‑Trennung) und optionale Kontextinformationen, um sicherzustellen, dass verschiedene Schlüssel für verschiedene Zwecke abgeleitet werden. Nudge verwendet HKDF mit SHA‑512 zum Ableiten von Sessionschlüsseln aus PQXDH‑gemeinsamen Geheimnissen.

Warum es wichtig ist: Schlüsselableitung verhindert Schlüsselwiederverwendung über verschiedene Kontexte hinweg, was für die Sicherheit kritisch ist. Jeder abgeleitete Schlüssel ist kryptografisch unabhängig, sodass die Kompromittierung eines Schlüssels andere nicht beeinflusst. HKDF wird auch im Double‑Ratchet‑Protokoll verwendet, um Nachrichtenschlüssel aus Chain‑Schlüsseln abzuleiten.

Implementierung: HKDF<SHA512> und HKDF<SHA256> von swift‑crypto, verwendet im gesamten Protokoll

AES‑GCM (Advanced Encryption Standard – Galois/Counter Mode)

Was es ist: AES‑GCM ist ein authentifizierter Verschlüsselungsalgorithmus, der sowohl Vertraulichkeit (Verschlüsselung) als auch Integrität (Authentifizierung) in einem einzigen Vorgang bietet. Er verwendet den AES‑Blockchiffre im Galois/Counter Mode.

Was es tut: Verschlüsselt Nachrichteninhalte und generiert ein Authentifizierungs‑Tag, das beweist, dass die Nachricht nicht manipuliert wurde. AES‑GCM wird verwendet, um alle Nachrichtennutzdaten in Nudge zu verschlüsseln, was sicherstellt, dass Nachrichten von Angreifern weder gelesen noch modifiziert werden können.

Warum es wichtig ist: Authentifizierte Verschlüsselung verhindert sowohl Abhören als auch Manipulation. Wenn ein Angreifer eine verschlüsselte Nachricht modifiziert, ist das Authentifizierungs‑Tag ungültig und die Entschlüsselung schlägt fehl. Nudge verwendet AES‑256‑GCM, was 256 Bit Sicherheit bietet.

Implementierung: Bereitgestellt von swift‑crypto (Apple), verwendet für alle Nachrichtenverschlüsselung über NeedleTailCrypto

SHA‑256 & SHA‑512 (Secure Hash Algorithms)

Was es ist: SHA‑256 und SHA‑512 sind kryptografische Hash‑Funktionen, die feste Größenausgaben (256 bzw. 512 Bit) aus beliebigen Eingaben produzieren. Sie sind Einwegfunktionen – einfach zu berechnen, aber rechnerisch nicht umkehrbar.

Was es tut: Werden im gesamten kryptografischen Stack für verschiedene Zwecke verwendet: SHA‑256 wird in HMAC für Chain‑Schlüsselableitung im Double Ratchet verwendet, SHA‑512 wird in HKDF für Sessionschlüsselableitung aus PQXDH‑gemeinsamen Geheimnissen verwendet, und beide werden für Integritätsverifizierung und Schlüsselableitung verwendet.

Warum es wichtig ist: Hash‑Funktionen sind fundamentale Bausteine. Sie stellen sicher, dass Schlüssel deterministisch abgeleitet werden, dass Datenintegrität verifiziert werden kann und dass kryptografische Operationen konsistente Ergebnisse produzieren. SHA‑512 bietet zusätzliche Sicherheitsmarge für Schlüsselableitungsoperationen.

Implementierung: Bereitgestellt von swift‑crypto (Apple), verwendet in HKDF, HMAC und Schlüsselableitung

HMAC (Hash‑basierter Message Authentication Code)

Was es ist: HMAC ist ein Message Authentication Code, der eine kryptografische Hash‑Funktion (wie SHA‑256) kombiniert mit einem geheimen Schlüssel verwendet, um ein Tag zu produzieren, das sowohl die Authentizität als auch die Integrität einer Nachricht verifiziert.

Was es tut: In Nudge wird HMAC‑SHA256 im Double‑Ratchet‑Protokoll verwendet, um Chain‑Schlüssel und Nachrichtenschlüssel abzuleiten. Jeder Ratchet‑Schritt verwendet HMAC, um die Schlüsselkette voranzutreiben, was sicherstellt, dass Schlüssel deterministisch und sicher weiterentwickelt werden.

Warum es wichtig ist: HMAC stellt sicher, dass Schlüsselableitung sicher und deterministisch ist. Es wird umfangreich im Double Ratchet verwendet, um Forward Secrecy zu bieten – jede Nachricht verwendet einen eindeutigen Schlüssel, der vom vorherigen Schlüssel abgeleitet wird, sodass die Kompromittierung eines Schlüssels vergangene oder zukünftige Schlüssel nicht preisgibt.

Implementierung: HMAC<SHA256> von swift‑crypto, verwendet in Double‑Ratchet‑Schlüsselableitung

Wie alles zusammenarbeitet

1) Post‑Quanten‑Handshake (PQXDH)

Wenn zwei Benutzer eine Unterhaltung beginnen, führt Nudge einen hybriden Schlüsselaustausch durch:

  1. Curve25519 ECDH: Beide Parteien tauschen Curve25519‑öffentliche Schlüssel aus und leiten ein gemeinsames Geheimnis unter Verwendung von Elliptic Curve Diffie‑Hellman ab
  2. MLKEM‑1024‑Kapselung: Eine Partei verwendet den MLKEM‑1024‑öffentlichen Schlüssel der anderen, um ein gemeinsames Geheimnis zu kapseln
  3. Geheimniskombination: Das Curve25519‑gemeinsame Geheimnis und das MLKEM‑1024‑gemeinsame Geheimnis werden verkettet
  4. HKDF‑Ableitung: HKDF‑SHA512 leitet den Root‑Schlüssel und die initialen Chain‑Schlüssel aus den kombinierten Geheimnissen ab

Dieser hybride Ansatz stellt Sicherheit gegen sowohl klassische Angreifer (Curve25519) als auch Quantenangreifer (MLKEM‑1024) sicher. Beide müssen gebrochen werden, um die Session zu kompromittieren.

2) Kontinuierliche Schlüsselentwicklung (Double Ratchet)

Nach dem Handshake bietet das Double‑Ratchet‑Protokoll Forward Secrecy:

  1. Symmetrischer Ratchet: Jede Nachricht rückt einen Chain‑Schlüssel unter Verwendung von HMAC‑SHA256 vor, wodurch ein eindeutiger Nachrichtenschlüssel abgeleitet wird
  2. Nachrichtenverschlüsselung: Der Nachrichtenschlüssel wird mit AES‑256‑GCM verwendet, um die Nachrichtennutzdaten zu verschlüsseln
  3. DH‑Ratchet: Periodisch aktualisieren neue Diffie‑Hellman‑Schlüsselaustausche den Root‑Schlüssel und erstellen neue Chain‑Schlüssel
  4. Schlüsselrotation: Alte Schlüssel werden verworfen, was Forward Secrecy sicherstellt – die Kompromittierung aktueller Schlüssel gibt vergangene Nachrichten nicht preis

Der Double Ratchet stellt sicher, dass jede Nachricht einen eindeutigen Verschlüsselungsschlüssel verwendet und Schlüssel sich kontinuierlich weiterentwickeln, um Post‑Compromise‑Sicherheit zu bieten.

Was verschlüsselt ist (und was nicht)

Starke Kryptografie schützt Nachrichteninhalte. Wie bei allen Messaging‑Systemen kann es immer noch einige Netzwerk‑Level‑Metadaten (z. B. IP‑Routing) geben. Nudges Stack unterstützt auch Metadatenschutztechniken wie verschlüsselte Header, um Traffic‑Analyse‑Signale zu reduzieren.

  • Verschlüsselt: Nachrichteninhalte, Sessionschlüssel, sensible Metadaten (wo unterstützt)
  • Reduzierte Exposition: Zähler/Schlüsselidentifikatoren über Header‑Verschlüsselung (wo anwendbar)
  • Immer noch möglich: Transport‑Level‑Beobachtungen (Timing, Endpunkte) je nach Netzwerkbedingungen

Sicherheitseigenschaften

Nudges kryptografisches Design bietet mehrere Sicherheitsebenen:

  • Post‑Quanten‑Sicherheit: MLKEM‑1024 schützt vor zukünftigen Quantenangriffen
  • Forward Secrecy: Vergangene Nachrichten bleiben sicher, auch wenn aktuelle Schlüssel kompromittiert werden
  • Post‑Compromise‑Sicherheit: Sessions können sich von Schlüsselkompromittierung erholen
  • Authentifizierte Verschlüsselung: AES‑GCM verhindert sowohl Abhören als auch Manipulation
  • Metadatenschutz: Header‑Verschlüsselung reduziert Traffic‑Analyse

Möchtest du eine private Nudge‑Community?

NeedleTails bietet kostenpflichtige Serverimplementierungsdienste für Organisationen, die private Deployment, Governance‑Kontrollen und operative Verantwortlichkeit benötigen.

Spenden