Diwall MCP

Deutsch
Herunterladen v0.0.1

Zugangsdaten im verschlüsselten Verzeichnis

Der Server tippt ein Passwort nur aus einer Datei des gocryptfs-Verzeichnisses, das Sie öffnen, nur auf dem genauen Origin, den die Datei nennt, und der Wert erscheint nie in dem, was das Modell erhält.

Das verschlüsselte Verzeichnis öffnen Sie selbst

Der Server liest und schreibt nur in einem Verzeichnis eines gocryptfs-Volumes: Zugangsdaten, das eigene Browserprofil, das Journal, die Aufnahmen und die Downloads. Sie öffnen und schließen das Volume; der Server hängt es nie ein oder aus, führt nie gocryptfs oder fusermount3 aus und kennt nie sein Passwort. Solange es geschlossen ist, weigert sich der Server zu schreiben, und er hat keinen Ausweichort ohne Verschlüsselung. Er akzeptiert den Mount nur als fuse.gocryptfs-Mount seines eigenen Benutzers, ohne die Option allow_other.

mcp-server-diwall-browser-setup erledigt das für Sie, in einem Terminal von Ihnen, und create schreibt das Bedienerprofil, sobald es das Volume eingehängt gesehen hat. create --temporary legt für einen Versuch ein Volume im Arbeitsspeicher an, zerstört durch close, durch das Ausschalten des Rechners oder durch das Ende Ihrer Sitzung (die Sitzungen der Websites, das Journal und die Aufnahmen gehen mit ihm verloren); create legt ein dauerhaftes Volume an; open öffnet es wieder; close beendet den Browser und hängt dann aus. Das Passwort geben Sie an der Eingabeaufforderung von gocryptfs ein; der Assistent liest es nicht. Ein Volume, das schon existiert, von einem anderen Rechner kopiert oder von Plasma Vault angelegt, übernehmen Sie mit create --crypt-dir und --mount-dir: Es wird nicht initialisiert, nur mit Ihrem Passwort geöffnet. Ohne Argument aufgerufen, nennt der Befehl, was Ihr Rechner erlaubt, und den nächsten Befehl.

Von Hand, ist das Volume einmal angelegt (gocryptfs -init, dessen Master-Schlüssel auf Papier oder in einen Passwortmanager gehört, nie in eine Datei dieser Festplatte), öffnen Sie es und legen beim ersten Mal die Verzeichnisse des Servers an:

gocryptfs ~/Vaults/Main.enc ~/Vaults/Main
mkdir -m 700 ~/Vaults/Main/mcp-server-diwall-browser
mkdir -m 700 ~/Vaults/Main/mcp-server-diwall-browser/credentials
mkdir -m 700 ~/Vaults/Main/mcp-server-diwall-browser/browser-profile

Zum Schließen schließen Sie zuerst den eigenen Browser, der in seinem Profil Dateien offen hält, dann:

fusermount3 -u ~/Vaults/Main

Nie fusermount3 -u -z: Ein verzögertes Aushängen löst das Verzeichnis, während ein Prozess noch über den alten Pfad schreiben kann, der dann in das darunter liegende unverschlüsselte Verzeichnis führt. Das geöffnete Verzeichnis darf in keine Sicherung gelangen: Schließen Sie es über die Dateisystemgrenze (rsync --one-file-system) oder in Ihrem Sicherungswerkzeug aus; die verschlüsselten Dateien können anderswo gesichert werden.

Eine Datei pro Website

Eine Zugangsdatendatei enthält den Benutzernamen und das Passwort einer Website, in credentials/, im Modus 600. Ihr Name besteht aus Kleinbuchstaben, Ziffern, ., _ und -, höchstens 64 Zeichen, dann .json. Ihre Schlüssel sind allowed_origins (erforderlich), username und password (mindestens einer von beiden) und sonst nichts:

{
  "allowed_origins": ["https://account.example.invalid"],
  "username": "alice",
  "password": "replace-with-the-real-password"
}

Schreiben Sie sie mit Ihrem Editor, nie mit echo oder einer Shell-Umleitung, die das Passwort im Verlauf Ihrer Shell hinterlassen würde:

vim ~/Vaults/Main/mcp-server-diwall-browser/credentials/account.json
chmod 600 ~/Vaults/Main/mcp-server-diwall-browser/credentials/account.json

Der Origin ist genau. Mit dieser Datei erhält eine Seite von https://account.example.invalid die Zugangsdaten; http://account.example.invalid, https://account.example.invalid:8443 und https://www.account.example.invalid erhalten sie nicht (credential_not_bound). Eine Datei, die einen Platzhalter aufführt, wird abgelehnt.

Was das Modell tut und was es sieht

Das Modell füllt ein Feld mit einer Referenz, nie mit dem Wert: {"key": "password"} oder {"key": "password", "name": "account"}, wenn mehrere Dateien an einen Origin gebunden sind. Der Server liest die Datei in seinem eigenen Prozess in dem Moment, in dem er tippt, sendet den Wert über die lokale Debugging-Verbindung an den Browser, und das Ergebnis lautet <secret:password>. Ein Feld, das der Server für sensibel hält (Passwort, Karte, Code), lehnt Klartext mit sensitive_value_refused ab, sodass ein Passwort nicht versehentlich durch den Kontext des Modells laufen kann.

Zugangsdaten in einem älteren Format, eine JSON-Datei pro Website mit Hostnamen und ohne Schema, liest der Server nicht. Ein Befehl, den Sie in Ihrer eigenen Shell ausführen, wandelt eine Datei oder ein Verzeichnis davon in seinem eigenen Prozess um und gibt keinen Wert aus; er behält keinen zweiten Faktor und überschreibt nichts:

cd ~/mcp-server-diwall-browser
.venv/bin/python -m mcp_server_diwall_browser.credential_import \
  --source-dir ~/Vaults/Main/old-credentials

Er wurde an Dateien der Testsuite in einem simulierten Volume getestet, nicht an einem echten gocryptfs-Volume. Jede Option, jede Ablehnung und die sechs Prüfungen, die er vornimmt, stehen in Abschnitt 6 des Bedienerhandbuchs.