- Чтение данных ЭЦП из PDF в Joomla 3 и Joomla 4
- Создание плагина для Joomla
- Работа с библиотеками в Joomla
- Различия в указании namespaces в Joomla 3 и Joomla 4
- Готовые библиотеки для чтения ЭЦП в Joomla
- Метод onContentPrepare в Joomla
- Использование Joomla Layout для результирующего HTML
- Я не могу импортировать свой ключ, как узнать пароль.
- Извлечения данных подписи из PDF в PHP
- Готовый плагин для Joomla 3 и Joomla 4
- Полезные ресурсы
- Ресурсы сообщества:
- Telegram:
- Немного об электронной подписи
- Работа с электронной подписью
- Работа с электронной подписью
- Что такое электронная подпись?
- Как создать электронную подпись?
- Как изменить электронную подпись?
- Насколько безопасно использовать электронную подпись?
- Я забыл пароль ключа электронной подписи, что мне делать?
- Я забыл кодовое слово, что мне делать?
- Требования к компьютеру для подписания документов электронной подписью
- Работа с ЭЦП на портале «электронного правительства»
- JaCarta SE/LT
- Что такое электронная подпись?
- Как создать электронную подпись?
- Как изменить электронную подпись?
- Насколько безопасно использовать электронную подпись?
- Я забыл пароль ключа электронной подписи, что мне делать?
- Я забыл кодовое слово, что мне делать?
- Требования к компьютеру для подписания документов электронной подписью
- Подготовка документов к подписи с помощью ЭЦП
- Вопросы-ответы об ЭЦП – Yvision
- Что такое ЭЦП?
- Для чего нужна ЭЦП?
- Как получить ЭЦП?
- Для чего нужно устанавливать приложение NCALayer?
- Чем отличаются ключи ЭЦП с названием AUTH_RSA от RSA?
- Почему ЭЦП выдается сроком на 1 год?
- Как самостоятельно продлить срок действия ЭЦП?
- Что такое ЭЦП на удостоверении личности?
- Как поменять пароль на ЭЦП?
- Что делать, если я забыл пароль от ЭЦП, как восстановить?
- КриптоПро просмотреть сохраненный пароль (пинкод) на контейнер закрытого ключа ЭЦП
- Настройка личного кабинета
- Библиотека стандартных подсистем
- Просмотреть сохраненный пароль (пинкод) на контейнер закрытого ключа ЭЦП
- Примеры кода
- Подпись сообщения ЭЦП
Чтение данных ЭЦП из PDF в Joomla 3 и Joomla 4
В Joomla тексты документов выкладываются материалами. Добавить к материалу pdf-файл для скачивания и отобразить информацию о подписанте из ЭЦП можно несколькими способами:
Обычной ссылкой на файл в тексте материала. В таком случае на потребуется системный или контент-плагин, который будет обрабатывать все ссылки в материале, выделять из них ссылки только на pdf и далее проверять есть ли подпись.
Сделать пользовательское поле для материалов и добавлять файлы только в эти поля. Здесь вариантов работы несколько от кустарных и неправильных, когда обработка ссылки будет идти прямо в шаблоне (не делайте так!) до оформления кода в плагин пользовательского поля. Вот простой мануал по созданию собственного плагина пользовательского поля для Joomla.
Вставить специальный шорт-код. Можно вставить шорт-код, в параметрах которого будет указан путь к файлу для парсинга. В таком случае код плагина упростится, но чуть усложнится работа контент-менеджера.
Именно третий вариант я выбрал для создания плагина.
Создание плагина для Joomla
Материалы перед рендером обрабатывают плагины на событии onContentPrepare, где среди прочих данных мы получаем текст материала для обработки.
<?php
defined('_JEXEC') or die;
/**
*
* @param string $context The context of the content being passed to the plugin.
* @param object &$article The article object. Note $article->text is also available
* @param mixed &$params The article params
* @param integer $page The 'page' number
*
* @return mixed true if there is an error. Void otherwise.
*
* @since 1.6
*/
public function onContentPrepare($context, &$article, &$params, $page = 0)
{
// Don't run this plugin when the content is being indexed
if ($context === 'com_finder.indexer')
{
return true;
}
// Тут наш код.
}
Работа с библиотеками в Joomla
Для работы нашего кода нам требуются 6 библиотек. Пока что Joomla CMS не поддерживает установку пакетов с помощью composer (это в планах к Joomla 5), поэтому нам необходимо подготовить xml-обёртки библиотек для Joomla. Официальная документация по созданию собственных библиотек для Joomla.
Если кратко, нам нужно создать xml-файл, в котором мы расскажем Joomla что это вообще такое:
<?xml version="1.0" encoding="UTF-8" ?>
<extension type="library" version="3.10" method="upgrade">
<name>Webmasterskaya/CryptoBridge Library</name>
<libraryname>Webmasterskaya/CryptoBridge</libraryname>
<version>0.3.1</version>
<description>Russian fork of a SOP\CryptoBridge. A PHP library providing cryptography support for various PKCS applications. Defines an interface with encrypt / decrypt and signature signing / verification methods. Currently only OpenSSL backend is supported.</description>
<creationDate>23/05/2019</creationDate>
<copyright>Joni Eskelinen, Artem Vasilev</copyright>
<license>MIT</license>
<author>Joni Eskelinen, Artem Vasilev, Sergey Tolkachyov</author>
<authorEmail>[email protected], [email protected]</authorEmail>
<authorUrl>https://github.com/webmasterskaya/crypto-types</authorUrl>
<files folder="libraries">
<folder>Crypto</folder>
<file>Crypto.php</file>
</files>
</extension>
– это отображаемое в списке расширений название библиотеки
– это директория библиотеки в /libraries.Если у Вас свой неймспейс и в нём несколько библиотек, то в мы через слеш указываем свой неймспейс.
Так, Webmasterskaya/CryptoBridge означает, что файлы будут лежать в корень_сайта/libraries/Webmasterskaya/CryptoBridge.
Для того, чтобы их использовать нужно зарегистрировать неймспейс этой библиотеки. Официальная документация рекомендует делать это с помощью простого системного плагина на событие onAfterInitialise()
<?php
/**
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later.
*/
defined('_JEXEC') or die;
use Joomla\CMS\Plugin\CMSPlugin;
/**
* Mylib plugin class.
*
* @package Joomla.plugin
* @subpackage System.mylib
*/
class plgSystemMylib extends CMSPlugin
{
/**
* Method to register custom library.
*
* return void
*/
public function onAfterInitialise()
{
$jversion = new JVersion();
// Проверка какая версия Joomla используется.
if (version_compare($jversion->getShortVersion(), '4.0', '<'))
{
// only for Joomla 3.x
JLoader::registerNamespace('Sop', JPATH_LIBRARIES);
JLoader::registerNamespace('Webmasterskaya', JPATH_LIBRARIES);
JLoader::registerNamespace('Smalot', JPATH_LIBRARIES);
}
else
{
JLoader::registerNamespace('Sop', JPATH_LIBRARIES . '/Sop');
JLoader::registerNamespace('Webmasterskaya', JPATH_LIBRARIES . '/Webmasterskaya');
JLoader::registerNamespace('Smalot', JPATH_LIBRARIES. '/Smalot');
}
}
}
Различия в указании namespaces в Joomla 3 и Joomla 4
В Joomla 3 следует указывать путь, после которого начинается namespace.В Joomla 4 следует указывать путь вплоть до каталога, где начинается namespace.
Готовые библиотеки для чтения ЭЦП в Joomla
Готовые для работы в Joomla библиотеки в xml-обёртках лежат здесь:
Sop/ASN1
SOP/Crypto encoding
Webmasterskaya/Crypto bridge
Webmasterskaya/Crypto types
Webmasterskaya/X501
Webmasterskaya/X509
Также для получения даты последнего изменения PDF-файла я использую библиотеку Smalot/PDFParser.
По идее нужно 2 плагина: один для регистрации неймспейсов библиотек в группе system и один для обработки текста материалов в группе content. Разделение плагинов на группы позволяет не нагружать сервер и задействовать обработку плагинами только тогда, когда это действительно нужно, так как группа системных плагинов вызывается всегда, а плагины групп – каждая в определенном случае. Однако, предполагая, что на сайте школы не будет трафика более 5-10к уников в сутки, да и кэширование можно настроить, поэтому помещаем регистрацию неймспейсов и обработку текста в один плагин.
Метод onContentPrepare в Joomla
Для удобства шорткод сделаем с открывающим и закрывающим тегом. Для кода используем брендированную аббревиатуру, либо что-то интуитивно понятное. Я выбрал {wt_ds_pdf} – “WebTolk Digitally Signed PDF“. В тексте материала $article->text
нам нужно найти регуляркой все вхождения, считать путь между тегами шорткода и обработать его методом для получения данных ЭЦП из PDF.
<?php
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Date\Date;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Factory;
use \Sop\ASN1\Element;
use \Sop\ASN1\Type\Constructed\Sequence;
use \Webmasterskaya\X509\Certificate\Certificate;
use \Smalot\PdfParser\Parser;
public function onContentPrepare($context, $article, $params, $limitstart = 0)
{
//Проверка есть ли строка замены в контенте
if (strpos($article->text, 'wt_ds_pdf') === false)
{
return;
}
// Регулярка для поиска в тексте материала
$regex = "~{wt_ds_pdf}.*?{/wt_ds_pdf}~is";
// Получаем все вхождения
if (preg_match_all($regex, $article->text, $matches, PREG_PATTERN_ORDER))
{
// Циклом проводим замену
foreach ($matches[0] as $key => $match)
{
$pdf_file = preg_replace("/{.+?}/", "", $match);
$pdf_file = str_replace(array('"', '\'', '`'), array('"', ''', '`'), $pdf_file); // Address potential XSS attacks
$layoutId = $this->params->get('layout', 'default');
$layout = new FileLayout($layoutId, JPATH_SITE . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'system' . DIRECTORY_SEPARATOR . 'wt_digitally_signed_pdf' . DIRECTORY_SEPARATOR . 'layouts');
// наш метод для получения данных ЭЦП из PDF. Возвращает массив.
$digital_sign_info = $this->getDigitallySignedPdfInfo($pdf_file);
// Путь к файлу для вывода ссылки
$digital_sign_info['link_to_file'] = $pdf_file;
// Получаем HTML с помощью Joomla Layout
$output = $layout->render($digital_sign_info);
$article->text = str_replace($match, $output, $article->text);
}
}//end FOR
} //onContentPrepare END
Для получения даты последнего изменения из мета-данных PDF-файла я подключил библиотеку Smalot/PDF Parser.
<?php
use \Smalot\PdfParser\Parser;
use Joomla\CMS\Date\Date;
$ModDate = new Date($pdf_meta_data['ModDate'], $timezone);
$date_modified = $ModDate->format(Text::_('DATE_FORMAT_LC6'),true);
Использование Joomla Layout для результирующего HTML
Joomla построена по паттерну MVC, в который добавлен Layout. Layout позволяет создавать переопределения макетов, что является одной из важнейших и удобнейших особенностей Joomla. В плагине Вы создаете папку layouts, в которой лежат html-макеты вывода. В нём доступен массив данных $displayData (мы передаём его в методе $output = $layout->render($digital_sign_info); чуть ниже по коду). В настройках плагина Joomla я добавил выбор макета вывода (layout’а) информации о файле и электронной подписи. Соответственно Вы можете сверстать себе вывод просто ссылки со всплывающим тултипом, а можете использовать HTML5 тег для того, чтобы удобно было просматривать информацию как на десктопах, так и на мобильных устройствах или любой другой вариант вывода. При желании плагин можно усовершенствовать и указывать в шорткоде дополнительный параметр, например, “tmpl=link” или “tmpl=html5_details”.
<?php
// Файл layout'a
use Joomla\CMS\Language\Text;
use \Joomla\CMS\Date\Date;
defined('_JEXEC') or die('Restricted access');
/**
* @var $displayData array Digital sign data
* Use
* echo '<pre>';
* print_r($displayData);
* echo '</pre>';
*
* Информация в массиве с данными подписи может быть очень разная в зависимости от типа подписи, производителя.
* Поэтому смотрим массив $displayData и отображаем только нужную информацию.
* Array
* (
* [pdf_date_modified] => дата последнего изменения pdf-файла. Как правило, это дата подписания.
* [inn] => ИНН
* [snils] => СНИЛС
* [email] => электронная почта
* [country] => RU - двухсимвольный код страны
* [province] => регион/область
* [city] => город
* [organisation] => название организации
* [given_name] => имя и отчество должностного лица
* [surname] => фамилия должностного лица
* [common_name] => Ф.И.О. целиком
* [post] => должность
* [cert_date_start] => дата начала действия сертификата электронной подписи
* [cert_date_end] => дата окончания действия сертификата электронной подписи
* [serial_number] => серийный номер
* [link_to_file] => ссылка на файл
* [sign_icon] => иконка ЭЦП из настроек плагина
* )
*
*/
$cert_date_start = new Date($displayData['cert_date_start']);
$cert_date_end = new Date($displayData['cert_date_end']);
$tooltip = 'Здесь отображаем нужную нам информацию. Хотя варианты вывода ограничны лишь Вашей фантазией.';
$tooltip .= '<br/><strong>Период действия сертификата</strong> '. $cert_date_start->format(Text::_('DATE_FORMAT_FILTER_DATE')).'-'.$cert_date_end->format(Text::_('DATE_FORMAT_FILTER_DATE'));
echo '<a data-hren="'.$displayData['link_to_file'].'" class="hasTooltip" data-toggle="tooltip" data-html="true" title="'.$tooltip.'"><img src="'.$displayData['sign_icon'].'" alt="Документ подписан цифровой подписью"/>Скачать файл</a>';
Предложенный вариант layout’a является просто примером вывода. При использовании Joomla layouts становится возможным использовать переопределения макета и Joomla будет искать переопределения в шаблоне фронтенда и использовать их, если они обнаружены. При необходимости можно добавить свои пути, которые должны использоваться при поиске переопределений.
<?php
// Пример добавления путей в Joomla Layout из файлового менеджера Quantum manager
protected function getLayoutPaths()
{
$renderer = new FileLayout('default');
$renderer->getDefaultIncludePaths();
return array_merge(parent::getLayoutPaths(), [
JPATH_ROOT . '/administrator/components/com_quantummanager/layouts/fields'
], $renderer->getDefaultIncludePaths());
}
Я не могу импортировать свой ключ, как узнать пароль.
Здравствуйте! После того, как Вы получили ключи, Вам необходимо установит программное обеспечение. С инструкциями Вы можете ознакомиться пройдя по данной ссылке: http://pki.gov.kz/index.php/ru/fizicheskie-litsa Ключи Вы можете импортировать следующим образом: Если у Вас браузер Mоzilla Firefox: Запускаете браузер, выбираете вкладку Инструменты, далее в этой вкладке выбираем Настройки. В открывшемся окне настроек выберите вкладку Дополнительные, в этой вкладке выбираете Шифрование, в ней нажмите на кнопку Просмотр сертификатов. В открывшемся окошке выберите вкладку Ваши сертификаты и импортируйте в него сертификат на алгоритме AUTH_RSA. Если у Вас Explorer или Google Chrome, то необходимо открыть ключ AUTH_RSA: 1) Вас приветствует мастер импорта сертификатов – Далее 2) Импортируемый файл – Далее 3) Пароль – Вводите пароль и Далее 4) Хранилище сертификатов – Поместить все сертификаты в следующее хранилище – Обзор: а) Поставить “галочку” на “Показать физические хранилища” б) Найти в списке “Личные”, раскрыть список, выбрать “Реестр” – ОК – Далее 5) Завершение работы мастера импорта сертификатов – Готово Для импорта в OPERA: Зайдите в меню браузера Opera «Инструменты» – «Настройки» Выберите вкладку «Дополнительно», затем «Безопасность» и нажмите на кнопку «Установить пароль» Введите произвольный пароль безопасности. Запомните пароль. Нажмите «ОК» Нажмите кнопку «Управление сертификатами» В появившемся окне выберите вкладку «Личные» и нажмите кнопку «Импорт» В появившемся окне выберите файл AUTH_RSA***.p12, находящийся на дисковом носителе и нажмите кнопку «Открыть» Введите пароль от ЭЦП Нажмите «ОК» Стандартный пароль от ключей от 1 до 6 (123456). Если Вы его изменяли через личный кабинет на сайте pki.gov.kz, то пароль Вы задавали сами. В случае если Вы изменили стандартный пароль и забыли новый пароль, необходимо подать заявку на получение нового ключа и предоставить документы в ЦОН повторно.
pkigovkz.userecho.com
Извлечения данных подписи из PDF в PHP
Хранение данных электронной подписи в формате PDF описывает спецификация Adobe. Также есть вопрос на StackOverflow How to retrieve digital signature information from PDF with PHP, который натолкнул [Артёма Васильева] на верные дальнейшие шаги.
В процессе подписи создаётся файл в формате pkcs7, который затем интегрируется внутрь PDF файла бинарном виде (специалисты в области криптографии меня поправят).
Далее из бинарника нужно вытащить в цепочку сертификатов в формате DER. И здесь начинаются сложности: дело в том, что openssl в php это сделать не может. Собрать такую сигнатуру у него возможность есть, а вот разобрать – нет. Проблема в том, что данные в нём записаны по алгоритму ASN.1. Поиск в интернете приводит обычно к ответам в духе “используйте shell_exec для запуска openssl” или “нафига оно надо – напишите на java микросервис”, “используйте iText [Java и .NET библиотека] – я им очень доволен”. Но, как мы понимаем, это решение не для условной провинциальной школы искусств.
Благо, обнаружилась библиотека, написанная на php, без сумасшедших зависимостей, которая умеет это всё читать, но она не знакома с российскими алгоритмами шифрования. Алгоритмы шифрования CP_GOST_R3411_12_256_R3410, CP_GOST_R3411_12_512_R3410 описаны в RFC.
Скриншот сообщения из Telegram-канала Joomla по-русски
Артём Васильев изучил документацию ГОСТ Р-34.10 и ГОСТ Р-34.11, а также RFC7836 и дописал к найденной php библиотеке для работы с ASN.1 3 класса: 2 для работы с алгоритмами шифрования по ГОСТ и один для RFC7836. Слёзы гордости и радости можно почувствовать в оригинальном сообщении в Telegram-канале Joomla-сообщества.
Готовый плагин для Joomla 3 и Joomla 4
Скачать готовый плагин отображения данных ЭЦП из PDF для Joomla 3 и Joomla 4. Там же можно скачать все необходимые для его работы библиотеки.
Скриншот экрана установки Joomla 4
Настройки плагина – чекер библиотек, сами настройки чуть ниже. Joomla 4.
Шорт-код в тексте материала. Joomla 4.
<amp-img layout="responsive" width="1365" height="742" src="https://habrastorage.org/getpro/habr/upload_files/b64/e27/c8c/b64e27c8c8a56b64bdb49ed4b9ef25f8.jpg" alt="Работа плагина снаружи – во фронтенде. Joomla 4. Макет вывода – тег
Работа плагина снаружи – во фронтенде. Joomla 4. Макет вывода – тег HTML5.
Viva la Joomla!
Полезные ресурсы
Ресурсы сообщества:
форум русской поддержки Joomla.
Telegram:
чат сообщества «Joomla! по-русски».
Joomla для профессионалов, разработчики Joomla.
Новости о Joomla! и веб-разработке по-русски.
вакансии и предложения работы по Joomla: фуллтайм, частичная занятость и разовые подработки. Размещение вакансий здесь.
англоязычный чат сообщества.
Немного об электронной подписи
Законом предусмотрены два типа электронных подписей: простая и усиленная. Последняя имеет две формы: квалифицированная и неквалифицированная.
Для того чтобы электронный документ считался подписанным простой электронной подписью необходимо выполнение в том числе одного из следующих условий:
1. простая электронная подпись содержится в самом электронном документе;
2. ключ простой электронной подписи применяется в соответствии с правилами, установленными оператором информационной системы, с использованием которой осуществляются создание и (или) отправка электронного документа, и в созданном и (или) отправленном электронном документе содержится информация, указывающая на лицо, от имени которого был создан и (или) отправлен электронный документ.
Ссылка на источник
Существует 2 вида подписей: открепленная и прикрепленная.
Открепленная электронная подпись создается в момент подписания электронного документа в отдельный файл непосредственно рядом с подписываемым файлом. Обычно это файл с таким же именем, как и подписываемый, но в формате *.sig.
Прикрепленная электронная подпись также создается в момент подписания документа, но сама подпись помещается внутрь подписываемого электронного документа. На выходе мы имеем один подписанный файл, что в целом соответствует требованию закона.
На практике у тех, кто не имеет IT-специалиста, разбирающегося в тонкостях ЭЦП, в шаговой доступности, нередко возникает вопрос: “Нужно ещё одну подпись покупать?” Ответ: нет. В каждой образовательной организации есть бухгалтерия. У бухгалтерии есть казначейская подпись “для госзакупок”. Подписывать документы для сайта можно ей.
Работа с электронной подписью
Работа с электронной подписью
- Что такое электронная подпись?
- Как создать электронную подпись?
- Как изменить электронную подпись?
- Насколько безопасно использовать электронную подпись?
- Я забыл пароль ключа электронной подписи, что мне делать?
- Я забыл кодовое слово, что мне делать?
- Требования к компьютеру для подписания документов электронной подписью
Что такое электронная подпись?
Электронная подпись (электронно-цифровая подпись) – это реквизит электронного документа, позволяющий установить отсутствие искажения информации в электронном документе с момента его подписания и проверить принадлежность подписи владельцу сертификата ключа электронной подписи. Значение реквизита получается в результате криптографического преобразования информации с использованием закрытого ключа подписи. Электронная подпись является аналогом собственноручной подписи. Использование электронной подписи в России регламентируется федеральным законом № 63-ФЗ от 6 апреля 2011 г.
Как создать электронную подпись?
Создать свою собственную электронную подпись Вы можете с помощью раздела «Управление ключами» главного меню системы при наличии у Вас кодового слова, которое Вы должны указать в Анкете клиента при личном посещении нашего офиса или в процессе открытия счета онлайн.
Чтобы создать и использовать ЭЦП в системе, Вы должны также подписать Соглашение об использовании документов в электронной форме в офисе компании или иным возможным способом.
Как изменить электронную подпись?
Электронную подпись нельзя изменить. Однако можно создать новый ключ электронной подписи с помощью раздела «Управление ключами» главного меню системы. Для этого Вам понадобится ввести Ваше кодовое слово. После создания нового ключа электронной подписи, Ваш старый ключ аннулируется.
Насколько безопасно использовать электронную подпись?
Электронную подпись практически невозможно подделать. Однако Вы должны соблюдать некоторые меры предосторожности. Храните ключ электронной подписи в местах, недоступных для посторонних лиц! Не передавайте никому файл ключа и пароль доступа к нему! Если у Вас есть подозрения, что Ваш ключ электронной подписи может быть использован другими лицами, немедленно сообщите об этом в Компанию по тел.: +7 812 635 68 65. Клиент несет полную ответственность за сохранность ключа электронной подписи и паролей.
Я забыл пароль ключа электронной подписи, что мне делать?
Пароль ключа электронной подписи невозможно восстановить. Если Вы забыли его, создайте новую электронную подпись с помощью раздела «Управление ключами» главного меню системы. Для этого Вам понадобиться ввести Ваше кодовое слово. После создания нового ключа электронной подписи, Ваш старый ключ аннулируется.
Если Вы подозреваете, что Ваши ключи электронной подписи могли быть изменены третьими лицами, немедленно сообщите об этом в отдел по работе с клиентами по тел. +7 812 635-68-65, чтобы заблокировать доступ к Вашему аккаунту и аннулировать ключ электронной подписи.
Я забыл кодовое слово, что мне делать?
Кодовое слово невозможно восстановить. Мы не можем выслать его на адрес Вашей электронной почте или сказать по телефону. Чтобы изменить кодовое слово, Вам необходимо лично прийти в один из наших офисов. Еще раз проверьте, как Вы вводите Ваше кодовое слово. Его необходимо ввести точно так, как Вы написали его в Анкете клиента. Проверьте регистр букв (маленькие или большие) и раскладку клавиатуры (язык ввода и прочее).
Требования к компьютеру для подписания документов электронной подписью
На Вашем компьютере должен быть установлен и включен в настройках обозревателя компонент – Java Virtual Machine (JVM, виртуальная Java-машина), который нужен для запуска и работы апплетов (загружаемых программных модулей) генерации ключей и электронной подписи под документами.
С обозревателем Microsoft Internet Explorer обычно поставляется Java-машина от компании Microsoft – Microsoft VM. Также можно установить аналогичный компонент от компании SUN (SUN Java Virtual Maсhine browser plug-in), который можно скачать с сайта компании SUN.
После загрузки файла двойным щелчком мыши запустите установку компонента. После того, как компонент установится, необходимо перезагрузить компьютер.
Сервис корректно работает с компонентами 3 Microsoft VM версии 5.0 и выше, а также Sun Java browser plug-in версии 1.4.2_03 и выше, 1.5.0 и выше, 1.6.0 и выше.
Просмотреть информацию об установленном компоненте Java VM (а также включить/отключить его) можно в меню обозревателя «Сервис»(Tools) –> «Свойства Обозревателя»(Internet Options) на вкладке «Дополнительно»(Advanced), в открывшемся окне ищите раздел о VM (Microsoft VM или Java (Sun)).
Версию компонента Microsoft VM можно посмотреть в меню «Вид»(View) –> «Окно языка Java» (Java console), если включена опция «Java console enabled» на вкладке «Дополнительно»(Advanced).
Если у Вас установлены и включены в обозревателе оба компонента: и Microsoft VM, и Sun Java plug-in, то один из них необходимо отключить.
Если Вы пользуетесь обозревателем, отличным от Microsoft Internet Explorer, рекомендуем выбирать установочный пакет обозревателя с Java либо дополнительно установить Java-машину от Sun.
Пользователям операционной системы Linux рекомендуем установить Java-машину от Sun версии не ниже 1.5.0, которую можно скачать с сайта компании SUN.
www.dohod.ru
Работа с ЭЦП на портале «электронного правительства»
Много различных мнений вызывают услуги в формате онлайн: кто-то относится с недоверием, кому-то это кажется слишком сложным, а кто-то уже давно и успешно пользуется электронными услугами, экономя свое время, деньги и силы. И первый шаг на пути к продуктивной организации своего времени, бизнеса и даже жизни – получение ключей ЭЦП. Что скрывается под этими магическими буквами, и как их использовать мы расскажем в этом посте.
Что такое ЭЦП?
Электронно-цифровая подпись (ЭЦП) – это аналог собственноручной подписи, который используется для придания электронному документу такой же юридической силы, как если бы этот документ был на бумажном носителе с подписью и скрепленной печатью.
ЭЦП является реквизитом электронного документа, полученного в результате криптографического преобразования информации с использованием электронного регистрационного свидетельства (далее по тексту – Сертификата) и закрытого ключа ЭЦП.
Проще говоря, использование ЭЦП – это полноценная замена собственноручной подписи.
Согласно Закону Республики Казахстан от 7 января 2003 года «Об электронном документе и электронной цифровой подписи» дано понятие «регистрационное свидетельство», которое в международной практике используется как «сертификат» или «сертификат открытого ключа».Основные понятия, взятые с вышеуказанного закона
- Национальный удостоверяющий центр Республики Казахстан – удостоверяющий центр, обслуживающий участников “электронного правительства”, государственных и негосударственных информационных систем;
- регистрационное свидетельство – документ на бумажном носителе или электронный документ, выдаваемый удостоверяющим центром для подтверждения соответствия электронной цифровой подписи требованиям, установленным настоящим Законом;
- владелец регистрационного свидетельства – физическое или юридическое лицо, на имя которого выдано регистрационное свидетельство, правомерно владеющее закрытым ключом, соответствующим открытому ключу, указанному в регистрационном свидетельстве;
- электронный документ – документ, в котором информация представлена в электронно-цифровой форме и удостоверена посредством электронной цифровой подписи;
- электронная цифровая подпись – набор электронных цифровых символов, созданный средствами электронной цифровой подписи и подтверждающий достоверность электронного документа, его принадлежность и неизменность содержания;
- средства электронной цифровой подписи – совокупность программных и технических средств, используемых для создания и проверки подлинности электронной цифровой подписи;
- открытый ключ электронной цифровой подписи – последовательность электронных цифровых символов, доступная любому лицу и предназначенная для подтверждения подлинности электронной цифровой подписи в электронном документе;
- закрытый ключ электронной цифровой подписи – последовательность электронных цифровых символов, известная владельцу регистрационного свидетельства и предназначенная для создания электронной цифровой подписи с использованием средств электронной цифровой подписи.
Какие преимущества дает использование ЭЦП на нашем портале?
Ключевые преимущества при использовании ЭЦП через портал электронного правительства:
- Возможность получения электронных услуг государственных органов в любое удобное для вас время: круглосуточно, семь дней в неделю;
- Возможность подачи электронных обращений в виртуальные приемные государственных органов области и республики. Ссылка на сервис «Электронных обращений» появляется в правом блоке страниц портала после авторизации пользователя.
Обновление ПО
В начале мая 2012 года команда разработчиков Национального Удостоверяющего Центра анонсировала выход модернизированной версии программного обеспечения НУЦ РК.
Целью перехода на использование нового ПО является облегчение установки корневых сертификатов для юридических и физических лиц. Если раньше пользователям было необходимо прибегать к помощи ПО Tumar CSP, что требовало особых усилий при установке и ограничено ОС Windows, то теперь, с новым ПО все обстоит гораздо проще.
Так в чем же отличие?
- Корневой сертификат – сертификат, принадлежащий Центру Сертификации, с помощью которого проверяется достоверность других, выданных центром сертификатов. Для того, чтобы программное обеспечение, например, операционная система или браузер смогли корректно проверить сертификат пользователя, необходимо, чтобы корневой сертификат был предварительно установлен в браузере или в операционной системе.
- Tumar CSP – это программное обеспечение, которое выполняло “внедрение” в операционную систему семейства Windows криптографического алгоритма ГОСТ, который изначально не поддерживается ими. То есть он являлся программным обеспечением для подсистемы криптографии операционной системы, а корневой сертификат – это информация, которой пользуется эта самая подсистема криптографии.
Ранее пользователю приходилось непростым способом устанавливать ПО Tumar CSP. А также, он был привязан к операционной системе Windows, так как полноценно Tumar CSP функционировал только на данной ОС.
Отныне пользователю требуется лишь предустановленный Java, одну из наиболее распространенных ОС (Windows XP/Vista/Seven, Linux) и доступ к сети Интернет.
Более того, весь процесс «Установка ПО – Получение ЭЦП – Получение услуг портала» доступен на Mac OS X. Корневые сертификаты для этой ОС нужно скачивать в чистом виде. Они доступны по этой ссылке.
В этом году планируется реализация соответствующего функционала для ОС Android, далее по плану – поддержка iOS и Windows Mobile.
Сам порядок получения сертификатов изменен не был. Представим его в схематичном виде:
Краткие пояснения процедуры получения сертификата
Повторим описание процесса получения сертификатов НУЦ. На портале есть страница «Получения ЭЦП», на которой кратко описаны шаги и даны ссылки на скачивание необходимого ПО, руководства пользователя и бланков документов. Там приведены все необходимые данные, как для физических, так и для юридических лиц.
Если вы хотите установить сертификат впервые, то советуем скачать руководство пользователя, где доступно и с иллюстрациями, показаны шаги всего процесса получения сертификата. Вы убережете себя от многих проблем и неполадок, совершая все свои действия согласно этому руководству.
Для наглядности представления всего процесса, начиная с установки сертификатов, заканчивая получением справки популярной электронной услуги, выложу скрины с пояснениями.
Может быть, с одной стороны это будет выглядеть как повтор инструкций, но всё же, это собственный опыт автора в прохождении этого процесса.
Регистрация на портале
Регистрация на портале реализована обычным, даже, можно сказать, совсем уж упрощенным способом. От меня требуется вписать свой ИИН в нужное поле. После нажатия ссылки «Найти» мои ФИО автоматически внеслись в нужные поля, и потребовалось только обозначить пароль и ввести свой e-mail адрес для получения уведомлений.
Итак, регистрация прошла успешно и вообще никаких затруднений не возникло.
Здесь раскрываем первую вкладку и нажимаем на кнопочки. Сначала скачиваем корневые сертификаты, которые установятся за 2 клика, а потом необходимо скачать Java с его официального сайта. Этот сайт совершенно прост в навигации, как и проста установка самого ПО. На это ушло не более десяти кликов по очевидным кнопкам.
После этих операций пришло время подать заявку в НУЦ на получение сертификата. Для этого нажимаем на кнопку «Подать online-заявку», которая откроет специальную страничку подачи заявления.
После ввода личных данных необходимо указать адрес ЦОН-а, в который Вам удобно будет подойти для подтверждения Вашей личности о том, что именно вы (а не кто-т
Самые востребованные профессии на севере
Как открыть клуб по интересам
Вариант 1:
Используются настройки по умолчанию, ПИН-код токена запомнен системой. Наименее безопасный вариант. Для этого при первом запросе ПИН-кода необходимо установить галку «Запомнить pin-код»:
В этом случае, на данном компьютере ПИН-код больше не будет запрашиваться, для подписания необходимо будет просто один раз выбрать сертификат которым подписываем. ПИН-код будет запомненным для всех действий с ЭП, пока в настройках Крипто Про-Сервис- Пароли закрытых ключей- Удалить запомненные пароли… они не будут удалены.
Вариант 2:
Использование режима кэширования контейнеров закрытых ключей.
В настройках Крипто Про необходимо включить использование службы хранения ключей и кэширование. Изменение параметров Крипто Про производятся пользователем с правами Администратора.
При её включении ПИН-код необходимо ввести при входе на площадку, далее ПИН-код не будет запрашиваться до тех пор, пока не будет перезапущен браузер. Если нажать кнопку «Выход» на площадке, и потом опять зайти на неё под тем же пользователем не закрывая браузер, то ПИН-код не будет запрошен. Если закрыть браузер и открыть его заново, или заходить на площадку в другом браузере, то ПИН-код запрашивается (проверено в Google Chrome, Internet Explorer). Согласно “ЖТЯИ.00087-01 92 01. Инструкция по использованию. Windows.pdf”- Установка параметров безопасности- стр.43:
“При хранении ключей в службе хранения ключей возможно применение кэширования контейнеров закрытых ключей. Кэширование заключается в том, что считанные с носителя ключи остаются в памяти сервиса. Ключ из кэша является доступным и после извлечения ключевого носителя из считывателя, а также после завершения работы загрузившего этот ключ приложения. Каждый ключ из кэша доступен любому приложению, которое работает под той же учётной записью, что и приложение, поместившее этот ключ в кэш. Все ключи из кэша доступны до завершения работы службы хранения ключей. При переполнении кэша очередной ключ записывается на место самого раннего ключа, помещённого в кэш. Кэширование контейнеров позволяет увеличить производительность приложений за счет более быстрого доступа к закрытому ключу, т.к. считывание ключа осуществляется только один раз. Размер кэша задает количество ключей, которые одновременно могут храниться в памяти. Для того чтобы включить кэширование, необходимо установить флаг в поле Включить кэширование. Необходимо также задать размер кэша в соответствующем поле ввода.”.
Для того чтобы данные режимы можно было включить, необходимо при установке Крипто Про на компьютер, устанавливать компонент «Служба хранения ключей», по умолчанию данная служба не устанавливается.
Вариант 3:
(Использование данного варианта не рекомендуется при работе на ЭТП, так как при подписании электронного договора возможно подписание более 100 файлов)
Используются настройки по умолчанию, наивысшая степень безопасности. В этом случае при подписании договорных документов будет вызываться окно для ввода ПИН кода для подписания каждого документа (договор, приложения, спецификации и т.д.).
По желанию вы можете сменить пин-код.
Для этого:
- Зайдите в меню «Пуск» — «Панель управления» — «Панель управления рутокен».
- Нажмите кнопку «Ввести PIN-код», введите ваш текущий пин-код, нажмите ОК.
- Во вкладке Управление PIN-кодами нажмите кнопку «Изменить», введите новый пин-код.
Не забывайте новый пин-код, потому что его никто не сможет подсказать вам.
JaCarta SE/LT
Чтобы сменить пин-код Пользователя части PKI\ГОСТ:
1.В Едином клиенте JaCarta нажмите на кнопку «Переключиться в режим пользователя»
3. Введите Текущий PIN-код пользователя, Новый PIN-код пользователя, подтвердите его и нажмите на кнопку «Выполнить»
4. Должно появиться сообщение об успешном изменении пин-кода.
Чтобы сменить пин-код Администратора части PKI\ГОСТ:
1. В Едином клиенте Jacarta нажмите на кнопку «Переключиться в режим администрирования»
2. Выберите нужный раздел PKI\ГОСТ
3. Нажмите на кнопку «Сменить PIN-код Администратора»
4. Введите старый пин-код Администратора, новые пин-коды Администратора и нажмите на кнопку «Выполнить».
5. Должно появиться сообщение об успешном изменении пин-кода.
Что такое электронная подпись?
Электронная подпись (электронно-цифровая подпись) – это реквизит электронного документа, позволяющий установить отсутствие искажения информации в электронном документе с момента его подписания и проверить принадлежность подписи владельцу сертификата ключа электронной подписи. Значение реквизита получается в результате криптографического преобразования информации с использованием закрытого ключа подписи. Электронная подпись является аналогом собственноручной подписи. Использование электронной подписи в России регламентируется федеральным законом № 63-ФЗ от 6 апреля 2011 г.
Как создать электронную подпись?
Создать свою собственную электронную подпись Вы можете с помощью раздела «Управление ключами» главного меню системы при наличии у Вас кодового слова, которое Вы должны указать в Анкете клиента при личном посещении нашего офиса или в процессе открытия счета онлайн.
Чтобы создать и использовать ЭЦП в системе, Вы должны также подписать Соглашение об использовании документов в электронной форме в офисе компании или иным возможным способом.
Как изменить электронную подпись?
Электронную подпись нельзя изменить. Однако можно создать новый ключ электронной подписи с помощью раздела «Управление ключами» главного меню системы. Для этого Вам понадобится ввести Ваше кодовое слово. После создания нового ключа электронной подписи, Ваш старый ключ аннулируется.
Насколько безопасно использовать электронную подпись?
Электронную подпись практически невозможно подделать. Однако Вы должны соблюдать некоторые меры предосторожности. Храните ключ электронной подписи в местах, недоступных для посторонних лиц! Не передавайте никому файл ключа и пароль доступа к нему! Если у Вас есть подозрения, что Ваш ключ электронной подписи может быть использован другими лицами, немедленно сообщите об этом в Компанию по тел.: +7 812 635 68 65. Клиент несет полную ответственность за сохранность ключа электронной подписи и паролей.
Я забыл пароль ключа электронной подписи, что мне делать?
Пароль ключа электронной подписи невозможно восстановить. Если Вы забыли его, создайте новую электронную подпись с помощью раздела «Управление ключами» главного меню системы. Для этого Вам понадобиться ввести Ваше кодовое слово. После создания нового ключа электронной подписи, Ваш старый ключ аннулируется.
Если Вы подозреваете, что Ваши ключи электронной подписи могли быть изменены третьими лицами, немедленно сообщите об этом в отдел по работе с клиентами по тел. +7 812 635-68-65, чтобы заблокировать доступ к Вашему аккаунту и аннулировать ключ электронной подписи.
Я забыл кодовое слово, что мне делать?
Кодовое слово невозможно восстановить. Мы не можем выслать его на адрес Вашей электронной почте или сказать по телефону. Чтобы изменить кодовое слово, Вам необходимо лично прийти в один из наших офисов . Еще раз проверьте, как Вы вводите Ваше кодовое слово. Его необходимо ввести точно так, как Вы написали его в Анкете клиента. Проверьте регистр букв (маленькие или большие) и раскладку клавиатуры (язык ввода и прочее).
Требования к компьютеру для подписания документов электронной подписью
На Вашем компьютере должен быть установлен и включен в настройках обозревателя компонент – Java Virtual Machine (JVM, виртуальная Java-машина), который нужен для запуска и работы апплетов (загружаемых программных модулей) генерации ключей и электронной подписи под документами.
С обозревателем Microsoft Internet Explorer обычно поставляется Java-машина от компании Microsoft – Microsoft VM. Также можно установить аналогичный компонент от компании SUN (SUN Java Virtual Maсhine browser plug-in), который можно скачать с сайта компании SUN .
После загрузки файла двойным щелчком мыши запустите установку компонента. После того, как компонент установится, необходимо перезагрузить компьютер.
Сервис корректно работает с компонентами 3 Microsoft VM версии 5.0 и выше, а также Sun Java browser plug-in версии 1.4.2_03 и выше, 1.5.0 и выше, 1.6.0 и выше.
Просмотреть информацию об установленном компоненте Java VM (а также включить/отключить его) можно в меню обозревателя «Сервис»(Tools) –> «Свойства Обозревателя»(Internet Options) на вкладке «Дополнительно»(Advanced), в открывшемся окне ищите раздел о VM (Microsoft VM или Java (Sun)).
Версию компонента Microsoft VM можно посмотреть в меню «Вид»(View) –> «Окно языка Java» (Java console), если включена опция «Java console enabled» на вкладке «Дополнительно»(Advanced).
Если у Вас установлены и включены в обозревателе оба компонента: и Microsoft VM, и Sun Java plug-in, то один из них необходимо отключить.
Если Вы пользуетесь обозревателем, отличным от Microsoft Internet Explorer, рекомендуем выбирать установочный пакет обозревателя с Java либо дополнительно установить Java-машину от Sun.
Пользователям операционной системы Linux рекомендуем установить Java-машину от Sun версии не ниже 1.5.0, которую можно скачать с
Токены, электронные ключи для доступа к важной информации, приобретают всю большую популярность в России. Токен сейчас – не только средство для аутентификации в операционной системе компьютера, но и удобное устройство для хранения и предъявления персональной информации: ключей шифрования, сертификатов, лицензий, удостоверений. Токены надежнее стандартной пары “логин/пароль” за счет механизма двухфакторной идентификации: то есть пользователь не только должен иметь в наличии носитель информации (непосредственно сам токен), но и знать PIN-код.
Основных форм-факторов, в которых выпускаются токены, три: USB-токен, смарт-карта и брелок. Защита при помощи PIN-кода чаще всего встречается в USB-токенах, хотя последние модели USB-токенов выпускаются с возможностью установки RFID-метки и с жидкокристаллическим дисплеем для генерации одноразовых паролей.
Остановимся подробнее на принципах функционирования токенов с PIN-кодом. PIN-код – это специально заданный пароль, который разбивает процедуру аутентификации на два этапа: присоединение токена к компьютеру и ввод собственно PIN-кода.
Наиболее популярные модели токенов на современном электронном рынке России – Рутокен, eToken от компании “Аладдин”, и электронный ключ от компании “Актив”. Рассмотрим наиболее часто задаваемые вопросы касательно PIN-кодов для токена на примере токенов этих производителей.
1. Какой PIN-код используется по умолчанию?
В таблице ниже представлены информация о PIN-кодах по умолчанию для токенов Рутокен и eToken. Пароль по умолчанию отличается для разных уровней владельцев.
Владелец | Пользователь | Администратор |
Рутокен | 12345678 | 87654321 |
eToken | 1234567890 | По умолчанию пароль администратора не устанавливается. Может быть установлен через панель управления только для моделей eToken PRO, eToken NG- FLASH, eToken NG-OTP. |
JaCarta PKI | 11111111 | 00000000 |
JaCarta ГОСТ | Не задан | 1234567890 |
JaCarta PKI/ГОСТ | Для PKI-функционала: 11111111 При использовании JaCarta PKI с опцией “Обратная совместимость” – PIN-код – 1234567890 Для ГОСТ-функционала: | Для PKI-функционала: 00000000 При использовании JaCarta PKI с опцией “Обратная совместимость” – PIN-код не установлен Для ГОСТ-функционала: |
JaCarta PKI/ГОСТ/SE | Для PKI-функционала: 11111111 Для ГОСТ-функционала: | Для PKI-функционала: 00000000 Для ГОСТ-функционала: |
JaCarta PKI/BIO | 11111111 | 00000000 |
JaCarta PKI/Flash | 11111111 | 00000000 |
ESMART Token | 12345678 | 12345678 |
карта IDPrime | 0000 | 48 нулей |
JaCarta PRO/JaCarta LT | 1234567890 | 1234567890 |
2. Надо ли изменять PIN-код по умолчанию? Если да, то в какой момент работы с токеном?
3. Что делать, если PIN-коды на токене неизвестны, а PIN-код по умолчанию уже сброшен?
Единственный выход – полностью очистить (отформатировать) токен.
4. Что делать, если PIN-код пользователя заблокирован?
Разблокировать PIN-код пользователя можно через панель управления токена. Для выполнения этой операции необходимо знать PIN-код администратора.
5. Что делать, если PIN-код администратора заблокирован?
Разблокировать PIN-код администратора невозможно. Единственный выход – полностью очистить (отформатировать) токен.
6. Какие меры безопасности предприняты производителями для снижения риска подбора пароля?
Основные пункты политики безопасности для PIN-кодов USB-токенов компаний “Аладдин” и “Актив” представлены в таблице ниже. Проанализировав данные таблицы можно сделать вывод, что eToken предположительно будет иметь более защищенный пин код. Рутокен, хоть и позволяет задавать пароль всего из одного символа, что небезопасно, по остальным параметрам не уступает продукту компании “Аладдин”.
Параметр | eToken
| Рутокен
|
Минимальная длина PIN-кода | 4 | 1 |
Состав PIN-кода | Буквы, цифры, специальные символы | Цифры, буквы латинского алфавита |
Больше или равно 7 | До 16 | |
Администрирование безопасности PIN-кода | Есть | Есть |
Есть | Есть |
Важность сохранения PIN-кода в секрете известна всем тем, кто использует токены в личных целях, хранит на нем свою электронную подпись, доверяет электронному ключу информацию не только личного характера, но и детали своих бизнес-проектов. Токены компаний “Аладдин” и “Актив” обладают предустановленными защитными свойствами и вместе с определенной долей предосторожности, которая будет проявлена пользователем, снижают риск подбора пароля до минимума.
Программные продукты Рутокен и eToken представлены в различных конфигурациях и форм-факторах. Предлагаемый ассортимент позволит вам выбрать именно ту модель токена, которая наиболее отвечает вашим требованиям, будь то
Подготовка документов к подписи с помощью ЭЦП
Подготавливаем документы (как правило в формате MS Word). Проверяем, чтобы не было пустых страниц, была верная нумерация пунктов и т.д.
Размещаем тексты необходимых документов в виде материалов Joomla. Поскольку “Требования” действуют довольно давно в различных своих версиях, тексты скорее всего уже были выложены. Их нужно обновить, так как некоторые локальные акты, учебные программы и планы принимаются каждый год. На сайте должны быть актуальные версии.
Прямо из MS Word сохраняем тексты документов в формате PDF.
Скачиваем и устанавливаем Adobe Reader DC. Он бесплатный. Инструкций по настройке Adobe Reader для подписи в сети много. На момент написания статьи ссылка на скачивание работала, программа скачивалась.
Также потребуется, скорее всего, расширение для вашего криптопровайдера, например CryptoPro PDF. Для использования совместно с Adobe Reader этот модуль распространяется бесплатно.
Бесплатный CryptoPro PDF для Adobe Reader.
Вопросы-ответы об ЭЦП – Yvision
Что такое ЭЦП?
Получая какую-либо справку на бумажном носителе, мы ставим подпись. Электронный документ, для придания ему юридической значимости, тоже нужно подписать. Для этого используется электронная цифровая подпись – аналог собственноручной. Это не скан-версия вашей обыкновенной подписи, ЭЦП содержит в себе цифровые символы, подтверждающие достоверность электронного документа, его принадлежность и неизменность содержания.
Для чего нужна ЭЦП?
ЭЦП нужна для запроса электронных гос.услуг и сервисов в любое удобное время, не выходя из дома. А также, она необходима при регистрации и авторизации на порталах электронного правительства eGov.kz, гос.закупок, «Открытого правительства», Е-лицензирования и др.
Как получить ЭЦП?
Для того чтобы получить регистрационные свидетельства НУЦ РК (ЭЦП) необходимо подать онлайн-заявку на сайте НУЦ РК, предварительно установив на компьютер приложение NCALayer. После чего предоставить документы в ЦОН РК, согласно Стандарта государственной услуги «Выдача и отзыв регистрационного свидетельства НУЦ РК». Без наличия утвержденного пакета документов, оператор ЦОН не имеет права обрабатывать заявления на выпуск регистрационных свидетельств НУЦ РК (ЭЦП). Документы в ЦОН заявитель должен сдать лично, либо используя доверенное лицо от имени заявителя согласно нотариальной доверенности. ЭЦП выдаётся бесплатно.Более подробную информацию о данной процедуре можно найти на официальном сайте НУЦ РК.
Для чего нужно устанавливать приложение NCALayer?
В последнее время популярные браузеры начали блокировать у себя запуск ПО Java. Приложение NCALayer необходимо для обеспечения работы в браузере механизма подписания с ЭЦП, использующего Java.
Чем отличаются ключи ЭЦП с названием AUTH_RSA от RSA?
RSA – регистрационное свидетельство, предназначенная для подписи электронного документа/запроса. AUTH_RSA – регистрационное свидетельство, предназначенное для аутентификации пользователя.
Почему ЭЦП выдается сроком на 1 год?
Срок действия всех регистрационных свидетельств НУЦ РК (ЭЦП) составляет 1 год со дня их выпуска. По истечении данного времени регистрационные свидетельства НУЦ РК являются недействительными. Срок 1 год установлен с целью обеспечения стойкости криптографических ключей для ограничения временного периода возможности их вычисления злоумышленниками.
Как самостоятельно продлить срок действия ЭЦП?
С помощью имеющейся действующей ЭЦП, пользователю доступна функция перевыпуска новой пары ключей, не обращаясь в ЦОН для подтверждения заявки. Подтверждение происходит путем подписания онлайн-заявки на выпуск ЭЦП вашими действующими ключами. Для перевыпуска воспользуйтесь личным кабинетом пользователя НУЦ РК, предварительно ознакомившись с инструкцией пользователя по работе в личном кабинете.
Что такое ЭЦП на удостоверении личности?
В новых образцах удостоверений личности присутствует микрочип, как на банковских карточках. В специальную область памяти этого чипа можно записать ЭЦП и пользоваться ею с помощью кардридера. Процедура записи производится в любом ЦОНе (НАО «Государственная корпорация «Правительство для граждан»), а также при самостоятельном использовании кардридера. Данное устройство имеется в наличии во всех магазинах, специализирующихся на компьютерной технике. Примечание: запись ключей ЭЦП на удостоверение личности производится только для физических лиц.
Как поменять пароль на ЭЦП?
Для смены пароля на ключи ЭЦП, необходимо воспользоваться личным кабинетом пользователя НУЦ РК, предварительно ознакомившись с инструкцией.
Что делать, если я забыл пароль от ЭЦП, как восстановить?
В случае, если вы забыли пароль на ключи ЭЦП, то восстановить их невозможно. НУЦ РК не хранит пароли пользователей, и, в случае утери пароля, вам необходимо отозвать данные ключи ЭЦП и пройти стандартную процедуру получения новых.
––––––
Краткое описание процедуры получения ЭЦП тут – http://egov.kz/cms/ru/information/e…
Инструкции по получению ЭЦП и её перевыпуску можно найти здесь – http://egov.kz/cms/ru/information/h…
Ответы на некоторые другие вопросы – http://www.pki.gov.kz/index.php/ru/vopros-otvet
yvision.kz
КриптоПро просмотреть сохраненный пароль (пинкод) на контейнер закрытого ключа ЭЦП
Подробности Создано: 16 мая 2016 Обновлено: 21 июня 2017
Недавно столкнулся с проблемой, в бухгалтерии, КриптоПро спросил пинкод на контейнер закрытого ключа, для каких целей уже не помню. Бухгалтер, конечно же, не помня никаких паролей, начал листать блокнот, тыкать мне десяток флешек и нервно что-то бормотал про религию, правительство и директора. Я тоже прикинулся “северным оленем” залез в интернеты и нашел простой способ узнать сохраненный пароль, пинкод (если изволите), на контейнер закрытого ключа электронной цифровой подписи (ЭЦП).
Был сильно удивлен простотой, и думал, что это не сработает, но все получилось. Вот пошаговая инструкция:
- Запускаем командную строку – сочетание клавиш Windows+R, а потом пишем cmd. Должно появиться черное окошко (есть люди, которые окна называют табличками:))
- в командной строке нужно перейти в папку с КриптоПро, в Windows XP нужно набрать команду cd “C:\Program Files\Crypto Pro\CSP\” (ковычки обезательны). В Windiws 7 команда может быть такой – cd “C:\Program Files (x86)\Crypto Pro\CSP\”
- Просмотрим список имен контейнеров закрытого ключа ЭЦП командой csptest -keyset -enum_cont -fqcn -verifycontext
Теперь мы можем просмотреть сохраненный пароль КриптоПро для интересующего контейнера ЭЦП csptest -passwd -showsaved -container “<имя контейнера>”
Я был удивлен, что было так просто восстановить забытый пароль на контейнер ЭЦП, интересно это как согласуется с требованиями к безопасности, ГОСТами и т.п.? После таких простых манипуляций, бухгалтер начала называть меня “программистом”, а я считал себя крутейшим хакером:)
Добавить комментарий
raboj.su
Настройка личного кабинета
Переходим на сайт тестового или рабочего сервера ДМДК.
- Регистрируем организацию, используя квалифицированный сертификат пользователя, указывая все реальные данные. Подробнее можно ознакомиться с видеоинструкциями.
- В личном кабинете (ЛК) на сайте формируем заявление о постановке на спецучет и если это тестовый сервер, то звоним в техподдержку, чтобы в тестовом сервере приняли заявление о постановке на спецучет для настройки интеграционной системы (ИС). После того как вас поставили на спецучет на тестовом сервере вам открывается полный функционал. На рабочем сервере постановкой на спецучет занимается территориальная ФПП.
- Для работы с ИС требуется загрузить в профилях обмена обезличенный сертификат на организацию (в котором нет информации о руководителе и ФИО). Через верхнее меню переходим в “Профили организации” далее на вкладку “Профили информационного обмена”.
Библиотека стандартных подсистем
Для формирования пакета SOAP над подписываемым xml-узелом RequestData необходимо осуществить преобразования:
- http://www.w3.org/2001/10/xml-exc-c14n#
- urn://smev-gov-ru/xmldsig/transform. (описание)
Для формирования пакета SOAP будем использовать БСП 3.1.5
Из БСП потребуются следующие общие модуля “ЭлектроннаяПодписьСлужебный…” и внешняя компонента XMLDSig из макета справочника “СертификатыКлючейЭлектроннойПодписиИШифрования”
PS. в компоненте xmldsig на релизе 3.1.5.171 есть ошибка в методе канонизации, которая не позволяет подписать сообщение. Строки начинающиеся на числа потом через пробел написаны любые буквы трансформируются в строку без пробела.
Например: “1 аbc” превращается в “1аbc”. Как вариант решения первый пробел заменяем на подчеркивание.
Просмотреть сохраненный пароль (пинкод) на контейнер закрытого ключа ЭЦП
Зачастую пользователи не могут вспомнить пароль (пинкод) от контейнера ЭЦП, что неудивительно меняется он раз в год при плановой смене ключа ЭЦП после чего ставится галочка “запомнить пароль” и пароль больше никогда не вводится.Сохраненный пароль можно посмотреть с помощью консольной утилиты csptest, входящей в состав КриптоПро CSP.
Утилита находится в папке с установленным КриптоПро (по умолчанию C:\Program Files\Crypto Pro\CSP\).
Переходим в директорию с программой
cd “C:\Program Files\Crypto Pro\CSP\”
Смотрим имена доступных контейнеров закрытого ключа ЭЦП:
csptest -keyset -enum_cont -fqcn -verifycontext
команда выводит список доступных контейнеров вида: \\.\<имя считывателя>\<имя контейнера>
После этого выводим сохраненный пароль для нужного контейнера:
csptest -passwd -showsaved -container “<имя контейнера>”
PS: Данный способ подходит для КриптоПро 3.6 и выше. В КриптоПро 3.0 у утилиты csptest отсутствует опция -showsaved.
PPS: Если этот метод не помогает и у вас аппаратные контейнеры (токены), можно попробовать ввести пароль по умолчанию. Для rutoken это 12345678, для eToken 1234567890, для JaCarta PKI/ГОСТ 11111111 (1234567890 если включена опция обратная совместимость).
PPPS: Весь процесс можно автоматизировать обычным батником,который массово достает пароли из всех доступных ключей. Большое спасибо. Скачать bat-файл можно отсюда. Текст батника:
@echo offSetLocal EnableExtensions EnableDelayedExpansioncopy “C:\Program Files\Crypto Pro\CSP\csptest.exe” >nulchcp 1251if exist %computername%.txt del /f /q %computername%.txtif exist temp.txt del /f /q temp.txtset NameK=””for /f “usebackq tokens=3,4* delims=\” %%a in (`csptest -keyset -enum_cont -fqcn -verifycontext`) do (set NameK=%%a;csptest -passwd -showsaved -container “!NameK!” >> temp.txt)del /f /q csptest.exeset/a $ai=-1set/a $bi=2for /f “usebackq delims=” %%a in (“temp.txt”) do @(set “$a=%%a”if “!$a:~,14!”==”AcquireContext” echo:!$a! >> %computername%.txtif “!$a:~,8!”==”An error” echo:Увы, ключевой носитель отсутствует или пароль не был сохранен. >> %computername%.txt & echo: >> %computername%.txtif “!$a:~,5!”==”Saved” set/a $ai=1if !$ai! geq 0 set/a $ai-=1 & set/a $bi-=1 & echo:!$a! >> %computername%.txtif !$bi!==0 echo: >> %computername%.txt & set/a $bi=2)del /f /q temp.txtEndLocalecho on
Скачать отдельно утилиту csptest для версий 3.6 и 3.9 можно отсюда.
Tmie.ru
Примеры кода
Извлечь pkcs7 из pdf на php можно регулярным выражением, так как подпись в файле выглядит как длинная кодированная строка между двух угловых скобок <>, находящаяся в массиве ByteRange.
Скриншот кода PDF-файла с массивом ByteRange
<?php
$file_name = 'test_pdf_signed.pdf';
$content = file_get_contents(JPATH_SITE . '/' . $file_name);
$regexp = '#ByteRange\[\s*(\d+) (\d+) (\d+)#'; // subexpressions are used to extract b and c
$result = [];
preg_match_all($regexp, $content, $result);
Далее извлекается собственно подпись в бинарном виде.
<?php
$file_name = 'test_pdf_signed.pdf';
$content = file_get_contents(JPATH_SITE . '/' . $file_name);
$regexp = '#ByteRange\[\s*(\d+) (\d+) (\d+)#'; // регулярка для поиска подписи
$result = [];
preg_match_all($regexp, $content, $result);
if (isset($result[2]) && isset($result[3]) && isset($result[2][0])
&& isset($result[3][0])
)
{
$start = $result[2][0];
$end = $result[3][0];
if ($stream = fopen(JPATH_SITE . '/' . $file_name, 'rb'))
{
$signature = stream_get_contents(
$stream, $end - $start - 2, $start + 1
); // Мы должны обрезать угловые скобки с начала и конца
fclose($stream);
}
}
Далее мы конвертируем шестнадцатеричные данные в двоичные и скармливаем их библиотеке для работы с алгоритмами.
Весь скрипт чтения данных электронной подписи из pdf на php без привязки к конкретному движку чуть ниже.
Для работы необходимы 6 библиотек:
SOP/Crypto encoding (Packagist)
Webmasterskaya/Crypto bridge (Packagist)
Webmasterskaya/Crypto types (Packagist)
Также можно установить их с помощью composer:
{
"require": {
"sop/asn1": "^4.1",
"webmasterskaya/x509": "dev-master"
},
"minimum-stability": "dev"
}
Для корректной работы библиотек проверьте, что в PHP включены следующие расширения:
intl
gmp
mbstring
openssl
Код скрипта:
<?php
use Sop\ASN1\Element;
use Sop\ASN1\Type\Constructed\Sequence;
use Webmasterskaya\X509\Certificate\Certificate;
require_once __DIR__ . './vendor/autoload.php';
$file_name = 'test_pdf_signed.pdf';
$content = file_get_contents($file_name);
$regexp = '#ByteRange\[\s*(\d+) (\d+) (\d+)#'; // subexpressions are used to extract b and c
$result = [];
preg_match_all($regexp, $content, $result);
if (isset($result[2]) && isset($result[3]) && isset($result[2][0])
&& isset($result[3][0])
) {
$start = $result[2][0];
$end = $result[3][0];
if ($stream = fopen($file_name, 'rb')) {
$signature = stream_get_contents(
$stream, $end - $start - 2, $start + 1
); // because we need to exclude < and > from start and end
fclose($stream);
}
if (!empty($signature)) {
$binary = hex2bin($signature);
$seq = Sequence::fromDER($binary);
$signed_data = $seq->getTagged(0)->asExplicit()->asSequence();
$ecac = $signed_data->getTagged(0)->asImplicit(Element::TYPE_SET)
->asSet();
/** @var Sop\ASN1\Type\UnspecifiedType $ecoc */
$ecoc = $ecac->at($ecac->count() - 1);
$cert = Certificate::fromASN1($ecoc->asSequence());
foreach ($cert->tbsCertificate()->subject()->all() as $attr) {
/** @var Webmasterskaya\X501\ASN1\AttributeTypeAndValue $atv */
$atv = $attr->getIterator()->current();
echo $atv->type()->typeName() . ' : ' . $atv->value()->stringValue() . PHP_EOL;
}
}
}
В российских электронных подписях встречаются поля, которых нет в западных электронных подписях. Например, поля 1.2.643.3.131.1.1 = ИНН и 1.2.643.100.1 = ОГРН. Эти отличающиеся поля описаны в Приказе ФСБ России от 27.12.2011 N 795 (ред. от 29.01.2021) “Об утверждении Требований к форме квалифицированного сертификата ключа проверки электронной подписи” (Зарегистрировано в Минюсте России 27.01.2012 N 23041).
Подпись сообщения ЭЦП
Для того, чтобы сервера успешно приняли наши сообщения в них должна содержаться подпись XML документов (XML Digital Signature). Подписываемый xml узел RequestData. Чтобы подписать формируемый SOAP пакет (xml) необходимо совершить несколько шагов:
Используем шаблон XML сообщения
Осуществляем канонизацию сообщения над узлом RequestData
Подписание сообщения необходимо делать при помощи обезличенного сертификата!