本文档概述了使用 Cloudflare 应用程序服务实现联邦信息处理标准 (FIPS) 140 三级合规的参考架构。FIPS 140 是美国政府标准,规定了保护计算机和电信系统中敏感信息的密码模块的安全要求。
FIPS 140 定义了四个安全级别,三级是非军事应用中要求最为严格的级别。它强制要求物理防篡改措施,以防止未经授权访问密钥和关键安全参数。这包括坚固外壳、防篡改封条以及基于身份的认证等措施。
实现 FIPS 140 合规(尤其是三级)对于处理敏感数据的组织至关重要,特别是以下受监管行业中的组织:
- 政府:处理敏感政府信息的联邦机构及其承包商。
- 医疗保健:根据 HIPAA 处理受保护健康信息 (PHI) 的组织。
- 金融服务:处理金融交易和客户数据的机构。
- 国防:参与需要严格安全措施的国防项目的承包商。
FIPS 140 合规体现了对数据安全的强烈承诺,可建立客户和合作伙伴的信任,并确保符合监管要求。本参考架构提供了利用 Cloudflare 强大安全功能满足这些严格标准的全面指南。
组织使用 FIPS 140-3 标准来确保所选硬件满足特定安全要求。FIPS 认证标准定义了四个递进的安全等级。
需要生产级设备和经过外部测试的算法。
增加了物理防篡改证据和基于角色的认证要求。
增加了物理防篡改和基于身份的认证要求。关键安全参数进出模块的接口之间还必须进行物理或逻辑隔离。私钥只能以加密形式进出。三级还要求模块检测并响应超出范围的电压或温度(环境故障保护,即 EFP),或者进行环境故障测试 (EFT)。
此级别对物理安全要求更为严格,要求设备具备主动防篡改能力,当检测到各种形式的环境攻击时,会自动擦除设备内容。同时还需要 EFP 和防故障注入保护,以及多因素认证。
- Cloudflare Keyless SSL:一项允许组织使用 Cloudflare SSL/TLS 保护的同时将私钥安全存储在自己基础设施中的服务,确保私钥始终受其控制且不离开其内部环境,同时仍可受益于 Cloudflare 的 DDoS 防护和性能优化功能。
- Cloudflare Tunnel:在 Cloudflare 全球网络与托管 CloudHSM 的私有基础设施之间提供安全、加密的连接,保护传输中的数据。
- 硬件安全模块:符合 FIPS 140 三级要求的 HSM,用于安全管理密钥。Cloudflare 支持多种 HSM,包括 AWS CloudHSM、Azure Key Vault 和 Google Cloud KMS。
下面的架构图展示了使用 Cloudflare 应用程序服务实现 FIPS 140 三级合规所需的关键组件和数据流。
flowchart TB
User((User/Client)) --> |1.SNI = keyless.example.com| CF[Cloudflare Edge Network]
subgraph CF [Cloudflare Edge]
KeylessSSL[Keyless SSL Service]
end
subgraph Private[Private Infrastructure]
Tunnel[Cloudflare Tunnel]
HSM[Hardware Security Module]
KeylessModule[Keyless Module]
end
Tunnel -->|2.Establish tunnel| KeylessSSL
KeylessSSL -->|3.Keyless operation required| Tunnel
Tunnel -->|4.Forward to HSM| KeylessModule
KeylessModule -->|5.Key Operations via PKCS11| HSM
classDef cloudflare fill:#F6821F,stroke:#fff,stroke-width:2px,color:#fff
classDef aws fill:#232F3E,stroke:#fff,stroke-width:2px,color:#fff
classDef default fill:#fff,stroke:#000,stroke-width:2px, color:#000
class CF,KeylessSSL,Tunnel,KeylessModule cloudflare
class HSM aws
class User default
- 用户/客户端:向受 Cloudflare 保护的域名发起 HTTPS 请求。请求中的服务器名称指示 (SNI) 扩展指定域名(例如
keyless.example.com)。该域名映射到一个声明为 keyless 的证书,这意味着只有公钥被导入到 Cloudflare,同时还声明了一个 keyless 监听器,用于后续的密钥操作。 - Cloudflare 安全隧道建立:使用 Cloudflare tunnel 组件与 Cloudflare 全球网络建立安全可靠的连接。只有出站流量离开安全边界,且流量可通过防火墙进行限制。该安全连接将作为密钥操作的安全覆盖层。
- 密钥操作:Cloudflare SSL 检测到需要进行 keyless 操作,然后将所有密钥操作发送到私有基础设施上安装的 keyless 模块。所有流量均通过之前建立的安全隧道传输。
- Keyless 模块:keyless 模块负责将密钥操作转发到硬件安全模块 (HSM) 进行加密操作。keyless 模块是一个软件组件,充当 Cloudflare 和 HSM 之间的代理,确保私钥永不离开 HSM。
- 通过 PKCS11 进行密钥操作:HSM 使用安全存储在其内部的私钥执行加密操作。HSM 是一种防篡改设备,可安全管理密钥并执行加密操作,确保敏感数据的最高级别安全性。
- Cloudflare Keyless SSL
- Cloudflare Tunnel
- 通过安全隧道使用 Keyless SSL
- 支持的 HSM:
- 配置: 配置 key server 以与硬件安全模块配合使用。
- AWS cloud HSM: 了解如何将 Keyless SSL 与 AWS CloudHSM 配合使用。
- Azure Dedicated HSM: 了解如何将 Keyless SSL 与 Azure Dedicated HSM 配合使用。
- Azure Managed HSM: 本教程使用 Microsoft Azure 的 Managed HSM 部署带有 Keyless SSL 守护进程的 VM。按照这些说明部署密钥服务器。
- Entrust nShield Connect: 了解如何将 Keyless SSL 与 Entrust nShield Connect 配合使用。
- Fortanix Data Security Manager(Fortanix DSM,数据安全管理器): 将 Keyless SSL 与 Fortanix Data Security Manager 配合配置。
- Google Cloud HSM: 了解如何将 Keyless SSL 与 Google Cloud HSM 配合使用。
- IBM Cloud HSM: 了解如何将 Keyless SSL 与 IBM Cloud HSM 配合使用。
- SoftHSMv2: 了解如何将 Keyless SSL 与 SoftHSMv2 配合使用。