本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加密
在加密方面,有两个重点领域:
-
传输中加密
-
静态加密
Db2 原生加密内置于 Db2 中,通过在数据写入磁盘时对其进行加密来保护静态数据。Db2 原生加密使用标准的两层模型。实际数据使用 Db2 数据加密密钥 (DEK) 加密,DEK 使用 Db2 主密钥 (MK) 加密。DEK 在数据库内管理,而 MK 则存储在外部密钥存储库中。
为了实现静态加密,亚马逊弹性区块存储 (Amazon EBS) Elastic Block Store 卷加密优于 Db2 原生加密,因为您可以使用云原生解决方案 AWS 进行设置和扩展。EBS 卷加密还有助于消除在迁移多个数据库服务器时不必要的操作开销和设置本机加密所花费的时间。有关更多信息,请参阅上 AWS的 “数据库加密架构
传输中的加密与以下数据通信有关:
-
在客户端和服务器之间
-
在主服务器和备用高可用性灾难恢复 (HADR) 服务器之间
-
在数据库服务器和外部服务之间
传输的数据使用 TLS 进行加密。此外,Db2 支持使用服务器端参数对用户 ID 和密码进行内部加密。AUTHENTICATION
TLS 使用 IBM Global Security Kit (GSKit) 中的库,该套件为正在发送的数据提供安全的隧道,并将证书安全地存储在密钥库中。
下图显示了客户端和服务器之间的 TLS 握手。

-
客户端请求 TLS 连接并列出其支持的密码套件。
-
服务器使用选定的密码套件及其数字证书(包括公钥)的副本进行响应。
-
客户端检查证书的有效性。如果证书有效,则会话密钥和消息身份验证码 (MAC) 将使用公钥加密并发送回服务器。
-
服务器解密会话密钥和 MAC。然后,服务器发送确认消息,启动与客户端的加密会话。
-
服务器和客户端使用会话密钥和 MAC 安全地交换数据。
证书到期后,您必须续订证书并在密钥库中对其进行更新。
从 Db2 版本 11.5.6 开始,您可以在配置 TLS 时包括主机名验证。主机名验证可帮助客户端连接验证服务器证书中的主机名是否与客户端中的主机名相匹配。这种验证可以帮助防止 person-in-the-middle攻击。除此之外,您还可以在客户端上配置该TLSVersion
参数。从 Db2 版本 11.5.8 开始,支持 TLS 1.3。