飞天诚信 ePass3000 USBKey 硬件密钥使用总结

前言

最近在闲鱼上几块钱搞了个 ePass3000 硬件密钥来用,记录一下捣鼓过程。

安装必要工具

注: 新版本的 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 码。

本文链接:

https://blog.nkxingxh.top/archives/684/
1 + 5 =
快来做第一个评论的人吧~