DB2 10.5 for Linux, UNIX, and Windows

DB2 本机加密

DB2® 本机加密用于对 DB2 数据库进行加密,这种加密方式不需要硬件、软件、应用程序或模式更改,并且提供透明安全的密钥管理功能。

加密是将数据变换为无法理解的形式的过程,以实现无法获取原始数据或只能使用解密过程来获取原始数据的效果。这是一种保护介质上存储的或者通过不可信通信信道传送的敏感信息的有效方式。为了遵循多种政府法规和行业标准,必须强制执行加密。

在加密方案中,需要保护的数据通过应用密码算法和加密密钥而变换为不可读格式。密码算法是一种在加密和解密过程中使用的数学函数。加密密钥是一个序列,用于控制密码算法的运算,并启用可靠的数据加密和解密。

某些用于保护静态数据的数据加密解决方案适用于发生磁盘设备物理盗窃的情况,某些解决方案可以防止特权用户滥用。使用本机数据库加密时,数据库系统本身将先对数据进行加密,然后调用底层文件系统以将这些数据写入磁盘。这意味着不仅当前数据,而且您将来可能添加的新的表空间容器或表空间中的数据均受到保护。本机数据库加密适用于保护数据,防止磁盘设备物理被窃或特权用户被滥用时数据遭泄露。

通常,使用本地或外部密钥管理器来管理密钥。数据库数据加密密钥 (DEK) 是一种加密密钥,实际用户数据使用该密钥进行加密。主密钥是“密钥加密密钥”:它用于保护 DEK。虽然 DEK 由数据库进行存储和管理,但主密钥在数据库外进行存储和管理。

图 1 中显示了这些密钥,该图提供 DB2 本机加密概述。
图 1. DB2 本机加密概述
此图显示 DB2 本机加密概述。
如果您创建已加密数据库而不在 CREATE DATABASE 命令中指定 MASTER KEY LABEL 选项,那么将自动添加新的主密钥。缺省情况下,数据库管理器使用此主密钥,但是您可以选择添加其他主密钥。

已加密主密钥存储在符合 PKCS#12 的密钥库中,密钥库是操作系统级别存在的加密密钥存储对象。在分区数据库环境或 DB2 pureScale® 环境中,密钥库位置必须可供所有成员访问。每个 DB2 实例至多有一个密钥库。keystore_typekeystore_location 数据库管理器配置参数用于指定密钥库的类型和位置。

密钥库密码(加密格式)可以存储到在需要时自动提供密码的文件中。此存储文件只能由文件所有者读取。如果不存储密码,那么即使恶意人员得到实例所有者帐户也无法获得密码,因此提高了安全性。然后,是提高安全性,还是需要在没有人为干预的情况下自动启动 DB2 实例,用户必须做出权衡。如果不存储密码,那么您需要提供密钥库密码,才能访问加密数据库。

如果 encrlibencropts 数据库配置参数设置为非 NULL 值,那么将自动对数据库备份映像进行加密。缺省情况下,已加密主密钥用于对备份 DEK 进行加密。

DB2 V10.5 FP5 向 DB2 数据库服务器添加了本机数据库加密。这种增强功能容易实现,它根据公用密钥密码术标准 #12 (PKCS#12) 提供安全的本地密钥管理。DB2 本机加密使您能够以具有成本效益的方式满足合规性需求。