ЕСИА: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 14 промежуточных версий 6 участников)
Строка 1: Строка 1:
{{Stub}}
=Доступ к сайту Госуслуг=
=Доступ к сайту Госуслуг=
Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется токен с парой ключей и сертификатом, а также плагин для работы с порталом государственных услуг IFCPlugin.
Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется токен с парой ключей и сертификатом, а также плагин для работы с порталом государственных услуг IFCPlugin.
IFCPlugin обращается к библиотеке PKCS#11 работающей, как правило, с pkcs15 токенами. Это может быть аппаратный ключ защиты (Рутокен ЭЦП, Jacarta ГОСТ и т.д.), контейнер криптопровайдера КриптоПро, или любой подходящий контейнер с поддержкой ГОСТ. Подписание и шифрование происходит внутри контейнера (средствами аппаратного ключа или средствами криптопровайдера).


=Генерирование ключей и получение сертификата=
=Генерирование ключей и получение сертификата=
Строка 9: Строка 10:
#Сгенерировать ключ на токене в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.
#Сгенерировать ключ на токене в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.
#Сформировать запрос на квалифицированный сертификат.
#Сформировать запрос на квалифицированный сертификат.
#Транспортировать запрос в УЦ.
#Транспортировать запрос в аккредитованный УЦ (тестовый УЦ не подойдет).
#Получить сертификат и записать его на токен в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.
#Получить сертификат и записать его на токен в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.


Строка 15: Строка 16:
Для  генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин», (работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» [https://ra.rutoken.ru ra.rutoken.ru].
Для  генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин», (работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» [https://ra.rutoken.ru ra.rutoken.ru].


===Установка «Рутокен плагин»===
Подробнее: [[Rutoken#Центр_регистрации_Рутокен]]
Чтобы установить «Рутокен плагин» необходимо:
#Загрузить «Рутокен плагин» можно со страницы [http://www.rutoken.ru/products/all/rutoken-plugin/ по ссылке] (выбрать пакет формата «rpm»):
#:[[Изображение:Rutoken-plugin-download.png|Загрузка «Рутокен плагин»|600px]]
#Установить «Рутокен плагин», выполнив из папки с загруженным пакетом команду (под правами root):
#:<source lang="text" highlight="1"># apt-get install libnpRutokenPlugin*</source>
#Перезапустить браузер.
#Убедиться, что плагин установлен и включен. Сделать это можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях Mozilla Firefox):
#:[[Изображение:Rutoken-plugin-on.png|Рутокен плагин|600px]]
Проверить работу плагина можно на площадке: http://demobank.rutoken.ru/
 
===Генерация пары ключей и формирование запроса на сертификат===
 
Для генерации пары ключей и формированию запроса на сертификат с помощью ПО «Центр регистрации Рутокен» следует:
#Зайти на сайт «Центр регистрации Рутокен» https://ra.rutoken.ru:
#:[[Изображение:Ra-rutoken-devices.png|Центр регистрации Рутокен]]
#Подключить Рутокен ЭЦП к компьютеру, выбрать токен, ввести PIN-код пользователя:
#:[[Изображение:Ra-rutoken-pin.png|Запрос PIN-кода]]
#Нажать кнопку «Создать ключ»:
#:[[Изображение:Ra-rutoken.png|Интерфейс «Центра регистрации Рутокен»]]
#Ввести идентификатор и маркер ключа (опционально), выбрать тип ключа и алгоритм шифрования, затем нажать кнопку «Сгенерировать ключи»:
#:[[Изображение:Rutoken-key-add.png|Создание ключей]]
#:Появится сообщение, о том, что ключи созданы:
#:[[Изображение:Rutoken-key.png|Ключи созданы]]
#Нажать кнопку «Создать заявку на сертификат».
#На странице создания запроса заполнить поля запроса, нажать кнопку «Создать запрос» (показан пример заполнения полей для физ.лица):
#:[[Изображение:Rutoken-cert-new.png|Создание запроса на сертификат]]
#После того, как запрос будет создан, сохранить его на диске, нажав кнопку «Сохранить на диске», или скопировать в буфер обмена, нажав кнопку «Скопировать в буфер обмена»:
#:[[Изображение:Rutoken-cert-request.png|Запрос создан и подписан]]
#Отправить запрос в удостоверяющий центр.
#После получения сертификата, на странице «Центр регистрации Рутокен» https://ra.rutoken.ru нажать кнопку «Добавить к ключам сертификат» или выбрать пару ключей и нажать кнопку «Добавить сертификат»
#:[[Изображение:Rutoken-cert-add.png|Добавление сертификата]]
#В открывшемся окне загрузить файл с сертификатом, нажав кнопку «Выбрать», или вставить сертификат из буфера обмена, нажав кнопку «Вставить из буфера обмена», и нажать кнопку «Связать»:
#:[[Изображение:Rutoken-cert-add2.png|Добавление сертификата пользователя]]
#:[[Изображение:Rutoken-cert-add22.png|Добавление сертификата пользователя]]
#Сертификат отобразится в списке:
#:[[Изображение:Rutoken-cert-add4.png|Контейнер с сертификатом]]
{{Note|Данные сертификата должны быть в формате PEM или Base64. Если вы получили сертификат в другом формате, его можно конвертировать в нужный формат, выполнив команду:
$ openssl x509 -inform der -in cert.cer -out cert.pem
}}


==JaCarta==
==JaCarta==
Для  генерации ключей, формирования запроса на сертификат и записи сертификата на JaCarta 2 ГОСТ можно воспользоваться утилитой pkcs11-tool: [[JaCarta/ГОСТ]], либо криптоПро:  [[JaCarta/ГОСТ#КриптоПро]], для JaCarta PKI: [[JaCarta/PKI#КриптоПро]]


==ESMART Token ГОСТ==
==ESMART Token ГОСТ==
Утилита PKIClientCli предназначена для работы с картами ESMART Token.
Для  генерации ключей, формирования запроса на сертификат и записи сертификата на ESMART Token ГОСТ можно воспользоваться утилитой PKIClientCli: [[ESMART#Утилита_PKIClientCli]]
 
#Установить пакеты {{pkg|isbc-pkcs11}} и {{pkg|isbc-pkcs11-utils}}:
#:<source lang="text" highlight="1"># apt-get install isbc-pkcs11 isbc-pkcs11-utils</source>
#Подключить ESMART Token ГОСТ к компьютеру.
#Проинициализировать токен, выпонив команду:
#:<source lang="text" highlight="1">$ PKIClientCli init --sopin 12345678 --label EsmartToken
Success</source>
#: где 12345678 — Admin PIN для смарт-карты или USB токена;
#: EsmartToken — метка токена.
# Сгенерировать пару ключей в соответствии со стандартом ГОСТ 34.10-2001:
#:<source lang="text" highlight="1">$ PKIClientCli genkey
Please enter PIN (User PIN):</source>
#: будет запрошен PIN пользователя.
# Сгенерировать запрос на подпись сертификата:
#:<source lang="text" highlight="1">$ PKIClientCli csr --pin 12345678 --pubkeyid 7c4f964476cfe --path file.tmpl > ~/my-esmart-1.csr
</source>


=Установка плагина IFCPlugin=
=Установка плагина IFCPlugin=
Строка 83: Строка 30:
#Установить плагин, выполнив из папки со скачанным плагином команду (под правами пользователя root):
#Установить плагин, выполнив из папки со скачанным плагином команду (под правами пользователя root):
#:<source lang="text" highlight="1"># apt-get install IFCPlugin*</source>
#:<source lang="text" highlight="1"># apt-get install IFCPlugin*</source>
#Установить расширение для плагина Госуслуг, в зависимости от версии браузера:
#:[https://chrome.google.com/webstore/detail/ifcplugin-extension/pbefkdcndngodfeigfdgiodgnmbgcfha Расширение для Google Chrome/Chromium/Chromium GOST]
#:[https://ds-plugin.gosuslugi.ru/plugin/upload/assets/distrib/addon-1.2.8-fx.xpi Расширение для Mozilla Firefox]
#Перезапустить браузер.
#Перезапустить браузер.
#Убедиться, что плагин установлен и включен. Сделать это можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях Mozilla Firefox):
#Убедиться, что плагин установлен и включен. В Mozilla Firefox сделать это можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях), на странице {{path|chrome://extensions/}} в Chrome/Chromium/Chromium GOST:
#:[[Изображение:IFCPlugin-plugin-on.png|Расширение для плагина Госуслуг|600px]]
#:[[Изображение:IFCPlugin-plugin-on.png|Расширение для плагина Госуслуг|600px]]


{{Note|Для Chromium нужно ещё сделать под root <source lang="text">mkdir /etc/chromium/native-messaging-hosts
 
ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/</source>}}
{{Note|Для Chromium,Yandex нужно ещё сделать под root <source lang="text">mkdir /etc/chromium/native-messaging-hosts
ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/</source>
а для Firefox
<source lang="text">ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so</source>
}}
 
== Сертификаты КриптоПро ==
 
По информации с https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=12452
 
Используемые пакеты:
* {{pkg|lsb-cprocsp-pkcs11-64-4.0.9929-5}} (для полноценной поддержки ГОСТ-2012 лучше использовать версию 4.0.9944)
* {{pkg|ifcplugin-3.0.6.0-release}}
 
Необходимо добавить в файл {{path|/etc/ifc.cfg}} в блок params:<br>
 
''(блок в данном файле выделяется круглыми скобками, разделы блока выделяются фигурными, после закрывающей фигурной скобки раздела, если это не последний раздел в блоке, ставится запятая)''
 
<source lang="text">
    {
        name = "CPPKCS11_2001";
        alias = "CPPKCS11_2001";
        type = "pkcs11";
        alg = "gost2001";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },
    {
        name = "CPPKCS11_2012_256";
        alias = "CPPKCS11_2012_256";
        type = "pkcs11";
        alg = "gost2012_256";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },
    {
        name = "CPPKCS11_2012_512";
        alias = "CPPKCS11_2012_512";
        type = "pkcs11";
        alg = "gost2012_512";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },
</source>
''(если фигурная скобка последняя в конфигурационном файле, то запятой после нее быть не должно!)''


Журнал работы плагина можно найти в файле {{path|/var/log/ifc/engine_logs/engine.log}}.
Журнал работы плагина можно найти в файле {{path|/var/log/ifc/engine_logs/engine.log}}.
Строка 103: Строка 97:
#Ввести Пин-код пользователя и нажать кнопку «Продолжить»:
#Ввести Пин-код пользователя и нажать кнопку «Продолжить»:
#:[[Изображение:Esia-gosuslugi4.png|Ввод пин-кода]]
#:[[Изображение:Esia-gosuslugi4.png|Ввод пин-кода]]
=Дополнительно=
* [https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/275/0/vkhod-s-pomoshhju-ehlektronnojj-podpisi-n-portl-gosuslug-n-linux Вход с помощью электронной подписи на портал Госуслуг на Linux (База знаний КриптоПро)]
* [https://wiki.astralinux.ru/pages/viewpage.action?pageId=53645439 КриптоПро: IFCP plugin для входа в Госуслуги (ЕСИА) (Справочный центр Astra Linux)]


[[Категория:Криптография]]
[[Категория:Криптография]]


{{Category navigation|title=Криптография|category=Криптография|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Криптография|category=Криптография|sortkey={{SUBPAGENAME}}}}

Текущая версия от 10:12, 6 июня 2022

Доступ к сайту Госуслуг

Для аутентификации через ЕСИА (https://esia.gosuslugi.ru/) потребуется токен с парой ключей и сертификатом, а также плагин для работы с порталом государственных услуг IFCPlugin.

IFCPlugin обращается к библиотеке PKCS#11 работающей, как правило, с pkcs15 токенами. Это может быть аппаратный ключ защиты (Рутокен ЭЦП, Jacarta ГОСТ и т.д.), контейнер криптопровайдера КриптоПро, или любой подходящий контейнер с поддержкой ГОСТ. Подписание и шифрование происходит внутри контейнера (средствами аппаратного ключа или средствами криптопровайдера).

Генерирование ключей и получение сертификата

Для получения сертификата необходимо:

  1. Сгенерировать ключ на токене в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.
  2. Сформировать запрос на квалифицированный сертификат.
  3. Транспортировать запрос в аккредитованный УЦ (тестовый УЦ не подойдет).
  4. Получить сертификат и записать его на токен в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11.

Рутокен ЭЦП 2.0

Для генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин», (работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» ra.rutoken.ru.

Подробнее: Rutoken#Центр_регистрации_Рутокен

JaCarta

Для генерации ключей, формирования запроса на сертификат и записи сертификата на JaCarta 2 ГОСТ можно воспользоваться утилитой pkcs11-tool: JaCarta/ГОСТ, либо криптоПро: JaCarta/ГОСТ#КриптоПро, для JaCarta PKI: JaCarta/PKI#КриптоПро

ESMART Token ГОСТ

Для генерации ключей, формирования запроса на сертификат и записи сертификата на ESMART Token ГОСТ можно воспользоваться утилитой PKIClientCli: ESMART#Утилита_PKIClientCli

Установка плагина IFCPlugin

Для установки плагина для работы с порталом государственных услуг необходимо:

  1. Загрузить плагин со страницы https://ds-plugin.gosuslugi.ru/plugin/upload/ (по умолчанию начнется скачивание deb-пакета, но на странице доступны и rpm-пакеты: rpm пакет 64-bit и rpm пакет 32-bit:
    Загрузка плагина Госуслуг
  2. Установить плагин, выполнив из папки со скачанным плагином команду (под правами пользователя root):
    # apt-get install IFCPlugin*
    
  3. Установить расширение для плагина Госуслуг, в зависимости от версии браузера:
    Расширение для Google Chrome/Chromium/Chromium GOST
    Расширение для Mozilla Firefox
  4. Перезапустить браузер.
  5. Убедиться, что плагин установлен и включен. В Mozilla Firefox сделать это можно на странице about:addons (или about:plugins в более ранних версиях), на странице chrome://extensions/ в Chrome/Chromium/Chromium GOST:
    Расширение для плагина Госуслуг


Примечание: Для Chromium,Yandex нужно ещё сделать под root
mkdir /etc/chromium/native-messaging-hosts
ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/

а для Firefox

ln -s /opt/cprocsp/lib/amd64/libcppkcs11.so.4.0.4 /usr/lib/mozilla/plugins/lib/libcppkcs11.so


Сертификаты КриптоПро

По информации с https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=12452

Используемые пакеты:

  • lsb-cprocsp-pkcs11-64-4.0.9929-5 (для полноценной поддержки ГОСТ-2012 лучше использовать версию 4.0.9944)
  • ifcplugin-3.0.6.0-release

Необходимо добавить в файл /etc/ifc.cfg в блок params:

(блок в данном файле выделяется круглыми скобками, разделы блока выделяются фигурными, после закрывающей фигурной скобки раздела, если это не последний раздел в блоке, ставится запятая)

    {
        name = "CPPKCS11_2001";
        alias = "CPPKCS11_2001";
        type = "pkcs11";
        alg = "gost2001";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },
    {
        name = "CPPKCS11_2012_256";
        alias = "CPPKCS11_2012_256";
        type = "pkcs11";
        alg = "gost2012_256";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },
    {
        name = "CPPKCS11_2012_512";
        alias = "CPPKCS11_2012_512";
        type = "pkcs11";
        alg = "gost2012_512";
        model = "CPPKCS 3";
        lib_linux = "/opt/cprocsp/lib/amd64/libcppkcs11.so";
    },

(если фигурная скобка последняя в конфигурационном файле, то запятой после нее быть не должно!)

Журнал работы плагина можно найти в файле /var/log/ifc/engine_logs/engine.log.

Авторизация на сайте Госуслуг

Для авторизации на сайте Госуслуг с помощью электронной подписи следует:

  1. В браузере Firefox на странице авторизации Госуслуг нажать на ссылку «Вход с помощью электронной подписи»:
    Авторизация на сайте Госуслуг
  2. Подключить токен с ключом к компьютеру, нажать кнопку «Готово»:
    Авторизация на сайте Госуслуг с помощью электронной подписи
  3. Выбрать сертификат ключа проверки электронной подписи, щёлкнув левой кнопкой мыши по строке с сертификатом:
    Выбор сертификата ключа проверки электронной подписи
  4. Ввести Пин-код пользователя и нажать кнопку «Продолжить»:
    Ввод пин-кода

Дополнительно