48. pepsi-stage-autocrypt-learn

Die Schlüssel von Korrespondenten aus der Mail lernen, die sie uns senden.

48.1. Rolle

pepsi-stage-autocrypt-learn ist die Stelle, an der eine eingehende Nachricht Pepsi einen öffentlichen Schlüssel beibringt: der Autocrypt:-Header des Absenders, ein angehängter application/pgp-keys-Teil, die Zertifikate, die eine S/MIME-Signatur trägt, und — bei einer verschlüsselt angekommenen Nachricht — die Autocrypt-Gossip:-Felder, die die anderen Empfänger einführen (Autocrypt Level 1 §5.3). Die Stage lernt und schaltet weiter; sie verwirft, pausiert und schreibt eine Nachricht nie um und erzeugt nie einen Bounce, sodass NEXT_STAGE verpflichtend ist. Referenz: pepsi-stage-autocrypt-learn(1).

48.2. Funktionen

  • Platzierung. Sie läuft nach den Spam-Prüfungen und vor der Zustellung, denn Level 1 §5.3 sagt, dass der Peer-Zustand für eine als Spam vermutete Nachricht ignoriert werden SOLLTE, und das lässt sich erst einhalten, sobald ein Spam-Urteil vorliegt. pepsi-stage-decrypt läuft auf dem eingehenden Pfad zuerst, damit alles Nachgelagerte Klartext sieht, also bevor irgendeine Stage eine Meinung darüber hat, ob die Nachricht Müll ist.

  • Beachtet das Spam-Urteil: Eine Nachricht mit state.spam = true lehrt nichts, sofern LEARN_FROM_SPAM nichts anderes sagt.

  • Nur der eigene Schlüssel des Absenders aus den Headern und Anhängen einer Nachricht; einen Dritten einzuführen ist Aufgabe des Gossip, und Gossip landet auf einer niedrigeren Sprosse.

  • Gossip nur aus Chiffrat: nur geglaubt, wenn pepsi-stage-decrypt festgehalten hat, dass die Nachricht verschlüsselt ankam, und dass ihr ankommender Header-Block kein eigenes Autocrypt-Gossip:-Feld trug. Beides ist aus dem festgeschriebenen Klartext nicht ersichtlich, daher werden beide aus state.crypto.in gelesen.

  • Nie ein Schlüssel für eine Adresse, die dieser Host bedient: Ein Peer-Schlüssel für eine lokale Adresse ist der, mit dem unsere eigene ausgehende Mail an diesen Benutzer verschlüsselt würde, sodass ein Gossip-Feld, das eine solche benennt, eher eine Schlüsselersetzung als eine Einführung ist.

  • Hält fest, dass ein Korrespondent unseren Schlüssel besitzt: Wurde eine Nachricht mit einem unserer MTA-Schlüssel entschlüsselt und trägt sie eine gültige, den Klartext abdeckende Signatur ihrer From:-Adresse, wird ein pepsi.peer_has_own_key-Datensatz geschrieben, sodass pepsi-stage-encrypt diesen Schlüssel nicht mehr als Datei anhängt (ATTACH_KEYS_AS_FILES). Dies geschieht unabhängig davon, was LEARN_KEYS und das Spam-Urteil sagen, da es um unseren Schlüssel geht, nicht um deren.

  • Unprivilegiert: Sie schreibt nur öffentliches Schlüsselmaterial, sodass sie anders als die Krypto-Stages kein setuid-Bit braucht und in das Multi-Call-pepsi-Binärprogramm eingefaltet ist.

48.3. Konfiguration

LEARN_KEYS (Standardwert yes; ausgeschaltet lernt die Stage überhaupt keinen Schlüssel), LEARN_GOSSIP (Standardwert yes, und nur sinnvoll, solange LEARN_KEYS eingeschaltet ist), LEARN_FROM_SPAM (Standardwert no — das ist das SOLLTE aus Autocrypt Level 1 §5.3), die Lokalitätsoptionen (nur verwendet, um Gossip über lokale Benutzer abzulehnen) LOCAL_DOMAINS (mit [pepsi-ingress] ACCEPTED_DOMAINS als Standardwert) / TARGETS / RECIPIENT_DELIMITER sowie ein verpflichtendes NEXT_STAGE. Die gesamte Nachricht wird geladen, da das Schlüsselmaterial in ihr steckt. Siehe Konfiguration.

[stage-autocrypt-learn]
PROGRAM = pepsi-stage-autocrypt-learn
NEXT_STAGE = local

48.4. Was ein gelernter Schlüssel wert ist

Wenig, mit Absicht. Geerntete Schlüssel sitzen auf dem Rang inbound und per Gossip gelernte auf gossip — den beiden untersten Sprossen der Vertrauensleiter. Ein solcher Schlüssel kann nie einen aus der Entdeckung oder von einem Operator verdrängen; eine gegen ihn geprüfte Signatur wird bestenfalls als valid-untrusted gemeldet, sodass sie nie state.signature_verified setzt; und ein peer_key-Datensatz wird für eine Adresse, für die dieser Host eine Identität hält, gänzlich ignoriert. Innerhalb dieser beiden Sprossen gilt das Neueste gewinnt nach dem Autocrypt-Wirksamkeitsdatum der Nachricht, sodass ein Korrespondent, der seinen Client neu installiert, keine Mail mehr erhält, die an einen Schlüssel verschlüsselt ist, den er nicht mehr besitzt — Schutz gegen einen passiven Gegner, und mehr beansprucht Autocrypt nicht.