数据库敏感数据安全架构解决方案
支付卡号(PAN)和个人信息(PII)等敏感数据需要强有力的保护,以防通过数据库备份和管理员访问泄露。主要挑战包括加密存储数据同时支持搜索、安全密钥管理,以及最小化泄露风险。分析显示,PAN 遵循 PCI DSS 标准,PII 则受 152-FZ/GDPR 等法规约束,因要求不同(如按需完全删除数据)。
卡号并非完全机密:前 6–8 位是银行 BIN,最后一位是校验码,剩余 7–9 位可暴力破解(每个 BIN 约 10–1000 万种组合)。在数据库中存储带盐的 PAN 哈希,如果盐值泄露,仍易受 GPU 攻击。
数据加密与 HSM 方案
HSM(硬件安全模块)是一种用于安全存储密钥并执行加密操作的设备。硬件 HSM 通过物理方式防止密钥提取;软件 HSM 则依赖访问控制。
软件 HSM 采用 Shamir 秘密共享方案:主密钥拆分为 N 个份额,需要其中 K 个(K < N)才能重建。例如,5 个份额,需 3 个激活。这是一种权衡——将风险转移到组织内部,但降低了成本。
加密数据搜索选项:
- TDE(透明数据加密):加密磁盘文件,但内存中数据为明文。防盗驱动器,但防不住 DBA。
- 带盐哈希:存储 PAN + HSM 盐值的哈希,并以此哈希建索引。盐值不入库,阻挡暴力破解。
- 确定性加密:无 IV,相同明文产生相同密文。可建索引,但密钥泄露风险高。
最佳实践:数据库存储加密 PAN、加密哈希和密钥 ID(便于轮换)。通过哈希搜索;服务仅见哈希。PCI DSS 限制持卡人数据环境中哈希使用——建议用令牌替换,并存于独立存储。
密钥管理:Vault 的局限性
HashiCorp Vault、Azure Key Vault 和 AWS Secrets Manager 等工具擅长管理机密,但对加密密钥不足以胜任。它们能防护:
- 机密提交至 git。
- 环境变量泄露。
- 未授权读取。
但无法防护:
- Vault 管理员。
- 服务器管理员(内存转储)。
- mTLS 证书持有者。
加强措施包括使用硬件密钥的 mTLS、限速和审计。Vault 不是 HSM。Azure Key Vault Premium 利用微软数据中心 HSM,提供不可导出密钥和 API 操作。
Kubernetes Secrets:容器化风险
Kubernetes Secrets 以 base64 编码存于 etcd(未加密)。API 服务器访问会暴露所有机密。容器易受:
- 根主机读取容器文件系统。
- nsenter 进入进程。
- 内存转储。
- 网络流量嗅探。
对加密服务不可接受。gVisor、Kata Containers 或机密计算等缓解措施有帮助,但增加复杂性。
云解决方案与共享责任
AWS 和 Azure 等云平台基础设施(数据中心、磁盘加密)获 PCI DSS 认证,但密钥和访问由你负责。云流量经虚拟网络——提供商管理员可能窥探。建议:专用加密服务物理隔离(独立布线);云中用隔离 HSM。
共识架构
- 容器外专用加密服务,最小接口。
- HSM(硬件/软件/云)中不可提取密钥。
- 无硬件 HSM 时用 Shamir 方案。
- 搜索用加密哈希,盐来自 HSM。
- PAN/PII 分开处理。
- 全面审计。
- 密钥轮换。
关键要点:
- 盐值/密钥不入库——用 HSM。
- 通过加密哈希或令牌搜索;避开确定性加密。
- 组织权衡(Shamir)省钱。
- Vault 管机密,HSM 管密钥。
- 按法规分离 PCI DSS 和 PII。
— Editorial Team
暂无评论。