1. 引言
Strata Veritate LLC(以下简称“公司”、“我们”或“我们的”)运营 Spendlens 移动应用程序(以下简称“本应用”)。本隐私政策说明在您使用本应用时,我们如何收集、使用、披露及保护您的信息。
我们致力于保护您的隐私和财务数据。本政策旨在遵守适用的数据保护法律,包括《加利福尼亚消费者隐私法》(CCPA)、在适用范围内的《通用数据保护条例》(GDPR),以及 Apple App Store 审核指南。
请仔细阅读本隐私政策。使用本应用即表示您同意本文所述的做法。如果您不同意本隐私政策,请勿使用本应用。
2. 我们收集的信息
2.1 您直接提供的信息
| 数据类别 | 示例 | 目的 |
|---|---|---|
| 账户信息 | 姓名、电子邮件地址、头像 URL | 账户创建、身份识别、通信 |
| 财务数据 | 交易记录、金额、商户、分类、备注、预算、储蓄目标、投资持仓、成本基础 | 应用核心功能——预算管理、跟踪、分析 |
| 账户配置 | 首选货币、语言、通知偏好、主题设置、无障碍设置 | 个性化与用户体验 |
2.2 通过第三方服务收集的信息
2.2.1 Plaid(银行同步——仅限 Pro+Connect)
如果您选择启用银行同步功能,Plaid, Inc. 将收集并向我们提供以下信息:
- 账户名称、类型和余额;
- 交易记录(金额、日期、商户、分类);
- 账户号码和路由号码片段(已脱敏,仅用于识别);
- 金融机构名称和标志。
我们不会接收或存储您的银行登录凭据。Plaid 访问令牌仅存储在我们的服务器基础设施(Firebase Cloud Functions 配合 Google Secret Manager)上,绝不会传输到您的设备或存储在您的设备上。
有关 Plaid 的数据处理做法,请参阅:Plaid 隐私政策
2.2.2 Firebase 服务(Google)
| 服务 | 处理的数据 | 目的 |
|---|---|---|
| Firebase Authentication | 电子邮件、认证提供方标识符、认证令牌 | 安全的用户身份管理 |
| Cloud Firestore | Plaid 同步元数据、订阅状态、Aperture 连接元数据、促销码记录、分析健康指标 | 服务器端数据协调 |
| Firebase Cloud Functions | Plaid API 代理调用、订阅验证、Aperture 连接管理、市场数据代理、推送通知发送 | 安全的服务器端业务逻辑 |
| Firebase Analytics | 匿名化的产品使用事件(功能交互、页面浏览、会话数据) | 产品改进和性能监控 |
| Firebase Crashlytics | 崩溃报告、设备型号、操作系统版本、应用版本、堆栈跟踪 | 应用稳定性监控和错误修复 |
| Firebase Cloud Messaging (FCM) | 设备推送令牌 | 推送通知的发送 |
| Firebase App Check | 设备证明令牌 | 防止滥用及未授权的 API 访问 |
Firebase Analytics 和 Crashlytics 数据依据 Google 的数据处理条款进行处理。我们不会将 Firebase Analytics 用于广告投放或广告定向。
2.2.3 Apple 服务
| 服务 | 处理的数据 | 目的 |
|---|---|---|
| iCloud (CloudKit) | 同步到您个人私有 CloudKit 数据库的加密用户财务数据 | 跨设备同步(您的数据保留在您自己的 iCloud 账户中) |
| StoreKit | 订阅状态、交易收据、Apple ID 账户令牌 | 应用内购买管理 |
| Sign in with Apple | Apple 用户标识符、可选的姓名和中继电子邮件地址 | 身份认证 |
| Apple Push Notification Service (APNs) | 设备令牌、通知有效负载 | 本地和远程通知发送 |
2.3 自动收集的信息
| 数据类别 | 详情 | 目的 |
|---|---|---|
| 设备信息 | 设备型号、操作系统版本、应用版本(通过 Crashlytics 收集) | 应用兼容性和崩溃诊断 |
| 使用分析 | 功能使用模式、会话时长、页面浏览(通过 Firebase Analytics 匿名化) | 产品改进 |
| 性能数据 | 应用启动时间、错误率、崩溃频率 | 性能优化 |
2.4 我们不收集的信息
- 广告标识符(IDFA):我们不使用广告标识符。
- 位置数据:我们不访问或收集 GPS、Wi-Fi 或蜂窝网络位置数据。
- 通讯录:我们不访问您的联系人、通话记录或消息。
- 生物识别数据:生物识别认证(Face ID / Touch ID)完全由 Apple 的 LocalAuthentication 框架在您的设备上处理。我们从不接收、传输或存储任何生物识别模板或数据。
- 浏览记录:我们不追踪您的网页浏览活动。
- 麦克风或摄像头数据:仅当您主动发起收据扫描时才会访问摄像头。图像通过 Apple Vision 框架在内存中进行设备端 OCR 处理,绝不会被保存、上传或传输。
3. 信息使用方式
3.1 核心服务提供
- 提供个人财务跟踪、预算管理和分析功能;
- 通过您的个人 iCloud 账户在您的设备之间同步数据;
- 处理和分类交易记录;
- 生成财务预测、现金流分析和净资产计算;
- 管理您的订阅和账户。
3.2 服务改进
- 分析匿名化的使用模式以改进功能和用户体验;
- 监控应用稳定性,修复崩溃和错误;
- 衡量功能使用情况以确定产品开发的优先级。
3.3 通信
- 发送您已启用的推送通知(预算警报、账单提醒、目标里程碑等);
- 发送与服务相关的通信(订阅状态、安全警报)。
3.4 安全
- 验证您的身份;
- 通过 Firebase App Check 防范欺诈和未授权访问;
- 监控可疑活动。
4. 设备端处理与机器学习
Spendlens 的核心架构原则是通过设备端处理实现数据最小化。
4.1 设备端机器学习
所有机器学习功能均完全在您的设备上运行:
- 交易分类 — CoreML BERT 模型在本地对交易进行分类;
- 智能周期性检测 — 模式识别在设备端运行;
- 商户识别 — 基于启发式和机器学习的商户匹配在本地进行;
- 收据 OCR — Apple Vision 框架在内存中处理收据图像;图像绝不会被持久化存储或传输。
任何财务数据均不会被发送到任何外部机器学习服务(包括我们自己的服务器)进行推理或模型训练。
4.2 设备端数据存储
您的主要财务数据(交易记录、预算、账户、目标、持仓)通过 Apple 的 SwiftData 框架存储在设备上,并可选择通过 iCloud 同步到您的个人私有 CloudKit 数据库。这些数据存储在您的 iCloud 账户中,受 Apple 隐私和安全措施的约束——我们无法通过服务器端访问您的 CloudKit 数据。
5. 加密与安全
5.1 静态加密
- 设备端:所有本地数据均受益于 iOS 硬件级别加密(数据保护类)。敏感项目通过
kSecAttrAccessibleWhenUnlockedThisDeviceOnly保护等级存储在 iOS 钥匙串中。 - 分层密钥架构:本应用采用由安全隔区支持的根密钥 → 密钥加密密钥(KEK)→ 逐记录内容加密密钥(CEK)的分层架构,使用 AES-256-GCM 对敏感设备端数据进行加密。
- iCloud:通过 CloudKit 同步的数据在静态存储时由 Apple 按照 iCloud 加密标准进行加密。
- 服务器端:Firestore 数据在静态存储时由 Google Cloud 的默认加密机制保护。Plaid 访问令牌存储在 Google Secret Manager 中,并附加服务器端访问控制。
5.2 传输加密
所有网络通信均使用 TLS 1.2 或更高版本。应用强制执行 App Transport Security (ATS),确保不存在明文 HTTP 连接。
5.3 Aperture 端到端加密
通过 Aperture 功能共享的数据受端到端加密保护:
- 密钥协商:P256 椭圆曲线 Diffie-Hellman (ECDH)
- 对称加密:AES-256-GCM 认证加密
- 密钥存储:私钥通过仅限设备访问(
kSecAttrAccessibleWhenUnlockedThisDeviceOnly)的方式存储在 iOS 钥匙串中 - 零知识服务器:我们的服务器仅传输密文。我们无法推导共享密钥或解密 Aperture 数据。
5.4 Plaid 安全性
- 银行凭据由您直接提供给 Plaid,我们从不传输或存储这些凭据。
- Plaid 访问令牌存储在我们服务器基础设施上的 Google Secret Manager 中。
- 所有 Plaid API 调用均通过 Firebase Cloud Functions 代理;您的设备不会与 Plaid API 进行直接通信。
- 当您移除银行连接或删除账户时,我们会以编程方式撤销相关的 Plaid 访问令牌。
6. 数据共享与披露
6.1 我们不出售您的数据
我们不会向任何第三方出售、出租或交易您的个人信息或财务数据。我们不会与广告商共享您的数据。我们不从事数据经纪业务。
6.2 第三方服务提供商
我们仅在运营本应用所必需的范围内,与以下类别的服务提供商共享数据:
| 提供商 | 共享的数据 | 目的 |
|---|---|---|
| Plaid, Inc. | 银行连接令牌(仅限服务器端) | 银行账户同步 |
| Google (Firebase/GCP) | 认证数据、匿名化的分析事件、崩溃报告、Firestore 文档、推送令牌 | 基础设施、分析、稳定性 |
| Apple | 购买收据、订阅状态、iCloud 同步数据 | App Store 计费、iCloud 同步 |
| Yahoo Finance(通过服务器代理) | 股票代码符号(不含个人数据) | 市场数据获取 |
6.3 Aperture — 用户指示的共享
当您使用 Aperture 功能时,即指示我们将加密的财务数据提供给您指定的信任联系人。此共享完全由您发起和控制。我们仅传输加密密文,无法访问明文内容。
6.4 法律义务
如果法律要求,或者我们善意地认为以下行为属于必要,我们可能会披露您的信息:
- 遵守法律义务、传票或法院命令;
- 保护和维护 Strata Veritate LLC 的权利或财产;
- 预防或调查与本应用相关的可能违规行为;
- 保护用户或公众的人身安全。
6.5 业务转让
在发生合并、收购、重组、破产或出售我们全部或部分资产的情况下,您的信息可能作为该交易的一部分被转让。在您的信息适用不同的隐私政策之前,我们将通过应用内通知或电子邮件通知您。
7. 数据留存
7.1 活跃账户
在您的账户处于活跃状态期间以及为您提供应用服务所需的期间,我们会保留您的数据。
| 数据类型 | 留存期限 |
|---|---|
| 设备端财务数据(SwiftData) | 直至您删除相关数据或删除账户 |
| iCloud 同步数据(CloudKit) | 取决于您的 iCloud 存储空间;删除账户时一并删除 |
| Firestore 服务器端数据 | 直至账户删除 |
| Firebase Analytics 数据 | 按照 Google 的标准分析数据留存期限保留(最长 14 个月) |
| Crashlytics 报告 | 按照 Google 的标准 Crashlytics 留存期限保留(90 天) |
| Plaid 访问令牌 | 直至您断开银行连接或删除账户 |
| 订阅记录 | 订阅期间加上适用的法定留存期限 |
| 推送通知令牌 | 直至退出登录或账户删除 |
7.2 已删除的账户
当您删除账户时,我们将执行全面的数据删除流程:
- Firebase Authentication 账户 — 永久删除
- Plaid 连接 — 所有访问令牌将以编程方式撤销并删除
- Firestore 数据 — 所有用户文档将被永久删除
- 本地设备端数据 — 所有 SwiftData 记录将被清除
- 加密密钥 — 所有存储在钥匙串中的密钥(根密钥、KEK、Aperture 私钥)将被销毁
- 会话状态 — 所有缓存的状态和会话令牌将被清除
某些无法用于识别您身份的聚合、去标识化数据可能会为分析目的而继续保留。
7.3 临时数据
为 OCR 扫描而拍摄的收据图像仅在处理期间存在于设备内存中,绝不会被持久化存储到磁盘、上传或传输。
8. 您的权利与选择
8.1 访问与可携带性
您可以随时在应用内查看您的所有财务数据。Pro 订阅用户可通过 CSV 导出功能导出交易数据,以实现数据可携带性。
8.2 更正
您可以随时直接在应用内编辑您的交易记录、账户、预算、目标和个人资料信息。
8.3 删除
您可以:
- 在应用内删除单笔交易、单个账户、预算或目标;
- 通过"设置"中的账户删除功能删除您的整个账户及所有相关数据;
- 通过下方联系地址联系我们,请求删除数据。
8.4 通知偏好
您可以精细控制通知。您可以启用或禁用各类通知(预算警报、账单提醒、目标里程碑、储蓄提醒等),并可配置"免打扰时段"以在指定时间段内屏蔽通知。
8.5 银行连接管理
您可以随时断开单个银行连接,此操作将撤销相关的 Plaid 访问令牌。您也可以通过删除账户同时移除所有银行连接。
8.6 数据共享(Aperture)控制
您可以随时撤销与任何信任联系人的 Aperture 数据共享,此操作将立即终止其对您加密数据的访问。
8.7 分析数据退出
Firebase Analytics 收集匿名化的使用数据。您可以通过调整设备隐私设置来限制分析数据收集:前往"设置">"隐私与安全性">"分析与改进"。
8.8 GDPR 项下的权利(欧洲经济区/英国用户)
如果您位于欧洲经济区或英国,您享有以下权利:
- 访问我们持有的与您相关的个人数据;
- 更正不准确的个人数据;
- 删除(“被遗忘权”)您的个人数据;
- 限制处理您的个人数据;
- 数据可携带性 — 以结构化、机器可读的格式接收您的数据;
- 反对基于合法利益进行的处理;
- 在处理基于同意的情况下,随时撤回同意;
- 向当地数据保护机构提出投诉。
如需行使上述任何权利,请通过下方地址联系我们。
8.9 CCPA 项下的权利(加利福尼亚州居民)
如果您是加利福尼亚州居民,您享有以下权利:
- 知悉我们收集、使用和披露了哪些个人信息;
- 删除您的个人信息;
- 选择退出个人信息的出售(我们不出售个人信息);
- 因行使隐私权利而不受歧视。
如需行使上述权利,请通过下方地址联系我们。
9. 儿童隐私
本应用不面向未满十六(16)周岁或适用法域规定的数字同意最低年龄(以较高者为准)的儿童。我们不会故意收集低于上述年龄门槛的儿童的个人数据。
如果您是父母或监护人,并认为您的孩子向我们提供了个人数据,请立即与我们联系。如果我们发现收集了低于适用最低年龄的儿童的个人数据,我们将及时采取措施从我们的系统中删除该等数据。
11. 国际数据传输
您的数据可能在美国及我们的服务提供商设有设施的其他国家/地区进行处理(包括用于 Firebase 服务的 Google Cloud 区域)。当数据进行国际传输时,我们依据标准合同条款、充分性决定或其他合法的传输机制,以确保采取适当的保障措施。
12. 第三方链接与服务
本应用可能包含指向第三方网站或服务的链接(例如,您的银行网站、Apple 的订阅管理页面)。我们不对这些第三方服务的隐私做法或内容负责。我们建议您查阅您所访问的任何第三方服务的隐私政策。
13. 本隐私政策的变更
我们可能会不时更新本隐私政策。对于重大变更,我们将通过以下方式通知您:
- 更新本政策顶部的“最后更新”日期;
- 在可行的情况下,发送应用内通知;
- 对于显著影响我们处理您数据方式的重大变更,发送电子邮件通知。
在本隐私政策修改后继续使用本应用,即视为您接受更新后的政策。
14. 数据保护官
如有隐私咨询、数据主体访问请求或需行使您的任何权利,请联系我们的数据保护团队:
Strata Veritate LLC — 数据保护
电子邮件:security@spendlensapp.com
网站:https://spendlensapp.com/support
我们将在三十(30)天内或适用法律规定的期限内回复所有合法请求。
15. 联系方式
如对本隐私政策有任何一般性问题,请通过以下方式联系我们:
Strata Veritate LLC
电子邮件:support@spendlensapp.com
网站:https://spendlensapp.com/support