Криптографический АРМ на базе стандартов с открытым ключом. Конфигурирование токенов PKCS#11

ak4_mhyj16_mq5k5h9zd05dnor0.pngЕще раз просмотрев функционал утилиты cryptoarmpkcs, обратил внимание на то, что она, в основном работая с криптографическими токенами/смаркартами PKCS#11, не имеет встроенного функционала для их конфирурирования. Речь идет об инициализации токенов, установки PIN-кодов и т.п. И было решено добавить этот функционал. Первым делом для этого пришлось расширить функционал пакета TclPKCS11, библиотека которого написана на языке Си.

Новые функции пакета TclPKCS11


В пакете появились три новые функции:

::pki::pkcs11::inittoken    
::pki::pkcs11::inituserpin    
::pki::pkcs11::setpin     


Первая функция :: pki: pkcs11:: inittoken предназначена для инициализации токена. Надо иметь ввиду, что если эта функция применяется к рабочему токену, то все имеющиеся на нем объекты будут уничтожены.

Вторая функция :: pki: pkcs11:: inituserpin предназначена для первичной инициализации пользовательского PIN-кода (USER PIN).

После первичной инициализации пользовательского PIN-кода, его необходимо сразу же сменить на тот PIN-код, который будет пользоваться в дальнейшем, и хранить его, также как и SO-PIN, в дали от чужих глаз. В целях безопасности токены, как правило, не дают залогиниться на них с первоначальным PIN-кодом.

Для смены PIN-кодов используется третья функция, а именно :: pki: pkcs11:: setpin. Эта функция позволяет менять как пользовательский PIN-код, так и SO-PIN.

При этом следует также иметь ввиду, что восстановить первоначальный SO-PIN (default), токены, как правило, не возволяют. Но если вы выполните переинициализацию токена, то вновь получите дефолтный SO-PIN. Реализацию пакета TclPKCS11 можно посмотреть на github-е.

Теперь, имея на руках, пакет TclPKCS11 с новыми функциями, не составило труда реализовать GUI для этих функций:

kftzbrb15wxmo6z31ei2wl9aa7c.png

Учебные токены


Но прежде чем ими воспользоваться, обратим внимание на то, что в функционал утилита добавлена еще одна кнопка «Создать Токены».

Это связано с тем, что не у всех есть аппаратный токен PKCS#11 с поддержкой российской криптографии, а если есть, то боязно его использовать в учебных целях. И вот именно для того, чтобы утилиту можно было легко использовать в учебных целях, прежде всего, и появилась кнопка «Создать Токены». Нажав на эту кнопку, вы увидите инструкцию как получить либо программный либо облачный токены:

0ggry8mqbsx-jrhuv9r0xkky3go.png

Эти токены реализуют самые последние рекомендации ТК-26 для PKCS#11 v. 2.40.

Рассмотрим вкратце как получить облачный токен. Скачиваем необходимый дистрибутив, распаковываем при необходимости и запускаем. Если у нас нет облачного токена, то мы получим следующее сообщение:

b13jofvep6tfa2ubmxxvgq0xite.png

Поскольку у нас нет еще облачного токена, то нажимаем кнопку «Регистрация в облаке»:

vhl1emb5c_osrid40cykaz-srcc.png

После заполнения полей, нажимаем кнопку «Готово»:

2ssyjneg9ioqrn91pr84rthwi-4.png

Поскольку мы ведем речь прежде всего об обучении, то можно сохранить пароль для доступа к облаку (но не токену) на рабочем месте:

mr7ixxhx7odzwumrhvnenak_nri.png

Инициализация токена


Теперь, когда, мы зарегистрировались в облаке, мы выходим из утилиты guils11cloud_conf и возвращаемся к утилите cryptoarmpkcs для конфигуирования облачного токена. Здесь надо отметить, что библиотека облачного токена будет сохранена в папке ls11cloud, созданной в домашнем каталоге пользователя. Именно эту библиотеку и надо будет выбрать в качестве библиотеки PKCS#11 для облачного токена. После выбора библиотеки можно посмотреть и поддерживаемые криптографические механизмы:

yiomssfq9j5d0l7dhda6ji6h7ck.png

Возвращаемся к инициализации облачного токена нажав кнопку «Конфигурирование токена». Выбираем операцию «Инициализация токена», заполняем поля (вспоминаем, что дефолтный SO-PIN — 87654321) и нажимаем кнопку «Выполнить операцию»:

sx7tmmjsjqkwucovlkvhhsw6t04.png

Все токен готов к работе. Но не забудьтк сменить SO-PIN и переодическм менять пользовательский PIN-код. По аналогичной схеме можно создать и программный токен. Желающие могут попробовать. Теперь мы можете хранить на них свои личные сертификаты, подписывать документы, делать все то, о чем писалось в этой серии статей.

Ближайшие нововведения в ИОК/PKI


Госдума 7 ноября 2019 года приняла в первом чтении поправки в закон «Об электронной подписи». Этот поправки касаются всех организаций и ИП, поскольку изменятся правила выдачи электронных подписей.

Если я правильно все понял, то квалифицированные сертификаты юридические лица и индивидуальные предприниматели смогут получать только в Федеральной налоговой службе, а финансовые организации — в ЦБ РФ. И только используя эти сертификаты можно будет ставить
усиленную квалифицированную электронную подпись (Cades-XLT1).

Аккредитованные Минкомсвязью удостоверяющие центры (УЦ) смогут выдавать такие сертификаты только физическим лицам.

При этом требования к УЦ сильно изменятся: собственный капитал должен быть увеличен с 7 млн до 500 млн — 1 млрд, размер страховой ответственности увеличивается с 30 млн до 300–500 млн рублей, срок аккредитации сокращается с 5 лет до 3 лет.

Законопроект уже вызвал острую критику. Основные претензии сводятся к тому, что изменения приведут к закрытию подавляющего большинства коммерческих УЦ, потребуют значительных затрат из бюджета на расширение и поддержание мощностей УЦ ФНС, а также к концентрации всех типов рисков на единственной инфраструктуре, что станет удобной мишенью для кибератак.

Есть ще одна поправка — обязанность подписывать документы компаний не одной, а двумя усиленными квалифицированными подписями одновременно. Руководитель организации должен будет ставить на документе подпись юридического лица и личную цифровую подпись как физического лица.

И вот тут утилита cryptoarmpkcs будет очень и очень кстати, поскольку ее функционал позволяет ставить под документом несколько подписей, а также просматривать кто и когда подписал документ:

uytqylilmmhwhzbvpto85vljcwq.png

© Habrahabr.ru