OpenLess安全与隐私深度解析API密钥为何必须存入系统凭据库你的录音与数据到底存在哪里【免费下载链接】openlessHold a key, speak, release — AI-polished text appears at your cursor in any app. Open-source voice input for macOS Windows. (按住快捷键说话松开即得润色后的文字)项目地址: https://gitcode.com/gh_mirrors/op/openlessOpenLess 是一款开源的 macOS / Windows 语音输入工具按住快捷键说话松开后AI 润色好的文字就会出现在任意应用的光标处。正因为它要长期接触你的麦克风、API 密钥和对话历史安全与隐私设计格外重要。本文将带你弄懂两件事OpenLess 为什么把 API 密钥强制存入系统凭据库macOS 钥匙串、Windows 凭据管理器以及你的录音、历史和词库到底存在哪里、什么情况下才会离开电脑。OpenLess 一次听写中流经哪些数据先看一条完整链路你就知道要保护什么️录音按住快捷键时采集麦克风音频☁️转写音频发给你自己选择的 ASR 服务商或使用本地模型转成文字✨润色文字交给 LLM 服务商按你的风格修改⌨️插入最终文本写入当前光标位置同时记入本地历史。在这条链路里唯一离开本机的内容只有你主动选择的云端服务商收到的音频/文本。而连接这些服务商所必需的 API 密钥、密钥对应的账户配置就构成了安全设计的重点。API 密钥为什么必须存入系统凭据库明文密钥文件的隐患很多工具图省事把密钥直接写进一个 JSON 配置文件。OpenLess 早期确实有过这种做法~/.openless/credentials.json但如今它只被保留为迁移来源应用启动时读取旧文件、成功写入系统凭据库后会立刻删除明文文件。明文文件的风险在于它对所有本地进程一视同仁备份软件、同步盘、恶意程序都可能原样拷贝走而系统凭据库由操作系统统一把关读写都要经过系统级授权。各平台的保险柜长什么样OpenLess 通过统一抽象CredentialStore见 openless-core/src/credentials.rs接入各平台的系统级存储适配代码在 src-tauri/src/persistence/credentials.rs平台实际存储位置细节macOS钥匙串Keychain合并为单个credentials.v2条目避免每个配置项都弹授权窗Windows凭据管理器Credential Manager受单条 2560 字节限制自动拆分为多个分块条目LinuxSecret Service如 gnome-keyring通过 keyring 库访问并有专门的 secret_service 契约测试 守护密钥绝不落盘的边界AndroidAndroid Keystore加密信封credentials.enc.jsonAES-GCM 加密密钥不可导出密钥在程序内部也打码存进保险柜只是第一步。OpenLess 在核心层定义了一个专门的SecretValue类型credentials.rs做了两件很克制的事它的调试输出恒为SecretValue([REDACTED])日志和诊断信息里永远看不到真身它刻意不实现序列化因此事件快照、错误信息、跨进程消息在任何情况下都无法把密钥夹带出去。甚至连风格包市场的 GitHub 令牌也有墓碑机制一旦令牌被服务端拒绝会先在本进程内使其失效再去持久层删除杜绝旧令牌被误用credentials.rs。你的录音与数据到底存在哪里一份完整的数据去向清单架构文档的存储与外部服务一节docs/architecture.md给出了权威答案数据类型存放位置是否上云听写历史、活动记录本机用户数据目录如~/.openless❌ 仅本机录音归档本机且受设置控制❌ 仅本机词库、纠错记录本机⚠️ 仅在你开启云同步后风格包、模型文件本机本地模型管理见model_store.rs❌ 仅本机API 密钥、设备配置系统凭据库❌永远不同步麦克风音频 / 待润色文本——✅ 只发给你选的 ASR / LLM 服务商历史数据你自己说了算在设置面板的「数据与存储」区域DataStorageSection.tsx可以亲手控制保留策略历史保留天数0–365 天填 0 即过期即清历史上限条数5–200 条默认 200 条润色上下文窗口0–60 分钟决定润色时携带多少近期对话光标上下文macOS这是唯一值得多停一停的开关——它会让 OpenLess 读取当前光标附近的文字作为上下文发给 LLM 服务商。项目特意把它放在隐私相关的设置下就是为了提醒你这个开关的代价不是 token而是把别的 App 里的文字发给服务商。云同步同步了什么没同步什么OpenLess 的官方云同步docs/cloud-sync.md只同步四类内容词典、纠错记录、风格包以及你明确允许的个人偏好。同步前走本地事务cloud_sync_transaction.rs恢复失败会自动回滚文件。而凭据和设备配置被合同明确排除在外始终只留在本机——换句话说即使换台电脑你也需要重新填一次 API 密钥。容易被忽略的几个安全细节 端点校验 DNS 固定可配置的自定义端点必须通过 URL 校验并且主机名只在解析一次后固定使用精确 IP避免校验和连接之间发生第二次 DNS 决策降低中间人劫持空间endpoint_security.rs本地 ASR 可选Windows 默认走本地识别引擎配合本地模型可实现完全不联网的听写音频一个字节都不出机器不经过暗管道官方说明明确应用不会把普通听写给风格包市场后端官网也不参与任何业务调用docs/architecture.md凭据读取失败绝不装傻钥匙串读取失败会返回错误而不是伪装成未配置防止你在不知情的状态下用错配置。常见问题速答 Q卸载 OpenLess 后密钥会残留吗A卸载前建议手动到系统凭据管理器中删除 OpenLess 条目macOS 钥匙串搜索credentials.v2即可连同密钥一起清干净。Q云端服务商能看到我的录音吗A会看到当次发送的音频和文本——这是转写/润色服务的正常工作方式。想完全避免就选本地 ASR 方案。Q历史对话会被上传吗A默认不会。历史、录音归档全部只存本机且保留天数和条数都可以由你设置。写在最后OpenLess 的隐私设计可以浓缩成一句话密钥交给操作系统保管数据默认留在本地离开本机的一切都是你显式选择的结果。对于一款天天贴着你的麦克风和文档生活的工具这种默认最保守的态度或许比任何花哨功能都更值得信任。️【免费下载链接】openlessHold a key, speak, release — AI-polished text appears at your cursor in any app. Open-source voice input for macOS Windows. (按住快捷键说话松开即得润色后的文字)项目地址: https://gitcode.com/gh_mirrors/op/openless创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
