I数据托管模型

数据从不外传。
从不回传任何信息。

SQAI 在您的数据所在之处运行。查询时不产生任何网络请求,没有服务持有您的数据行,没有遥测。本说明书记录了所有曾经过网络传输的字节——仅有两次数据移动,且均不涉及您的数据。

托管说明书SQAI · 本地模式
contract_hash sha256:79f1c5a6c716…be9a1签发对象:您的进程
  • 您的数据行

    在您的进程内读取,从不复制、从不上传、始终由您独自持有。

    从不
  • 执行计划与结果

    在进程内完成验证与执行。结果存储于有界本地存储中,15 分钟后自动过期。

    从不
  • 遥测

    不存在任何遥测。无分析调用,无崩溃上报,无任何回传。

    从不
  • 运行时包

    引擎代码,从 Cloudflare R2 一次性获取,在写入任何文件前完成验证。代码入站,数据行永不出站。

    一次 · 入站 · 已签名
  • 设备登录

    可选。在您的设备与账号服务之间传输已签名的许可证令牌,从不涉及您的数据。

    可选 · 仅令牌

查询时无需网络连接。安装后断网,每条查询依然正常响应。

只读不是一项设置。
它是工具本身的形态。

4,574 项开放能力 · 每一项均为读取 · 无写入路径可供误配置

III唯一的下载

文件落地前的六重校验。

运行时包是 SQAI 唯一会获取的内容——来自 Cloudflare R2 的引擎代码,在通过验证前一律视为不可信。验证在解压前启动,逐文件持续进行,安装过程保持原子性。

  1. 01

    唯一受信密钥

    发行版以单一 RSA-4096 发行密钥通过 RS256 签名。一把密钥负责验证;其余一概不信任。

  2. 02

    先验证,后解包

    在解包任何文件之前,签名已针对清单完成校验。被篡改或未签名的包永远到不了这一步。

  3. 03

    Schema 与路径安全

    清单必须能解析为预期的 schema,且所有列出的路径必须解析至安装根目录之内。

  4. 04

    逐文件 sha256 校验

    每个文件均经过哈希计算,并与已签名清单比对。任何一字节不符,整个安装即告失败。

  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 — 与从未存在过的句柄无从区分
生命周期
15 分钟 TTL · ≤256 条结果 · 总计 64 MB · 每租户 16 MB

result_id = base64url(randomBytes(16))

发行租户→ ok
其他任何租户→ result_not_found

非禁止访问 — 而是不存在。存在性从不披露。

VI离网操作手册

在断网环境中运行。

查询平面在设计上即为离线;唯一需要拉取的是计算运行时。如需完全断网运行,请自行获取包 — 验证器不关心字节的来源。

  1. 01

    禁用自动安装

    SQAI 将不再隐式拉取运行时。

    $export SQAI_RUNTIME_AUTO_INSTALL=0
  2. 02

    将包传输至目标环境

    在联网机器上获取已签名的包,再按您自己的传输策略将其移入目标环境。

  3. 03

    从文件安装

    全部六项检查均针对本地文件执行 — 签名、清单、逐文件哈希,一项不少。

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

    就地验证

    随时可针对唯一已接受的发行密钥,对已安装的运行时重新校验。

    $sqai runtime verify

安装完成后:零网络依赖。查询、策略检查与溯源哈希均在本地计算。

VII安全审查问题

每次安全审查必问。

我的机器上究竟会有什么数据离开?

查询时,没有任何数据离开。在整个安装生命周期内,仅有两类数据经过网络传输:一是从 Cloudflare R2 入站的已签名运行时包(引擎代码,非数据行);二是仅在您选择设备登录时才会传输的已签名许可令牌。不存在任何遥测。

只读不过是个可以随意翻转的标志吗?

不是。数据库连接上的只读标志是一种承诺;SQAI 是一个从未暴露写入路径的平面。全部 4,574 个已暴露能力均为读操作——没有写入、DDL 或 eval 路径需要防护——而逃生通道(getUnsafeRuntime)对模型永远不可达。

模型能自行扩大访问权限吗?

不能。策略在 createSQAI() 时固化于代码中,并在执行前于进程内完成校验。模型填写的工具输入不携带任何 allowed* 字段,且调用允许列表之外的能力会抛出 unsupported_operation。

SQAI 支持离网运行吗?

支持。设置 SQAI_RUNTIME_AUTO_INSTALL=0,手动传输已签名的包,再通过 sqai runtime install --from-file 安装。相同的验证链会对该文件执行,查询平面在任何情况下均完全离线。

错误信息会将文件路径泄露给模型吗?

不会。sanitizeMessage 会从所有模型可见的错误中剥离绝对路径,模型永远无法获知您的文件系统结构。

下一步

带上您的安全审查。

与我们逐项过审查问卷——数据托管、签名、策略、离网部署——每个答案均可追溯至代码。