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

Александр Гаврилов · 01 ноя 2024 · 369 · Поделиться

Обзор сервиса и его компонентов

Сервис проверки и визуализации электронной подписи предлагает следующие возможности:

  1. REST API для обработки документов и проверки подписей.

  2. Визуализацию штампов электронной подписи для PDF-документов.

  3. Создание отчетов о проверке подписей для документов других форматов.

Наш тестовый сервис позволяет загружать документы и подписи в различных форматах (поддерживается проверка подписей PADES для PDF). Для PDF-файлов есть возможность создавать копию с визуальным штампом, а для других форматов — формировать отчет.

Сервис использует следующие библиотеки из состава КриптоАРМ SDK:

  • trusted-crypto — для проверки подписей и сертификатов;

  • trusted-pdf — для работы с PDF.

Зачем нужна визуализация электронной подписи?

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

  • фразы «Документ подписан электронной подписью»;

  • номера сертификата ключа подписи;

  • ФИО владельца сертификата;

  • срока действия сертификата;

  • дополнительных атрибутов, такие как эмблема или логотип (при необходимости).

Согласно п. 5.23 ГОСТ Р 7.0.97-2016 визуализация подписи должна быть аналогична месту подписи в бумажном документе, а также видимой и читаемой. 

Примеры запросов к сервису

1. Загрузка и проверка подписанного документа


Первый шаг — загрузка документа и подписи с помощью метода `POST /api/v1/signature/verify`. Этот метод проверяет действительность электронной подписи.


**Запрос**:

- Метод: `POST /cms/verify`

- Заголовок: `Content-Type: multipart/form-data`

- Параметры:

  - `data` ( `Base64`): документ, для которого нужно проверить подпись, если сама подпись открепленная.

  - `cms` (обязательный, `Base64``): CMS подпись.


**Пример ответа**:


```

{

  "status": 200,

  "message": "",

  "isValid": true,

  "isValidSign": true,

  "signs": [

{

   "cadesTypeName": "CAdES-BES",

   "certificate": {

     "version": 3,

     "status": true,

     "subjectFriendlyName": "esia test3",

     "issuerFriendlyName": "CRYPTO-PRO Test Center 2",

     "subjectName": "CN=esia test3",

     "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",

     "notAfter": "2024-10-26T16:25:37.000Z",

     "notBefore": "2024-08-26T16:15:37.000Z",

     "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",

     "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",

     "signatureAlgorithm": "1.2.643.7.1.1.3.2",

     "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",

     "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"

   },

   "certificateData": "MIIDEz...",

   "issuerName": "E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2",

   "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",

   "signatureAlgorithm": "1.2.643.7.1.1.3.2",

   "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",

   "certs": [

     {

       "status": true,

       "subjectFriendlyName": "esia test3",

       "issuerFriendlyName": "CRYPTO-PRO Test Center 2",

       "subjectName": "CN=esia test3",

       "issuerName": "E=support@cryptopro.ru\r\nC=RU\r\nL=Moscow\r\nO=CRYPTO-PRO LLC\r\nCN=CRYPTO-PRO Test Center 2",

       "notAfter": "2024-10-26T16:25:37.000Z",

       "notBefore": "2024-08-26T16:15:37.000Z",

       "serialNumber": "120064ECE1352507757C00A08B00020064ECE1",

       "thumbprint": "29063cd83537dbbd0a221705859b8f6e5bec5ad0",

       "signatureAlgorithm": "1.2.643.7.1.1.3.2",

       "signatureDigestAlgorithm": "1.2.643.7.1.1.2.2",

       "publicKeyAlgorithm": "1.2.643.7.1.1.1.1"

     }

   ],

   "isCertChainValid": true

}

  ]

}

  ```


2. Визуализация штампа электронной подписи на PDF-документах


Для PDF-документов сервис позволяет добавить визуальный штамп, отображающий основные сведения о подписанте. Такой штамп делает документ наглядным и удобным для работы в бумажном виде.


 формуляр.png

3. Генерация отчета о проверке 


Когда сервис получает документ в формате, отличном от PDF, вместо визуализации штампа можно запросить отчет о проверке подписи.

отчет.png

Заключение

Итак, мы рассмотрели наш пример сервиса проверки и визуализации электронной подписи с REST API. Визуализация штампа упрощает работу с PDF-документами, а отчеты о проверке позволяют легко получить подтверждение подлинности для других типов документов.


Попробуйте бесплатную демонстрацию сервиса.

Используя исходный код тестового стенда вы можете реализовать свое решение. Мы всегда рады помочь с реализацией и расширить функционал, вопросы можно отправлять нам на почту  sales@cryptoarm.ru.


Вернуться к списку новостей

Подпишитесь и получайте новые статьи по почте

Заполните поле Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!

Узнавайте новости первыми —
подпишитесь на нашу новостную рассылку

Заполните поле
Подписаться

Подписываясь, вы соглашаетесь на получение информационных сообщений от компании
ООО «Цифровые технологии» на условиях Политики конфиденциальности

Спасибо, что подписались
на нашу рассылку!