法律 · 隐私政策
Keyvaci 隐私政策
本政策说明 Keyvaci 处理哪些个人数据、为何处理,以及个人享有哪些权利。它适用于由 XNOR Group Pte. Ltd.(“我们”)运营的 Keyvaci 服务。
简要版本
我们无法读取你存储在 Keyvaci 中的内容。保管库内容在你的浏览器中加密,所用密钥我们从未收到。我们确实持有的,是运行本服务所必需的运营数据:某个组织中有哪些人、存在哪些保管库、谁拥有对它们的访问权限,以及与安全相关的操作记录。
我们不出售个人数据。我们不为广告目的共享个人数据。我们在应用中不运行任何第三方分析、广告追踪器或会话录制工具。营销网站仅在你允许时才使用分析工具,且绝不用于广告;第 12 条写明了其中的全部内容。
1. 控制者与处理者角色
Keyvaci 面向组织销售。对于某组织成员的数据,客户组织是控制者(controller),而 我们作为其处理者(processor)。我们在该角色下的义务载于 数据处理附录。
对于一小部分数据,我们以自身名义作为控制者:账单记录、与我们之间的往来通讯,以及我们为保护本服务而保留的安全日志。
如果你是使用 Keyvaci 的某个组织的成员,并希望就你的数据行使权利,请先联系你所在的组织。我们会协助他们,但除非法律要求,我们不会在没有其指示的情况下处置其数据。
2. 我们持有哪些数据
2.1 我们能够读取的数据
| 类别 | 字段 | 原因 |
|---|---|---|
| 成员身份 | Microsoft Entra 对象标识符、工作电子邮件地址、显示名称、在组织中的角色、账户状态 | 用于识别成员、投递邀请,以及施加访问控制 |
| 组织 | 组织标识符、Entra 目录标识符、订阅状态、试用结束日期、席位数量、组织公钥、密码有效期设置 | 用于运行租户并施加权益 |
| 邀请 | 受邀的电子邮件地址、邀请人、邀请时间 | 用于让新成员加入,并向管理员展示尚未处理的邀请 |
| 访问结构 | 存在哪些保管库、谁拥有对每一个保管库的访问权限、以何种角色、由谁授予、密钥版本 | 用于执行授权。保管库名称是加密的,我们无法读取 |
| 审计记录 | 事件类型、操作成员、时间戳,以及受影响的对象;例如保管库被打开、条目被揭示、访问权限被授予或撤销、使用了恢复功能、接受了条款 | 用于安全、事件调查,以及客户自身的合规义务 |
| 登录凭据 (仅限邮箱登录) |
该地址是否已确认以及确认时间;一个在必须终止所有现有会话时递增的计数器;任何尚未使用的一次性链接的摘要 | 为了让人能够通过打开我们发送到其地址的链接来证明身份。没有登录密码:我们既不索取也不持有,因此这里不存在任何可能从我们这里被窃取的凭据。链接仅以摘要形式存储,因此我们数据库的副本不会产生任何可用的链接。通过 Microsoft Entra ID 登录的成员完全没有这些数据 |
| 第二因素 (仅限邮箱登录,且已启用时) |
身份验证器应用用于生成验证码的共享密钥,在我们的密钥管理服务下加密,无法从所存储的记录中读出;最后一次被接受的验证码时间周期,以确保同一验证码不会被使用两次;以及每个未使用恢复码的 SHA-256 摘要 | 用于校验一次性验证码。该密钥与记录的其余部分分开加密,因为任何持有它的人都可以无限期地生成有效验证码,而这恰恰是第二因素所要防止的 |
| 一次性链接 | 每个地址确认链接、密码重置链接和邀请链接的 SHA-256 摘要,以及其签发所针对的地址和有效期。链接本身绝不会被存储 | 使链接只能被使用一次,此后即失效。仅存储摘要意味着,即便我们的数据库被复制,也无法从中得到可用的链接 |
| 我们无法使用的密钥材料 | 公钥;成员以加密形式存在的私钥;密钥派生参数与盐值 | 用于将成员自己的加密密钥送回其浏览器。我们不持有任何解密它们的手段 |
| 账单 | Stripe 客户与订阅标识符、方案、计费周期、席位数量、账单状态与日期 | 用于正确收费并展示付款历史。银行卡信息发送至 Stripe,绝不会到达我们这里 |
| 运营日志 | 请求标识符、错误类型、边缘节点处的 IP 地址与用户代理、速率限制计数器、某次失败登录中所出现的令牌声明的名称 | 用于可用性、防滥用与故障诊断。日志内容刻意排除了请求体与令牌声明的值 |
| 条款接受记录 | 接受了本系列文档的哪一版本、由哪位成员接受、何时接受 | 用于证明达成协议,以及判断何时需要重新接受 |
2.2 我们持有但无法读取的数据
每一个保管库条目的内容,以及每一个保管库的名称,都仅以密文及其认证数据的形式存储。我们没有任何密钥,也没有任何流程,能够让我们或我们的任何员工读取它们。这不是一项可以因改变主意而逆转的政策承诺;它是本系统构建方式的固有属性。
2.3 我们从未收到的内容
- 主密码。它们绝不会离开浏览器,即使是哈希形式也不会。
- 组织恢复密钥与组织签名密钥。
- 支付卡号。
- 在组织通过 Microsoft Entra ID 登录时的目录密码。该身份验证发生在 Microsoft 处,而不是在我们这里。
一项重要的区分。在组织改用电子邮件地址登录的情形下,同样没有登录密码。登录意味着打开我们发送到该地址的一次性链接,这就证明了此人持有该地址。我们只存储该链接的摘要,绝不存储链接本身,并且它在发出后 5 分钟失效。主密码是完全不同的另一个机密:它用于解密数据,绝不会以任何形式到达我们这里,并且我们无法重置它,也无法通过我们发送的任何链接重置它。
3. 数据从何而来
- 来自成员的 Entra 账户,通过登录令牌:对象标识符、租户标识符、显示名称、工作邮箱。我们从不接收目录密码。
- 直接来自本人,在使用邮箱登录时:地址、显示名称,以及一个我们会立即哈希、绝不以输入原样存储的密码。
- 来自管理员,在他们邀请成员或更改设置时。
- 来自对本服务的使用,以审计记录和运营日志的形式。
- 来自 Stripe,以订阅与账单状态的形式。
4. 我们为何处理这些数据,以及依据何种法律基础
| 目的 | GDPR 项下的基础 | PDPA / 第 13 号法令项下的基础 |
|---|---|---|
| 依据我们与客户之间的合同提供本服务 | 履行合同(第 6(1)(b) 条);或在个人并非缔约方的情形下,客户的合法利益 | 为与个人所在组织之间的合同所必需;已告知的目的 |
| 安全、防滥用、审计轨迹 | 合法利益(第 6(1)(f) 条):安全地运行一个凭据保管库 | 收集时已告知的正当目的;安全是一项明示义务 |
| 账单与税务记录 | 法定义务(第 6(1)(c) 条)与合同 | 会计与税务规则项下的法定义务 |
| 服务与安全通知 | 合法利益,以及合同 | 已告知的目的。这些不是营销信息 |
我们不将个人数据用于产生法律效果的自动化决策,也不对个人进行画像。
5. 营销
我们向管理员发送运行本服务所必需的信息:账单通知、安全公告,以及本系列文档的重大变更。这些不属于营销,且在订阅有效期内无法退订。任何真正的营销邮件都只会在取得同意后发送,并附有退订链接。
6. 还有谁参与其中
我们使用少数几家处理者。每一家都通过合同受约束,只能按我们的指示处理数据并对其加以保护。当前名单如下:
| 提供方 | 角色 | 数据 | 所在地 |
|---|---|---|---|
| Amazon Web Services | 托管、数据库、密钥管理、日志,以及发送我们的电子邮件 | 全部运营数据与全部密文。Amazon SES 另外处理地址确认、密码重置和邀请邮件的收件人地址与姓名 | 新加坡(ap-southeast-1)。边缘分发与证书服务还使用位于美国的 AWS 设施以及全球分布的边缘节点 |
| Stripe | 支付处理 | 账单联系邮箱、订阅与账单数据、由 Stripe 直接收集的银行卡信息 | 美国与爱尔兰 |
| Microsoft | 身份提供方 | 身份验证在客户自有的 Entra 目录中进行。Microsoft 是客户的提供方,而非我们的次级处理者,但登录必然涉及它 | 由客户自有的 Microsoft 租户决定 |
我们将按数据处理附录的规定,在新增次级处理者之前发出通知,以便客户可以提出异议。
除上述名单外,我们仅在以下情形披露数据:具有约束力的法律要求所要求时(见第 11 条);或披露给负有保密义务的专业顾问;或在企业合并或出售中披露给继受人,在此情形下本政策继续适用,直至经通知后被替换为止。
7. 国际传输
数据主要保存在新加坡。若欧洲经济区、英国或瑞士境内个人的个人数据被传输至这些区域之外,我们依据由数据处理附录并入的欧盟委员会标准合同条款(Standard Contractual Clauses),并结合一份传输风险评估。
对于自新加坡向外的传输,我们通过合同将接收方约束至可比的保护标准,从而履行 PDPA 项下的传输限制义务。对于越南境内个人的个人数据,我们保存越南第 13/2023/ND-CP 号法令所要求的记录,并将配合客户自身的影响评估卷宗。
8. 我们保存多久
| 数据 | 保留期限 |
|---|---|
| 保管库密文与访问结构 | 直至客户删除,或在组织被终止后 30 天 |
| 成员资料 | 成员资格存续期间,随后随组织一并删除 |
| 邮箱登录账户 | 账户存续期间。密码哈希在每次密码变更时被替换,绝不保留旧的形式 |
| 一次性链接 | 登录链接 5 分钟、地址确认 24 小时、邀请 24 小时。以先发生者为准,链接一经使用即被删除 |
| 审计记录 | 在组织存续期间保留,且客户不可删除,因为一份嫌疑人可以抹除的审计轨迹算不上审计轨迹。随组织一并删除,但受任何法律保全要求的限制 |
| 已离开成员的公钥 | 成员离开后,其两个公钥以及组织对它们的签名会在组织存续期间保留,除此之外不保留关于该成员的任何信息。这是为了让他们写下的条目仍可验证:否则一个人离开就会使他曾创建的所有条目在同事看来都像未经签名。不会连同姓名或地址一起保留。随组织一并删除 |
| 备份 | 35 天的时间点恢复窗口。随着该窗口向前滚动,已删除的数据从备份中消失 |
| 账单与税务记录 | 五年,依新加坡会计与税务法律的要求 |
| 运营日志 | 应用日志 30 天,健康检查端点 7 天 |
| 速率限制计数器 | 在两个计数窗口内自动过期,通常不到一小时 |
| 条款接受记录 | 组织存续期间再加六年,作为合同的证据 |
9. 安全
已落实的措施,以直白方式描述,而非罗列一堆形容词:
- 保管库内容的端到端加密,密钥使用 Argon2id 在浏览器中派生,绝不传输。
- 传输中(TLS 1.2 或更高版本)与静态存储的加密,每个环境使用一把独立的、由客户管理的密钥。
- 租户隔离在构造每一个数据库键的单一代码路径中强制执行,并配有自动化的跨租户测试,失败即阻止部署。
- 只可追加的审计轨迹,由基础设施权限而非应用代码强制执行,因此任何应用缺陷都无法改写历史。
- 严格的内容安全策略:禁止内联脚本,第三方脚本只允许唯一一个来源,即联系页面上的 Cloudflare Turnstile,用于确认表单是由真人填写的。其他任何来源都不能在此运行脚本,这正是保护浏览器内密钥材料的控制措施。
- 对揭示条目和获取加密保管库内容按用户设置速率限制,并在边缘部署 Web 应用防火墙。
- 在使用邮箱登录时完全没有登录密码,因此不存在那类凭据供我们持有或丢失。登录链接是 32 字节随机值,仅以 SHA-256 摘要形式存储,只能用一次,发出后 5 分钟即失效。索取链接按地址和按网络地址双重限速,且无论某个地址是否存在账户,回应都完全相同。
- 邮箱登录可选的第二因素,使用来自任意身份验证器应用的基于时间的一次性验证码。该密钥在我们的密钥管理服务下加密,每个验证码时间周期最多被接受一次,且由于验证码空间较小,其尝试限速比密码更严格。
- 会话令牌以一把仅登录组件可读的 Ed25519 密钥签名。每个请求所经过的组件只持有公钥部分,因此攻破该组件也无法为任何人生成令牌。
- 对我方员工实行最小权限访问。没有任何员工能够读取保管库内容;这是设计的属性,而不是一项权限设置。
没有任何系统是绝对安全的。服务条款第 14 条载明了我们保证什么、不保证什么,以及如何报告漏洞。
10. 个人的权利
根据你所在地区的不同,你可能享有访问、更正、删除、限制处理或反对处理的权利,可携带权,以及在以同意为基础时撤回同意的权利。
如何行使这些权利。如果你是某个客户组织的成员,请联系该组织。他们控制你的数据,并且能够在本服务中直接处置大多数请求。如果你转而联系我们,我们会将你转介给他们,并协助他们作出回应。
一项诚实的限制。我们能够处置第 2.1 节所列的运营数据。我们无法处置保管库条目的内容,因为我们既读不到它们,也无从判断其中可能包含谁的个人数据。要求删除“我在某个保管库条目中的数据”的请求,必须向该组织提出,因为该组织能够解密并编辑它。
投诉。你可以向你的监管机构投诉:新加坡个人数据保护委员会(Personal Data Protection Commission)、你在欧洲经济区或英国的国家数据保护机关、越南公安部,或加利福尼亚州隐私保护局(California Privacy Protection Agency)。我们也希望能有机会先行解决问题。
10.1 加利福尼亚州
在本政策日期之前的十二个月内,我们未曾出售或共享个人信息(按 CCPA 对这些用语的定义),我们现在也不这样做。我们不为跨情境行为广告处理个人信息,也不在知情的情况下收集儿童数据。加利福尼亚州居民可通过第 10 节所述途径行使访问、删除、更正以及不受歧视的权利。
11. 来自公权力机关的要求
若我们收到具有约束力的法律索取数据的要求,除非法律禁止,我们将在回应之前通知受影响的客户,以便其寻求保护性救济;并且我们仅提供该要求所要求的、且我们实际持有的内容。
我们实际持有的是运营数据与密文。我们无法提供可读的保管库内容。这是事实层面的限制,而不是一项政策立场。
12. Cookie 与本地存储
console.keyvaci.com 上的应用不设置任何广告或分析 Cookie。本应用仅出于运行所必需,在浏览器中存储少量数据:
- 所选的界面语言;
- 身份验证会话:对于 Microsoft 登录,由 Microsoft 的库保存在 session storage 中;对于邮箱登录,是一枚由我们签发的令牌,它在签发后一小时过期,且自最初登录起最多不能续期超过十二小时。两者都会在浏览器标签页关闭时被清除;
- 在账户恢复期间,一把在浏览器中生成的临时密钥,它带有有效期,并在恢复完成或失效时被擦除。
keyvaci.com 上的营销网站可以使用 Google Analytics 统计页面浏览量,并且仅在你允许时才会这样做。 在你于提示中选择允许之前,不会加载任何内容,也不会设置任何分析 Cookie。若你拒绝,或你的浏览器发送了 Do Not Track 或 Global Privacy Control 信号,分析脚本根本不会被请求。
若你选择允许,Google Analytics 会设置它自己的第一方 Cookie 以识别再次到访的浏览器,并接收你浏览的页面、将你引荐过来的页面、根据 IP 地址推断的大致位置,以及设备和浏览器的基本信息。我们用它来了解哪些页面被阅读,以及哪些说明写得不够清楚。我们不将其用于广告:Google 的广告功能与广告个性化均已关闭,我们既不出售也不共享这些数据。Google 依其自身条款代表我们处理这些数据。
你可以随时在网站任意页面页脚的统计选项中更改你的选择。在那里选择拒绝,也会删除已设置的分析 Cookie。该选择记录在你的浏览器中,因此按浏览器、按设备分别生效。
解密密钥仅保存在内存中,绝不写入存储,并会在登出时、闲置十五分钟后,或标签页被隐藏五分钟后被擦除。
13. 儿童
Keyvaci 是一款面向企业的产品,并非面向儿童。我们不会在知情的情况下收集任何 16 岁以下人士的个人数据。
14. 本政策的变更
我们将随本服务的变化更新本政策。顶部的版本标识也会随之改变。对于实质影响个人的变更,我们将至少提前 30 天通知管理员;若该变更影响到本服务据以提供的基础,我们还将要求管理员在应用中接受更新后的文档。
15. 联系方式
XNOR Group Pte. Ltd.,新加坡。
隐私咨询、数据保护请求与安全报告:
keyvaci@xnorgroup.com