kso*_*oop 6 cryptography pkcs#11
我正在尝试在我的应用程序中使用 pkcs11 来访问智能卡。这是“list-slots”命令的输出 -
root@penguin:~/src/tools$ pkcs11-tool -L
Available slots:
Slot 0 (0xffffffffffffffff): Virtual hotplug slot
(empty)
Run Code Online (Sandbox Code Playgroud)
我有 2 个问题
我如何模拟一张假卡,以便插槽 0 中有一个我可以访问的令牌/设备。
我可以创建额外的插槽并向其中添加令牌/设备吗?
如果没有,我该怎么做才能将令牌/设备添加到可用的插槽 0 中?
您需要一个“模块”,一个与特定智能卡交互的动态加载库。如果您的智能卡与 OpenSC 配合使用(例如,PIV 模式下的 Yubikey),您可以使用 OpenSC 模块,该模块通常/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so在 Linux 系统或/Library/OpenSC/lib/opensc-pkcs11.dylibmacOS 系统上使用。如果您没有物理智能卡并且只想使用 PKCS#11 API,则可以安装并使用SoftHSM,它在软件中模拟 PKCS#11 设备。在使用 SoftHSM 之前,您需要对其进行一些配置,以创建必要的插槽。SoftHSM 模块通常位于/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.soLinux 系统上。您需要--module在每次执行时指定pkcs11-tool。
以下是如何设置和使用 SoftHSMv2 的示例:
mkdir softhsm
cd softhsm
echo "directories.tokendir = $PWD/" > softhsm2.conf
export SOFTHSM2_CONF=$PWD/softhsm2.conf
pkcs11-tool -L --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
Run Code Online (Sandbox Code Playgroud)
SoftHSMv2 默认情况下有 1 个插槽。一旦您在第一个插槽中初始化了令牌,它将自动添加第二个插槽,依此类推。
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so -L
Available slots:
Slot 0 (0x0): SoftHSM slot 0
token state: uninitialized
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so --init-token --label my_token
Using slot 0 with a present token (0x0)
Please enter the new SO PIN:
Please enter the new SO PIN (again):
Token successfully initialized
membrane:~ $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so -L
Available slots:
Slot 0 (0x0): SoftHSM slot 0
token label : my_token
token manufacturer : SoftHSM project
token model : SoftHSM v2
token flags : rng, login required, token initialized, other flags=0x20
hardware version : 2.0
firmware version : 2.0
serial num : 5bed215e0df0d1f1
Slot 1 (0x1): SoftHSM slot 1
token state: uninitialized
Run Code Online (Sandbox Code Playgroud)
如果您使用硬件智能卡,通常您将拥有一组固定的插槽。
| 归档时间: |
|
| 查看次数: |
9859 次 |
| 最近记录: |