Выдаем Цифровой Сертификат И Проверяем Подпись С Помощью Bouncycastle

Флагманским продуктом нашей компании является Рутокен ЭCPU – устройство с русской криптографией «на борту».

Для интеграции устройства с браузерами выпущено Плагин Рутокен .

Демо-версию возможностей плагина можно посмотреть на сайте испытательные площадки .

Некоторые из них предполагают работу с цифровыми сертификатами, хранящимися на устройствах.

Например, Демо-банк При регистрации пользователей выдает сертификат пользователя, а при входе в систему запрашивает и проверяет его.

Для реализации этих задач на сервере используется библиотека BouncyCastle.

Выдаем цифровой сертификат и проверяем подпись с помощью BouncyCastle

В данной статье будут рассмотрены примеры его использования для выдачи сертификатов по запросу PKCS#10, а также для проверки подписи CMS, созданной с использованием российских криптографических алгоритмов.

Наш «центр сертификации» основан на библиотеке BouncyCastle. Следует отметить, что на сайте jumpycastle.org/csharp/ Есть устаревшая версия библиотеки, которая не работала в решении без исправлений.

Рабочую версию можно найти на Github — https://github.com/bcgit/bc-csharp .

Также есть тесты с кучей вариантов использования библиотеки для различных нужд. Всего этого нам нужно не так уж и много: — Работа с запросами PKCS#10. — Выдача сертификатов на основании данных запроса Если есть необходимость организовать вход на сайт по сертификату, мы реализуем другой алгоритм, о нем ниже.

Корневой сертификат может быть сгенерирован библиотекой и использован в будущем.

Он у нас уже есть в формате PEM. Также есть приватный ключ.



Клиент

В нашей системе сервер IIS с веб-API ASP.NET обращается к внешнему миру с помощью метода, который выдает сертификат по запросу PKCS#10. На клиенте, то есть на самих демо-сайтах, стоит приложение, работающее на AngularJs, работающее с плагин .

Конечно, написать клиент можно на чём угодно, но суть работы на стороне клиента сводится к следующему: — мы передаем данные поля в функцию плагина createPkcs10 для генерации запроса PKCS#10 и получаем текст запроса.

— текст запроса PKCS#10 отправляется в виде пост-запроса в метод API, получаем сертификат или ошибку, если невозможно выдать сертификат. — передаем полученный сертификат в функцию плагина importCertificate и импортируем его на устройство.

Рабочая версия сайта с возможностью управления сертификатами на устройствах Рутокен? ЦП теперь крутится здесь - http://ra.rutoken.ru .

Вы можете создать ключ и сделать запрос с необходимыми полями.

Затем выпишите тестовый сертификат, который будет импортирован в токен.

! Для работы необходимо установить плагин и подключить РутокенЭЦП!

Сервер

Но вернемся к серверной части.

Итак, у нас есть корневой сертификат в формате PEM и приватный ключ к нему.

Сертификат пользователя выдадим по запросу PKCS#10. Сам запрос от клиента также приходит в текстовом виде, в формате PEM. Теги: #Криптография #BouncyCastle #rutoken #rutoken #Плагин Рутокен #pkcs10 #информационная безопасность #Криптография #.

NET

Вместе с данным постом часто просматривают: