Schutz personenbezogener Daten
Ein Coding-Agent sendet sehr viel von Ihren Daten an seinen Modellanbieter: jede Datei, die er liest, jede Befehlsausgabe, jede Zeile eines Datenbank-Dumps oder einer CSV, die er ansieht, geht in die Unterhaltung. Halten diese Daten personenbezogene Informationen — Kundennamen, E-Mail-Adressen, Telefonnummern, Kartennummern, Straßenadressen — bekommt der Anbieter sie ebenfalls.
Der Schutz personenbezogener Daten hält diese Daten auf Ihrem Mac. Bevor eine Anfrage zum Modellanbieter aufbricht, findet der host-seitige Proxy die personenbezogenen Daten darin und ersetzt jeden Wert durch einen realistischen Stellvertreter: einen erfundenen Namen für einen echten Namen, eine @example.com-Adresse für eine echte E-Mail, und so weiter. Kommt die Antwort zurück, setzt der Proxy die echten Werte wieder ein. Der Anbieter sieht immer nur Stellvertreter; der Agent, Ihre Dateien und Ihr Terminal arbeiten weiter mit den echten Werten, und der Agent sieht nie einen Stellvertreter.
Die Erkennung läuft auf dem Gerät mit dem eingebauten Modell Rampart. Zum Prüfen wird nichts irgendwohin gesendet.
Dieses Kapitel erklärt, was die Funktion ersetzt, wie sich die Stellvertreter verhalten, wo Sie sie bei der Arbeit sehen, und ihre Grenzen. Der Schutz personenbezogener Daten wird je Maschine eingestellt (ein Arbeitsbereich, im Einstellungseditor); die Feldreferenz steht in Einstellungen → Schutz personenbezogener Daten.
Einschalten
Öffnen Sie die Einstellungen der Maschine und wählen Schutz personenbezogener Daten unter Sicherheit in der Seitenleiste.
Der Bereich hat eine Gruppe, Schutz:
| Einstellung | Voreinstellung | Was sie abdeckt |
|---|---|---|
| Personenbezogene Daten durch Platzhalter ersetzen, bevor sie das Modell erreichen | Aus | Der Hauptschalter. Die Kategorien darunter sind ausgegraut, solange er aus ist. |
| Personennamen | An | Vornamen und Nachnamen. |
| E-Mail-Adressen und Telefonnummern | An | E-Mail-Adressen; Telefonnummern mit mindestens sieben Ziffern. |
| Karten-, Bankkonto- und Steuernummern | An | Zahlungskartennummern, Bankkonto- und Bankleitzahlen, Steuernummern. |
| Sozialversicherungsnummern, Pässe, Führerscheine und andere Ausweise | An | US-Sozialversicherungsnummern und andere behördliche Ausweisnummern. |
| Straßenadressen (Stadt, Bundesland und Postleitzahl bleiben erhalten) | An | Die Straßenzeile (Hausnummer, Straße, Einheit), als Ganzes ersetzt. |
Klicken Sie Sichern. Die Einstellung wirkt bei der nächsten KI-Anfrage der Maschine.
Unter der Gruppe vermerkt der Bereich, dass Quellcode den Musterregeln überlassen bleibt und dass jeder Tausch in der Sicherheits-Zeitleiste gezählt wird, ohne dass die Werte je protokolliert werden. Der Link Rampart — National Design Studio, CC BY 4.0 nennt das Erkennungsmodell.
Hinweis: Das Erkennungsmodell wird mit der App ausgeliefert. In einem Build ohne es bietet das Einschalten des Schalters an, es zu laden (etwa 14 MB); wird der Download abgelehnt oder schlägt er fehl, schaltet sich der Schalter von selbst wieder aus.
Was ersetzt wird
Die Erkennung verbindet zwei Durchgänge:
- Musterregeln mit Prüfern erkennen strukturierte Daten genau: E-Mail-Adressen, Kartennummern (mit dem Luhn-Algorithmus geprüft), Sozialversicherungsnummern und Ähnliches.
- Das Rampart-Modell, ein kleiner Token-Klassifizierer auf der CPU des Macs, findet die unstrukturierten Arten — Namen und Straßenadressen — in Prosa und Daten.
Bromure filtert dann, was das Modell vorschlägt, damit gewöhnlicher Code und Produktnamen nicht für Personen gehalten werden:
- Quellcode bekommt nur die Musterregeln. Namen in Code sind fast immer Bezeichner, Code bleibt daher aus dem Modell-Durchgang heraus; E-Mails, Karten und Sozialversicherungsnummern in Code werden dennoch ersetzt.
- Namen bekannter Produkte, Firmen und Werkzeuge (Claude, GitHub, Docker, Postgres, …) werden nie als Personen behandelt.
- Stadt, Bundesland und Postleitzahl bleiben, ebenso alles, was wie eine URL oder eine IP-Adresse aussieht. Nur die Straßenzeile einer Adresse wird ersetzt.
- Ein Wert reicht nie über Zeilen, und Fragmente, die zu kurz oder zu codeförmig sind, um jemandes Daten zu sein, bleiben unangetastet.
Nur der Text der Unterhaltung wird geändert. Der Proxy schreibt die Anfrage Zeichenkette für Zeichenkette um und lässt jedes andere Byte so, wie der Agent es gesendet hat. Modelldenken, Signaturen und verschlüsselter Inhalt werden in keiner Richtung berührt, die Integritätsprüfungen des Anbieters bestehen also weiterhin.
Wie sich Stellvertreter verhalten
Jeder Stellvertreter sieht wie das Echte aus, damit das Modell weiter über die Daten nachdenken kann:
| Art | Stellvertreter |
|---|---|
| Name | Ein realistischer, aussprechbarer Name |
Eine Adresse bei @example.com | |
| Telefonnummer | Eine Nummer im gleichen Format wie das Original |
| Kartennummer | Eine Testkartennummer, die die Luhn-Prüfung besteht |
| Sozialversicherungsnummer | Eine Nummer im nie ausgegebenen 9xx-Bereich |
Stellvertreter sind je Maschine konsistent. Derselbe echte Wert bekommt immer denselben Stellvertreter — über Züge und über Neustarts der App hinweg — weil jeder aus dem Wert mit einem maschinenspezifischen Schlüssel abgeleitet wird. Das ist aus zwei Gründen wichtig:
- Die Unterhaltung, die der Agent jeden Zug neu sendet, bleibt Byte für Byte gleich, sodass das Prompt-Caching des Anbieters weiter funktioniert.
- Das Modell sieht in einer Unterhaltung durchgehend eine konsistente Person oder einen konsistenten Kunden, nicht jeden Zug einen neuen Zufallsnamen.
Jeder Stellvertreter wird gegen das Wörterbuch und gegen jeden anderen Eintrag geprüft, bevor er verwendet wird, damit ihn in einer Antwort zurückzusetzen keine gewöhnlichen Wörter verändern kann. Ein Name, der auch ein Alltagswort ist („Will“, „Grace“), wird nur dort ersetzt, wo er als Name erkannt wurde.
Der maschinenspezifische Schlüssel liegt in ~/Library/Application Support/BromureAC/pii/<arbeitsbereich-id>.key (Modus 0600). Die Tabelle der Werte und Stellvertreter wird nie auf die Disk geschrieben; sie wird im Speicher neu aufgebaut, während Werte wieder gesehen werden.
Die echten Werte zurücksetzen
Während die Antwort hereinströmt, ersetzt der Proxy jeden Stellvertreter durch seinen echten Wert, bevor der Agent ihn sieht — im Text und in den Argumenten von Werkzeugaufrufen, damit eine Datei, die der Agent schreibt, oder ein Befehl, den er ausführt, die echten Daten bekommt. Antworten werden für die Anthropic Messages API, die OpenAI-APIs Chat Completions und Responses, und Gemini zurückgesetzt, ob gestreamt oder ganz gesendet. Beim Streamen hält der Proxy jeweils ein paar Zeichen zurück, damit ein über zwei Blöcke geteilter Stellvertreter noch erkannt wird.
Wo es gilt
Der Schutz personenbezogener Daten wirkt auf die Anfragen des Agenten an Cloud-KI-Anbieter — die bekannten KI-Hosts, deren Körper das Tracing erfassen kann, HuggingFace ausgenommen — wenn die Anfrage eine Unterhaltung trägt. Er gilt nicht für:
- Modelle auf dem Gerät. Ein Zug, den die eigene Inferenz-Engine des Macs bedient, verlässt den Mac nie und wird daher nicht umgeschrieben.
- Komprimierte Anfragekörper. Eine Anfrage, deren Körper der Client komprimiert hat, wird ungeprüft durchgelassen.
Da der Tausch geschieht, bevor Fusion eine Frage ausfächert, bekommen die anderen Modelle eines Fusion-Panels ebenfalls die Stellvertreter.
Bei der Arbeit sehen
Jede Anfrage, in der neue Werte ersetzt wurden, ergänzt eine Zeile Schutz personenbezogener Daten in der Sicherheits-Zeitleiste: die Zahlen je Art und den Ziel-Host (zum Beispiel 3 Namen · 1 Telefonnummer → api.anthropic.com), mit der Entscheidung durch Stellvertreter ersetzt. Die Zeilen tragen nur Zahlen — die Werte selbst werden nie protokolliert. Werte, die in einem früheren Zug schon ersetzt und mit der Historie erneut gesendet wurden, werden nicht doppelt gezählt. Eine Anfrage, die für das Budget des Modells zu groß ist, bekommt eine Zeile mit der Entscheidung teilweise — Modellbudget erreicht; nur Musterregeln, auch wenn nichts ersetzt wurde.
Die Kachel Ersetzte personenbezogene Daten auf dem Tab Übersicht summiert die in den letzten 24 Stunden ersetzten Werte, und die Tabelle Schutzfunktionen hat eine Spalte Schutz personenbezogener Daten, die zeigt, welche Maschinen die Funktion an haben.
Grenzen
- Es ist Erkennung, keine Garantie. Das Modell tauscht etwas Trefferquote gegen viel weniger Fehlalarme auf Code; ungewöhnliche Formate, Namen in ungewöhnlichem Kontext, oder personenbezogene Daten innerhalb von Quellcode können durchkommen. Betrachten Sie es als starke Verringerung der Offenlegung, nicht als Beweis, dass keine personenbezogenen Daten den Anbieter erreicht haben.
- Sehr große Anfragen sind teils nur musterbasiert. Das Modell liest je Anfrage höchstens 300.000 Zeichen neuen Texts, die neuesten zuerst; jenseits dieses Budgets laufen nur die Musterregeln, und die Sicherheits-Zeitleiste hält die Anfrage als „teilweise — Modellbudget erreicht; nur Musterregeln“ fest. Ältere Historie wurde in früheren Zügen schon behandelt.
- Nur der Text der Unterhaltung wird geändert. Bilder, als Binärdaten gesendete Dateianhänge, und Felder wie IDs und Modellnamen werden nicht geprüft.
- Traces behalten die echten Werte. Erfasst das Tracing KI-Körper, ist die gespeicherte Anfrage die, die der Agent gesendet hat, und die gespeicherte Antwort die zurückgesetzte, beide halten also die echten Werte — auf Ihrem Mac verschlüsselt, wie jeder Trace-Körper. Die Stellvertreter-Fassung, die der Anbieter bekam, wird nicht gespeichert.