Сервіс КЕП-операцій

1. Загальний опис

Метою сервісу є валідація цифрового підпису отриманого від клієнтів сервісу, а також накладання системного цифрового підпису на отримані дані. Базується сервіс на "IIT Java digital signature" бібліотеці від ІІТ.

Сервіс надає наступний функціонал:

  • Перевірка ЕЦП накладеного на документ

  • Накладання на документ системного підпису (цифрової печатки)

  • Перевірка системного підпису накладеного на документ

1.2. Параметри конфігурації сервісу

Параметр Тип Необхідність Опис

sign.timeout-ms

long

required

дозволений проміжок часу між накладанням підпису та перевіркою

sign.auth.timeout-ms

long

required

дозволений проміжок часу між накладанням підпису та перевіркою при автентифікації

sign.key.file

string

required

ім’я файлу системного ключа

sign.key.folder

string

required

ім’я директорії розташування системного ключа

sign.key.password

string

required

пароль системного ключа

sign.key.issuer

string

required

назва емітента ключа

sign.allowed-keys

list

required

список дозволених системних ключів

sign.allowed-keys[].issuer

string

required

назва емітента ключа

sign.allowed-keys[].serial

string

required

серійний номер ключа

datafactory-excerpt-ceph.http-endpoint

string

required

Адреса доступу до Ceph сховища

datafactory-excerpt-ceph.bucket

string

required

Назва сегменту данних Ceph

datafactory-excerpt-ceph.access-key

string

required

Ключ доступу до Ceph

datafactory-excerpt-ceph.secret-key

string

required

Ключ доступу до Ceph

1.3. Можливі помилки перевірки підпису, що генеруються бібліотекою ІІТ

Код помилки Повідомлення

ERROR_NONE

Виконано успішно

ERROR_NOT_INITIALIZED

Бібліотека не ініціалізована

ERROR_BAD_PARAMETER

Невірний параметр

ERROR_LIBRARY_LOAD

Виникла помилка при завантажені базових бібліотек

ERROR_READ_SETTINGS

Виникла помилка при зчитуванні параметрів

ERROR_TRANSMIT_REQUEST

Виникла помилка при передачі запиту на сервер ЦСК за протоколом HTTP

ERROR_MEMORY_ALLOCATION

Виникла помилка при виділені пам’яті

WARNING_END_OF_ENUM

Перелік закінчено

ERROR_PROXY_NOT_AUTHORIZED

Автентифікація на proxy-сервері не пройдена або не можлива

ERROR_NO_GUI_DIALOGS

Діалог з оператором не підтримується

ERROR_DOWNLOAD_FILE

Виникла помилка при завантаженні файлу з HTTP-сервера

ERROR_WRITE_SETTINGS

Виникла помилка при записі параметрів

ERROR_CANCELED_BY_GUI

Операція відмінена оператором

ERROR_OFFLINE_MODE

Доступ до сервера ЦСК не можливий (увімкнено offline-режим)

ERROR_KEY_MEDIAS_FAILED

Виникла помилка при роботі з носієм ключової інформації

ERROR_KEY_MEDIAS_ACCESS_FAILED

Виникла помилка при доступі до носія ключової інформації

ERROR_KEY_MEDIAS_READ_FAILED

Виникла помилка при зчитуванні особистого ключа з носія ключової інформації

ERROR_KEY_MEDIAS_WRITE_FAILED

Виникла помилка при запису особистого ключа на носій ключової інформації

WARNING_KEY_MEDIAS_READ_ONLY

Носій ключової інформації не підтримує знищення даних

ERROR_KEY_MEDIAS_DELETE

Виникла помилка при видаленні особистого ключа з носія ключової інформації

ERROR_KEY_MEDIAS_CLEAR

Виникла помилка при очищенні носія ключової інформації

ERROR_BAD_PRIVATE_KEY

Виникла помилка при відкритті особистого ключа (невірний пароль чи ключ пошкоджений)

ERROR_PKI_FORMATS_FAILED

Виникла помилка при розборі чи формуванні даних (пошкоджені дані чи невірний формат)

ERROR_CSP_FAILED

Виникла помилка при виконанні криптоперетворень

ERROR_BAD_SIGNATURE

Вибачте, підпис не пройшов валідацію. Будь ласка, спробуйте ще раз

ERROR_AUTH_FAILED

Виникла помилка при автентифікації (дані автентифікації пошкоджені)

ERROR_NOT_RECEIVER

Власник особистого ключа відсутній у списку отримувачів зашифрованих даних

ERROR_STORAGE_FAILED

Виникла помилка при роботі з файловим сховищем сертифікатів та СВС

ERROR_BAD_CERT

Сертифікат пошкоджений або не може бути використаний

ERROR_CERT_NOT_FOUND

Сертифікат не знайдено

ERROR_INVALID_CERT_TIME

Сертифікат не чинний за строком дії або закінчився строк дії відповідного особистого ключа

ERROR_CERT_IN_CRL

Сертифікат не чинний (при перевірці за допомогою СВС)

ERROR_BAD_CRL

СВС пошкоджений

ERROR_NO_VALID_CRLS

Не знайдено діючих СВС (можливо виникла помилка при їх завантаженні з сервера ЦСК або завантаження не можливе)

ERROR_GET_TIME_STAMP

Виникла помилка при отриманні позначки часу

ERROR_BAD_TSP_RESPONSE

Виникла помилка при розборі відповіді від TSP-сервера

ERROR_TSP_SERVER_CERT_NOT_FOUND

Сертифікат TSP-сервера не знайдено

ERROR_TSP_SERVER_CERT_INVALID

Сертифікат TSP-сервера не чинний (можливо не знайдено діючих СВС)

ERROR_GET_OCSP_STATUS

Виникла помилка при спробі отримати статус сертифікату за протоколом OCSP

ERROR_BAD_OCSP_RESPONSE

Виникла помилка при розборі відповіді від OCSP-сервера

ERROR_CERT_BAD_BY_OCSP

Сертифікат не чинний (при перевірці за протоколом OCSP)

ERROR_OCSP_SERVER_CERT_NOT_FOUND

Сертифікат OCSP-сервера не знайдено

ERROR_OCSP_SERVER_CERT_INVALID

Сертифікат OCSP-сервера не чинний (можливо не знайдено діючих СВС)

ERROR_LDAP_ERROR

Виникла помилка при роботі з LDAP-сервером

1.4. Можливі помилки валідації КЕП сервісу

Код помилки Повідомлення

ERROR_SIGNATURE_EXPIRED

Різниця підпису та поточного часу перевищила дозволений інтервал

ERROR_SIGNATURE_DRFO_MISMATCH

РНОКПП код підпису та користувача відрізняються

ERROR_SIGNATURE_EDRPOU_MISMATCH

ЄДРПОУ код підпису та користувача відрізняються

ERROR_SIGNATURE_NAME_MISMATCH

ПІБ підпису та користувача відрізняються

ERROR_EMPTY_DRFO

Підпис не містить РНОКПП код. Будь ласка, використайте інший підпис

ERROR_EMPTY_EDRPOU

Ви автентифіковані як юридична особа. Будь ласка, використайте ключ юридичної особи

ERROR_EMPTY_FULL_NAME

Використання печатки не підтримується. Будь ласка, використайте персонифікований ключ

ERROR_EMPTY_TIME_INFO

Підпис не містить мітки часу

ERROR_UNKNOWN_ESEAL

Печатка не авторизована для накладання підпису

ERROR_INVALID_JWT

Токен користувача не містить необхідних даних

ERROR_NOT_EMPTY_EDRPOU

Ви автентифіковані як фізична особа. Будь ласка, використайте ключ фізичної особи

ERROR_EMPTY_ALLOWED_SUBJECT

Не вказано тип пакету валідаційних правил

ERROR_NOT_ENTREPRENEUR_SIGNATURE

Ви скористалися ключем представника ФОП або юридичної особи. Будь ласка, використайте ключ власного ФОП

ERROR_EMPTY_ENTREPRENEUR_EDRPOU

Ви автентифіковані як фізична особа-підприємець. Будь ласка, використайте ключ фізичної особи-підприємця

Список кодів помилок також можна знайти у файлі локалізації. Повідомлення помилок локалізовано українською мовою.

2. Технологічний стек

  • Spring/Spring Boot - програмний каркас з відкритим кодом та контейнери з підтримкою інверсії управління для платформи Java.

  • Spring Cloud Kubernetes - інтеграція з об’єктами Kubernetes інфраструктури ConfigMap/Secrets

  • IIT Digital Signature Java library - бібліотека для створення та перевірки цифрового підпису документа.

  • Maven - управління залежностями