Iカストディモデル

何も外に出ない。
何もフォンホームしない。

SQAIはデータが存在する場所で動作します。クエリ実行時にネットワーク呼び出しは発生せず、行データを保持するサービスも、テレメトリも存在しません。このシートはワイヤーを通過するすべてのバイトを説明します。通信は正確に2回のみ、いずれもあなたのデータではありません。

カストディシートSQAI · ローカルモード
contract_hash sha256:79f1c5a6c716…be9a1発行先: あなたのプロセス
  • あなたの行データ

    プロセス内で読み取られます。コピーされず、アップロードされず、あなた以外の誰にも保持されません。

    なし
  • プランと結果

    プロセス内で検証・実行されます。結果は境界付きのローカルストアに保存され、15分後に期限切れになります。

    なし
  • テレメトリ

    存在しません。アナリティクス呼び出しも、クラッシュレポーターも、フォンホームも一切ありません。

    なし
  • ランタイムバンドル

    エンジンコードはCloudflare R2から一度だけ取得され、ファイルが書き込まれる前に検証されます。コードは入ってくる。行データは出ていかない。

    1回 · 受信 · 署名済み
  • デバイスサインイン

    任意です。署名済みライセンストークンをあなたのマシンとアカウントサービス間でやり取りします。データは移動しません。

    任意 · トークンのみ

クエリ時のネットワーク通信はありません。インストール後に回線を切断しても、すべてのクエリに回答します。

読み取り専用は設定ではない。
それがこのツールの形そのものだ。

4,574の公開機能 · すべて読み取り · 誤設定を招く書き込みパスなし

III唯一のダウンロード

6つの検証を経てファイルが着地する。

ランタイムバンドルはSQAIが取得する唯一のものです。Cloudflare R2からのエンジンコードは、証明されるまで敵対的なものとして扱われます。検証は展開前に実行され、ファイルごとに継続され、インストールはアトミックです。

  1. 01

    受け入れる鍵は1つ

    リリースはRS256でRS256で署名され、単一のRSA-4096リリースキーを使用します。検証するキーは一つ。それ以外は信頼されません。

  2. 02

    展開前に署名を検証

    マニフェストに対する署名検証は、ファイルの展開より前に行われます。改ざんされた、または未署名のバンドルはその段階で排除されます。

  3. 03

    スキーマとパスの安全性

    マニフェストは期待されるスキーマに適合しなければならず、記載されたすべてのパスはインストールルート内に解決される必要があります。

  4. 04

    アーティファクトごとの sha256

    すべてのファイルはハッシュ化され、署名済みマニフェストと照合されます。1バイトでも不一致があれば、インストール全体が失敗します。

  5. 05

    未記載またはシンボリックリンク — 拒否

    マニフェストに記載のないファイル、またはシンボリックリンクが存在する場合、バンドルは即座に拒否されます。

  6. 06

    アトミックインストールとロールバック制限

    展開は一時ディレクトリに行われ、単一のアトミックなリネームで所定の場所に移動します。許容フロアを下回るバージョンは rollback_protected として拒否されます。

検査対象のアーティファクトruntime_bundle 0.1.0sha256 4d64142e4c1ff63d299cfc8b172fdf97cb59169b545e1e02978e678a632ce6e1MIN_ACCEPTED_RUNTIME_VERSION 0.1.0 · below → rollback_protected

IV鍵とエラー管理

攻撃面は小さく、保たれる。

デバイスキー

場所
~/.sqai — ホームディレクトリ内。システム全体には配置されません
パーミッション
ファイルモード 600 — 本人のみ読み取り可能
発行
任意のデバイスサインイン(RFC 8628 デバイスコード)
送信されるもの
署名済みライセンストークンのみ — データは送信されません

モデルが受け取る情報

プロセス内でスローENOENT: no such file or directory — /Users/dana/finance/q3-actuals.csv
モデルへ配信ENOENT: no such file or directory

sanitizeMessage はモデルに渡されるすべてのエラーから絶対パスを除去します。ファイルシステムの構成がモデルのコンテキストに含まれることはありません。

V結果ストア

何も証明しないハンドル。

大きな結果はモデルのコンテキストを圧迫しないよう、ハンドル経由で保持されます。ハンドルは、発行したテナント以外には無価値となるよう設計されています。

result_id
16バイトのランダム値、base64url — 推測不可能、クエリやテナントとの紐付けなし
認可
テナントスコープ — 発行テナントのみが引き換え可能
別テナントの場合
result_not_found — 存在しないハンドルと区別不能
有効期間
TTL 15分 · 最大256件 · 合計64MB · テナントあたり16MB

result_id = base64url(randomBytes(16))

発行テナント→ ok
他のテナント→ result_not_found

アクセス拒否ではなく、存在しない。存在自体が開示されることはありません。

VIエアギャップ手順書

回線が切れた環境でも動作する。

クエリプレーンはオフラインで動作するよう設計されており、ネットワークを必要とするのはコンピュートランタイムの取得のみです。完全に切断された環境で運用するには、バンドルを自身で入手してください。検証器はバイト列の出所を問いません。

  1. 01

    自動インストールを無効化

    SQAI はランタイムを暗黙的に取得しません。

    $export SQAI_RUNTIME_AUTO_INSTALL=0
  2. 02

    バンドルを持ち込む

    接続済みのマシンで署名済みバンドルを取得し、自社の転送ポリシーに従って移送してください。

  3. 03

    ファイルからインストール

    6つのチェックすべてがローカルファイルに対して実行されます — 署名、マニフェスト、アーティファクトごとのハッシュはすべて同一です。

    $sqai runtime install --from-file <bundle>
  4. 04

    その場で検証

    インストール済みランタイムを、唯一許可されたリリースキーに対していつでも再検証できます。

    $sqai runtime verify

インストール後はネットワーク不要。クエリ、ポリシーチェック、プロベナンスハッシュはすべてローカルで計算されます。

VIIセキュリティレビュー設問

あらゆるセキュリティレビューで問われる質問。

正確に何がマシンの外に出るのか?

クエリ実行時には何も送信されません。インストールの全期間を通じて、ネットワークを経由するのは2点のみです。Cloudflare R2からの署名済みランタイムバンドル(エンジンコードであり、データ行ではありません)、そしてデバイスサインインを選択した場合のみ、署名済みライセンストークン。テレメトリは一切ありません。

読み取り専用は、誰かが切り替えられるフラグに過ぎないのでは?

違います。データベース接続の読み取り専用フラグは約束に過ぎませんが、SQAI は攻撃対象面そのものを排除します。公開されている 4,574 のケイパビリティはすべて読み取り操作であり、書き込み・DDL・eval の経路は存在しません。エスケープハッチ(getUnsafeRuntime)はモデルから到達不能です。

モデルが自身のアクセス権を拡張することはできますか?

できません。ポリシーは createSQAI() 時にコードで固定され、実行前にプロセス内で検証されます。モデルが入力するツール引数に allowed* フィールドは存在せず、許可リスト外のケイパビリティを指定すると unsupported_operation がスローされます。

SQAI はエアギャップ環境で動作しますか?

動作します。SQAI_RUNTIME_AUTO_INSTALL=0 を設定し、署名済みバンドルを手動で転送して sqai runtime install --from-file でインストールしてください。同一の検証チェーンがファイルに対して実行され、クエリプレーンは完全にオフラインで動作します。

エラーメッセージからファイルパスがモデルに漏洩することはありますか?

ありません。sanitizeMessage がモデルに表示されるすべてのエラーから絶対パスを除去するため、モデルがファイルシステムの構造を知ることはありません。

次のステップ

セキュリティレビューをご持参ください。

保管・署名・ポリシー・エアギャップ――すべての回答をコードまで追跡できる形で、チェックリストを一緒に確認します。