Комплект утилит для работы/использования USB-ключей (токенов)/смарт-карт с поддержкой российской криптографии на базе интерфейса PKCS11
Сегодня USB-ключи (токены)/смарт-карты с поддержкой российской криптографии на базе интерфейса PKCS11 широко используются и как средство электронной подписи (например, плагин LCSignPlugin) и как средство аутентификации.
Для удобства работы с USB-ключи/смарт-карты, доступ к которым осуществляется через библиотеки PKCS11 (например, семейство токенов LS11), специалистами ООО «ЛИССИ-Софт» разработаны утилиты p11conf и p11cert.
Утилита P11CONF
Утилита p11conf предназначена для управления самим токеном/USB-ключом/смарт-картой с интерфейсом PKCS#11:
bash-4.3$ /usr/local/bin64/p11confusage: /usr/local/bin64/p11conf [-hitsmIupPredf] -A APIpath [-c slotID -U userPin -S SOPin -n newPin -L label]
-h display usage
-i display PKCS#11 library info
-s display slot(s) info (-c slotID is optional)
-t display token(s) info (-c slotID is optional)
Others must use -c slotID
-m display mechanism list
-I initialize token
-u initialize user PIN
-p set the user PIN
-P set the SO PIN
-e enumerate objects
-d dump all object attributes (additional to -e and to -f)
-r remove all objects
-e -r remove enumerated objects with prompt
-f enumerate certificates and write them to DER-files with prompt
Version 5.6
Copyright(C) LISSI-Soft Ltd (http://soft.lissi.ru) 2011-2017
bash-4.3
Графическая утилита GUIP11Conf:
Скриншоты для платформы
- Linux
- OS X (mac OS)
- MS Windows
- Экспорт/Просмотр сертификатов
Дополнительные материалы
1. Криптографические токены PKCS#11: управление и доступ к объектам токена
2. Документация p11conf
Утилита P11CERT
Вторая утилита p11cert предназначена для работы с объектами (сертификатами), хранимыми на USB-ключах/смарт-картах:
bash-4.3$ /usr/local/bin64/p11cert -husage: /usr/local/bin64/p11cert -p11 <PKCS#11 library path> [options]
options:
-help - display usage
-p11info - display PKCS#11 library info
-slotlist - display slots info
-slot <slot ID> - set token slot ID
(first with token present by default)
-tokeninfo - display token info
-certlist - enumerate all certificates
-label <label> - token object label
-print - print certificate to standard output
-pkeyfind - search for certificate private key
-attributes - dump all certificate attributes
-remove - remove certificate from the token
-outfile - export certificate to output file path
-outform - output file format (pem|der)
(pem by default)
-infile - import from file path
-inform - import file format (pem|der|pfx|p12
(pem by default).
NB: Import with the pfx|p12 format creates
private key, public key and certificate
token objects with the same label.
Import with the pem|der format creates
the certificate token object only.
-unextractable - set attributes to imported private key:
CKA_EXTRACTABLE = CK_FALSE and
CKA_SENSITIVE = CK_TRUE
Copyright(C) LISSI-Soft Ltd (http://soft.lissi.ru) 2015-2016
bash-4.3$
Утилита p11cert своими функциональными возможностями частично схожа с утилитами Network Securuty Services (NSS) в части работы с сертификатами:
Утилита p11cert просмотреть список сертификатов на токене, получить список личных сертификатов (имеющих закрытые ключи), распечатать содержимое квалифицированного сертификата и многое другое.
Чтобы распечатать содержимое сертификата, сначало необходимо получить список сертификатов на токене:
bash-4.2$ /home/a513/tmp/p11cert -p11 /usr/local/lib/libls_rtpkcs11ecp.so -certlist
Certificate objects:
1: label: 'Тестовый_клиент_2001'
OK
После этого расечатать требуемый сертификат ('Тестовый_клиент_2001'), указав его метку:
bash-4.2$ /home/a513/tmp/p11cert -p11 /usr/local/lib/libls_rtpkcs11ecp.so -label
'Тестовый_клиент_2001' -print
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 3 (0x3)
Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001
Issuer: C=RU, O=Тестовый Корневой сертификат, CN=Тестовый Корневой
сертификат/[email protected]/INN=000000000000/OGRN=0000000000000/SNILS=00000000000
Validity
Not Before: Nov 6 13:18:00 2014 GMT
Not After : Nov 6 13:18:00 2015 GMT
Subject: C=RU, O=Тестовый клиент 2001, CN=Тестовый клиент
2001/[email protected]/INN=000000000000/SNILS=00000000000
Subject Public Key Info:
Public Key Algorithm: GOST R 34.10-2001
Public key:
0x52, 0x43, 0x31, 0x50, 0x5d, 0xe8, 0x10, 0x9e,
0x00, 0x58, 0x0e, 0x52, 0xef, 0x6d, 0x57, 0x77,
0x3a, 0xba, 0xc6, 0x04, 0x64, 0xc7, 0xfb, 0xb4,
0x28, 0xa5, 0xb9, 0x45, 0x7a, 0x54, 0x11, 0xae,
0x3a, 0x06, 0x37, 0x50, 0x30, 0xd7, 0x96, 0xb0,
0xbf, 0x4a, 0x3e, 0xba, 0x6c, 0x61, 0x1d, 0x59,
0xac, 0xb4, 0x33, 0x36, 0xbe, 0xdd, 0xf2, 0x76,
0xfe, 0x54, 0x53, 0x1c, 0xb4, 0xf7, 0x4b, 0x2a,
Parameter set: id-GostR3410-2001-CryptoPro-XchA-ParamSet
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Key Encipherment, Data Encipherment
Netscape Cert Type:
SSL Client, S/MIME
Netscape Comment:
xca certificate
Signature Algorithm: GOST R 34.11-94 with GOST R 34.10-2001
a1:65:46:19:bf:72:10:e9:bd:55:b0:26:cc:e1:7c:5b:e9:a7:
31:f1:1e:69:96:2c:fc:ba:57:3a:d6:66:98:ec:bb:72:b3:35:
1b:16:44:5e:37:cf:2d:0d:aa:49:12:6e:f6:60:0d:02:cd:7f:
91:0a:e5:b4:fa:15:e7:29:dd:09
OK
bash-4.2$
Комплект поставки включает в себя утилиты p11conf, p11cert и документацию.