Skip to content

Security: KinghoWang/PhoneSnap

Security

SECURITY.md

安全边界

本项目用于向自己配对的设备传图,不提供公共文件分享服务,也未经过独立安全审计。请勿把“使用了加密”理解成匿名、绝对安全或经过形式化验证。

两条主要路径

附近直传:使用 Network.framework、随机 256-bit 配对秘密和 TLS 1.2 PSK / AES-128-GCM。只有持有同一配对材料的端点应能完成该加密连接;当前 PSK 设计不提供前向保密承诺。

公网中转:HTTPS 保护到服务器的链路,CryptoKit AES-GCM 保护图片与保存回执;方向分离密钥由 HKDF 派生。图片与回执包含关联信息校验。服务器配置不含图片密钥,不能独立生成可信的图片保存回执。

这不防御已被控制的手机 / Mac、泄露的配对文件、恶意替换的客户端或拒绝服务。静态配对秘密泄露可能影响历史截获密文。不要复用、分享或公开配对材料。

哪些信息仍然可见

中转主机及网络基础设施仍能看到访问时间、IP、传输大小、通道与关联标识。服务端诊断不主动记录图片、密钥或认证 token,但反向代理、外部监控或你自加的日志可能扩大记录范围。不要记录 Authorization 头或完整请求体。

Mac 最终把图片保存到用户选择的文件夹;这不是磁盘端到端加密存储。编辑遮挡与 OCR 在 Mac 本地运行,自动隐私识别可能漏检,分享前必须人工检查导出图片。

配置文件的安全等级

文件 包含什么 放在哪里
.phonesnappair 附近配对秘密 只交给自己的配对端点
.phonesnaprelay 中转图片密钥与上传凭据 只交给自己的手机,绝不上服务器
channels.json 通道上传/接收凭据,不含图片密钥 服务器私密目录,限制文件权限

.gitignore 只是防误提交,不是泄密防护保证。提交前必须检查实际暂存文件;不要把 App 数据目录、诊断日志、照片或证书放进仓库。

旧接口与部署

Mac 中保留上游的旧 HTTP 接收入口,它不是附近 TLS 路径,也不是 E2EE。新安装默认关闭;不要打开路由器端口转发,不要把它反代到公网,优先使用新的配对直传。

中转 Docker 仅映射 127.0.0.1:8787,由 HTTPS 反向代理对外提供服务。默认非 root、只读根文件系统、丢弃 capabilities、禁提权,并限制内存/进程与日志容量。应用限制不等于抵御公网大流量攻击;维护者需另行管理防火墙、证书、升级和成本。

中转按通道限制并发、请求大小和超时,没有长期离线消息队列。失败不能靠无限重试或降级明文“修复”。回执不确定时先核对 Mac 是否已保存。

报告漏洞

优先使用 GitHub 仓库 Security 页中的 Report a vulnerability(若已启用)。若该入口不可用,先开不含利用细节和敏感资料的 Issue 请求私密联系渠道。不要在公开 Issue 放真实配对、token、私人截图或可识别个人的日志。

There aren't any published security advisories