第 26 章 tpsclient (调试 TPS)


tpsclient 工具可用于调试或测试 TPS。tpsclient 违反了企业安全客户端,并可提供调试输出或模拟注册和格式化令牌,而无需使用令牌。
tpsclient 工具通过运行命令 tpsclient 来启动。该工具没有选项。运行此选项将打开 shell,允许将特定命令定向到 tpsclient
tpsclient

Registration Authority Client
'op=help' for Help
Command>
tpsclient 和 TPS 需要同意一组对称密钥来建立安全频道。它们都配置有 mutual 默认令牌,其默认密钥集(版本 1),其中包含三个密钥:身份验证密钥、Mac 密钥和密钥加密密钥(KEK)。TPS 子系统理解并接受默认密钥集。
每个键值都被设置为 0x40 0x41 0x42 0x43 0x44 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f, 16 字节。默认配置通过在 tpsclient 命令 shell 中运行 token_status 选项来显示。
Command>token_status
token_status
Output> life_cycle_state : '0'
Output> pin : 'password'
Output> app_ver : '00010203' (4 bytes)
Output> major_ver : '0'
Output> minor_ver : '0'
Output> cuid : '00010203040506070809' (10 bytes)
Output> msn : '00000000' (4 bytes)
Output> key_info : '0101' (2 bytes)
Output> auth_key : '404142434445464748494a4b4c4d4e4f' (16 bytes)
Output> mac_key : '404142434445464748494a4b4c4d4e4f' (16 bytes)
Output> kek_key : '404142434445464748494a4b4c4d4e4f' (16 bytes)
Result> Success - Operation 'token_status' Success (8 msec)
Command>
如果 TPS 配置为使用新的主密钥,则必须重新配置 tpsclient,或者无法建立与 TPS 的连接。
  1. 获取要输入到 tpsclient 的新密钥集数据。默认密钥集必须存储在 TKS 中,且必须添加主密钥。通过编辑 TKS CS.cfg 文件中的 TKS 映射参数来实现此目的:
    tks.mk_mappings.#02#01=nethsm1:masterkey
    此配置指示 TKS 将名为 masterkey 的主密钥映射到 nethsm1 令牌上的 master 键。
  2. 通过编辑 TPS CS.cfg 文件中的 update symmetric key 参数在 TPS 中启用密钥升级:
    op.format.tokenKey.update.symmetricKeys.enable=true
    op.format.tokenKey.update.symmetricKeys.requiredVersion=2
    
    此设置指示 TPS 在 tpsclient 格式操作期间将令牌从 1 升级到版本 2。
  3. 使用 tpsclient 格式化令牌,如下所示:
    tpsclient 
    Command>op=token_set cuid=a00192030405060708c9 app_ver=6FBBC105 key_info=0101
    Command>op=token_set auth_key=404142434445464748494a4b4c4d4e4f 
    Command>op=token_set mac_key=404142434445464748494a4b4c4d4e4f 
    Command>op=token_set kek_key=404142434445464748494a4b4c4d4e4f
    
    Command>op=ra_format uid=jsmith pwd=password num_threads=1 new_pin=password
    CUID 可以是任何 10 字节字符串;它会影响 TKS 计算为 tpsclient 设置的新密钥。
    TIP
    由于可能需要通过命令行键入每个操作和参数,因此可以创建输入文件,然后将 tpsclient 命令指向该文件。例如:
    tpsclient < /tmp/input.txt
    命令提示符将返回 tpsclient 在操作期间提供的任何输出,以及命令的最终结果。
  4. 运行格式操作后,tpsclient 会打印标准输出中设置的新密钥。将新值保存到新的 tpsclient 输入文件中。然后可将输入文件用于生产 TPS 服务器。
tpsclient 可用于格式化操作或注册操作。注册操作的输入文件示例显示在 例 26.1 “tpsclient 注册输入文件示例” 中。

例 26.1. tpsclient 注册输入文件示例

 op=var_set name=ra_host value=server.example.com
 op=var_set name=ra_port value=7888
 op=var_set name=ra_uri value=/nk_service
 op=token_set cuid=00000000000000000001
   msn=01020304 app_ver=6FBBC105 key_info=0101 major_ver=0 minor_ver=0
 op=token_set auth_key=404142434445464748494a4b4c4d4e4f
 op=token_set mac_key=404142434445464748494a4b4c4d4e4f
 op=token_set kek_key=404142434445464748494a4b4c4d4e4f

 op=ra_enroll uid=jdoe pwd=password new_pin=password num_threads=1
注册操作的输入文件示例显示在 例 26.2 “tpsclient 格式输入文件示例” 中。

例 26.2. tpsclient 格式输入文件示例

 op=var_set name=ra_host value=server.example.com
 op=var_set name=ra_port value=7888
 op=var_set name=ra_uri value=/nk_service
 op=token_set cuid=00000000000000000001
   msn=01020304 app_ver=6FBBC105 key_info=0101 major_ver=0 minor_ver=0
 op=token_set auth_key=404142434445464748494a4b4c4d4e4f
 op=token_set mac_key=404142434445464748494a4b4c4d4e4f
 op=token_set kek_key=404142434445464748494a4b4c4d4e4f
 op=ra_format uid=jsmith pwd=secret new_pin=newsecret num_threads=1
注意
如果为主机配置了 IPv4 地址或 IPv6 地址,则 host 值可以是 IPv4 地址或 IPv6 地址。

26.1. 语法

tpsclient 工具使用以下语法:
tpsclient op=operation options
表 26.1. tpsclient 操作
操作 描述 选项
op=help 启动帮助页面,其中列出了 tpsclient 工具的所有用法和选项。 不适用
op=debug filename=filename 启用调试。 filename 设置 debug 文件。
op=ra_enroll 测试证书注册。
  • UID 为用户提供正在运行的用户 ID。
  • pwd 提供与用户 ID 对应的密码。
  • num_threads 设置要使用的线程数量
  • secureid_pin 提供令牌密码
  • keygen 设置是否启用了服务器端密钥生成。
op=ra_reset_pin 重置令牌 PIN。
  • UID 为用户提供正在运行的用户 ID。
  • pwd 提供与用户 ID 对应的密码。
  • num_threads 设置要使用的线程数量
  • secureid_pin 提供令牌密码
  • new_pin 设置新的 PIN (令牌密码)。
op=ra_update 更新小程序。
  • UID 为用户提供正在运行的用户 ID。
  • pwd 提供与用户 ID 对应的密码。
  • num_threads 设置要使用的线程数量
  • secureid_pin 提供令牌密码
op=token_set 设置令牌值。 此操作的用法是 name=value,它设置令牌名称和描述。
op=token_status 返回当前令牌 status/ 不适用
op=var_get 获取变量的当前值。 它具有 usage name=name,其中 name 是正在检查的变量。
op=var_list 列出所有可能的变量。 不适用
op=var_set 设置变量值。
  • name 设置变量的名称。
  • value 设置 named 变量的值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.