QuanCard安全说明
EN

安全说明 · Security

敏感的东西,
要讲清楚。

全卡卡保存的是银行卡和账户资料,你有理由怀疑它。这一页按实际代码写明:数据怎么加密、钥匙在哪、会连到哪里、谁能看到什么,以及我们还没做到的部分。

适用版本:公开测试版 1.0 (6) · 更新于 2026-10-08

不需要账号

本地使用不注册、不登录全卡卡账号。我们没有你的邮箱,也没有你的保险库。

默认不联网

未开启同步时,App 不发起任何网络请求。本地模式下开飞行模式,全部功能照常。

我们没有存数据的服务器

同步只去两个地方:你自己的 iCloud,或你自己部署的服务器。全卡卡团队收不到你的卡片。

和 Apple Wallet 有什么不同

Wallet 很好,全卡卡不是它的替代品。需要付款,请继续使用 Wallet;两者可以并用。

需求Apple Wallet全卡卡
付款支持(受支持的发卡机构)不支持,也不会支持
不支持 Apple Pay、已注销或只为收藏的卡可存卡号用于自动填充,但不能付款或展示收藏主要用途:卡面、状态、备注一并保存
银行账户、IBAN、SWIFT / BIC 等转账资料不是 Wallet 的设计用途分账户管理,支持全球多种路由标识
自定义卡面、标签、排序、地区分组有限支持
数据位置Apple 设备与 iCloud本机;可选你的 iCloud 或你自己的服务器
导出与迁移没有导出文件,随 Apple 设备与 iCloud 迁移口令加密的 .qvault 备份,格式测试向量公开

数据从哪里来, 到哪里去。

明文只在你解锁后、在 App 的内存里出现。写入磁盘或离开手机之前,它已经是密文。

iPhone 上的全卡卡解锁后在内存中可读 锁定时清除;切到后台清除明文缓存, 根密钥最多保留 60 秒以便短时返回
  • 本机存储默认SQLite 中只有逐条密文;卡面照片单独加密成文件。
  • 你的 iCloud可选CloudKit 私有数据库里只有 App 加密后的记录。
  • 你的服务器可选自己部署的 QuanCard Server 只保存不透明的加密版本。
  • 全卡卡团队的服务器不存在。App 没有统计、广告或崩溃上报 SDK,也没有把保险库数据传给我们的通道。

一层钥匙, 锁住下一层。

没有自创算法,全部使用 Apple CryptoKit、Secure Enclave 和 libsodium 提供的标准实现。

  1. 01Secure Enclave 设备密钥

    P-256,生成在手机的安全芯片里、无法导出。使用它需要 Face ID / 触控 ID 或设备密码,且仅在设置了锁屏密码的本机有效。

  2. 02保险库根密钥(VRK)

    随机生成的 256 位密钥,只存在这台手机上,不同步、不进入 iCloud 钥匙串,也不从设备 ID 或卡号推导。

  3. 03每条记录的数据密钥(DEK)

    每张卡片、每个账户各有一把随机 256 位密钥,互不复用。

  4. 04卡片、账户、备注与照片的密文

    加密时绑定记录 ID 与类型。篡改、错钥匙或把一条记录搬到另一条,都会被拒绝。

加密备份 .qvault

由你设置的备份口令经 Argon2id(256 MiB 内存、3 轮)派生密钥,再用 AES-256-GCM 加密。口令越长越难被离线猜测。

iCloud 同步密钥

另一把随机 256 位密钥,通过 Apple 端到端加密的 iCloud 钥匙串传给你的其他设备;根密钥 VRK 不随之同步。恢复依赖 Apple 的钥匙串恢复机制,丢失全部受信任设备时可能无法恢复。

自建服务配对

在网页生成二维码,用 iPhone 扫码配对。二维码里是保险库的长期密钥,由浏览器在本地生成,正常运行的服务器看不到。

用到的算法

记录与附件
AES-256-GCM(CryptoKit)
设备密钥包裹
Secure Enclave P-256 + Apple ECIES
备份口令
Argon2id 256 MiB / 3 次 / p=1(swift-sodium)
设备密钥与 VRK 的钥匙串策略
仅本机、需设置锁屏密码、需用户在场

谁能读到你的资料

每一格写的是对方实际能拿到什么。绿色表示读不到内容;琥珀色表示能看到,但只是数量、时间这类信息,不是卡片内容。

数据你(已解锁)拿到你锁定手机的人Apple(开启 iCloud 时)你的服务器(自建时)全卡卡团队
卡号、有效期、CVC、账户号能查看无法解锁只有密文只有密文接触不到
备注、标签、卡面照片能查看无法解锁只有密文只有密文接触不到
条目数量、数据大小、修改时间能查看取证时可能看到能看到能看到接触不到
账户身份(Apple 账户 / 服务器用户名、设备名)能查看无法解锁能看到能看到接触不到

App 会连到哪里

这是 App 自身发起网络请求的完整清单。除此之外的连接,都应视为 bug,欢迎报告。

第三方库只有两个,均固定版本:GRDB(加密数据库存取)和 swift-sodium(备份口令的 Argon2id)。App 隐私清单声明:不收集数据、不追踪。

CVC 安全码, 我们这样处理。

这是大家最关心的问题。我们的做法和 1Password、Bitwarden 一致:可以保存,与卡号同等加密,随同步与备份一起走。不同的是,我们不运营存数据的服务器。

产品能否保存 CVC怎么保护存在哪里
1Password能,信用卡条目自带「验证码」字段与条目其他内容一起端到端加密随保险库同步到 1Password 服务器(密文)
Bitwarden能,卡片条目的「安全码」字段与卡号等字段一样加密,开源客户端可查随保险库同步到 Bitwarden 或自建服务器(密文)
Google Chrome能,付款时询问是否保存可单独关闭「保存安全码」,并一键删除本机或 Google Wallet
Apple Safari 自动填充 / iCloud 钥匙串不保存每次付款手动输入—
全卡卡能,可选字段;默认完全隐藏,查看需授权与卡号同等,逐条 AES-256-GCM 加密本机;开启同步时进入你自己的 iCloud 或你部署的服务器(密文),全卡卡团队不经手

收藏用途无需填写

已注销的卡、收藏卡用不到 CVC。只有打算用这张卡线上付款时,才需要填写。

默认完全隐藏

不像卡号会显示尾号,CVC 一位都不显示;查看或复制都要经过 Face ID / 设备密码。

随同步与备份保存

开启同步或导出加密备份时一并包含,换手机也不会丢。若你更认同 Apple 的做法,留空即可。

随时删除

清空字段即删除。注意同步历史中的旧版本密文仍会保留,见「已知限制」。

如果你有顾虑

留空即可:收藏、整理和查看卡片都用不到它,需要付款时再从实体卡上查看。

同类产品的做法依据各自官方文档或开源代码,核验于 2026-10-08,之后可能变化: 1PasswordBitwardenGoogle ChromeApple Safari

产品名称与图标归各自权利人所有,仅用于识别,不代表合作或背书。

不用信我们, 自己验证。

以下检查不需要专业工具。请用虚构资料测试,不要拿真实卡号做实验。

  1. 01

    开飞行模式

    本地模式下添加、查看、搜索、排序、导出备份都应正常。需要网络才能用的,只有你主动开启的同步。

  2. 02

    看「App 隐私报告」

    iPhone 设置 › 隐私与安全性 › App 隐私报告。打开后使用一段时间:未开启同步时,不应出现全卡卡自己发起的连接;如果看到,请告诉我们。

  3. 03

    核对备份与同步协议

    加密备份和同步协议的测试向量公开在 GitHub,可以用自己的实现验证加密格式。

  4. 04

    读服务端源码

    同步服务与网页保险库以 AGPL-3.0 开源,附威胁模型。你可以自己部署,也可以审计服务器到底存了什么。

我们还没做到的

下面这些不是「将来会自动变好」的免责声明,而是你现在做决定前应该知道的事实。

尚无第三方审计

iOS 端有 400 余项自动化测试,服务端仓库也附带测试,但测试不等于审计,也不能证明没有漏洞。

iPhone App 闭源

开源的是服务端和网页保险库。App 的行为目前只能通过本页说明、协议测试向量和你自己的观察来判断。

硬件路径尚待真机验收

Secure Enclave、Face ID 和系统快照遮罩在模拟器中以软件替代测试,真机验收仍在进行。

解锁后的 App 能读取你的资料

这是保险库的本质。越狱、恶意描述文件或已被控制的设备,可以在解锁时读取内存。

截图无法完全禁止

App 切到后台时会遮罩并清除显露状态,但 iOS 不允许 App 完全阻止截图或录屏。

配对二维码是长期凭据

二维码包含整个保险库的长期密钥,10 分钟时效只限制配对码本身。不要截图或拍照保存;一旦泄露,撤销设备也收不回,需要新建保险库再迁移。

剪贴板有窗口期

复制仅限本机剪贴板、45 秒后过期;在此之前,其他 App 仍可能读取。

删除依赖「销毁钥匙」

删除通过销毁密钥让密文失效,无法保证立即擦除闪存,也无法回收已经导出的备份。同步历史不会压缩:删除后,旧版本密文仍留在 iCloud 或服务器上,持有同步密钥的设备仍能解密。

「上架了苹果,是不是就安全?」

不是。我们不会用 App Store 或 TestFlight 审核来证明安全。

苹果审核会做的

  • 扫描已知恶意软件
  • 人工检查功能描述、截图与权限是否合理
  • 要求隐私政策和适当的数据保护措施

苹果审核不会做的

  • 审计加密实现是否正确
  • 证明 App 没有漏洞
  • 核实开发者自行申报的隐私标签

合规边界

  • 全卡卡不发卡、不连接银行、不处理资金、不提供支付,也不协助绕过 KYC 或地区限制。
  • 使用加密的 App 须做出口合规申报,由发行主体 ZOOL LLC 负责。

透明度路线

信任靠持续可查的记录,而不是一次声明。每完成一项,这里会更新日期与证据。

  1. 已完成服务端与网页保险库开源(AGPL-3.0)
  2. 已完成备份与同步协议测试向量公开(Apache-2.0)
  3. 已完成公开安全说明(本页),写明限制与未验证项
  4. 进行中真机验收:Secure Enclave、Face ID、锁屏与后台快照
  5. 进行中iCloud 双设备实际同步与恢复验收
  6. 计划中每个版本公开对应的源码提交与测试摘要
  7. 计划中独立第三方安全审计,公开机构、范围、版本与未关闭问题

常见疑问

全卡卡是用 AI 写的吗?这样安全吗?

开发中使用了 AI 辅助编码。怎么写出来的代码都不能当安全证明:手写不代表安全,AI 辅助也不代表不安全。能说明问题的是设计是否公开、实现是否经得起检查。所以本页给出数据流、密钥方案、网络清单和你可以自己做的验证,同时写明我们还没有第三方审计。

你们能看到我的卡吗?

不能,而且不是因为我们承诺不看:数据从不经过全卡卡的服务器,我们也没有这样的服务器。开启 iCloud 时,数据以密文存放在你自己的 Apple 账户里;自建时,存放在你的服务器上。

为什么 iPhone App 不开源?

App 是商业产品。我们开源了服务端、网页保险库、同步协议和测试向量,让「服务器存了什么」可以被完全审计。App 内部实现目前以本页说明和第三方审计计划作为补充。

手机丢了怎么办?

在 iOS 本身未被攻破的前提下,没有你的 Face ID 或锁屏密码,拿到手机的人无法解锁保险库;数据库里的记录内容也是密文(条目数、版本号等元数据除外)。要在新手机上恢复,需要一份加密备份(及其口令),或已开启的 iCloud 同步。

忘记备份口令怎么办?

无法找回。我们不知道你的口令,也没有后门。这是零知识设计的代价,请把口令存放在可靠的地方。

CVC 也会被保存和同步吗?

会,做法与 1Password、Bitwarden 一致:CVC 默认完全隐藏,查看需要授权,与卡号同等加密;开启同步或导出备份时一并包含。收藏用途无需填写;如果你更认同 Apple 不保存安全码的做法,留空即可。详见上方「CVC 安全码」一节。

官网会收集什么?

官网使用 Google Analytics 做不含个人身份的页面访问统计(会设置 cookie;不开启广告功能,尊重浏览器的 Global Privacy Control);预约上线时会保存你提交的邮箱。官网不提供卡号录入或保险库解密,也与 App 中的数据无关。

发现漏洞怎么报告?

服务端与网页问题请通过 GitHub 的私密漏洞报告提交;App 问题请发邮件到 support@quancard.app,标题注明「安全」。请只使用虚构数据,不要附带真实卡号、密码或备份文件。

还有疑问?

安全上的质疑都是合理的。欢迎直接问我们,或在 GitHub 上看代码。

预约全卡卡上线

加入预约名单,上线时享受早鸟优惠。

预约名单已开放

App 上线时邮件通知你。已预约用户请保存确认邮件,无需重复预约。

继续即同意接收 App 预约确认及上线通知。 隐私说明

加入公开测试

验证邮箱,即可通过 TestFlight 安装。

需要 iOS 26 或更新版本

邮箱仅用于测试通知,不会加入上线预约。 隐私说明