В Spring Boot версии 2 появилась поддержка встроенного веб-сервера Apache Embedded, который позволяет запускать приложения без отдельного развертывания на веб-сервер, достаточно выполнить команду утилиты java -jar.
11. Порядок работы с веб-сервисом
Использование функционала ЭЦП с помощью веб-сервиса осуществляется путем взаимодействия с REST API, отправкой запросов со стороны внешних систем либо используя пользовательский интерфейс.
Ниже приведена инструкция по использованию библиотеки модуля подписания документов.
Для формирования файла отсоединенной подписи документа необходимо:
В папке с файлом SignaturePDF.jar создать папки:
PDF. Здесь хранятся PDF-файлы для подписи.
SIGN. Здесь хранятся отсоединенные подписи формата “.sig” PDF-файлов
В командной строке выполнить один из вариантов команд:
java -jar SignaturePDF.jar
Создает подпись для файла по умолчанию “test.pdf”, хранящегося в папке PDF. Формат подписи по умолчанию XLT1.
java -jar SignaturePDF.jar <имя PDF-файла вместе с расширением.pdf из папки PDF>
Создает подписи для задаваемого файла формата по умолчанию XLT1.
java -jar SignaturePDF.jar <формат подписи> <имя PDF-файла вместе с расширением.pdf из папки PDF>
Создает подписи для задаваемого файла заданного формата.
java -jar SignaturePDF.jar <псевдоним клиентского сертификата> <пароль от контейнера с ключом> <псевдоним доверенного сертификата> <формат подписи> <адрес службы штампа времени> <формат подписи> <имя файла вместе с расширением “pdf”>
Доступные форматы подписей:
CAdES-BES
CAdES-T
CAdES-X Long Type 1
Параметры по умолчанию:
Псевдоним клиентского сертификата (“certificate_name”)
Пароль от клиентского контейнера с ключом (“certificate_password”)
Псевдоним доверенного сертификата (“test_ca.cer”)
Формат подписи (“XLT1”)
Адрес службы штампа времени “http://testca.cryptopro.ru/tsp/tsp.srf”
Имя файла вместе с расширением “pdf”.
12. Полученные результаты
Целью выполнения выпускной квалификационной работы магистра является автоматизация формирования электронно-цифровой подписи документов на основе криптографических утилит провайдера КриптоПро стандарта CadES и проверки валидной подписи.
В ходе выполнения работы был разработан веб-сервис в рамках реализации электронного подписания документов алгоритмом ГОСТ с использованием хеш-функции отечественных алгоритмов.
Поставленная задача - обеспечить электронно-цифровое подписание документов и организацию по проверке подписи была выполнена.
Были реализованы поставленные задачи:
? анализ и исследование методов и технологий, применяемых для реализации цифровой подписи документов;
? выбор методологии разработки программного обеспечения, алгоритма шифрования и хэш-функции;
? разработка программного обеспечения в рамках реализации электронного подписания документов.
По результатам выполненной работы было успешно реализовано электронно-цифровое подписание документов.
Заключение
1. Автоматизация процессов подписания документов на данный момент не является массовым явлением и в основном используется на предприятиях масштабного сегмента, например, банковский сектор. Перспективы ЭЦП огромные, массовое внедрение во все сферы жизни человека существенно упростит нашу жизнь, ведь для электронного подписания достаточно иметь персональный сертификат, подтверждающий личность и удостоверенный в специализированных центрах обработки данных, и доступ в интернет.
2. Разработанное программное обеспечение в рамках выпускной квалификационной работы в виде веб-сервиса позволяет и гарантирует:
· физическим лицам в свободном доступе посредством пользовательского интерфейса получать и проверять подписи;
· доступ к веб-сервису со стороны внешних систем с помощью спроектированного прикладного программного интерфейса;
· надежность неизменного документа во времени благодаря хранению хэш-результата документа в структуре отсоединенной подписи, все отклонения документа после момента подписания будут отражены на проверке;
· выбрать необходимый тип квалифицированной подписи, особо интересным и практичным из всех предложенных является тип с подтверждением во времени, хранения даты и времени подписания. Данный аспект является исключительно важным ввиду надобности подтверждать подписью действия, имеющие определенный срок выполнения.
При сравнении подписей документов в традиционном для многих формате на физических носителям (распечатанные документы) с электронными подписями можно выделить следующие показатели:
· независимость человека от местонахождения, дистанционный формат;
· экономия времени на дорогу;
· уверенность в надежности подписи, отсутствие фальсификации.
3. В рамках проделанной работы над выпускной квалификационной работы были проанализированы алгоритмы шифровая как отечественные (ГОСТ) так и зарубежные (RSA); изучено программное обеспечение провайдера КриптоПро, реализующее алгоритмы ГОСТ. Инженерный результатом работы стал веб-сервис с пользовательским интерфейсом. Сервис осуществляет взаимодействие с модулем подписания документом и предоставляет конечным пользователям и внешним системам весь его функционал.
4. В результате работы над выпускной квалификационной работой был приведен анализ существующих технических решений реализации электронно-цифровой подписи. Для разработки программного обеспечения были выбраны самые актуальные и востребованные технологии. Продемонстрирована архитектура разработанного веб-сервиса, описаны все составляющие его части.
Список использованных источников
Приложение
Класс SignatureProccessor
Метод initKeystoreParams выполняет инициализацию хранилища сертификатов, выполняет загрузку пользовательского сертификата, строит цепочку сертификатов с учетом доверительных.
Рисунок 15. Инициализация
Метод getCertificateData выполняет получение данных из сертификата пользователя.
Рисунок 16. Данные сертификата
Метод signPDFWithCAdES осуществляет подписание документа и получение байтового потока подписи.
Рисунок 17. Реализация подписания документов
Метод verifyCAdES осуществляет проверку электронной подписи документа и возвращает результат проверки.
Рисунок 18. Реализация проверки подписи