第 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 的连接。
- 获取要输入到 tpsclient 的新密钥集数据。默认密钥集必须存储在 TKS 中,且必须添加主密钥。通过编辑 TKS
CS.cfg
文件中的 TKS 映射参数来实现此目的:tks.mk_mappings.#02#01=nethsm1:masterkey
此配置指示 TKS 将名为 masterkey 的主密钥映射到 nethsm1 令牌上的 master 键。 - 通过编辑 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。 - 使用 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 在操作期间提供的任何输出,以及命令的最终结果。 - 运行格式操作后,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
操作 | 描述 | 选项 |
---|---|---|
op=help | 启动帮助页面,其中列出了 tpsclient 工具的所有用法和选项。 | 不适用 |
op=debug filename=filename | 启用调试。 | filename 设置 debug 文件。 |
op=ra_enroll | 测试证书注册。 |
|
op=ra_reset_pin | 重置令牌 PIN。 |
|
op=ra_update | 更新小程序。 |
|
op=token_set | 设置令牌值。 | 此操作的用法是 name=value,它设置令牌名称和描述。 |
op=token_status | 返回当前令牌 status/ | 不适用 |
op=var_get | 获取变量的当前值。 | 它具有 usage name=name,其中 name 是正在检查的变量。 |
op=var_list | 列出所有可能的变量。 | 不适用 |
op=var_set | 设置变量值。 |
|