On this page
静态加密
在本页面
静态加密与传输加密和保护相关帐户,密码和加密密钥的良好安全策略结合使用时,可以帮助确保符合 HIPAA,PCI-DSS 和 FERPA 等安全和隐私标准。
加密的存储引擎
3.2 版中的新功能。
Enterprise Feature
仅在 MongoDB Enterprise 中可用。
Important
仅适用于 WiredTiger 存储引擎。
MongoDB Enterprise 3.2 为 WiredTiger 存储引擎引入了本机加密选项。此功能允许 MongoDB 加密数据文件,以便只有具有解密密钥的各方才能解码和读取数据。
Encryption Process
如果启用了加密,则 MongoDB Enterprise 使用的默认加密模式是通过 OpenSSL 的AES256-CBC
(或密码块链接模式下的 256 位高级加密标准)。 AES-256 使用对称密钥;即用于加密和解密文本的相同密钥。 MongoDB Enterprise 还支持经过身份验证的加密AES256-GCM
(或 Galois/Counter 模式下的 256 位高级加密标准)。也可以使用 FIPS 模式加密。
Warning
数据加密过程包括:
生成主密钥。
为每个数据库生成密钥。
使用数据库密钥加密数据。
用主密钥加密数据库密钥。
加密在存储层中透明地进行;即,从文件系统的角度来看,所有数据文件都已完全加密,并且数据仅以未加密状态存在于内存中和传输过程中。
要加密 MongoDB 的所有网络流量,可以使用 TLS/SSL(传输层安全性/安全套接字层)。参见为 TLS/SSL 配置 mongod 和 mongos和Client 端的 TLS/SSL 配置。
Key Management
Important
加密密钥的安全 Management 至关重要。
数据库密钥在服务器内部,并且仅以加密格式分页到磁盘。在任何情况下,MongoDB 都不会将主密钥分页到磁盘。
只有主密钥在服务器外部(即,与数据和数据库密钥保持隔离),并且需要外部 Management。为了 Management 主密钥,MongoDB 的加密存储引擎支持两个密钥 Management 选项:
通过密钥 Management 互操作性协议(KMIP)与第三方密钥 Management 设备集成。 推荐的
通过密钥文件进行本地密钥 Management。
要配置 MongoDB 进行加密并使用两个密钥 Management 选项之一,请参阅Configure Encryption。
加密和复制
加密不是复制的一部分:
主密钥和数据库密钥不会复制,并且
数据不是通过本机加密的。
尽管您可以为节点重用相同的密钥,但是 MongoDB 建议为每个节点使用单独的密钥以及使用传输加密。
有关详细信息,请参见旋转加密密钥。
Logging
3.4 版中的新功能:仅在 MongoDB Enterprise 中可用
日志文件未作为 MongoDB 加密存储引擎的一部分进行加密。根据配置的log verbosity,以logging身份运行的mongod可能会将潜在敏感信息输出到日志文件,作为正常操作的一部分。
MongoDB 3.4 Enterprise 提供了security.redactClientLogData设置,以防止潜在的敏感信息进入mongod进程日志。 redactClientLogData会减少日志中的详细信息,并且可能会使日志诊断变得复杂。
有关更多信息,请参见log redaction手动 Importing。
应用程序级别加密
应用程序级别加密在应用程序层中按字段或按文档提供加密。要加密文档或字段级数据,请编写自定义加密和解密例程或使用商业解决方案。
有关 MongoDB 认证合作伙伴的列表,请参阅Partners List。要查看安全伙伴,请从“技术”过滤器中选择“安全”,然后从“认证”过滤器中选择“已认证”。