YeeAuth 文档
核心概念

BYOK(自带密钥)

了解什么是 BYOK(Bring Your Own Key),以及它如何帮助企业掌控自己的加密密钥,满足合规与安全需求。

BYOK(Bring Your Own Key,自带密钥)

在 SaaS 和云服务模式下,数据的加密与密钥管理是企业安全架构的核心关切之一。BYOK(Bring Your Own Key,自带密钥) 允许企业使用自己生成和管理的加密密钥,而非完全依赖服务提供商默认的密钥体系,从而在享受云服务便利的同时,保持对敏感数据的最终控制权。

什么是 BYOK?

BYOK 是一种密钥管理策略。简单来说,就是客户在自己的安全环境中生成加密密钥,然后将密钥(或密钥的引用)提供给云服务商,由服务商使用该密钥来加密和保护客户的数据。

在传统模式下,SaaS 平台使用平台统一管理的密钥来加密所有租户的数据。这意味着:

  • 平台持有了解密所有客户数据的能力。
  • 客户无法独立吊销或轮换密钥。
  • 密钥的生命周期完全由平台控制。

BYOK 改变了这一局面,让客户成为密钥的真正所有者。

为什么需要 BYOK?

合规要求

许多行业法规和安全标准(如金融行业的等保三级、医疗行业的 HIPAA、以及 GDPR 等)明确要求企业对加密密钥拥有独立管理权。BYOK 是满足这些合规条款的关键手段。

数据主权

企业希望确保即使在使用第三方 SaaS 服务时,也只有自己才能最终解密敏感数据。BYOK 将加密控制权交还给数据所有者,实现真正的数据主权。

密钥生命周期管理

通过 BYOK,企业可以按照自身的安全策略来管理密钥的生成、轮换、吊销和销毁。例如,企业可以强制每 90 天轮换一次密钥,或在安全事件发生时立即吊销密钥。

降低供应商锁定风险

使用自有密钥意味着企业在迁移或更换服务提供商时,不必担心数据被"锁"在原平台中。密钥始终在自己手中,数据的可移植性得到保障。

BYOK 的工作原理

BYOK 的实现通常遵循一种"信封加密(Envelope Encryption)"模式:

┌──────────────────────────────────────────────────┐
│                   客户侧                          │
│                                                    │
│  ┌────────────┐                                   │
│  │  客户主密钥  │  CMK (Customer Master Key)       │
│  │  (HSM/KMS) │  由客户生成和管控                   │
│  └─────┬──────┘                                   │
│        │ 加密                                      │
│        ▼                                           │
│  ┌────────────┐                                   │
│  │  数据加密密钥 │  DEK (Data Encryption Key)      │
│  │  (已加密态)  │  加密后传输给服务商                │
│  └─────┬──────┘                                   │
└────────┼─────────────────────────────────────────┘
         │ 传输

┌──────────────────────────────────────────────────┐
│                  YeeAuth 侧                       │
│                                                    │
│  ┌────────────┐       ┌───────────────┐          │
│  │  DEK (明文) │──────▶│ 加密租户数据    │          │
│  └────────────┘       └───────────────┘          │
│        ▲                                          │
│        │ 解密 DEK 时需回调客户 KMS                  │
│  ┌────────────┐                                   │
│  │  DEK (密文) │  仅存储加密后的 DEK               │
│  └────────────┘                                   │
└──────────────────────────────────────────────────┘

核心流程如下:

  1. 客户生成主密钥 (CMK):客户在自己的密钥管理系统(如 HSM 硬件安全模块 或云 KMS 服务)中生成主密钥。
  2. 服务商生成数据加密密钥 (DEK):YeeAuth 为每个租户或每个加密场景生成一个随机的数据加密密钥。
  3. 用 CMK 加密 DEK:DEK 通过客户的主密钥进行加密(Wrap),加密后的 DEK 存储在 YeeAuth 侧。
  4. 使用 DEK 加密数据:实际的数据加密使用明文 DEK 完成,明文 DEK 仅在内存中短暂存在。
  5. 解密时反向操作:需要读取数据时,YeeAuth 请求客户的 KMS 解密(Unwrap)DEK,再用明文 DEK 解密数据。

这样一来,YeeAuth 永远不会持久化存储明文主密钥或明文 DEK,客户可以随时通过禁用自己的 CMK 来切断 YeeAuth 对数据的访问。

BYOK 在 IAM 场景中的应用

在身份认证和访问管理领域,BYOK 尤其适用于以下场景:

Token 签名密钥

企业可以提供自己的 RSA 或 ECDSA 密钥对用于 JWT Token 的签名。这意味着只有持有该私钥的企业才能签发合法的 Token,平台仅使用客户提供的密钥完成签名操作。

敏感数据加密

用户的手机号、身份证号、邮箱地址等 PII(个人可识别信息)在数据库中使用客户自有密钥加密存储,确保即使数据库泄露,攻击者也无法解密。

SAML 断言签名

在联合身份认证场景中,企业可以使用自己的证书来签名 SAML 断言,确保身份信息的传输完全在自己的信任链之内。

审计日志加密

安全审计日志包含大量敏感操作记录,使用 BYOK 加密审计日志可以确保只有被授权的安全团队才能查阅。

BYOK vs 其他密钥管理模式

模式密钥由谁生成密钥由谁管理适用场景
平台托管密钥平台平台对安全要求较低、追求开箱即用的场景
BYOK客户客户生成,平台使用合规要求高、需要密钥控制权的企业
HYOK(Hold Your Own Key)客户客户全权管理,密钥从不离开客户环境极高安全要求(如政府、军工),平台每次使用都需实时调用客户 KMS
客户管理密钥 (CMK)客户客户通过云 KMS 管理使用云厂商 KMS 作为密钥源的混合模式

最佳实践

  1. 使用硬件安全模块 (HSM):主密钥的生成和存储建议使用通过 FIPS 140-2 Level 3 认证的 HSM,确保密钥的物理安全。
  2. 定期轮换密钥:制定密钥轮换策略,建议至少每 90 天轮换一次 DEK,每年轮换一次 CMK。
  3. 实施最小权限原则:仅授予必要人员和服务对密钥的访问权限,并启用详细的密钥访问审计日志。
  4. 规划密钥恢复方案:建立完善的密钥备份和灾难恢复流程,避免因密钥丢失导致数据永久不可访问。
  5. 监控密钥使用情况:对异常的密钥调用频率、来源 IP 等进行实时告警,及时发现潜在的安全事件。

On this page