Что такое сертификат в есиа
Перейти к содержимому

Что такое сертификат в есиа

  • автор:

Что такое ЕСИА и как работает система

ЕСИА — единая система идентификации и аутентификации. В ней формируются, учитываются и хранятся сведения об участниках системы — физических и юридических лицах, которые прошли регистрацию с созданием учётной записи. Подтверждённая учётная запись в ЕСИА — своего рода электронный паспорт, с помощью которого можно получать доступ к разным сайтам, порталам и системам, не используя дополнительные средства регистрации и авторизации, например логин и пароль.

Система ЕСИА часто ассоциируется с порталом Госуслуги, но технически это не одно и то же. Однако регистрация в ЕСИА — это, по сути, регистрация на Госуслугах, поэтому учётная запись на портале идентична учётной записи в ЕСИА и содержит одинаковые персональные данные пользователя.

В то же время с помощью учётной записи в единой системе идентификации можно получить доступ не только к порталу госуслуг, но и другим государственным и муниципальным системам. Более того, многие коммерческие сайты и порталы в последнее время активно используют для регистрации на ресурсах и (или) доступа к их функциям авторизацию посредством ЕСИА. Это быстро и удобно. Учётная запись в ЕСИА, таким образом, служит надёжным и безопасным средством проверки персональных данных и идентификации конкретного лица.

В целом система ЕСИА служит для:

  1. Создания физическими лицами, ИП или юридическими лицами единой учётной записи, которая даёт доступ к различным информационным системам, сайтам и порталам, использующим такой способ регистрации, авторизации и (или) идентификации пользователя.
  2. Взаимодействия различных информационных систем на уровне средств подтверждения личности пользователя (идентификации), проверки его данных (аутентификации) и предоставления разрешения на доступ (авторизации).
  3. Авторизации пользователей на государственных, региональных и муниципальных ресурсах для получения соответствующих услуг в электронном виде. Например, для запроса и получения информации, справок, оформления документов, совершения регистрационных действий, записи на приём в то или иное ведомство.
  4. Авторизации пользователей на негосударственных ресурсах (сайтах, порталах, системах), которые подключены к ЕСИА и используют учётные записи в этой системе (с согласия их владельцев) для разрешения доступа.

Таким образом, регистрация ЕСИА и создание подтверждённой учётной записи — это возможность получить единый «ключ» для доступа к интернет-ресурсам, которые используют такой способ входа в свою систему. Это сравнимо с использованием электронной подписи для получения доступа к системам и сайтам и напоминает классический доступ через «логин/пароль», однако даёт больше возможностей и при этом не требует создания для каждого ресурса своих логинов и паролей. При этом регистрация в единой системе идентификации абсолютно бесплатна.

Как работает ЕСИА

После регистрации система ЕСИА создает учётную запись пользователя. На первом этапе — только с его контактными данными, а также логином и паролем для входа в систему, и одновременно — личный кабинет на портале Госуслуги. После этого необходимо в ЛК на портале Госуслуги заполнить личные данные пользователя, а также, если необходимо, загрузить личные документы. Все эти операции проходят с помощью программных интерфейсов ЕСИА, которые проведут пользователя по всем шагам регистрации, заполнения личных данных и загрузки документов.

Чтобы получить доступ ко всем возможностям учётной записи ЕСИА, нужно подтвердить личность. Проще всего это сделать через партнёров оператора единой системы идентификации. Например, клиенты Сбербанка могут пройти идентификацию по СберID в режиме онлайн. Подобные сервисы есть и у других банков-партнёров. Подтвердить личность дистанционно также можно с помощью квалифицированной электронной подписи. Если эти варианты недоступны, то идентификацию проходят в центрах обслуживания (нужен паспорт и СНИЛС). Ближайший офис можно найти на карте на портале Госуслуги. И ещё один вариант — заказать в личном кабинете код подтверждения, который придёт заказным письмом Почтой России.

Получите сертификат ЭЦП

Пройдите идентификацию и получите сертификат удалённо с помощью смартфона и биометрического загранпаспорта.

Получить консультацию по оформлению электронной подписи Облако – логоОблако – лого

Процесс взаимодействия ЕСИА при авторизации пользователей в различных системах выглядит так:

  1. Пользователь хочет получить доступ к какой-либо информационной системе (ресурсу), которая использует авторизацию через ЕСИА, и выбирает этот способ.
  2. Ресурс направляет в ЕСИА соответствующий электронный запрос.
  3. Для подтверждения подлинности пользователя система перенаправляет его с ресурса на свою страницу входа в систему. Если вход прошёл успешно, система запрашивает у пользователя разрешение на предоставление ресурсу доступа к личным данным.
  4. Если пользователь был успешно проверен и разрешил стороннему ресурсу доступ к своим данным, система передаёт ресурсу необходимую информацию для авторизации пользователя.
  5. После поступления данных ресурс даёт пользователю доступ в свою систему.

На практике весь процесс занимает несколько секунд.

Как организации подключиться к ЕСИА

Юридические лица подключаются к ЕСИА через личный кабинет руководителя. Для подключения используется функция «Добавить организацию» и выбирается необходимый статус: ИП, организация, орган власти.

Для формирования учётной записи юридического лица необходимо, чтобы у руководителя была подтвержденная учётная запись. Для подключения к системе используется квалифицированная электронная подпись, сертификат которой оформлен на руководителя.

При регистрации юрлица потребуется заполнить все данные об организации, указанные в регистрационной форме. После проверки сведений и их подтверждения (это делается в автоматическом режиме) будет создана учётная запись организации в ЕСИА.

Дополнительная возможность для учётных записей организаций — подключение авторизации пользователей через ЕСИА для доступа к сайту или другому интернет-ресурсу организации. Для этого нужно предоставить сведения о подключаемой системе, при необходимости доработать её под требования ЕСИА, запустить работу подключённой системы в тестовом режиме, а после подтверждения работоспособности — в рабочем режиме.

Чтобы получить электронную подпись, оставьте заявку. Наши специалисты помогут вам оформить электронную подпись для физических и юридических лиц — удалённо, быстро и по выгодной цене.

Интеграция с ЕСИА для .Net: запутаннее, чем кажется

Передо мной стояла задача по интеграции нашего сервиса с госуслугами. Казалось ничего сложного не предстоит, но учитывая что наш сервис базируется на технологии ASP.NET всё было не так оптимистично. В начале были поиски.. много поисков, которые привели к множеству разрозненной и чаще всего неактуальной информации. Так же были найдены уже готовые решения, но как заявляли некоторые товарищи на форумах за такое могут и по головке погладить. Поэтому было решено писать самому.

Эта статья скорее больше актуализация и дополнение информации из этой статьи.

Введение

На сайте Минцифр есть методичка максимально раздутая и очень запутанная, но пользоваться ею нам всё равно придётся. Мы будем работать с ЕСИА версии 3.11 (актуальная на момент написания статьи). Кратко наши действия заключаются вот в чем:

Регистрация ИС в регистре информационных систем ЕСИА

Регистрация ИС в тестовой среде

Выполнение доработки системы для взаимодействия с ЕСИА

Звучит довольно просто, но каждый шаг целая отдельная история приключений. Регистрация ИС в ЕСИА приключение для бюрократа. Поэтому в этой статье мы немного посмотрим на второй шаг, и детально распишем реализацию.

Содержание

Всё необходимое

Наш инвентарь для путешествия:

Контейнер закрытого ключа с сертификатом нашей организации

Немного о КриптоПРО CSP + .Net Core 5+

Вот тут и начинаются первые проблемы. На момент написания статьи у КриптоПРО .Net нет поддержки .Net Core 5 и выше. Есть сборка под .Net Core 3.1 но и она выглядит сомнительно. Поэтому было решено поднять сервис для .Net Framework 4.8 который будет использовать средства КриптоПРО CSP для подписания с использованием ЭЦП , а так же проверки ответов от ЕСИА.

Немного о контейнере закрытого ключа и сертификата

Когда мы начинали делать эту задачу у нас была КЭП на токене, но как оказалось на нём был неэкспортируемый контейнер. Скажу сразу, что экспортировать контейнер с такого токена запрещено ФНС. Поэтому необходимо заранее получить токен на имя сотрудника с экспортируемым контейнером. Так как его необходимо будет скопировать на сервер.

Приступаем

Начнём с того, что вы уже отправили заявку регистрации ИС в ЕСИА и её приняли. А так же отправили заявка на тестовую среду. Приступим к этапу настройки ИС в тестовом кабинете электронного правительства. Вот ссылка на тестовую страницу. Логинимся под тестовой учетной записью тестового пользователя 006(все данные лежат в приложении к работе с тестовой средой), так как он имеет доступ к управлением ИС.

Кабинет тестовой среды - Технологический порталйт

Кабинет тестовой среды — Технологический порталйт

Здесь ищем нашу систему по Мнемонике или полному названию, если таковой нет то создаём. Напротив нашей системы есть две кнопки:
Первая кнопка — изменить нашу ИС (информация о ИС, редиректы и тд)
Вторая кнопка — наши сертификаты с помощью которых мы подписываем сообщения в ЕСИА

Настройка ИС

Есть важный момент в настройки ИС. Это URL системы. Тут мы указываем ссылки куда ЕСИА может делать переадресацию при запросе от нашей ИС. На эти точки будет приходить авторизационный код (Если он указан в запросе).

Сертификаты ИС

Здесь мы можем загрузить наш сертификаты или же удалить их. Есть один важный момент, каждая ИС может иметь только один уникальный сертификат. А связи с тем, что на тестовой среде все системы регистрируются под одним пользователем и сертификаты тестовые одни на всех часта такая ситуация, что кто-то удаляет у вас сертификат и загружает к себе. А ваши запросы теперь падают с ошибкой) Но если у вас уже готов ЭЦП на сотудника, то лучше используйте её.

Реализуем

Мы закончили с настройки нашей ИС и можем приступить к реализации. Надеюсь вы уже установили КриптоПРО и всё необходимое для него. Если нет, я подожду.

Устанавливаем сертификаты

Всё готово. Качаем сертификаты по ссылке из методички. Специально не буду вставлять, так как может измениться.

Здесь нам интересен сертификат ТЕСИА ГОСТ 2012.cer — это сертификат с помощью которого ЕСИА подписывает сообщения отправляя в нашу ИС. ( Соответственно для продуктовой среды свой сертификат ). Устанавливаем сертификат как доверенный. Здесь ничего сложного думаю разберётесь.

Теперь устанавливаем тестовый контейнер и сертификат. Для примера будем использовать предоставленные ЕСИА контейнеры, но вы можете использовать свои. Всё это лежит внутри архива.

Сам архив со всеми тестовыми контейнерамиСам архив со всеми тестовыми контейнерами Мы возьмём именно 006 так как на него зарегистрирована наша ИСМы возьмём именно 006 так как на него зарегистрирована наша ИС

В архиве лежит папка d1f73ca5.000 — это контейнер нам необходимо его переместить по пути C:\Users\User\AppData\Local\Crypto Pro

Теперь открываем КриптоПРО CSP. Выбираем установить личный сертификат и указываем Тестовое ведомство Фамилия006 ИО.cer и нажимаем найти автоматически. Выполняем оставшиеся шаги сами.

Механизм подписания

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

Для получения авторизационный ссылки — ссылка на которую мы будем переадресовывать пользователя для авторизации в ЕСИА. Нам необходимо собрать ссылку из параметров.

client_id — наша Мнемоника

client_secret — Отсоединённая подпись от параметров запроса в кодировке UTF-8

redirect_uri — ссылка на которую ЕСИА будет переадресовывать пользователя вместе с авторизационным кодом

scope — перечень запрашиваемой информации. Например fullname birthdate gender

response_type — тип ответа от ЕСИА, в нашем случае это просто строчка code

state — Идентификатор текущего запроса. Генерируется таким образом Guid.NewGuid().ToString(«D»);

timestamp — время запроса авторизационного кода в формате yyyy.MM.dd HH:mm:ss Z. Генерируется таким образом DateTime.UtcNow.ToString(«yyyy.MM.dd HH:mm:ss +0000»);

client_certificate_hash — это fingerprint сертификата в HEX-формате.

Обозначили наш зоопарк. Самый важный зверь здесь client_secret

Получаем client_certificate_hash

В методическом указании от Минцифр есть ссылка на специальную утилиту с помощью которой мы можем получить этот хэш. Разархивировали архив и видим перед нами sh. Windows пользователи не пугаемся, на самом деле тут же лежит .exe файл. Чтобы вычислить хэш нашего сертификат просто необходимо из cmd запустить вот такой скрипт:

Формирование client_secret

Такс перед тем как просто получит client_secret нам необходимо сделать:

ASP.Net Framework 4.8 WebAPI — тот самый сервис который будет работать с КриптоПРО CSP

Пропустим множество шагов создания этого сервиса и перейдём сразу к его настройки для работы с КриптоПРО CSP.

Настройка сервиса для работы с КриптоПРО CSP

Добавляем ссылки на DLL КриптоПРО.
Переходим по пути C:\Program Files (x86)\Crypto Pro.NET SDK\Assemblies\4.0
Выбираем всё что нам нужно. (подробная информация)

Теперь мы имеем доступ к API КриптоПРО CSP из кода .Net Framework

Теперь создаём контроллер:

Итак нам необходимо получать строку для подписания. Создадим метод

Мы заранее укажем константами серийные номера сертификатов.
В методе Get получаем строку в Base64Url формате, чтобы спокойно передавать наши длинные сообщения.
Декодируем строку из Base64Url в текст. После чего переводим текст в байты используя UTF-8. А теперь подписываем.

И так что мы тут делаем. С помощью ГОСТ 34.11-2012 мы вычисляем хэш нашего сообщения. И используя полученный сертификат подписываем сообщение.

Здесь мы открываем наш склад с контейнерами и ищем именно тот где лежит наш сертификат. После чего извлекаем из него сертификат.

С помощью этого кода как раз и создаётся наша подпись на хэш строки. Здесь используется ГОСТ 34.10-2012.

Итак контроллер готов. Теперь переходим в наш основной проект на .Net Core

Создаём строку подписания. Просто выполняем конкатенацию параметры без разделителей. Здесь я использую IOptions чтобы брать параметры из appsettings.json.

Мы получил строку для подписания. Теперь нам необходимо эту строку закодировать в Base64Url и отправляем её на подписание в написанный нами заранее сервис

Собираем ссылку для авторизации в Госуслугах

Наконец-то мы получили этот долгожданный секрет. Но вы могли бы подумать это всё, дальше всё просто и ясно. Не тут то было! Дело в том, что ЕСИА требует Base64 Url Safe кодироку. И она немного отличается от Base64Url кодировки доступной из коробки .Net
Итак дело за малым, собираем нашего гомункула из секрета и параметров.

Класс помощник для сборки ссылки

Возможно излишне, но мне понравился метод сбора вот таким способом.

Получаем ссылку на подобии вот такой:
Здесь https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac ссылка на конечную точку получения авторизационно кода, указана в методическом материале.

Теперь перенаправляем пользователя по этой ссылке и ожидаем пока он авторизуется. После авторизации ЕСИА переадресует его на нашу ссылку и отправит туда в виде аргументов авторизационный код и state.

Получение токена доступа

Теперь время получить токен взамен на авторизационный код.

Метод для получение токена

Тут всё простенько, снова генерируем client_secret указываем остальные параметры и отправляем запрос в ЕСИА на получение токена. Тестовый Uri https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v3/te

Проверка токена

Итак помимо того, что нам нужно получить токен, нам так же необходимо проверить его.

Сам токен состоит из 3 частей.
1 часть — заголовок JWT токена
2 часть — payload токена, там вся основная информация о токене
3 часть — RAW подпись в формате UTF-8

Код конечной точки для проверки подписи

Здесь используем введённые ранее константы. И Получаем сертификат из доверенных сертификатов.

Этот код используем в нашем основном сервисе.
Проверяем поля токена на актуальность, чтобы его не могли подделать. А потом уже проверяем подпись токена, как указано в методических указаниях.

Получение данных пользователя из ЕСИА

Имея токен мы может отправить запрос на получение данных о пользователе указанных в scope токена. Пример кода, где мы получаем данные пользователя. Здесь esiaUserId содержится в самом токене, это уникальный идентификатор пользователя ЕСИА. Наш токен указываем в заголовке авторизации.

Код класса EsiaUser

Заключение

Наконец мы закончили интеграцию с ЕСИА. Это был длинный путь полный странных вещей. Неясных решений и множество потраченного времени. Надеюсь этой статьёй я помог Вам реализовать задачу интеграции гораздо быстрее и легче. Спасибо за потраченное время.

Виды Электронной Подписи и особенности её применения в ЕСИА Госуслуги.

ЕСИА Госуслуги

Каждый день растёт количество онлайн сервисов и увеличиваются возможности по получению различных видов услуг дистанционно. Что положительно сказывается на социальной сфере. На сегодняшний момент имея минимальные знания и навыки в работе с ПК и сетью Интернет. Вы можете без очередей и ходьбы по инстанциям получить услуги от государственных и муниципальных органов.

Для того чтобы пользователь смог использовать все возможности портала госуслуг ему потребуется наличие электронной цифровой подписи. Согласно Федеральному Закону No 63 » Об Электронной подписи» от 06.04.2011г., установлены основные виды Электронной Подписи. Каждую из этих подписей можно использовать для тех или иных целей. Цифровые подписи различают на: Простую подпись и квалифицированную электронную подпись.

Основные различия между простой и квалифицированной подписью:

• Простая подпись используется для запросов и получения справочной информации. Это справка о наличии или отсутствии судимости, о сумме средств пенсионных накоплений, информации о штрафах и налогах или долгах в данной категории и т.п. Возможность записаться на получение медицинских услуг или услуг различных образовательных учреждениях. Так же возможно оплатить различные услуги, включая услуги ЖКХ, налоги и т.д.

• Квалифицированная подпись используется при замене паспорта и водительского удостоверения и других документов удостоверяющих личность гражданина. Квалифицированную Электронную подпись можно использовать для регистрации нового юридического лица, открытия ИП, регистрация автотранспорта. Подачи сведений 3 НДФЛ в налоговые органы, запросы на получение различных лицензий или получения разрешений на выполнения различных видов работ. Так же электронную подпись можно использовать для участия в Электронных торгах для выполнения различных видов работ и услуг.

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

Создание простой ЭЦП.

Для получения этого вида цифровой подписи вначале требуется посетить сайт ЕСИА Госуслуги. Здесь потребуется выполнить ряд действий. На главной странице нажимаем «Зарегистрироваться», откроется новое окно, где необходимо указать вашу Фамилию, Имя, номер телефона и вашу электронную почту. После этого нажимаем на кнопку «Зарегистрироваться». В зависимости от выбора метода подтверждения, используется активная ссылка(если выбрали метод подтверждения почта) или СМС, который высылается на мобильный телефон. После подтверждения вам необходимо будет придумать пароль, который будет использоваться при авторизации на сайте.

На следующем этапе требуется указать данные паспорта, ваш ИНН и номер СНИЛС, после этого необходимо подождать когда пройдет проверка указанных данных через СМЭВ(система межведомственного электронного взаимодействия).

После прохождения проверки в личном кабинете портала Госуслуги будет создана простая ЭЦП.

Создание квалифицированной электронной подписи.

В отличие от простой ЭЦП для получения второго вида подписи — квалифицированной, потребуется больше времени и действий. Основное что необходимо будет сделать, это обратиться в аккредитованный удостоверяющий центр. Список УЦ размещен на сайте Минкомсвязи РФ. Вы можете воспользоваться поиском на сайте Минкомсвязи «Ближайший Удостоверяющий Центр», где система автоматически предложит вам адрес ближайшего УЦ в зависимости от вашего расположения.

В Удостоверяющий Центр или в официальную точку выдачи этого УЦ необходимо предоставить следующие документы:

Два заявления на создание Электронной подписи и Присоединении к регламенту( Бланки выдает УЦ).
1. Свидетельство ИНН.
2. СНИЛС.
3. Паспорт лица на которого оформляется подпись.

Возможна подачи заявки на создание сертификата электронной подписи в электронном формате. Для этого вам необходимо связаться с Удостоверяющим Центром и получить от них бланки заявлений и счет на оплату на вашу электронную почту. После оплаты счета за выпуск электронной подписи вы можете сэкономить ваше время. Для этого вам нужно выслать требуемые документы в сканированном виде на электронную почту УЦ. Оригиналы вы сможете предъявить уже непосредственно в момент получения квалифицированной подписи для ЕСИА госуслуги. При этом необходима личная явка или же доступна курьерская доставка, в момент которой и предоставляются оригиналы. Обычно, данная услуга оказывается на платной основе.

Выдача Электронной подписи юр.лицу.

Говоря про процедуру выдачи Квалифицированной Электронной Подписи необходимо заметить, что указанная выше процедура работает не только с физическими лицами, но и актуальна и для юридических лиц. Для выпуска ЭЦП для юр.лица потребуются дополнительные документы:

1.Приказ или выписка из приказа о назначении на должность(Если выпускается не на Руководителя компании).
2. Свидетельство ИИН самой компании.
3. Свидетельство ОГРН компании.

В среднем стоимость предоставления описанных выше услуг аккредитованными удостоверяющими центрами. Как муниципальными, так и осуществляющими свою деятельность на коммерческой основе начинается от 2000 руб. Причем цена для юридических и физических лиц установлена на одном уровне. Основными факторами, оказывающими влияние на ее изменение, от указанной суммы в сторону уменьшения или же увеличения являются:

1. Регион.
2. Выбранная ценовая политика.
3. Наличие конкуренции в данном сегменте рынка.

Без вложения денежных средств доступно получение только простой ЭЦП. Которая значительно облегчает сбор различных справок и т.п. для рядовых граждан. Связано это с тем, что выдается она самим порталом государственных услуг и основной целью ее использования является обеспечение доступности и снижение уровня бюрократии муниципальных учреждениях, а также сокращения количества временных затрат на сбор документов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *