49. pepsi-stage-reencrypt

Versiegelt, was das Gateway entschlüsselt hat, an den eigenen Schlüssel des Empfängers, bevor es abgelegt wird.

49.1. Rolle

pepsi-stage-decrypt öffnet Mail, die an den Gateway-Schlüssel (MTA-Schlüssel) eines Benutzers verschlüsselt ist, damit die Stages danach den Inhalt lesen können. pepsi-stage-reencrypt läuft, sobald sie das getan haben, unmittelbar vor der lokalen Zustellung, und versiegelt die Nachricht erneut — an den Schlüssel, den der Benutzer für seinen eigenen Mail-Client registriert hat (eine Identität mit custody = client, der MUA-Schlüssel). Das Postfach enthält dann Chiffrat, das nur dieser Client öffnen kann. Referenz: pepsi-stage-reencrypt(1).

49.2. Funktionen

  • Nur, was das Gateway geöffnet hat. state.crypto.in muss angeben, dass die Nachricht verschlüsselt eintraf und entschlüsselt wurde; Mail, die im Klartext eintraf, und Mail, die Decrypt für den Client ungeöffnet ließ, werden unverändert durchgereicht.

  • Ein Empfänger, ein Schlüssel. Eine Nachricht, deren Empfänger unterschiedlich behandelt werden, wird zuerst in einen Datensatz pro Empfänger aufgeteilt; jede Kopie wird an den neuesten aktiven MUA-Schlüssel dieses Empfängers versiegelt, OpenPGP oder S/MIME.

  • Header. Der Autocrypt:-Header des Absenders, die Transportspur, die Adressfelder und X-Pepsi-Crypto bleiben außen; die Inhaltsfelder und Autocrypt-Gossip: kommen nach innen. PROTECT_HEADERS verbirgt zusätzlich den Betreff.

  • Keine Signatur wird hinzugefügt: Das Urteil der Decrypt-Stage ist bereits in state.crypto.in und X-Pepsi-Crypto festgehalten, und eine Gateway-Signatur würde nur behaupten, dass das Gateway die Nachricht versiegelt hat.

  • Eine Richtlinie für Benutzer ohne Schlüssel (ON_NO_CLIENT_KEY): Klartext zustellen (Standard) oder mit einer 5.7.5-DSN abweisen, die weder Nachrichtentext noch Betreff zurückgibt. Pro Empfänger über pepsi-settings einstellbar.

  • Unprivilegiert: Das Versiegeln an einen öffentlichen Schlüssel braucht kein privates Material, daher ist sie anders als die anderen Krypto-Stages in das Multi-Call-pepsi-Binärprogramm eingefaltet und läuft als gewöhnlicher Benutzer pepsi.

49.3. Konfiguration

Ein verpflichtendes NEXT_STAGE (lokale Zustellung), BOUNCE_STAGE (für Abweisungen), ON_NO_CLIENT_KEY (plaintext/bounce), PROTECT_HEADERS (Standardwert no), ENABLED und die Lokalitätsoptionen LOCAL_DOMAINS / TARGETS / RECIPIENT_DELIMITER / REQUIRE_ACCOUNT mit den Standardwerten der Decrypt-Stage. Die ganze Nachricht wird geladen. Siehe Konfiguration.

[stage-reencrypt]
PROGRAM = pepsi-stage-reencrypt
NEXT_STAGE = local
BOUNCE_STAGE = bounce

49.4. Platzierung

Nach allem, was die Nachricht liest oder eine Kopie anderswohin weiterleiten kann — Spracherkennung, die Spam-Tore, pepsi-stage-autocrypt-learn, Aliase, Abwesenheitsnotiz, ~/.forward — und direkt vor pepsi-stage-relay-to-maildir oder pepsi-stage-relay-to-lmtp. Der Setup-Assistent bietet sie zusammen mit der Kryptographie-Frage an und platziert sie dort; pepsi-setup warnt bei jeder anderen Reihenfolge.