ЭЦП — как много в этих буквах

  • Михаил
  • 8 мин. на прочтение
  • 5
  • 15 Apr 2026
  • 15 Apr 2026

1. Рождение ключа: как КЭП появляется на Рутокене

Процесс выпуска КЭП в Удостоверяющем центре (УЦ) выглядит так:

  • В УЦ подключают ваш Рутокен к компьютеру оператора.
  • Специалист в программе УЦ нажимает кнопку «Сгенерировать ключи».
  • Программа УЦ отправляет токену команду через PKCS#11 или напрямую через КриптоПро CSP.
  • Внутри чипа Рутокена генерируется пара «закрытый – открытый ключ».
  • Закрытый ключ остается внутри чипа и никогда его не покидает.-
  • Открытый ключ передается в программу УЦ, на его основе выпускается сертификат, который записывается на токен в пару к закрытому ключу.

Итог: на Рутокене есть защищенный аппаратный чип, в котором хранится неизвлекаемый закрытый ключ, и файл сертификата, связывающий открытый ключ с вашими данными.

2. Как КриптоПро CSP подписывает документ (пошагово)

Допустим, у вас на компьютере установлен КриптоПро CSP, подключен Рутокен, и вы нажимаете «Подписать» в каком-либо приложении.

Шаг 1. Приложение обращается к КриптоПро CSP

Программа отправляет запрос криптопровайдеру: «Возьми этот документ, подпиши его сертификатом из Рутокена, сделай отсоединенную подпись в формате PKCS#7».

Шаг 2. КриптоПро CSP вычисляет хеш документа

Криптопровайдер подает документ на вход хеш-функции ГОСТ Р 34.11-2012 «Стрибог». Это криптографическая «мясорубка», которая превращает документ произвольной длины в строку байт фиксированной длины (256 или 512 бит).- Затем этот хеш встраивается в специальную ASN.1-структуру (в нее может добавляться метка времени и другая информация).-

Шаг 3. КриптоПро CSP передает хеш на подпись в Рутокен

Дальше — самая важная техническая часть. КриптоПро CSP умеет работать с Рутокеном через два механизма:

 

МеханизмЧто происходит
Через PKCS#11 (современный, безопасный)КриптоПро CSP обращается к библиотеке rtPKCS11ECP.dll, которая отправляет токену команду: «Подпиши этот хеш закрытым ключом, который лежит у тебя внутри».
Через собственный драйвер (старый способ)КриптоПро CSP напрямую общается с токеном через свой драйвер и протокол PC/SC.

При работе через PKCS#11 (самый безопасный вариант) закрытый ключ не покидает токен ни на миллисекунду.- Ключ надежно «заперт» в защищенном чипе. Токен получает только хеш документа, а возвращает уже готовую подпись.-

Шаг 4. Внутри Рутокена: подпись хеша закрытым ключом

Внутри чипа токена происходит математическое чудо: специальный алгоритм ГОСТ Р 34.10-2012 подписывает хеш закрытым ключом. Используются эллиптические кривые — сложная математика, которую невозможно «подделать» или вычислить обратным ходом.-

Шаг 5. Токен возвращает подпись в КриптоПро CSP

Результат — пара чисел (r, s) — возвращается в криптопровайдер.

Шаг 6. КриптоПро CSP упаковывает подпись в контейнер

Криптопровайдер берет подпись, добавляет ваш сертификат, информацию об алгоритмах и формирует файл в формате PKCS#7/CMS.

Отсоединенная подпись (detached signature): отдельный файл (обычно с расширением .sig или .p7s), который идет вместе с исходным документом.-

Присоединенная подпись (attached signature): подпись и данные упакованы в один файл (расширение .p7m).

Итог: готовый файл подписи.

3. Что такое отсоединенная подпись и зачем она нужна

Отсоединенная подпись — это отдельный файл, который не изменяет исходный документ. Документ можно открыть и прочитать как обычно, а файл подписи хранится рядом. Это удобно в электронном документообороте: документ передается в открытом виде, а подпись — отдельным файлом для проверки подлинности.-

4. Как проверить, что документ действительно подписан

Проверить подпись можно несколькими способами.

Онлайн-сервисы

Госуслуги: e-trust.gosuslugi.ru/check/sign. Загружаете документ и файл подписи, сервис проверяет подлинность.-

ФНС России: аналогичный сервис на сайте nalog.gov.ru.-

КриптоПро CSP

Утилита командной строки cryptcp:

cryptcp -verify document.pdf.sig document.pdf

Если подпись верна, вы увидите сообщение «Подпись верна».

Программно в своем коде

В своем приложении вы можете проверить подпись с помощью библиотеки BouncyCastle.

5. Как узнать, кто именно подписал документ

Информация о подписанте — физическом или юридическом лице — хранится в сертификате, который вложен в файл подписи (отсоединенную или присоединенную).

Проще всего открыть сертификат на Windows:

Дважды кликните по файлу .cer.

Перейдите на вкладку «Состав».

Посмотрите поле «Субъект»: там указаны ФИО, СНИЛС, ИНН и другие данные владельца.-

Поле «Издатель» покажет, какой УЦ выдал сертификат.-

Если у вас есть только файл подписи .sig или .p7s, откройте его двойным щелчком. Windows отобразит окно с сертификатом, вложенным в подпись.

6. Как проверить, можно ли доверять УЦ

Не все УЦ одинаково полезны. Если УЦ не имеет аккредитации Минцифры, подпись юридически ничтожна.-

Пошаговая проверка:

Посмотрите в сертификате поле «Издатель» — название УЦ.

Перейдите на сайт Минцифры: digital.gov.ru/ru/activity/govservices/2/.

Найдите УЦ в реестре аккредитованных организаций. Если его там нет — подпись недействительна.-

Дополнительно проверьте:

Сертификат не должен быть просрочен.

Сертификат не должен быть отозван (проверяется через список отзыва CRL или OCSP).

Должна выстраиваться цепочка доверия до корневого сертификата УЦ.

7. Как проверить, что подпись настоящая и ей можно доверять

Финальная проверка объединяет всё вышесказанное:

Криптографическая проверка: совпадают ли хеши исходного документа и расшифрованной подписи?

Проверка срока действия сертификата: не истек ли он?

Проверка отзыва: не значится ли сертификат в списке отозванных (CRL) или через OCSP?

Проверка цепочки доверия: сертификат подписан УЦ, УЦ аккредитован Минцифрой, корневой сертификат УЦ установлен в системе как доверенный.-

Проверка контекста: тот ли человек/компания подписали документ? Не отозвана ли доверенность?

Если все пункты пройдены — подпись можно считать действительной.

8. Что делать, если проверка не прошла

 

ОшибкаВероятная причинаЧто делать
Подпись невернаДокумент был изменен после подписанияСравните файлы, верните оригинал
Сертификат просроченИстек срок действияЗапросите новый сертификат в УЦ
Сертификат отозванКлюч скомпрометирован или владелец уволилсяТребуйте новый сертификат, подпись недействительна
Нет доверия к УЦУЦ не аккредитован или корневой сертификат не установленУстановите корневой сертификат УЦ в хранилище доверенных

9. Схема всего процесса