Авторизация на портале Госуслуг с помощью Рутокен ЭЦП

Одному из сотрудников нашей компании понадобилось зарегистрироваться на портале Госуслуг. Как известно, на портале сейчас есть возможность входить в личный кабинет по логину/паролю, либо по электронной подписи. Вариант с логином/паролем был отброшен в силу профессиональной паранойи, и поехал сотрудник в УЦ Ростелекома — оператора системы — получать сертификат. В УЦ ему в качестве носителя электронной подписи/аппаратного СКЗИ не предложили Рутокен ЭЦП. В силу корпоративного патриотизма сотрудник решил не форсировать события, а попробовать-таки зайти на Госуслуги, используя для электронной подписи Рутокен ЭЦП.Что из этого получилось, описано под катом.ac95f30ea78e6cdeefef40f9b1dadfac.png

На портале Госуслуг для проведения ЭП используется специальный браузерный плагин, который достаточно универсален. В качестве средств ЭП он умеет «подцеплять» как аппаратные СКЗИ, так и программные криптопровайдеры.Рутокен ЭЦП в этом плагине поддерживается. Поддерживается Рутокен ЭЦП через нашу библиотеку, реализующую стандарт PKCS#11. Процедура входа в личной кабинет на портале Госуслуг по ЭП представляет собой подпись случайных данных, отправляемых сервером. Подпись формируется в формате PKCS#7. Для аутентификации пользователя сервер использует информацию из сертификата X.509, а успешная проверка подписи подтверждает наличие у пользователя закрытого ключа, соответствующего сертификату. Для того чтобы сервер принял пользовательский сертификат, тот должен быть усиленным квалифицированным. Задача разбилась на подзадачи:

Сгенерировать ключ на Рутокен ЭЦП в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11 Узнать, какие аккредитованные УЦ выдают квалифицированные сертификаты для физлиц Договориться с одним из этих УЦ, что он выдаст сертификат на основе запроса, сделанного удаленно. Сформировать правильный запрос на квалифицированный сертификат. Транспортировать запрос в УЦ. Получить сертификат и записать его на Рутокен ЭЦП в формате, совместимом с форматом плагина Госуслуг, то есть через библиотеку PKCS#11. С УЦ мы договорились довольно быстро. Один из основных наших партнеров, УЦ СКБ Контур, аккредитован в системе Госуслуг и согласился выдать нам сертификат по описанной схеме.Для решения технических вопросов мы решили использовать Рутокен Плагин, который также работает через библиотеку PKCS#11 и совместим с плагином Госуслуг.

Центр регистрации Для генерации ключа, создания запроса и записи сертификата мы сделали набор web-страниц, который условно назвали Центр регистрации. Этот Центр регистрации не требует серверной части, все операции осуществляются на клиенте. Для работы Центра регистрации требуется установка Рутокен Плагин.

Центр регистрации имеет позволяет:

Просматривать ключевые пары и сертификаты на подключенных устройствах Рутокен ЭЦП (под просмотром ключевых пар понимается просмотр информации о них) Генерировать новую ключевую пару Формировать запрос в формате PKCS#10 для выбранной ключевой пары Формировать запросы по шаблону Импортировать сертификат на устройство Удалять сертификат с устройства Генерация ключа и формирование запроса на сертификат Ниже приведена инструкция по генерации ключа и формированию запроса на сертификат c помощью Центра регистрации:1. Запустить Центр регистрации:

361ac8bf3f16eb79e149a97755020803.png

2. Подключить Рутокен ЭЦП к компьютеру, выбрать токен, ввести PIN-код:

d89a2458c16c77b7f892db1d7943e75a.pngПосле выбора токена отобразится меню:

143e41bb0a8ba68ad6c72f2e48d07310.png

3. Нажать кнопку «Создать ключ»:

0024a8884d09906e6aadfc89afead7f9.png

Затем нажать «Создать запрос на этом ключе»

90810420374d5bc4bbf089a4b3e10fc3.png

4. На странице создания запроса выбрать шаблон «СКБ Контур, для физлиц», заполнить поля запроса, нажать кнопку «Создать запрос» (все поля должны быть заполнены, в данном случае реализован тестовый пример):

eb924d0d9ec3196a9a4223bf8cc701a6.png

5. Скопировать запрос для отправки его в УЦ:

13755da50fabb7970c2f1deaf7ed5c28.png

6. Сгенерированный ключ появился в списке:

b54ccc1ef32873a0ff855ae1758d3b27.png

После отправки запроса сотруднику пришло уведомление о необходимости явиться в офис УЦ для подтверждения личности.После прохождения проверки наш сотрудник получил сертификат.

Импорт сертификата 1. Выбрать в списке токен, нажать кнопку «Импортировать сертификат», полученный сертификат вставить в форму ввода, нажать кнопку «Импортировать»: 5273bb895bad935a2772496e735da2b0.png

2. При импорте выбрать тип сертификата «Пользовательский»:

a6ba7496e06d9e2ec081152ae1381a68.png

3. После этого появится окно с отображением сертификата и сообщением об успешном импорте на Рутокен ЭЦП (на картинке приведен пример импорта тестового сертификата, полученного в тестовом УЦ):

92791286113c242930ff9861d45f85f6.png

4. Сертификат отобразится в списке:

c87c4d2edc9956c4dad069d9751ea257.png

Вход на портал Госуслуг Сотрудник установил плагин Госуслуг, и ему удалось войти на портал по ЭП.8f0f13c2cf843a628d74ea51e787ffa3.jpg

Выбираем «По электронной подписи»:

8be51c05e9bed588c565e4970d2f0b76.jpg

Выбираем сертификат:

ff3b65b66d67dab86f900422f121b37b.jpg

Вводим PIN-код:

c88be652fadb7b99878ed092e0a0bbba.jpg

Попадаем в личный кабинет:

f673274145e8a29eb1e81ed1f9d9820e.jpg

Вместо заключения Концепция аппаратных СКЗИ, выполненных в различных форм-факторах, может быть востребована в массовых проектах, ориентированных на физлиц. В первую очередь за счет упрощения использования криптографии. Плагины, осуществляющие интеграцию браузера и аппаратных криптографических решений должны развиваться в сторону увеличения легкости установки и расширения возможностей. Тогда эти решения будут чаще и больше использовать.Для того, чтоб была возможность выдачи квалифицированных сертификатов на Рутокен ЭЦП, которые можно было бы использовать с плагином Госуслуг или с Рутокен Плагин, сделана локальная версия Центра регистрации, ее можно использовать непосредственно в точках выдачи сертификатов.

© Habrahabr.ru