![image](https://habrastorage.org/webt/_x/ka/k2/_xkak2cjlx-e6zisd53wa4oqt5w.png)
Есть магическое слово – ключик, а на нем есть что-то, что позволит отправить данные в налоговую, участвовать в торгах и т.п. И УЦ выдают гражданам и организациям «ключики» с сертификатами и закрытыми ключами. Сегодня в абсолютном большинстве этими ключиками являются токены. Так и хочется сказать -криптографические токены с поддержкой российской криптографией и интерфейсом PKCS#11. К сожалению это далеко не так. Несмотря на то, что и производителей и объем токенов растет, используются все же они в большинстве случаев как обыкновенная флэшка, но с доступом к ней по PIN-коду.
Но все же токены PKCS#11 с поддержкой ГОСТ-криптографии все больше завоевывают популярность среди владельцев сертификатов. И чем больше порталов, электронных площадок будет работать не через интерфейс аля MS-CSP, а через PKCS#11, то как ни странно, и импортозамещение пойдет побыстрее.
И так, есть токены PKCS#11, на которых хранятся сертификаты, закрытые ключи, которые для безопасности имеют PIN-коды, которые в отличии от флэшки, могут не только хранить данные, но и выполнять криптографические операции.
Каждый владелец токена/смарткарты, естественно, стремится себя обезопасить с точки зрения доступа к закрытому ключу. Для этого он должен поменять не только пользовательский PIN-код, но и SO-PIN. Естественное желание, знать какие объекты (открытые/закрытые ключи, сертификаты и другие объекты) хранятся на токене. Более того, если вы получаете в УЦ сертификат и ключи, то хорошо бы самому посмотреть, что в итоге у вас оказалось на токене: ничего там лишнего не появилось или, не дай бог, не исчезло. Таким образом, неплохо бы иметь простую утилиту, которая бы могла управлять токеном (инициализировать, менять PIN-коды и т.д), просматривать объекты и т.п. А сейчас еще очень востребована операция экспорта с токена сертификата, не закрытьго ключа, а именно сертификата.
Такой утилитой является утилита p11conf:
bash-4.3$ /usr/local/bin64/p11conf
usage: /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 promp
t
Version 5.7
bash-4.3$
Отличительной особенностью этой утилиты является наличие графической оболочки на Tcl/Tk, которая также доступна
![](https://habrastorage.org/webt/eg/gz/xg/eggzxgadpnc-p_xerjujx1zdkd4.png)
После выбора библиотеки PKCS#11 в информационном окне будет отображена информация о библиотеки (самое ценное здесь – версия поддерживаемого стандарта PKCS#11) и токене (метка токена, слот, где он находится), если он присутствует:
![](https://habrastorage.org/webt/7m/dr/vo/7mdrvo6waq9hldvx2a6lxlug9ec.png)
Имея на руках хотя бы одну из этих утилит (p11conf, GUITKP11Conf) пользователь имеет удобный инструмент для управления и просмотра токенов/смарткарт PKCS#11. Так, просматривая механизмы поддерживаемые токеном, можно выбрать токен с необходимыми вам криптографическими механизмами, например, с поддержкой ГОСТ Р 34.10-2012:
![](https://habrastorage.org/webt/4q/t2/eo/4qt2eo_emujkpsfma0mb5y7sg-s.png)
Вы можете посмотреть не только перечень объектов, находящихся на токене, но и детальную информацию (атрибуты, флаги, значения каждого объекта):
![](https://habrastorage.org/webt/5s/s9/kn/5ss9kn2qsszdq9v2a9le_x2hvvk.png)
После ввода PIN-кода вы получите полную информацию о каждом объекте:
![](https://habrastorage.org/webt/ks/4g/0f/ks4g0f6oi7ovfhdaurieg-yqony.png)
Особо следует выделить функцию экспорта сертификатов. И, если из командной строки, экспорт сертификата идет только в DER-формате (формат хранения сертификатов на токенах PKCS#11), то графическая оболочка позволяет экспортировать сертификат как собственно в DER-формате, так и в PEM-формате:
![](https://habrastorage.org/webt/ed/wl/kq/edwlkq8lfqi9uymiu4py5cijmfu.png)
На скриншоте хорошо видно, что сертификат можно не толькл экспортировать, но и просматривать.
А начинать работу с токеном PKCS#11 после его приобретения рекомендуется с его инициализации и установки PIN-кодов, чтобы быть уверенным, что эти коды никто не знает:
![](https://habrastorage.org/webt/fc/2w/38/fc2w38vw49lrrnkzhthzsxwuy_0.png)
На мой взгляд очень удобная и полезная утилита, которой могут воспользоваться как корпоративные администраторы, ведущие распределение токенов на предприятии, так и в удостоверяющих центрах, ну и конечно рядовые, но продвинутые пользователи. Хотя уже завтра не останется не продвинутых пользователей.