【发布时间】:2020-08-23 16:13:08
【问题描述】:
我已使用名为 KMU 的工具将 3DES 密钥从我的 SafeNet HSM 导出到文件中。此工具在提取之前使用另一个 3DES 密钥包装密钥。我可以访问第二个键的纯文本值。
问题是“如何解密打包文件以获得打包密钥的纯文本值?”
更新:
仅供参考:最终导出的文件如下所示:
L1: 000001f4 000001a800000001000001a0
L2: 00000020 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
L3: 00000140 0000001b0000010300000001010100000162000000010101800001290000000101010000016500000001010000000164000000010100000000010000000101010000000200000001010100000170000000010101000000030000000f014949494949494949494949494949490000010c000000010101000001040000000101010000010a000000010101000001060000000101010000010500000001010100000108000000010101000001070000000101018000012b000000010100000001610000000401000000100000000000000004010000000400000100000000040100000014800001030000000000000001020000000000000001100000000000000001110000000000800001280000000101000000016300000001010080000102000000100132303131313232383136323032313030000000000000000000000000
L4: 00000010 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
L5: 00000020 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
L6: 00000020 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
L7: 00000020 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“x”部分是在原始文件中看起来加密的数据,因此我将它们替换为“x”。我还添加了行号、空格和换行符,以使内容更具可读性!
【问题讨论】:
-
如果您能够使用工具导出密钥,则可以使用该工具解密(解包)导出的密钥(前提是它支持)。检查该工具是否有
unwrap键的选项。如果没有,则需要编写代码来进行解包操作。 -
如果您只需将密钥导入 HSM,则无需按照我的回答中所述手动解包。您可以通过“从组件输入密钥”功能导入“第二个密钥”(如果您有明文值,请使用 2 个组件并为第二个组件键入零),然后将此密钥用于“导入密钥”