5.9 KiB
CADES-XL end cryptcp.exe
Алгоритм подписания CADES-XL c использованием утилиты cryptcp.exe
Thing
Алгоритм:
-
Толстый клиент СЭД: Получение документа для подписания УКЭП.
-
Толстый клиент СЭД: Запуск cryptcp.exe с передачей необходимых параметров, включая:
- Путь к файлу документа
- Тип подписи (CAdES-XL)
- Параметры для OCSP (адрес сервера) и TSP (адрес сервера)
- Место сохранения подписи
-
cryptcp.exe (используя КриптоПРО CSP) выполняет:
- a) Загрузка и проверка цепочки сертификатов (корневые и промежуточные УЦ из хранилища Windows)
- b) Извлечение сертификата подписанта с Рутокен (запрос закрытого ключа для подписи)
- c) Формирование хэша документа
- d) Подписание хэша закрытым ключом (с Рутокен) и формирование CAdES-BES
- e) Запрос OCSP-ответа от указанного сервера и TSP-метки от указанного сервера
- f) Формирование CAdES-XL контейнера (включая OCSP и TSP)
-
cryptcp.exe возвращает управление толстому клиенту СЭД, который получает файл подписи (CAdES-XL) и исходный документ (если не был изменен).
-
Толстый клиент СЭД: Формирование Описания электронного документа (XML) и передача трех файлов (документ, подпись CAdES-XL, описание) в хранилище подписанных документов.
Однако, note: в документации указано, что cryptcp.exe может выполнять подписание с усилением до CAdES-XL, но для этого нужно указать соответствующие параметры (например, -cadestype XL, -ocsp и -tsp).
Пример команды для cryptcp.exe: cryptcp -sign -dn "CN=Иванов Иван Иванович" -cadestype XL -ocsp "http://ocsp.kontur.ru" -tsp "http://tsp.kontur.ru" -detached document.pdf document.pdf.sig
В этом примере: -sign - команда подписания -dn - субъект сертификата (может быть опущен, если сертификат выбран из хранилища) -cadestype XL - тип подписи CAdES-XL -ocsp - URL OCSP-сервера -tsp - URL TSP-сервера -detached - отделенная подпись (если нужна присоединенная, то не указывается)
Но note: в случае использования Рутокен, cryptcp.exe должен иметь доступ к контейнеру закрытого ключа (через КриптоПРО CSP) и сертификату.
Алгоритм с использованием cryptcp.exe:
-
Толстый клиент СЭД: Получение документа для подписания УКЭП.
-
Толстый клиент СЭД: Подготовка параметров для cryptcp.exe (выбор сертификата, указание OCSP и TSP серверов, пути к файлам).
-
Толстый клиент СЭД: Запуск cryptcp.exe с подготовленными параметрами.
-
cryptcp.exe (с использованием КриптоПРО CSP и драйвера Рутокен): a) Загрузка сертификата подписанта (из Рутокен или системного хранилища) и проверка цепочки доверия (корневые и промежуточные УЦ из хранилища Windows). b) Формирование хэша документа. c) Подписание хэша закрытым ключом (с Рутокен) и формирование базовой подписи (CAdES-BES). d) Запрос OCSP-ответа от указанного сервера для сертификата подписанта. e) Запрос TSP-метки от указанного сервера для подписи. f) Формирование CAdES-XL контейнера, включающего базовую подпись, цепочку сертификатов, OCSP-ответ и TSP-метку.
-
cryptcp.exe сохраняет подпись в указанный файл и возвращает код ошибки (успех/неудача).
-
Толстый клиент СЭД: Проверка кода возврата cryptcp.exe. Если подписание успешно, то формирование описания электронного документа (XML).
-
Толстый клиент СЭД: Передача трех файлов (документ, подпись CAdES-XL, описание) в хранилище подписанных документов.
Таким образом, основная работа по формированию CAdES-XL перекладывается на cryptcp.exe, а толстый клиент СЭД управляет процессом через командную строку.