请阅读以下各节,以了解有关服务器加密密钥源、位置、维护和使用的常见问题的答案。
问题:服务器加密密钥来自哪里?
回答:服务器加密密钥是对称的 triple-DES 168 位密钥。
服务器支持以下两类密钥:
默认密钥。此密钥已编译为服务器代码。
随机生成的密钥。此密钥可以在服务器初始启动或当前密钥的安全性出问题时生成。
在哪里维护服务器加密密钥?
回答:在系统信息库中维护服务器加密密钥。在任一给定系统信息库中都会有许多数据加密密钥。
问题:服务器如何知道使用哪个密钥对已加密的数据进行解密和重新加密?
回答:存储于系统信息库中的每一加密数据都以服务器加密密钥(用于加密该数据)的 ID 为前缀。将包含加密数据的对象读入内存后,Identity Manager 使用与加密数据的 ID 前缀相关联的服务器加密密钥进行解密,然后使用相同的密钥重新加密(如果数据已更改)。
问题:如何更新服务器加密密钥?
回答:Identity Manager 提供了名为“管理服务器加密”的任务。
此任务允许授权的安全管理员执行多项密钥管理任务,包括:
生成新的“当前”服务器密钥
使用“当前”服务器密钥按类型重新加密包含已加密数据的现有对象
有关如何使用此任务的详细信息,请参见本章中的管理服务器加密。
问题:如果更改“当前”服务器密钥,则会对现有加密数据造成什么样的影响?
回答:没有影响。仍将使用现有加密数据 ID 前缀对应的密钥对现有加密数据进行解密或重新加密。如果生成了新的服务器加密密钥并设置为“当前”密钥,则任何要加密的新数据都将使用该新服务器密钥。
为避免出现多密钥问题,以及为了更好地维护数据的完整性,可以使用“管理服务器加密”任务重新加密所有带有“当前”服务器加密密钥的现有加密数据。
问题:如果导入的加密数据没有可用的加密密钥,此时会出现什么情况?
回答:如果导入包含加密数据的对象,但加密该数据所使用的密钥不在要导入该数据的系统信息库中,则仍会导入该数据,但不进行加密。
问题:怎样保护服务器密钥?
回答:如果未将服务器配置为使用基于密码的加密 (Password-based Encryption, PBE)(PKCS#5 加密,使用 pbeEncrypt 属性或“管理服务器加密”任务在系统配置对象中设置),则使用默认密钥对服务器密钥进行加密。对于安装的任何 Identity Manager,设置的默认密钥都是相同的。
如果将服务器配置为使用 PBE 加密,则每次启动服务器时都将生成 PBE 密钥。通过提供一个密码(由特定于服务器的秘密生成)作为 PBEwithMD5andDES 加密器来生成 PBE 密钥。PBE 密钥仅在内存中维护并从不具有持久性。另外,PBE 密钥对于共享一个公共系统信息库的所有服务器都是相同的。
要启用服务器密钥的 PBE 加密,加密器 PBEwithMD5andDES 必须可用。默认情况下,Identity Manager 不包括此加密器,但此加密器采用 PKCS#5 标准,许多 JCE 提供者实现(例如由 Sun 和 IBM 提供的实现)中都提供了该标准。
问题:我可以导出服务器密钥以安全地存储在外部吗?
回答:是。如果服务器密钥是 PBE 加密,则在导出之前,将使用默认密钥对这些密钥进行解密和重新加密。这使得它们可以独立于本地服务器 PBE 密钥而稍后被导入同一或其他服务器中。如果使用默认密钥对服务器密钥进行加密,则在导出之前不需要进行任何事先的处理。
将密钥导入服务器后,如果该服务器配置为 PBE 密钥,则将解密这些密钥。然后,如果该服务器配置为 PBE 密钥加密,则使用本地服务器的 PBE 密钥重新加密这些密钥。
问题:将对服务器和网关之间的哪些数据进行加密?
回答:在服务器和网关之间传送的所有数据(有效负载)都由针对每个服务器-网关会话随机生成的对称 168 位密钥进行 triple-DES 加密。