Работа с JaCarta
Электронную подпись принято хранить на защищённом носителе — токене или смарт-карте. Носители JaCarta — это разработка отечественной компании «Аладдин Р.Д.». О нюансах работы с ними расскажем в этой статье.
Что такое JaCarta и как её использовать
JaCarta — это семейство защищённых носителей электронной подписи. Они бывают разных видов: usb-токен, microusb-токен, смарт-карта. Семейство включает в себя большое количество моделей, а также программное обеспечение для работы с носителями.
Установка единого клиента JaCarta
Основная программа, которая требуется для работы — это «Единый клиент JaCarta»:
- Скачайте подходящий для вашей операционной системы дистрибутив программы.
- Запустите установщик и следуйте инструкциям, в нужный момент выберите стандартный вид установки.
- После завершения установки перезагрузите компьютер.
Основы работы с JaCarta
После того как токен или смарт-карта были подключены к компьютеру, можно приступать к работе с ними. Для работы необязательно использовать «Единый клиент JaCarta», но в нём можно произвести настройку носителя: изменить PIN-код, провести диагностику работы устройств, выполнить инициализацию и т.д.
Для полноценной работы же потребуется криптопровайдер, если только он встроен в носитель по умолчанию. Подойдёт, например, «КриптоПро CSP».
Именно с помощью криптопровайдера вы сможете подписывать документы электронной подписью (это можно сделать и без него, но функции будут ограничены). Чтобы работать на государственных порталах или участвовать в торгах, понадобится также специальный плагин — «КриптоПро ЭЦП Browser plug-in».
Настройка единого клиента JaCarta
«Единый клиент JaCarta» по умолчанию настроен и готов к работе после установки, мы вкратце расскажем об элементах управления. У программы есть два режима:
- Режим пользователя, который предоставляет ограниченный доступ к функциям.
- Режим администратора, который предоставляет полный доступ к функциям.
Переключение режима производится посредством нажатия соответствующей кнопки в левом нижнем углу окна программы. Для этого понадобится PIN-код пользователя.
В программе есть несколько вкладок, основная — это «Информация о токене», где представлены общие сведения о носителе. Другие вкладки зависят от того, какой токен был подключён к компьютеру: JaCarta PKI/ГОСТ, например, имеет вкладки «PKI» и «ГОСТ». Именно в этих вкладках и можно производить настройку разделов носителя.
JaCarta: что это и как использовать
Токен JaCarta — это устройство с защищенной картой памяти, на которой хранится информация об электронной подписи. Это один из безопасных вариантов для хранения ЭП: носитель сертифицирован ФСТЭК/ФСБ, имеет пароль и усиленную защиту данных.
Токены JaCarta выпускаются в виде USB-токенов, отдельных модулей, смарт- и SIM-карт. Расскажем, чем популярные модели JaCarta отличаются друг от друга.
Что вы узнаете
Популярные варианты
Модели делятся на несколько семейств: JaCarta-2 SE, JaCarta-2 ГОСТ, JaCarta LT. Главное отличие — в наличии средства криптографической защиты информации (СКЗИ) и возможности работать с ЕГАИС. Для использования одних токенов нужно устанавливать программу на ПК, для других — не нужно, так как она уже находится в носителе.
JaCarta-2 SE
Токен имеет встроенное СКЗИ, сертифицирован ФСТЭК и ФСБ.
Это единственная модель линейки JaCarta, которая позволяет работать с алкоголем в ЕГАИС.
На каждом токене установлен личный PIN-код. Он вводится, когда пользователь заходит в систему. Но на JaCarta-2 SE можно установить еще один ПИН — для дополнительной защиты данных. Код будет вводиться, когда сотрудник подписывает документ или работает с транзакциями.
Если пользователь несколько раз введет неправильный PIN-код, токен не заблокируется. Повторно ввести пароль можно после установленного промежутка времени, например, через час.
JaCarta-2 ГОСТ
В отличие от предыдущей модели, не подходит для работы с ЕГАИС. Выпускается в нескольких вариантах: USB-токен, смарт-карта, модули смарт-карт, SIM-модули. Главное преимущество в том, что в чип смарт-карты можно загрузить дополнительные компоненты (апплеты). Это расширит возможности токена:
- Биометрическая идентификация. Доступ к устройству настраивается по отпечатку пальца.
- Платежные приложения (Visa, MasterCard, МИР). Можно проводить банковские операции без посещения банка, расплачиваться с помощью смарт-карты.
Смарт-карты поддерживают беспроводную передачу данных NFC, транспортные приложения, корпоративные карты. Например, банковская карта МИР может работать одновременно как карта «Тройка» и носитель ЭП.
JaCarta LT
Отличается от предыдущих вариантов тем, что не включает в себя средство криптографической защиты и не подходит для работы с ЕГАИС. Для использования ЭП понадобится установка СКЗИ на ПК. Например, КриптоПро.
Носитель сертифицирован ФСТЭК.
Сравнение моделей
Для наглядности мы подготовили таблицу.
Как настроить
Для использования моделей, в которых не встроено СКЗИ, нужно установить программное обеспечение «Единый клиент JaCarta». ПО позволяет настраивать и USB-токены, и смарт-карты (при наличии считывателя).
В программе можно установить и изменить PIN-код пользователя, получить информацию об устройстве, разблокировать носитель и т. д. ПО поддерживает устройства с российской и зарубежной криптографией.
Мы предлагаем не устанавливать программу вручную, а скачать мастер настройки рабочего места. Он настроит компьютер для работы с ЭП: установит ПО и необходимые драйверы.
-
Запустите мастер настройки ПК.
Мастер проверит, есть ли на вашем компьютере приложения для работы с ЭП. Выполняя рекомендации, установите или обновите ПО — напротив всех пунктов должна появиться зеленая галочка.
Выберите вашу электронную подпись.
Когда все работы будут завершены, появится кнопка «Начать работу». Нажмите ее, чтобы перейти в личный кабинет и отправить первый отчет или утвердить отгрузочные документы на приобретенную ЭП.
Работа с СКЗИ и аппаратными ключевыми носителями в Linux
Хранение ключей на токенах и смарт-картах обеспечивает дополнительную защиту от внешних и внутренних нарушителей, в том числе имеющих определенный уровень доступа к информационной системе и оборудованию.
Сегодня я расскажу, как мы защищаем ключи шифрования и электронной подписи в наших информационных системах, и сделаю это в подробном, хорошо проиллюстрированном руководстве по настройке SUSE Linux Enterprise Server 12 SP3 для работы с токеном Aladdin JaCarta PKI и КриптоПро CSP KC2 4.0.9944.
Опубликовать данное руководство побудило несколько причин:
Причина 1
Официальная документация на Aladdin-RD JaCarta больше адаптирована под операционные системы Astra Linux и ALT Linux, сертифицированные в Минобороны, ФСТЭК и ФСБ как средства защиты информации.
Причина 2
Лучшая инструкция по настройке взаимодействия с аппаратными носителями в Linux, которую удалось найти, была также от wiki.astralinux.ru — Работа с КриптоПро CSP
Причина 3
UPD 16.04.2019: В процессе настройки среды и оборудования выяснилось, что носитель, первым оказавшийся в распоряжении, был вовсе не JaCarta PKI Nano, как ожидалось, а устройство работающее в режиме SafeNet Authentication Client eToken PRO.
UPD 16.04.2019: Некогда Банку требовалось устройство, которое могло бы работать в той же инфраструктуре, что и eToken PRO (Java). В качестве такого устройства компания “ЗАО Аладдин Р.Д.” предложила токен JaCarta PRO, который был выбран банком. Однако на этапе формирования артикула и отгрузочных документов сотрудником компании была допущена ошибка. Вместо модели JaCarta PRO в артикул и отгрузочные документы случайно вписали JaCarta PKI.
UPD 16.04.2019: Благодарю компанию Аладдин Р.Д., за то что помогли разобраться и установить истину.
Этот eToken PRO относился к партии, выпущенной до 1 декабря 2017 года.
После этой даты компания «Аладдин Р.Д.» прекратила продажу устройств eToken PRO (Java).
Забегая немного вперед, нужно сказать, что работа с ним настраивалась через соответствующие драйверы — SafenetAuthenticationClient-10.0.32-0.x86_64, которые можно получить только в поддержке Аладдин Р.Д. по отдельной online заявке.
В КриптоПро CSP для работы с этим токеном требовалось установить пакет cprocsp-rdr-emv-64 | EMV/Gemalto support module.
Данный токен определялся и откликался. При помощи утилиты SACTools из пакета SafenetAuthenticationClient можно было выполнить его инициализацию. Но при работе с СКЗИ он вел себя крайне странно и непредсказуемо.
Проявлялось это следующим образом, на команду:
Выдавался ответ, что все хорошо:
Но сразу после попытки зачитать ключи программно эта же проверка начинала выдавать ошибку:
Согласно перечню кодов ошибок объектной модели компонентов Microsoft COM Error Codes (Security and Setup)
«Невалидный набор ключей» — причина такого сообщения, возможно, кроется либо в старом чипе, прошивке и апплете Gemalto, либо в их драйверах для ОС, которые не поддерживают новые стандарты формирования ЭП и функции хэширования ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012.
В таком состоянии токен блокировался. СКЗИ начинало показывать неактуальное состояние считывателя и ключевого контейнера. Перезапуск службы криптографического провайдера cprocsp, службы работы с токенами и смарт-картами pcscd и всей операционной системы не помогали, только повторная инициализация.
Справедливости ради требуется отметить, что SafeNet eToken PRO корректно работал с ключами ГОСТ Р 34.10-2001 в ОС Windows 7 и 10.
Можно было бы попробовать установить СКЗИ КриптоПро CSP 4.0 ФКН (Gemalto), но целевая задача — защитить наши ключи ЭП и шифрования с помощью сертифицированных ФСБ и ФСТЭК изделий семейства JaCarta, в которых поддерживаются новые стандарты.
Проблему удалось решить, взяв настоящий токен JaCarta PKI в (XL) обычном корпусе.
Но на попытки заставить работать Safenet eToken PRO времени было потрачено немало. Хотелось обратить на это внимание и, возможно, кого-то оградить от подобного.
Причина 4
Иногда самому требуется вернуться к старым статьям и инструкциям. Это удобно, когда информация размещена во внешнем источнике. Так что спасибо Хабру за предоставленную возможность.
Руководство по настройке
После установки токена JaCarta PKI в USB порт сервера и запуска системы проверяем, что новое устройство обнаружено и появилось в списке:
В нашем случае это Bus 004 Device 003: ID 24dc:0101
Пока не установлены все необходимые пакеты, информация о токене не отобразится.
Установка драйверов и ПО для работы с JaCarta PKI
Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.
Для работы утилиты управления JaCarta необходимо установить следующие компоненты:
- PC/SC Lite — промежуточный слой для обеспечения доступа к смарт-картам по стандарту PC/SC, пакет pcsc-lite.
- Библиотеки ccid и libusb для работы с USB-ключами, смарт-картами и считывателями смарт-карт.
Выполняем проверку наличия этих пакетов и установку:
zypper search pcsc-lite
zypper search libusb
zypper install pcsc-lite
zypper search CCID
zypper install pcsc-ccid
zypper search CCID
zypper install libusb
В итоге пакет pcsc-lite был обновлен, CCID установлен, libusb никаких действия не требовалось.
Следующими двумя командами выполняем установку пакета с драйверами и программным обеспечением непосредственно для работы с JaCarta PKI:
zypper install idprotectclientlib-637.03-0.x86_64.rpm
zypper install idprotectclient-637.03-0.x86_64.rpm
Проверяем, что драйверы и ПО для JaCarta PKI установились:
zypper search idprotectclient
При попытках заставить работать SafeNet eToken PRO я нашел информацию, что предустановленный в SLES пакет openct — Library for Smart Card Readers может конфликтовать с pcsc-lite — PCSC Smart Cards Library, установку которого требует руководство Аладдин Р.Д.
zypper search openct
Поэтому пакет openct удаляем:
Теперь все необходимые драйверы и ПО для работы с токеном установлены.
Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:
Установка пакетов КриптоПро CSP
При установке КриптоПро CSP по умолчанию нужные пакеты для работы с токенами и смарт-картами отсутствуют.
zypper search cprocsp
Выполняем установку в CSP компонента поддержки JaCarta components for CryptoPro CSP
zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm
Некоторые компоненты имеют зависимости. Так, например, если попытаться выполнить установку пакета поддержки SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm — EMV/Gemalto support module, то получим сообщение о необходимости сначала установить базовый компонент CSP поддержки считывателей cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm — PC/SC components for CryptoPro CSP readers:
Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:
zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm
zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm
Теперь можно установить модули для работы с остальными видами носителей и компонент GUI:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
Проверяем итоговую конфигурацию КриптоПро CSP:
S | Name | Summary | Type
—+——————————+—————————————————-+———
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package
Чтобы применить изменения, выполняем перезапуск службы криптографического провайдера и проверяем ее статус:
Настройка и диагностика КриптоПро CSP
Проверим, видит ли криптографический провайдер наш токен и другие доступные типы носителей следующими командами:
/opt/cprocsp/bin/amd64/csptest -card -enum -v –v
/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251
Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 — это наш носитель.
Следуя инструкции КриптоПро CSP для Linux. Настройка, выполняем его регистрацию в криптографическом провайдере:
В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.ini
в раздел [KeyDevices\PCSC] будет добавлена запись:
[KeyDevices\PCSC\»Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00″\Default]
Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:
Необходимо включить режим усиленного контроля использования ключей:
Проверяем, что режим включен:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl
Выполняем перезапуск службы криптографического провайдера:
После перезапуска проверяем, что ошибок в работе провайдера с ключевыми носителями нет:
/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique
Работа с токеном JaCarta PKI
Запустим программу Xming (X11 forwarding) на своей станции, чтобы по SSH иметь возможность открывать и работать с графическими интерфейсами нужных утилит.
После установки IDProtectClient — программного обеспечения для работы с JaCarta PKI, на сервере в папке /usr/share/applications появились два файла:
Это ярлыки, в которых можно посмотреть параметры запуска утилит Exec=/usr/bin/SACTools
Запустим утилиту IDProtectPINTool.
С помощью нее задаются и меняются PIN-коды доступа к токену.
При первой инициализации токена будет полезна ссылка, содержащая PIN-коды (пароли) ключевых носителей по умолчанию
Программа IDProtect_Manager позволяет просматривать информацию о токене и контейнере с ключами и сертификатом:
Для доступа к контейнеру с ключами нужно ввести пароль:
Для работы с SafeNet Authentication Client eToken PRO существуют аналогичные программы — SafeNet Authentication Client Monitor и SafeNet Authentication Client Tools, которые запускаются так:
Выполнять операции непосредственно с ключевыми контейнерами удобнее в интерфейсе криптографического провайдера КриптоПро JavaCSP:
Для отображения информации о содержимом контейнера с ключами можно выполнить команду:
Для диагностики контейнера используется эта же команда с ключом –check
Потребуется ввести пароль от контейнера:
Программное извлечение ключей
В общем виде пример извлечения закрытого ключа и сертификата открытого ключа из контейнера на токене с помощью КриптоПро Java CSP следующий:
Если действовать так:
то криптографический провайдер будет пытаться в системе отобразить через консоль или GUI окно запрос на ввод пароля к контейнеру.
Результаты
Отторгаемый ключевой носитель-токен установлен во внутренний USB-порт сервера.
Само серверное оборудование опломбировано и размещается в помещении с ограниченным доступом.
Такие меры позволяют повысить уровень защиты наших информационных систем от кражи и компрометации ключей электронной подписи или шифрования, как удаленно по сети, так и физически.
Как записать эцп на JaCarta
Войдите в приложение «Единый клиент JaCarta». Если его нет на ПК, его необходимо установить с web-диска.
Внизу серого поля, расположенного в левой части экрана, нажмите «Переключиться в режим администрирования».
В центральной части экрана выберите вкладку «PKI», в ней — ссылку «Инициализировать», как показано на следующем изображении:
В появившемся окне введите код администратора (по умолчанию 00000000) и пользователя (по умолчанию 11111111), после чего нажмите «Выполнить»:
На кого выпускать сертификаты КЭП для подразделений?
Правило такое: у каждого подразделения юридического лица, имеющего свой адрес и КПП, должен быть в собственной сертификат КЭП. Выпустить его можно на руководителя организации либо на уполномоченное лицо. Такие ответственные лица могут быть в каждом подразделении организации, то есть сертификат для каждого подразделения может выпускаться на отдельное уполномоченное лицо.
Сколько сертификатов нужно иметь?
Если речь об организации, то у нее должно быть столько сертификатов КЭП, сколько подразделений с самостоятельным адресом и КПП существует. То есть в каждом подразделении должен быть собственный цифровой носитель с записанным на него сертификатом.
У индивидуального предпринимателя может быть только один сертификат для ЕГАИС.
Более подробно читайте тут.
Возможно ли использовать сертификат в других системах?
Для работы с ЕГАИС выпускаются специальные сертификаты. Они помещаются на устройство JaCarta SE. Поэтому для работы в других системах в них должно быть установлено программное обеспечение для носителей указанного типа. Но даже при этом условии нет гарантии, что сертификат будет работать корректно. Он имеет свойство неэкспортированности и не может быть скопирован на другой носитель.
Можно ли на один носитель записать несколько сертификатов?
JaCarta имеет 5 разделов, в которые могут быть помещены сертификаты. Однако работать будет только тот из них, который был записан последним.
Как начать работу с носителем сертификата?
Носитель JaCarta SE PKI/ГОСТ использует стандартный драйвер операционной системы, именуемый USBCCID. Поэтому он будет функционировать без установки какого-либо дополнительного программного обеспечения. Но смотреть информацию о носителе и содержащихся на нем сертификатах, а также произвести настройки, через стандартные средства ОС нельзя. Для этого понадобится установить «Единый клиент JaCarta».