# 安全、隐私和数据驻留

> 患者数据如何受到保护：欧盟数据驻留、项目隔离、成对 ID、凭证、同意、出处、患者可见的审计以及私有测试版的限制。

Source: https://developers.anpheros.com/zh/guides/security

医疗数据是应用程序可以持有的最敏感数据。本页列出了 Anpheros Platform 目前如何保护这些数据——仅限于已实现的功能——以及在私有测试版期间仍然存在的限制。

## 数据驻留

- 所有平台数据均存储和处理于欧盟境内：服务及其数据库位于 Google Cloud `europe-west4`（荷兰），Webhook 传递队列位于 `europe-west3`（法兰克福），访问日志的追加式导出位于 BigQuery 欧盟区域。
- **美国数据区域：** 生产客户可根据 HIPAA 业务伙伴协议（见下文）申请使用；届时美国患者数据将始终保留在美国区域内。
- 文档存储在欧盟存储桶中，并使用客户管理的加密密钥 (CMEK) 进行加密。原始文档在最终确定后不可变；其 SHA-256 校验和和大小将被记录。

## 应用程序之间的隔离

- 每个 API 密钥都属于一个 **项目**。一个项目只能看到它创建的患者 — 在沙盒环境中，包括它自己的合成患者副本，这是其他项目无法看到的。
- **成对标识符：**每个项目都会为同一个人接收自己的 ID；内部 ID 永远不会离开平台，因此 ID 无法在应用程序之间进行关联。
- 您无法访问的记录会返回 `404`，永远不会返回 `403`，因此无法探测患者的存在。
- **沙盒和生产环境是独立的数据库。**沙盒密钥 (`sk_test_`) 在物理上无法访问真实患者。
- 在获得患者同意的情况下，一个组织可以读取整个记录，包括其他组织写入的内容，但只能更改或删除它自己写入的内容。

## 凭证

- API 密钥仅显示一次，并仅以 SHA-256 哈希形式存储。密钥具有 `read` / `write` 范围，并且绝不会跨越其环境。
- OAuth 2.1 强制使用 PKCE (S256)；`redirect_uri` 必须精确注册。访问令牌有效期为 30 分钟，刷新令牌有效期为 30 天，并在每次使用时轮换。
- **刷新令牌重用检测：** 提交已被使用的刷新令牌将撤销整个令牌链。
- 令牌响应携带 `Cache-Control: no-store`。OpenID Connect `id_token`s 使用 RS256 签名；公钥发布在 `/oauth/jwks`。

## 同意、溯源和审计

- 患者在托管的同意页面上授予应用程序访问权限，选择记录和时长（30、90、180 或 365 天）。范围按资源类型和操作划分，并可按类别进行可选过滤。每次授权都会被镜像为一个 FHIR `Consent` 资源。
- 撤销在下次请求时生效；应用程序无法重新刷新。
- **每次写入**都会生成一个 `Provenance` 资源：谁写入的（患者、执业医师、设备、导入或 AI），为哪个组织，来自哪个源系统。
- **每次读取都会被记录并对患者可见**，包括使用项目自己的 API 密钥进行的读取，以及为 AI 模型构建的上下文。

## 传输和 Web 安全

- 仅限 HTTPS，并支持 HTTP 严格传输安全。API 响应携带限制性的 Content-Security-Policy，`X-Content-Type-Options: nosniff`，`X-Frame-Options: DENY` 和严格的 referrer policy。
- Webhook 递送使用 HMAC-SHA256 对时间戳和正文进行签名；接收者应拒绝超过 5 分钟的签名。事件携带 ID 和版本，但不包含临床内容。
- 速率限制：每个凭证和每个 IP 每分钟 600 个请求；JSON 正文最大 2 MiB；文档最大 25 MiB。

## 搜索引擎和 AI 爬虫

公共页面（anpheros.com、平台介绍和本文档）对搜索引擎和 AI 爬虫开放。API、仪表板、OAuth 和同意页面以及患者应用（`app.anpheros.com`）通过 `noindex` 和 `robots.txt` 规则排除在外；在未经身份验证的情况下，它们都不会返回患者数据。

## HIPAA (美国诊所)

对于美国的诊所，Anpheros 是一个**业务伙伴**。以下是根据 HIPAA 安全规则所采取的措施：

| 保障措施 | Anpheros 的实现方式 |
|---|---|
| 指定责任、风险分析、书面政策 (§164.308) | 指定了安全官；每年进行风险分析；十项书面政策（访问、加密、日志记录、事件响应、违约通知、保留和备份、培训、设备、紧急访问、供应商），保存六年 |
| 唯一用户识别、访问控制 (§164.312(a)) | 每个密钥、令牌和人员都有其身份；项目只能查看自己的患者；每次读取都强制执行同意范围；生产项目组织需要 MFA 或 SSO；仪表板自动注销 |
| 审计控制 (§164.312(b)) | 每次读取和写入都进行日志记录、哈希链式记录、以追加模式导出；患者可见 |
| 完整性 (§164.312(c)) | 版本化资源、每次写入都有出处、SHA-256 不可变文档 |
| 传输安全 (§164.312(e)) | TLS 1.2+、HSTS、签名 Webhook、仅限 HTTPS 的交付 |
| 静态加密 | 数据库和备份已加密；客户管理的密钥下的文档 |
| 应急计划 (§164.308(a)(7)) | 每日备份、时间点恢复、每 90 天进行一次恢复演练并记录时间 |
| 违约通知 (§164.410) | 根据我们的 BAA，在 5 个工作日内通知覆盖实体（法律规定为 60 天） |
| 业务伙伴链 (§164.308(b)) | Google Cloud 根据其 BAA 提供服务；子处理器列表在 BAA 附件中 |

**业务伙伴协议**和**美国数据区域**可应生产客户的要求提供（请发送邮件至 platform@anpheros.com）；签署 BAA 后，美国患者数据的生产环境将启用。沙盒仅包含合成患者，因此美国开发者无需 BAA 即可立即进行开发。Anpheros 未通过 SOC 2 或 HITRUST 认证；计划在医院客户需要时进行 SOC 2 Type II 审计。

## 当前限制（私有 Beta 版）

- 单区域托管，无自动故障转移；尚无合同 SLA。
- 生产密钥将颁发给已签署数据处理协议的已验证组织；Beta 版合作伙伴将从合成数据开始。
- 尚不支持 SMART EHR 启动和 OpenID `nonce` 参数。

## 相关资源

- [GDPR 与健康数据（面向开发者）](https://developers.anpheros.com/zh/guides/gdpr-health-data-developers)
- [医疗数据溯源详解](https://developers.anpheros.com/zh/guides/medical-data-provenance)：谁编写了什么，以及如何记录
- [同意与访问模型](https://developers.anpheros.com/zh/guides/consent)
- [身份验证与 OAuth](https://developers.anpheros.com/zh/guides/authentication)
- [限制与速率限制](https://developers.anpheros.com/zh/guides/limits)
- [可靠性、状态与事件](https://developers.anpheros.com/zh/guides/reliability)：监控、备份、事件沟通
- [架构](https://developers.anpheros.com/zh/guides/architecture)
- [欧洲健康数据空间 (EHDS)（面向开发者）](https://developers.anpheros.com/zh/guides/ehds-for-developers)
