IDas Verwahrungsmodell
Nichts verlässt das System.
Nichts meldet sich nach Hause.
SQAI läuft dort, wo Ihre Daten liegen. Zur Abfragezeit gibt es keinen Netzwerkaufruf, der abgefangen werden könnte, keinen Dienst, der Ihre Zeilen hält, keine Telemetrie. Dieses Dokument erfasst jedes Byte, das jemals die Leitung überquert – es gibt genau zwei Bewegungen, und keine davon sind Ihre Daten.
- Ihre Zeilen
Innerhalb Ihres Prozesses gelesen. Niemals kopiert, niemals hochgeladen, niemals von jemand anderem als Ihnen gehalten.
niemals - Pläne & Ergebnisse
Im Prozess validiert und ausgeführt. Ergebnisse liegen in einem begrenzten lokalen Speicher und laufen nach 15 Minuten ab.
niemals - Telemetrie
Existiert nicht. Kein Analytics-Aufruf, kein Absturzbericht, kein Zuhause, das angerufen wird.
niemals - Runtime-Bundle
Engine-Code, einmalig von Cloudflare R2 abgerufen und verifiziert, bevor eine einzige Datei geschrieben wird. Code kommt herein; Zeilen gehen niemals heraus.
einmalig · eingehend · signiert - Geräteanmeldung
Optional. Überträgt ein signiertes Lizenz-Token zwischen Ihrem Gerät und dem Kontodienst – niemals Ihre Daten.
optional · nur Token
Kein Netzwerk zur Abfragezeit. Trennen Sie die Verbindung nach der Installation – jede Abfrage wird weiterhin beantwortet.
Schreibschutz ist keine Einstellung.
Er ist die Form des Werkzeugs.
4.574 verfügbare Funktionen · jede ein Lesevorgang · kein Schreibpfad, der falsch konfiguriert werden könnte
IIIDer eine Download
Sechs Prüfungen, bevor eine Datei landet.
Das Runtime-Bundle ist das Einzige, was SQAI jemals abruft – Engine-Code von Cloudflare R2, der bis zum Beweis des Gegenteils als feindlich gilt. Die Verifizierung läuft vor der Entpackung, setzt sich Datei für Datei fort, und die Installation ist atomar.
- 01
Ein akzeptierter Schlüssel
Releases werden mit RS256 und einem einzigen RSA-4096-Release-Key signiert. Ein Schlüssel verifiziert; nichts anderes wird vertraut.
- 02
Prüfen vor dem Entpacken
Die Signatur wird über das Manifest geprüft, bevor eine Datei entpackt wird. Ein manipuliertes oder unsigniertes Bundle gelangt nie so weit.
- 03
Schema- und Pfadsicherheit
Das Manifest muss dem erwarteten Schema entsprechen, und jeder aufgeführte Pfad muss innerhalb des Installationsstammverzeichnisses auflösen.
- 04
sha256 pro Artefakt
Jede Datei wird gehasht und mit dem signierten Manifest verglichen. Ein einziges abweichendes Byte lässt die gesamte Installation fehlschlagen.
- 05
Nicht gelistet oder Symlink — abgelehnt
Eine Datei, die das Manifest nicht aufführt, oder ein beliebiger Symlink führt zur sofortigen Ablehnung des Bundles.
- 06
Atomares Install, gesichertes Rollback
Die Extraktion erfolgt in einem temporären Verzeichnis und wird mit einem atomaren Rename an den endgültigen Ort verschoben. Versionen unterhalb der akzeptierten Untergrenze werden als rollback_protected abgewiesen.
runtime_bundle 0.1.0sha256 4d64142e4c1ff63d299cfc8b172fdf97cb59169b545e1e02978e678a632ce6e1MIN_ACCEPTED_RUNTIME_VERSION 0.1.0 · below → rollback_protectedIVSchlüssel & Fehlerhygiene
Kleine Angriffsflächen, klein gehalten.
Der Geräteschlüssel
- Speicherort
- ~/.sqai — im Home-Verzeichnis, nirgends systemweit
- Berechtigungen
- Dateimodus 600 — nur für Sie lesbar
- Ausstellung
- optionale Geräteanmeldung (RFC 8628 Device Code)
- Was übertragen wird
- ein signiertes Lizenz-Token — niemals Ihre Daten
Was das Modell sieht
ENOENT: no such file or directory — /Users/dana/finance/q3-actuals.csvENOENT: no such file or directorysanitizeMessage entfernt absolute Pfade aus jedem modellsichtbaren Fehler. Ihr Dateisystem-Layout ist niemals Teil des Modellkontexts.
VDer Ergebnisspeicher
Ein Handle, der nichts beweist.
Große Ergebnisse verbleiben hinter einem Handle, anstatt den Modellkontext zu überfluten. Der Handle ist so konzipiert, dass er für jeden außer dem ausstellenden Tenant wertlos ist.
- result_id
- 16 zufällige Bytes, base64url — nicht erratbar, nicht mit einer Abfrage oder einem Tenant verknüpfbar
- Autorisierung
- tenant-gebunden — nur der ausstellende Tenant kann ihn einlösen
- Falscher Tenant
- result_not_found — nicht zu unterscheiden von einem Handle, der nie existiert hat
- Gültigkeit
- 15-Minuten-TTL · ≤256 Ergebnisse · 64 MB gesamt · 16 MB pro Tenant
result_id = base64url(randomBytes(16))
→ ok→ result_not_foundNicht verboten — nicht gefunden. Existenz wird nie offengelegt.
VIDas Air-Gap-Runbook
Läuft, wo das Kabel getrennt ist.
Die Query-Ebene ist konstruktionsbedingt offline; nur die Compute-Runtime wird je abgerufen. Für den vollständig getrennten Betrieb übernehmen Sie das Bundle selbst — der Verifier ist gleichgültig gegenüber der Herkunft der Bytes.
- 01
Auto-Install deaktivieren
SQAI ruft die Runtime niemals implizit ab.
$export SQAI_RUNTIME_AUTO_INSTALL=0 - 02
Bundle hinübertragen
Laden Sie das signierte Bundle auf einem verbundenen Rechner herunter und übertragen Sie es gemäß Ihrer eigenen Transfer-Richtlinie.
- 03
Aus der Datei installieren
Alle sechs Prüfungen laufen gegen die lokale Datei — gleiche Signatur, gleiches Manifest, gleiche Artefakt-Hashes.
$sqai runtime install --from-file <bundle> - 04
Vor Ort verifizieren
Die installierte Runtime kann jederzeit gegen den einzigen akzeptierten Release-Key erneut geprüft werden.
$sqai runtime verify
Nach der Installation: kein Netzwerk. Abfragen, Richtlinienprüfungen und Provenienz-Hashes werden lokal berechnet.
VIIDie Review-Fragen
In jedem Security-Review gestellt.
Was verlässt mein Gerät genau?
Zum Abfragezeitpunkt: nichts. Über die Lebensdauer einer Installation überqueren zwei Dinge die Leitung: ein eingehendes signiertes Runtime-Bundle von Cloudflare R2 (Engine-Code, keine Datensätze) und — nur bei optionaler Geräteanmeldung — ein signiertes Lizenz-Token. Es gibt keine Telemetrie.
Ist „nur lesend" bloß ein Flag, das jemand umschalten könnte?
Nein. Ein Read-only-Flag auf einer Datenbankverbindung ist ein Versprechen; SQAI ist eine fehlende Angriffsfläche. Alle 4.574 exponierten Capabilities sind Lesezugriffe — es gibt keinen Schreib-, DDL- oder Eval-Pfad, den es abzusichern gälte — und der Notausgang (getUnsafeRuntime) ist für ein Modell niemals erreichbar.
Kann das Modell seinen eigenen Zugriff erweitern?
Nein. Die Policy wird zum Zeitpunkt von createSQAI() im Code festgelegt und vor der Ausführung im Prozess geprüft. Der Tool-Input, den das Modell befüllt, enthält keine allowed*-Felder, und das Benennen einer Capability außerhalb der Allow-List wirft unsupported_operation.
Läuft SQAI air-gapped?
Ja. Setzen Sie SQAI_RUNTIME_AUTO_INSTALL=0, übertragen Sie das signierte Bundle manuell und installieren Sie es mit sqai runtime install --from-file. Die identische Verifikationskette läuft gegen die Datei, und die Query-Ebene ist unabhängig davon vollständig offline.
Kann eine Fehlermeldung meine Dateipfade an das Modell weitergeben?
Nein. sanitizeMessage entfernt absolute Pfade aus jeder modellsichtbaren Fehlermeldung, sodass das Modell Ihr Dateisystem-Layout niemals erfährt.
Der nächste Schritt
Bringen Sie Ihr Security-Review mit.
Gehen Sie den Fragebogen gemeinsam mit uns durch — Custody, Signing, Policy, Air-Gap — jede Antwort bis zum Code nachvollziehbar.