python泰雷兹hsm模拟器
pythales的Python项目详细描述
#Pythales
[Thales HSM]的原始实现(https://en.wikipedia.org/wiki/hardware_security_module)硬件安全模块)模拟器。仅实现基本(最流行)hsm命令:
-a0-生成密钥
-bu-生成密钥检查值
-ca-将pin从tpk转换为zpk
-cy-验证cvv/csc
-dc-验证pin
-ec-使用aba pvv方法验证交换pin
-fa-将zpk从zmk转换为lmk
-hc-生成TMK公司,TPK或PVK
-NC-诊断信息
磷/usr/bin/python3
workon pyenv
`````
>查看代码和安装要求:
```bash
>git clone https://github.com/timgabets/pythalets
cd pythalets
workon pyenv
>pip3安装-r安装-r requirements.txt
``````
>运行:
``bash
cd示例/
/br/>./hsm-server.py-server.py--help检查选项
./hsm_server.py-h ssss-d—跳过奇偶校验
```
输出示例:
````
/hsm-server.py-h ssss-d—跳过奇偶校验
lmk:deafbeedeafbeedeafbeedeaf
固件版本:0007-e000
消息头:ssss
侦听端口1500
连接的客户端:192.168.56.101:50010
17:59:49.278803<;<;从192.168.56.101:50010接收的8字节:
00 06 53 53 53 4e 43..ssssnc
17:59:49.279338>;>发送到192.168.56.101:50010的35字节:
00 21 53 53 53 53 4e 44 30 46 34 45 44 43 38.!ssssnd00f4edc8
44 45 42 36 37 46 36 45 32 30 30 37 2d 45 deb67f6e280007-e
30 30 000
[响应代码]:[nd]
[错误代码]:[00]
[lmk检查值]:[f4edc8deb67f6e28]
[固件版本]:[0007-e000]
18:01:13.089485<;<;收到108字节从192.168.56.101:50010开始:
00 6A 53 53 53 53 53 44 43 55 43 34 45 44 35 39 37.jsssduc4ed597
45 45 30 43 39 36 37 31 30 34 45 44 33 39 ee0c9697104ed399
42 45 36 46 38 38 37 32 37 33 36 44 35 be6f8b8727336d50
43 34 37 32 38 37 31 46 34 35 42 C47128d710df450b
4342 32 43 36 34 36 31 42 37 33 41 45 36 32 CB2C6461B793AE62
44 46 43 38 44 32 34 36 30 34 30 30 37 30 30 DFC8D24260140700
30 30 30 30 30 31 31 33 34 33 000001013843
[TPK]:[UC4ED597EE0C9697104ED399BE6F8B872]
[PVK对]:[7336D50C47128D710DF450BCB2C6461B]
[密码块]:[793AE62DFC8D2426]
[密码块格式代码]:[01]
[账号]:[4070000010]
[PVKI]:[1]
[PVV]:[3843]
调试:解密密码块:0412748fffffef
18:01:13.090230>;发送到192.168.56.101:50010的10字节:
00 08 53 53 53 53 44 44 30..ssssdd00
[响应代码]:[dd]
[错误代码]:[00]
18:01:13.104389<;<;从192.168.56.101:50010接收的68字节:
00 42 53 53 53 53 53 59 55 31 43 45 42 31 30。bssscyu1c1eb10
39 30 36 38 43 43 45 36 30 33 45 30 35 90681cc9e6003e05
32 31 37 43 30 37 37 45 34 34 31 37 217c7077e6404174
30 30 30 30 30 31 34 34 31 31 37 31 31070000000104;171
32 30 31 2201
[cvk]:[u1c1eb1090681cc9e6003e05217c7077e]
[cvv]:[640]
[主账号]:[41740700000104]
[到期日]:[1712]
[服务代码]:[201]
18:01:13.104979>;10字节发送到192.168.56.101:50010:
00 08 53 53 53 53 43 5a 30..sssscscz00
[响应代码]:[cz]
[错误代码]:[00]
`````
您还可以查看[示例](https://github.com/timgabets/pythales/tree/master/examples)以获得更复杂的hsm服务器实现,其中包含一些功能,如命令行选项解析等。应用程序作为服务器工作,可以同时为一个连接的客户端服务。
[Thales HSM]的原始实现(https://en.wikipedia.org/wiki/hardware_security_module)硬件安全模块)模拟器。仅实现基本(最流行)hsm命令:
-a0-生成密钥
-bu-生成密钥检查值
-ca-将pin从tpk转换为zpk
-cy-验证cvv/csc
-dc-验证pin
-ec-使用aba pvv方法验证交换pin
-fa-将zpk从zmk转换为lmk
-hc-生成TMK公司,TPK或PVK
-NC-诊断信息
磷/usr/bin/python3
workon pyenv
`````
>查看代码和安装要求:
```bash
>git clone https://github.com/timgabets/pythalets
cd pythalets
workon pyenv
>pip3安装-r安装-r requirements.txt
``````
>运行:
``bash
cd示例/
/br/>./hsm-server.py-server.py--help检查选项
./hsm_server.py-h ssss-d—跳过奇偶校验
```
输出示例:
````
/hsm-server.py-h ssss-d—跳过奇偶校验
lmk:deafbeedeafbeedeafbeedeaf
固件版本:0007-e000
消息头:ssss
侦听端口1500
连接的客户端:192.168.56.101:50010
17:59:49.278803<;<;从192.168.56.101:50010接收的8字节:
00 06 53 53 53 4e 43..ssssnc
17:59:49.279338>;>发送到192.168.56.101:50010的35字节:
00 21 53 53 53 53 4e 44 30 46 34 45 44 43 38.!ssssnd00f4edc8
44 45 42 36 37 46 36 45 32 30 30 37 2d 45 deb67f6e280007-e
30 30 000
[响应代码]:[nd]
[错误代码]:[00]
[lmk检查值]:[f4edc8deb67f6e28]
[固件版本]:[0007-e000]
18:01:13.089485<;<;收到108字节从192.168.56.101:50010开始:
00 6A 53 53 53 53 53 44 43 55 43 34 45 44 35 39 37.jsssduc4ed597
45 45 30 43 39 36 37 31 30 34 45 44 33 39 ee0c9697104ed399
42 45 36 46 38 38 37 32 37 33 36 44 35 be6f8b8727336d50
43 34 37 32 38 37 31 46 34 35 42 C47128d710df450b
4342 32 43 36 34 36 31 42 37 33 41 45 36 32 CB2C6461B793AE62
44 46 43 38 44 32 34 36 30 34 30 30 37 30 30 DFC8D24260140700
30 30 30 30 30 31 31 33 34 33 000001013843
[TPK]:[UC4ED597EE0C9697104ED399BE6F8B872]
[PVK对]:[7336D50C47128D710DF450BCB2C6461B]
[密码块]:[793AE62DFC8D2426]
[密码块格式代码]:[01]
[账号]:[4070000010]
[PVKI]:[1]
[PVV]:[3843]
调试:解密密码块:0412748fffffef
18:01:13.090230>;发送到192.168.56.101:50010的10字节:
00 08 53 53 53 53 44 44 30..ssssdd00
[响应代码]:[dd]
[错误代码]:[00]
18:01:13.104389<;<;从192.168.56.101:50010接收的68字节:
00 42 53 53 53 53 53 59 55 31 43 45 42 31 30。bssscyu1c1eb10
39 30 36 38 43 43 45 36 30 33 45 30 35 90681cc9e6003e05
32 31 37 43 30 37 37 45 34 34 31 37 217c7077e6404174
30 30 30 30 30 31 34 34 31 31 37 31 31070000000104;171
32 30 31 2201
[cvk]:[u1c1eb1090681cc9e6003e05217c7077e]
[cvv]:[640]
[主账号]:[41740700000104]
[到期日]:[1712]
[服务代码]:[201]
18:01:13.104979>;10字节发送到192.168.56.101:50010:
00 08 53 53 53 53 43 5a 30..sssscscz00
[响应代码]:[cz]
[错误代码]:[00]
`````
您还可以查看[示例](https://github.com/timgabets/pythales/tree/master/examples)以获得更复杂的hsm服务器实现,其中包含一些功能,如命令行选项解析等。应用程序作为服务器工作,可以同时为一个连接的客户端服务。