数据隐私与安全
隐私是 DevLingo 的核心价值。我们详细说明数据如何流动、存储在哪里、谁可以访问。
数据流透明度
Section titled “数据流透明度”场景 1:单次查询(无云同步)
Section titled “场景 1:单次查询(无云同步)”Step 1: 你在 Slack 中选中 "idempotent" ↓Step 2: 按下 ⌘⇧D ↓Step 3: Mac 应用检查本地库和缓存 ↓Step 4: 若未命中,发送查询到 Cloudflare Workers(HTTPS 加密) 请求包含: • 选中文本:"idempotent" • 上下文(前后文本) • 应用标识(Slack) • 模式:Word ↓Step 5: Workers 调用 Claude API ↓Step 6: Claude 返回结构化 JSON 结果 ↓Step 7: Mac 应用收到结果 ↓Step 8: 除非用户点击"保存",否则结果不被存储 (浮窗关闭后数据消失)场景 2:保存到生词本
Section titled “场景 2:保存到生词本”Step 1-7: 同上 ↓Step 8: 用户点击 "Save to Word Book" ↓Step 9: 数据被存储在本地 SwiftData (完全在设备内,不上云) ↓Step 10: 生词本同步开关关闭 → 完毕(仅本地) 生词本同步开关开启 → Step 11 ↓Step 11: 用户设备同步到 Cloudflare D1 (用户私人数据库,有身份验证)文本不用于模型训练
Section titled “文本不用于模型训练”重要:DevLingo 通过 Claude API 发送的任何文本都不会被用于训练 Claude 或任何其他模型。我们遵循 Anthropic 的默认政策。
✓ 你的文本是一次性使用✓ Claude 处理后立即丢弃(不存储)✓ 不用于任何形式的数据挖掘:::note 验证方式
Anthropic Claude API 的所有请求都标记有 “user=
本地存储默认关闭云同步
Section titled “本地存储默认关闭云同步”生词本(Word Book)默认只保存在你的 Mac 上,使用 SwiftData:
~/Library/Containers/com.devglish.com/Data/└── default.store/ └── word_entries.db (本地 SQLite)这个数据库是设备私密的,只有 DevLingo 应用能访问。
云同步是可选的
Section titled “云同步是可选的”如果你想在多台 Mac 上同步生词本,可以明确选择启用云同步:
Settings → iCloud Sync → Toggle ON一旦启用,生词本会加密后上传到 Cloudflare D1:
加密:客户端加密(Curve25519)→ 服务器存储认证:用户的 JWT token(安全令牌)访问控制:每个用户只能访问自己的数据隔离:数据库行级隔离,防止跨用户访问:::caution 数据转移 启用云同步后,如果你取消订阅或删除账户,云端数据会在 30 天后自动删除。本地 SwiftData 不受影响,仍在你的设备上。 :::
什么我们不收集
Section titled “什么我们不收集”DevLingo 严格遵循”最小化收集”原则:
不收集的数据
Section titled “不收集的数据”✗ 代码内容(虽然你可能在 Xcode 中使用)✗ 完整的浏览历史或应用使用历史✗ 聊天日志或邮件内容✗ 你的 Git 历史✗ 设备上的其他私密文件只收集的必要数据
Section titled “只收集的必要数据”✓ 你选中查询的文本本身✓ 前后 50 字的上下文(仅用于 AI 理解)✓ 当前应用的 Bundle Identifier(帮助 AI 调整风格)✓ 你的母语设置(用于 L1 干扰提示)✓ 生词本内容(仅在明确启用云同步时)API 密钥安全
Section titled “API 密钥安全”Claude API 密钥
Section titled “Claude API 密钥”DevLingo 后端(Cloudflare Workers)持有 Claude API 密钥。你的 Mac 应用无需直接暴露密钥,而是通过 Workers 代理所有 API 请求。
Mac App Workers (edge) ↓ (HTTPS) ↓ │── Bearer: user_jwt ────────→ │ │ │ │ (有效期 1 小时) │ (Claude API Key) │ │ │← Structured Response ←────── Claude API好处:
- 密钥不在本地存储(不会泄露)
- 所有 API 调用在受信任的 Cloudflare 边缘处理
- 即使你的 Mac 被攻击,密钥也安全
用户 JWT 令牌
Section titled “用户 JWT 令牌”用户登录时获得短期 JWT 令牌(1 小时有效期):
算法:HS256(HMAC SHA-256)签名密钥:Cloudflare Secret(不在本地存储)存储位置:macOS Keychain(系统加密)刷新:令牌即将过期时自动刷新Keychain 的安全级别:
🔒 与 Mac 的 iCloud 解锁密钥绑定🔒 每次访问时,系统会提示用户确认🔒 即使有人偷走你的硬盘,也无法读取网络传输安全
Section titled “网络传输安全”所有从 Mac 到 Cloudflare Workers 的通信都是 HTTPS 加密:
TLS 1.3(最新协议)证书:LetsEncrypt(自动更新)完全前向保密(Perfect Forward Secrecy)DevLingo 的分层查询系统确保你可以离线使用:
在飞行模式中选中 "idempotent" ↓查询本地技术词汇库(85+ 词)→ 成功! ↓结果立即显示,无需网络只有以下情况需要网络:
✓ 查询本地库未命中的新词汇✓ 同步生词本到云端✓ 获取最新 TTS 音频缓存其他 95% 的查询可完全离线完成。
账户删除与数据清除
Section titled “账户删除与数据清除”如果你决定删除 DevLingo 账户:
Step 1: 设置 → 账户 → Delete Account ↓Step 2: 系统会要求你再次确认 ↓Step 3: Cloudflare 删除: • 用户账户 • 云端生词本 • 登录历史 • API 使用日志 (30 天后完全删除) ↓Step 4: 本地数据不受影响 (仍在你的 Mac 上,由你自行删除):::caution 数据永久性 一旦账户删除,无法恢复云端数据。但你可以导出本地生词本为 CSV,永久保存。 :::
DevLingo 遵守以下规范:
| 地区 | 规范 | 状态 |
|---|---|---|
| 欧盟 | GDPR(通用数据保护规范) | ✓ 合规 |
| 美国 | CCPA / CPRA | ✓ 合规 |
| 中国 | 数据本地化 | ✓ 仅限本地存储;云同步使用 Cloudflare(可选) |
:::note 数据保护官 如有隐私问题,可联系 [email protected]。我们在 24 小时内回应。 :::
定期安全审计
Section titled “定期安全审计”DevLingo 工程团队定期进行:
• 代码安全审计(OWASP Top 10)• 依赖扫描(npm audit, Xcode security)• 渗透测试(第三方)• 数据库访问审计(谁访问了什么)审计报告每季度对用户透明发布。
总结:DevLingo 的隐私设计遵循”零信任”原则 — 假设网络被监听,假设设备被攻击,但通过加密、身份验证、最小化收集,确保你的数据始终在控制之下。