6.14. 设置 TKS/TPS Shared Symmetric Key
共享对称密钥必须存在于 TPS 和 TKS 子系统的
NSS
数据库中。创建 TPS 子系统时会自动生成此密钥。如果同一 Tomcat 实例中都安装了 TPS 和 TKS,则不需要额外的设置,因为 TKS 会自动使用 TPS 创建的密钥;但是,如果两个子系统位于单独的实例上,或者根据这部分描述的步骤,必须按照本小节中介绍的步骤安全地将密钥传输到 TKS。
有几种可能的方法可用于安全地传输 TPS 和 TKS 之间的共享密钥:
- authomatic 方法:当 TPS 的子系统证书保存在软件 NSS 数据库中时,此方法可以正常工作。
- 如果上述方法失败,可以使用一个回退手动方法,其中使用 tkstool 程序在 TPS 上生成共享密钥,这样可将密钥从 TPS 嵌套,在不在传输中公开密钥的情况下进行安全传输,并取消将其嵌套在 TKS NSS 数据库中。
下面描述了 TPS 和 TKS 的一般配置,无论用于导入密钥的方法如何。请注意,自动方法会自动生成这些配置。
- TKS
tks.useNewSharedSecretNames=true tps.0.host=dhcp-16-206.sjc.example.com tps.0.nickname=TPS-<tps host name>-8443 sharedSecret tps.0.port=8443 tps.0.userid=,TPS-<tps host name>-8443 tps.list=0
注意当一个 TKS 连接到多个 TPS 实例时,上述列表可以扩展。- TPS
conn.tks1.tksSharedSymKeyName=TPS-<tps host name>-8443 sharedSecret
注意主机名必须与 TKS 端配置的名称相同。
6.14.1. 手动生成和传输共享统计密钥
这部分论述了如何手动生成和传输共享对称密钥。如果自动生成和传输失败时,这种方法很有用,但在其他情况下应避免。
manual 方法包含两个流程。第一个是在 Token Key Service 一侧执行,第二个在令牌处理系统中执行。
过程 6.3. Manual Shared Secret Key Method - TKS side
- 在第一个系统上安装令牌密钥服务。有关安装说明,请参阅 红帽认证系统规划、安装和部署指南。
- 停止 TKS 服务:
#
systemctl stop pki-tomcatd@pki-tomcat.service - 更改到
/var/lib/pki/pki-tomcat/alias
目录,并使用 tkstool 在 TKS 上创建共享密钥。在重启新的 TKS 实例前,请确保生成共享密钥。重要tkstool 脚本将在密钥创建过程中显示密钥的相关信息。确保记下这些信息,因为稍后需要将密钥导入到 TPS。#
cd /var/lib/pki/pki-tomcat/alias#
tkstool -T -d /var/lib/pki/pki-tomcat/tks/alias -n TPS-<tps host name>-8443 sharedSecret Generating the first session key share . . . first session key share: 792F AB89 8989 D902 9429 6137 8632 7CC4 first session key share KCV: D1B6 14FD Generating the second session key share . . . second session key share: 4CDF C8E0 B385 68EC 380B 6D5E 1C19 3E5D second session key share KCV: 1EC7 8D4B Generating the third session key share . . . third session key share: CD32 3140 25B3 C789 B54F 2C94 26C4 9752 third session key share KCV: 73D6 8633 Generating first symmetric key . . . Generating second symmetric key . . . Generating third symmetric key . . . Extracting transport key from operational token . . . transport key KCV: A8D0 97A2 Storing transport key on final specified token . . . Naming transport key "sharedSecret" . . . Successfully generated, stored, and named the transport key! - 在 TKS 中配置新密钥:
tks.useNewSharedSecretNames=true tps.0.host=dhcp-16-206.sjc.redhat.com tps.0.nickname=TPS-<tps host name>-8443 sharedSecret tps.0.port=8443 tps.0.userid=TPS-<tps host name>-8443 sharedSecret tps.list=0
- 启动 TKS:
#
systemctl start pki-tomcatd@pki-tomcat.service
过程 6.4. 手动共享 secret 密钥方法 - TPS 侧
- 在第二个系统上安装令牌处理系统。有关安装说明,请参阅 红帽认证系统 9 规划、安装和部署指南。
- 停止 TPS 服务:
#
systemctl stop pki-tomcatd@pki-tomcat.service - 更改到
/var/lib/pki/pki-tomcat/alias
目录,并使用 tkstool 将共享密钥导入到 NSS 软件令牌中:#
cd /var/lib/pki/pki-tomcat/alias#
tkstool -I -d . -n TPS-<tps host name>-8443 sharedSecret此时,脚本会提示您生成并嵌套在上述流程中的 TKS 一侧显示的会话密钥共享。 - 在 TPS 中配置共享 secret:
conn.tks1.tksSharedSymKeyName=TPS-<tps host name>-8443 sharedSecret
- 启动 TPS 服务:
#
systemctl start pki-tomcatd@pki-tomcat.service