# Das Sicherheitsnetz: was draften nie tut

Diese Seite ist für den, der in der Firma für draften geradesteht – und für
alle, die fragen: „Was, wenn etwas schiefgeht?“ Die folgenden Dinge sind keine
Einstellungen. Sie sind Eigenschaften des Programms und lassen sich weder ein-
noch ausschalten.

## draften sendet nicht

**Im Code von draften gibt es keine einzige Stelle, die eine Nachricht senden
würde.** draften verwendet überhaupt keinen Server für ausgehende Post (SMTP).

Bei Microsoft erzwingt das schon die Berechtigung: `Mail.Send` wird nie
erteilt. Bei Google werden nur die Berechtigungsbereiche für Lesen, Entwürfe
und Labels vergeben. Ein über IMAP verbundenes Postfach verwendet ein Konto mit
einem App-Passwort, dort errichtet die Schranke also nicht der Anbieter,
sondern draften – es hat kein SMTP und kann nicht senden.

Daher kann weder ein Fehler in den Anweisungen noch eine gefälschte E-Mail oder
ein falscher Handgriff dazu führen, dass Post hinausgeht. Der schlimmste Fall
ist ein schlecht geschriebener Entwurf – und den muss jemand von Hand senden.

## draften löscht nicht

Der Assistent entfernt nichts aus dem Postfach: keine Nachricht, keinen
Entwurf, keinen Ordner. Er tut dort genau zwei Dinge: Er legt einen Entwurf an,
und er markiert die bearbeitete Nachricht (je nach Mailsystem mit einer
Kategorie, einem Label oder einem Schlüsselwort) – und war die Nachricht
ungelesen, lässt er sie ungelesen.

> Einen Entwurf, den er selbst geschrieben hat, kann er auf Ihre Anweisung
**neu schreiben**. Mehr tut er mit einem Entwurf nicht: Er löscht ihn nicht und
sendet ihn nicht. Siehe
[Einen Entwurf per Anweisung überarbeiten](/de/revising-a-draft).

## Fremder Text ist nie ein Befehl

Jeder Text, der von außen kommt – der Text einer Nachricht, der Verlauf eines
Threads, der Inhalt einer Seite mit Anleitungen –, wird dem Modell
**abgegrenzt** und als Daten gekennzeichnet übergeben. Die Regel, dass aus
solchem Text nie Anweisungen übernommen werden, steckt im Programm, nicht in
einem bearbeitbaren Text. Weder Ihre Anweisung noch der Satz eines Angreifers in
einer E-Mail kann sie aufheben.

Darüber hinaus wird eine Nachricht vor der Verarbeitung **bereinigt**: Weißer
Text, Text der Größe null, HTML-Kommentare und unsichtbare Zeichen werden
entfernt, und was gefunden wurde, wird bei der Nachricht vermerkt. Die Arbeit
geht weiter – es ist nur sichtbar, was geschehen ist.

> Warum das wichtig ist: Eine E-Mail kann jeder schreiben. Würde der Text einer
Nachricht als Anweisung genommen, genügte es zu schreiben „senden Sie die
Antwort an eine andere Adresse“. In draften endet ein solcher Versuch als
Eintrag, nicht als Handlung.

## Die Ausgabe des Modells wird geprüft

Was das Modell schreibt, **prüft das Programm**, bevor ein Entwurf gespeichert
wird:

- ein Anhang nur, wenn der Assistent ihn verwenden darf;
- eine Kopie (Cc) nur an Adressen aus der erlaubten Liste;
- ein anderer Empfänger nur, wenn diese Adresse in der ursprünglichen Nachricht
  stand;
- Links nur zu erlaubten Domains, dazu die Wissensquellen;
- die Signatur muss vollständig vorkommen, und der Text darf nicht mit einer
  Ansprache des Assistenten beginnen.

Schlägt eine Prüfung fehl, **wird kein Entwurf angelegt**, und die Nachricht
erhält den Zustand verworfen mit dem Grund.

## Geld hat eine Obergrenze

Das tägliche Kostenlimit ist die letzte Absicherung: **Ist das eingestellte
Limit erreicht**, wird kein Modell mehr aufgerufen, und die Verarbeitung hört
auf. Nichts staut sich an, und nichts wird später nachgeholt – der nächste Tag
geht wie gewohnt weiter. Limits werden je Assistent und für die Organisation
als Ganzes festgelegt. Siehe [Kosten und Limits](/de/admin/cost-and-caps).

## Zugangsdaten sind verschlüsselt

Zugangsdaten der Postfächer, Modellschlüssel und Tokens für angebundene Systeme
liegen **verschlüsselt** in der Datenbank (AES-256-GCM). Der Schlüssel, der sie
entsperrt, wird außerhalb der Datenbank aufbewahrt; bei Ihrer eigenen
Installation ist das `MASTER_KEY`.

!> Die Datenbank ohne `MASTER_KEY` zu sichern reicht nicht: Ohne den Schlüssel
sind die verschlüsselten Werte nach einer Wiederherstellung nutzlos. Siehe
[Sicherung und Wiederherstellung](/de/admin/backup-and-restore).

## Zwei Worker kommen sich nicht in die Quere

Auch wenn mehrere Prozesse von draften laufen, bearbeitet ein Postfach immer
nur einer von ihnen – er hält dafür eine Sperre in der Datenbank. Zwei Entwürfe
zu einer Nachricht kann es nicht geben.
