飞天诚信 ePass3000 USBKey 硬件密钥使用总结
前言
最近在闲鱼上几块钱搞了个 ePass3000 硬件密钥来用,记录一下捣鼓过程。
安装必要工具
- ePass3000驱动
- OpenSC 0.21.0
注: 新版本的 OpenSC 执行一些步骤存在问题, 建议用 0.21.0
初始化
进入 OpenSC 的安装目录 (通常在 C:\Program Files\OpenSC Project\OpenSC\tools), 打开 cmd
擦除卡信息
pkcs15-init --erase-card --use-default-transport-key
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-init --erase-card --use-default-transport-key
Using reader with a card: FT SCR2000A 0重新初始化
使用以下命令初始化硬件密钥,注意一定要设置一个安全的 PUK!!
因为后续操作无法更改 PUK 码(至少我目前还不知道怎么改),而且一定要记住或抄下来存到安全的地方
pkcs15-init --create-pkcs15 --profile pkcs15+onepin --pin 123456 --puk 654321
以上命令重新初始化并把 PIN 设置为 123456,PUK 设置为 654321
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-init --create-pkcs15 --profile pkcs15+onepin --pin 123456 --puk 654321
Using reader with a card: FT SCR2000A 0验证初始化结果
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-tool --list-info
Using reader with a card: FT SCR2000A 0
PKCS#15 Card [OpenSC Card]:
Version : 0
Serial number : 0511040201970000
Manufacturer ID: EnterSafe
Last update : 20260326061419Z
Flags : EID compliant
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-tool --list-pins
Using reader with a card: FT SCR2000A 0
PIN [User PIN]
Object Flags : [0x03], private, modifiable
ID : 01
Flags : [0x32], local, initialized, needs-padding
Length : min_len:4, max_len:16, stored_len:16
Pad char : 0x00
Reference : 1 (0x01)
Type : ascii-numeric
Path : 3f005015到这里就完成了初始化流程,接下来可以生成密钥对了。
生成或导入密钥对
硬件生产更安全,本地生成更方便。
硬件生产密钥对后还得生产CSR,再搞证书,实在是繁琐...
导入证书
直接写入 PKCS#12 文件
pkcs15-init --store-private-key 证书路径.pfx --format pkcs12 --id 1 --pin 123456 --auth-id 01硬件生产密钥对
使用以下命令生成 RSA2048 密钥对:
pkcs15-init --generate-key rsa/2048 --id 1 --key-usage sign,decrypt --pin 123456 --auth-id 01
成功的话应该没有任何错误输出,直接返回命令行提示符。这一步需要一定时间,耐心等待一会。
验证
用 pkcs15-tool --list-keys 验证一下。
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-init --generate-key rsa/2048 --id 1 --key-usage sign,decrypt --pin 123456 --auth-id 01
Using reader with a card: FT SCR2000A 0
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-tool --list-keys
Using reader with a card: FT SCR2000A 0
Private RSA Key [Private Key]
Object Flags : [0x03], private, modifiable
Usage : [0x2E], decrypt, sign, signRecover, unwrap
Access Flags : [0x1D], sensitive, alwaysSensitive, neverExtract, local
Algo_refs : 0
ModLength : 2048
Key ref : 1 (0x01)
Native : yes
Path : 3f005015
Auth ID : 01
ID : 01
MD:guid : e87221a5-e65d-acc5-66d2-5842ec02c3fe查看公钥
pkcs15-tool --read-public-key 1
D:\Program Files\OpenSC Project\OpenSC\tools>pkcs15-tool --read-public-key 1
Using reader with a card: FT SCR2000A 0
-----BEGIN PUBLIC KEY-----
.........省略公钥信息.....
-----END PUBLIC KEY-----维护
更改 PIN 码
pkcs15-tool --change-pin --pin 123456 --new-pin 新PIN重设 PIN 码
当 PIN 输错次数太多被锁死时,使用 PUK 可以重设 PIN 码。(其实没锁掉也可以用 PUK 重设 PIN 码)
pkcs15-tool --unblock-pin --puk 654321 --new-pin 新PIN请在实际投入使用前,修改为安全的 PIN 码。