资讯动态

离线AI应用的隐私与安全边界:Off Grid AI密钥链存储与数据驻留设计剖析

发布时间:2026/9/30 1:10:16 来源:尧图企业网站定制
离线AI应用的隐私与安全边界Off Grid AI密钥链存储与数据驻留设计剖析【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAMOff Grid AI 是一款开源的离线AI应用号称瑞士军刀式的本地 AI 套件在你的手机或 Mac 上离线完成聊天、图像生成、视觉理解、Whisper 语音转写和工具调用无需账号、无需 API Key零数据离开设备。本文将深入剖析它的两大隐私安全基石——系统密钥链Keychain凭据存储与模型数据驻留Data Residency设计帮你看清离线 AI 应用的隐私边界到底划在哪里。为什么离线不等于安全先划清隐私边界很多人认为只要应用不联网隐私就自动解决了。事实并非如此。一个离线 AI 应用仍然要处理三类敏感数据凭据远程模型服务器的 API Key、MCP 授权的 OAuth 令牌、用户设置的锁屏口令模型与对话数 GB 的模型权重文件、聊天记录、项目知识库文档本地网络流量多设备同步时数据会在局域网内流动。Off Grid AI 的设计哲学正是围绕这三层展开的凭据进系统级保险箱数据只驻留在本机同步只在加密的本地网络里发生。密钥链存储敏感凭据的正确归宿锁屏口令只存哈希且存在 Keychain 中应用支持设置一个本地口令passphrase来保护敏感操作。它的实现值得学习源码见 src/services/authService.ts口令从不以明文落盘而是经过多轮哈希处理后写入系统密钥链并设置accessible: WHEN_UNLOCKED——意味着设备锁屏期间连应用自己都读不到这份凭据对应的设置界面是 src/screens/PassphraseSetupScreen.tsx要求口令 6–50 位支持修改与移除。这比把口令存到本地配置文件高出了整整一个安全层级密钥链由操作系统硬件级保护iOS 的 Secure Enclave / Android 的 Keystore应用被越狱或读到沙箱文件也无法直接拿到明文。API Key绝不进入普通持久化存储当用户连接局域网内的 Ollama、LM Studio 等 OpenAI 兼容服务器时API Key 的存放方式更能体现设计取舍在 src/services/remoteServerManagerUtils.ts 中每个服务器的密钥以server_{id}为名独立写入 Keychain服务名为ai.offgridmobile.servers.{id}同样限制为解锁后可访问服务端记录本身Zustand store 持久化明确不保存凭据src/services/remoteServerManager.ts 中有一句直接注释Credentials belong only in Keychain还有一次性的历史迁移逻辑老版本曾把 Key 写进 AsyncStorage新版启动时会把它搬进 Keychain 并从明文存储中抹掉见 src/services/remoteServerManagerUtils.ts。MCP 服务器的 OAuth 令牌也遵循同一模式统一存放在 src/services/mcpOAuthNativeAdapters.ts 的 Keychain 适配器中。一句话总结所有能证明身份的东西都在系统保险箱里应用沙箱里只剩下怎么用的记录。数据驻留设计模型与记忆都留在本机内存驻留管理器谁在运行一目了然离线 AI 的第二层隐私边界是数据驻留——模型权重、对话、知识库全部是本机文件。但手机内存有限一个 4GB 的模型不能和其他模型随意抢 RAM。Off Grid AI 用专门的 src/services/modelResidency/ 模块管理这件事index.ts 中的ModelResidencyManager是唯一模型内存所有者每个模型加载前必须先申请驻留管理器按内存预算budget决定先驱逐谁residents.ts 定义了驱逐规则Whisper、TTS 等轻量边车模型最先被回收正在使用的模型canEvict返回 false绝不会被中途驱逐内存告警memoryWarning统一由管理器响应闲置模型自动卸载避免系统杀进程。这套机制的设计文档见 docs/design/MODEL_ROUTING.md隐私含义很直接模型生命周期完全由本机策略控制没有模型租约到期就断网这类云端钩子。知识库本地 SQLite 端侧嵌入项目知识库的文档分块与语义嵌入也在设备内完成内置 MiniLM 模型做 embedding向量与分块全部存在本地 SQLitesearch_knowledge_base工具只在本机检索。你的文档既不会被上传做训练也不会离开设备目录。本地网络同步加密的 Personal MeshPro 版提供 Personal Mesh手机与 Mac 之间共享聊天、文件和设置。它的关键隐私设计是——没有中继服务器流量只走你自己的网络配对设备之间加密传输。从上图可以看到配对流程生成一次性配对码Pairing Code另一台设备输入后才能建立连接。更细节的安全行为可以在这两个文档里查证docs/PERSONAL_MESH.mdMesh 架构与配对机制说明docs/PERSONAL_MESH_TEST_MATRIX.csv覆盖配对、断连、跨平台iOS/Android/macOS/Windows的测试矩阵。配套的实现位于 iOS 原生模块 ios/BlobChannelSupport.swift 与帧级加密器 ios/BlobFrameCipher.swift——即使同一局域网内有其他设备未配对者也无法解密流量。给普通用户的 3 条安全建议开启本地口令设置一个 6 位以上 passphrase它只以哈希形式存于系统密钥链能有效挡住别人拿起你手机直接用 AI的场景API Key 只填本地服务器应用支持连接局域网内的 Ollama / LM Studio密钥会进 Keychain 而非明文存储删除服务器时记得同步移除对应密钥配对码当面输入Mesh 配对时让配对码在你眼前完成输入避免转发到聊天工具中泄露。小结Off Grid AI 给出了一个可参照的离线 AI 应用安全模板数据类别存储位置保护机制口令 / API Key / OAuth 令牌系统 Keychain硬件级保护 解锁后可访问模型与知识库本机文件 / SQLite端侧推理内存驻留管理器管控多设备同步本地网络配对码 帧级加密无中继隐私不是不联网三个字而是每一类数据都有明确的存放边界与保护机制。如果你正在评估或开发离线 AI 应用值得翻读 src/services/authService.ts 与 src/services/modelResidency/ 的实现思路隐私政策全文见 docs/PRIVACY_POLICY.md。【免费下载链接】OGAMThe Swiss Army Knife of Offline AI. Chat, see, speak, and generate images on your phone or Mac — GGUF LLMs, vision, Whisper speech-to-text, Stable Diffusion, tool calling, and local-network servers. Runs on your CPU, GPU, or NPU. No account, no API key, zero data leaves your device.项目地址: https://gitcode.com/gh_mirrors/of/OGAM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑