EffishMail

Security Architecture

Security Architecture

EffishMail 安全架构设计

EffishMail 是一款 100% 本地化的 macOS 邮件客户端,核心设计原则:无云端依赖、无外部数据上传、最小权限原则、利用 macOS 原生安全能力。

版本

v1.2 · 2025-11-10
本文档符合 OWASP Proactive Controls (C1, C3, C4, C6) 与 Apple Platform Security 最佳实践。

信任边界 (Trust Boundaries)

EffishMail 明确定义三级信任边界:

边界说明保护机制
T1: 用户 - EffishMail本地交互,macOS 沙盒内App Sandbox + Hardened Runtime
T2: EffishMail - 邮件服务器远程不可信网络 (IMAP/SMTP)TLS 1.3 强制 + 证书钉扎 + SASL 认证
T3: EffishMail - macOS Keychain系统级凭据存储Access Control Lists + kSecAttrAccessibleWhenUnlocked

架构概览

HuggingFace 模型下载说明

  • 仅在用户主动启用本地 AI 功能时触发
  • 下载地址: https://huggingface.co/[model-id]/resolve/main/* (仅 HTTPS)
  • 文件校验: SHA-256 哈希比对 (清单内置签名)
  • 存储位置: ~/Library/Application Support/EffishMail/models/ (沙盒内)
  • 无自动更新、无回传日志或遥测

数据保护

核心数据流保护措施

数据类型存储位置加密方式生命周期
邮箱账号/密码macOS Keychain硬件级加密 (Secure Enclave)永久 (用户可删)
邮件内容本地 SQLiteSQLCipher AES-256-CBC + PBKDF2-HMAC-SHA256本地留存,随 App 删除
AI 模型文件Application Support/models/无加密 (模型本身无敏感信息)用户可控,无自动清理
会话密钥 (TLS)内存无持久化退出账户后清零

敏感数据说明

邮件正文、发件人、收件人、主题等均视为个人敏感信息 (GDPR PII / 中国《个人信息保护法》)。所有数据从未上传至任何服务器,包括模型推理 (纯本地 CPU/GPU 推理)。

安全控制实现

OWASP PC控制项EffishMail 实现
C1定义安全需求明确三级信任边界;本地化为默认策略
C3验证输入IMAP 响应长度限制;附件 MIME 类型白名单;无 eval/include
C4认证与凭据Keychain 存储;密码内存零化 (memset_s);无明文日志
C6部署安全Apple Notarization + Hardened Runtime;无调试符号 (Release)

常见问题

是否存在 LFI/RFI 风险?

否。EffishMail 为原生 Swift App,无动态代码加载 (dlopen 仅用于系统库)、无用户可控路径拼接,所有资源编译进 Bundle。

模型下载是否安全?

是。仅支持 https://huggingface.co/ 官方域;SHA-256 校验防止篡改;无自动后台更新。

是否满足 GDPR/CCPA 加密要求?

是。所有本地存储的邮件数据加密落盘 (SQLCipher),密钥由用户主密码派生 (PBKDF2),符合 "encryption at rest" 要求。