Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Post-Quanten-Kryptografie » WvdS Crypto Service – Überblick » Konzepte » Bauformen im Vergleich

Bauformen im Vergleich

Der Dienst liegt in zwei Bauformen vor, l4re und win. Beide sind eigenständige Rust-Pakete ohne gemeinsamen Quelltext. Sie bieten dieselben Verfahren an, unterscheiden sich aber in Transport, Nachrichtenformat, Operationsumfang und Fehlercodes. Diese Seite hilft bei der Wahl und zeigt, wo eine Anbindung an die eine Bauform nicht auf die andere übertragbar ist.

Begriffe

  • Bauform: eines der beiden Pakete, l4re-crypto-service im Ordner l4re/ oder wvds-crypto-service-win im Ordner win/.
  • Dataspace: ein Speicherbereich unter L4Re, den zwei Tasks gemeinsam einblenden.
  • DataspaceEndpoint: die Komponente des Plattformlieferanten, die zwei Tasks über Dataspaces verbindet. Sie gehört nicht zum Dienst; der Dienst ruft sie über eine C-Schnittstelle auf.
  • Named Pipe: ein benannter Kommunikationskanal von Windows, hier zeilenweise genutzt: eine JSON-Zeile je Anfrage, eine JSON-Zeile je Antwort.

Gegenüberstellung

l4rewin
ZielsystemL4Re auf x86_64 und aarch64Windows x86_64
Fassung0.2.00.3.0
TransportDataspaceEndpoint, geteilter SpeicherNamed Pipes, Standardname \\.\pipe\wvds_crypto
Nachrichtenformatbinär, 16-Byte-Kopf, Little Endianeine JSON-Zeile, Binärdaten Base64-kodiert
Größte Nachricht64 KiB Nutzdatennicht begrenzt
Operationen10 bediente Anfragetypen, 12 mit ChaCha20; 5 reserviert10 benannte Operationen
Schlüssel erzeugenML-DSA, ML-KEMAES-256, ML-DSA, ML-KEM
Nonce bei AES-GCMliefert die anfragende Seiteerzeugt der Dienst
FehlercodesZahlen, 32 BitNamen wie KEY_NOT_FOUND
Verbindliche Beschreibungl4re/pub/include/wvds_crypto.hwin/src/protocol.rs
BedienoberflächekeineTextoberfläche im Terminal, abschaltbar

Die Einzelheiten jeder Spalte stehen unter Binärprotokoll der L4Re-Bauform und JSON-Protokoll der Windows-Bauform.

Wann welche Bauform

l4re ist für Systeme gedacht, in denen sicherheitskritische Teile als getrennte Tasks auf dem Mikrokern L4Re laufen. Der Krypto-Dienst ist dann eine eigene Task; ein Fehler in der anfragenden Task erreicht die Schlüssel nicht, weil der Mikrokern die Adressräume trennt.

win ist für Entwicklung, Vorführung und Windows-Gateways gedacht. Das JSON-Format lässt sich mit jedem Werkzeug lesen und schreiben, das eine Named Pipe öffnen kann. Mehrere Pipes („Gateways“) mit eigener Statistik lassen sich über eine Konfigurationsdatei betreiben; siehe Bauoptionen und Konfiguration.

Wie die L4Re-Bauform heute gebaut wird

Die Bauziele in l4re/.cargo/config.toml sind x86_64-unknown-linux-gnu und aarch64-unknown-linux-gnu. Ein eigenes Rust-Ziel für L4Re ist vorbereitet, aber auskommentiert, weil es das L4Re-SDK voraussetzt.

Daraus folgt:

  • Der Weg, der Anfragen über DataspaceEndpoint annimmt, wird nur übersetzt, wenn das Zielsystem L4Re ist (target_os = "l4re").
  • Ein Programm für ein Linux-Ziel startet stattdessen eine Vorführung: Es führt AES-256-GCM, ML-DSA-65, ML-KEM-768 und HKDF-SHA256 je einmal aus, gibt das Ergebnis aus und endet.
  • Unter Windows ersetzt das Paket l4re die Funktionen von DataspaceEndpoint durch Platzhalter, die stets scheitern. So lassen sich Bibliothek und Tests ohne L4Re übersetzen und prüfen.

Wer den Dienst als echte L4Re-Task betreiben will, braucht das L4Re-SDK, ein Rust-Ziel für L4Re und die Bibliothek DataspaceEndpoint des Plattformlieferanten.

Was diese Seite nicht behandelt

  • Den Aufbau der einzelnen Nachrichten; dafür gibt es die beiden Protokollreferenzen.
  • Den Bau selbst; siehe Bauen und testen.
de/wiki/pqcrypt/svc/concepts/deployment-forms.txt · Zuletzt geändert: von Wolfgang van der Stille