Установка и использование платформы
REST API: формирование и проверка электронной подписи данных (PKI)¶
Для формирования и проверки электронных подписей предусмотрена группа методов pki
.
Принцип работы этой методов POST /pki/sign
и POST /pki/verify
аналогичен методам gRPC-методов contract_pki_service.proto.
Все методы группы доступны только для сетей с ГОСТ-криптографией.
GET /pki/keystoreAliases¶
Метод возвращает список с именами всех доступных хранилищ закрытых ключей ЭП.
Пример ответа:
POST /pki/sign¶
Метод формирует отсоединённую ЭП для данных, передаваемых в запросе. Запрос состоит из следующих полей:
inputData
– данные, для которых требуется ЭП (в виде массива байт в кодировке base64);keystoreAlias
– имя хранилища для закрытого ключа ЭП;password
– пароль хранилища для закрытого ключа;sigType
– формат ЭП. Поддерживаемые форматы:1
– CAdES-BES;2
– CAdES-X Long Type 1;3
– CAdES-T.Пример запроса:
Метод возвращает поле signature
, содержащее сгенерированную отсоединенную ЭП.
Пример ответа:
POST /pki/verify¶
Метод предназначен для проверки отсоединённой ЭП для данных, передаваемых в запросе. Запрос состоит из следующих полей:
inputData
– данные, закрытые ЭП (в виде массива байт в кодировке base64);signature
– электронная подпись в виде массива байт в кодировке base64;sigType
– формат ЭП. Поддерживаются значения:1
– CAdES-BES;2
– CAdES-X Long Type 1;3
– CAdES-T;extended_key_usage_list
– список объектных идентификаторов (OID) криптографических алгоритмов, которые используются при формировании ЭП (опциональное поле).
Пример запроса:
Ответ метода содержит поле sigStatus
с булевым типом данных: true
– подпись действительна, false
– подпись скомпрометирована.
Пример ответа:
Проверка УКЭП¶
Метод POST /pki/verify
имеет возможность проверки усиленной квалифицированной электронной подписи (УКЭП).
Для корректной проверки УКЭП установите на вашу ноду корневой сертификат ЭЦП удостоверяющего центра (УЦ), при помощи которого будет осуществляться валидация подписи.
Корневой сертификат устанавливается в хранилище сертификатов cacerts используемой вами виртуальной машины Java (JVM) при помощи утилиты keytool:
sudo keytool -import -alias certificate_alias -keystore path_to_your_JVM/lib/security/cacerts -file path_to_the_certificate/cert.cer
После флага -alias
укажите предпочтительное вам имя сертификата в хранилище.
Хранилище сертификатов cacerts расположено в поддиректории /lib/security/
вашей виртуальной машины Java.
Чтобы узнать путь к виртуальной машине на Linux, воспользуйтесь следующей командой:
readlink -f /usr/bin/java | sed "s:bin/java::"
Затем добавьте к полученному пути /lib/security/cacerts
и вставьте полученный абсолютный путь к cacerts после флага -keystore
.
После флага -file
укажите абсолютный или относительный путь к полученному сертификату ЭЦП удостоверяющего центра.
Пароль по умолчанию для cacerts – changeit
. При необходимости вы можете изменить его при помощи утилиты keytool:
sudo keytool -keystore cacerts -storepasswd