ИНФОРМАТИКА
Вестник Сыктывкарского университета.
Серия 1: Ма тем а тика. Механика. Информатика.
Выпуск 1 (38). 2021
УДК 004.056.55, 004.3 DOI: 10.34130/1992-2752 2021 1 43
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ ПРИ ИСПОЛЬЗОВАНИИ ЭЛЕКТРОННЫХ ПОДПИСЕЙ
Д. А. Гертнер, Д. О. Леонтьев, Л. С. Носов,
Д. С. Шучалин
В данной работе представлен прототип программно-аппаратного комплекса для безопасного подписания электронных документов на базе специализированного для данных операций доверенного устройства.
Ключевые слова: программно-аппаратный комплекс, электронная подпись, Python.
1. Введение
Электронная подпись (ЭП) используется для подтверждения авторства составителя электронного документа, а также позволяет удостовериться в том, что данный документ не изменялся с момента его подписания [1]. При этом закрытый ключ пользователя является наиболее уязвимым компонентом всей цифровой подписи, так как его компрометация может привести к тому, что злоумышленник сможет выдавать себя за владельца украденного ключа. Поэтому необходимо обеспечить надёжную защиту конфиденциальности секретного ключа пользователя. Зачастую пользователь хранит секретный ключ и подписывает документы на своём персональном компьютере, что содержит в себе такие угрозы, как кража закрытого ключа вредоносным программным обеспечением, угроза осуществления несанкционированного доступа к компьютеру с возможностью последующего хищения ключа или подписания документа, а также угроза осуществления удалённого управления средствами подписания.
© Гертнер Д. А., Леонтьев Д. О., Носов Л. С., Шучалин Д. С., 2021.
Для противодействия этим угрозам необходимо использовать более совершенный механизм хранения приватных ключей, реализованный вне персонального компьютера, и механизм подписания, исключающий возможность его удаленного запуска, В данной работе представлен прототип программно-аппаратного комплекса для безопасного подписания электронных документов на базе специализированного для данных операций доверенного устройства,
2. Требования к разрабатываемому прототипу программно-аппаратного комплекса
Для обеспечения взаимодействия между доверенным устройством и пользовательским компьютером было принято использовать клиент-серверную архитектуру. Данное решение позволяет хранить закрытый ключ и подписывать документы на отдельном устройстве, которое специализировано исключительно на операциях, касающихся ЭП, защиты закрытого ключа, а также безопасного обмена информацией между компьютером пользователя и доверенным устройством.
Данный программно-аппаратный комплекс должен обеспечивать защиту целостности страниц электронного документа методом наложения на них специального защитного рисунка. На стороне клиента должны осуществляться следующие операции:
1, Загрузка документа на доверенное устройство,
2, Получение документа, защищённого рисунком, с возможностью последующего удаления этого рисунка,
3, Сохранение оригинального документа, защищённого ЭП,
4, Возможность проверки ЭП документа.
На стороне сервера должны осуществляться следующие операции:
1, Получение оригинального документа,
2, Перевод документа в изображение с последующей генерацией на нём защитного рисунка,
3, Подтверждение подлинности полученного документа,
4, Подписание ЭП оригинального документа.
Рис. 1. Схема работы комплекса
На рис. 1 изображена схема работы программно-аппаратного комплекса с точки зрения взаимодействия клиентского приложения и доверенного устройства. Суть данного взаимодействия в том, чтобы свести к минимуму вероятность компрометации системы ЭП документов, поместив наиболее важные этапы обработки данных в доверенную среду.
В соответствии с требованиями к разрабатываемому программно-
аппаратному комплексу выбор был сделан в пользу одноплатного компьютера Raspberry Pi 3 model A-j- [2], В качестве комплектации принято решение подключить экран, который может одновременно выводить две строки по 16 символов, а также три кнопки, служащие для подтверждения, отмены и получения статуса операции. Внешний вид устройства представлен па рис. 2.
Рис. 2. Внешний вид устройства
Для реализации проекта был выбран высокоуровневый язык программирования Python. Определяющим фактором стала сто крос-сплатформеппость и удобное управление модулями.
Для написания пользовательского интерфейса было принято решение использовать модуль PyQt5 [3]. On содержит все необходимые элементы GUI, имеет удобные методы взаимодействия между элементами интерфейса и исполняемыми частями кода а также графический интерфейс для построения GUI. Для работы с изображениями была выбрана библиотека Pillow [4], поддерживающая все базовые растровые графические форматы и различные варианты цветовых пространств, в том числе изображения с альфа- канатом. Для реализации клиепт-ссрверпой архитектуры была выбрана система удалённого вызова процедур gRPC [5].
3. Тестирование программно-аппаратного комплекса
3.1. Тестирование клиентского приложения и программной части в режиме эмуляции
I S C:\Windows\system32\crr
[HARDWARE LOGIC]: [HARDWARE]: Аппарг [HARDWARE]: [SCREE
Рис. 3. Запуск клиента и сервера в режиме эмуляции
После запуска клиента и сервера (рис. 3) необходимо ввести адрес эмулятора в локальной сети и нажать «Начать», чтобы соединиться с устройством (рис. 4).
Директорию сохранения документов можно поменять с помощью стандартного файлового диалога, после нажатия соответствующей кнопки. Для выбора документа для загрузки используется диалог, позволяющий выбрать PDF-документ (рис. 5).
Слайдеры управления изображением работают в диапазоне [0, 255] и изменяют прозрачность защитных слоёв без подтормаживаний и ошибок (рис. 6).
После нажатия кнопки 1 происходит подписание документа и на устройстве выводится сообщение: «Successfully signed.» (рис. 7). После подписания текущей страницы подписанный документ и его подпись в формате «.sign» сохраняются в директории сохранения, а в окне клиентского приложения отобразится следующая страница.
Чтобы увидеть код подлинности страницы, нужно нажать клавишу 3. Если сверить код подлинности на доверенном устройстве с кодом
Рис. 4. Вид приложения после подключения к серверу
I Н C:\Windows\system32\cmd.ei
Устройство Адрес устройства:
I-- |-- |-1 images wiuui = оз/
192.168.194.11 : ¡53915 Начать Images height = 992
GetCertificate PutDocument:
Filename = Приказ ФСБ России с Images width = 637
10.07.2014 N 378.pdf
Узнать статус устройства
Статус сервера: Без ошибок.
Загрузить документ Изменить директорию сохранения
□:\С№го]ес4ь\адп_апИ(то<]/5ауес1_с1оситеп15
Проверить подпись документа
Документ "0:/С№го]е<±5/51дп_аг1Ы(г£кУПриказ ФСБ России от 10.07.2014 N 378.pdf" отправлен на устройство
Приложение запущено
Управление изображением Текст
Client UUID = e6cff2ccf9474344aa2d7850ecaela09
ShowCurrentPage
save_debug_images = False
RemoveBackgroundColor = 0:00:00.019001
Load Image = 0:00:00.111928
Deform = 0:00:00.029979
Lines = 0:90:00.064957
Save = 0:08:00.005011
Full encode algorithm = 0:00:00.211875
Рис. 5. Загрузка документа на сервер и отображение первой страницы
подлинности, показанным на странице, можно убедиться, что они совпадают (рис. 7).
Прервать обработку документа можно, нажав клавишу 2. После нажатия этой клавиши доверенное устройство очистит все данные о текущей сессии и выведет на дисплей «Successfully aborted», а на клиентском устройстве отобразится информация о том, что подписание было
ч
ЙОНШЬТ/рТгП^ЮС \ У L
\ 1 /Ni M
Приказ ФСБ России от 10.07.2014 N 378 "Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных
системах персональных данных с использованием средств криптографической
защиты информации, необходимых для выполнения установленных Правительством Российской Федерации требований к защите персональных данных для каждого из уровней защищенности" (Зарегистрировано в Минюсте России 18.08.2014 N 33620)
Документ предоставлен Консут.т«итПлюс www.coniultant.nl
Дата сохранения: 03.06.2020 ' "
Мфп
Устройство Адрес устройства:
| 192.168.194.11 : ¡539151 ["¡Начать | Узнать статус устройства
Статус сервера: Без ошибок.
|_ Загрузить документ _|
Изменить директорию сохранения
D:\GitProjects\sign_antifrod/saved_documents
Проверить подпись документа
Документ "D:/GitProjects/sign_antifrod/npnKa3 ФСБ России от 10.07.2014 N 378.pdf" отправлен на устройство
Приложение запущено
Управление изображением
Рис. 6. Управление изображением с помощью слайдеров
ФЕДЕРАЛЬНАЯ СЛУЖБА
РОССИЙСКОЙ ФЕДЕРАЦИИ
06 УТВЕРЖДЕНИИ СОСТАВА И СОДЕРЖАНИЯ ОРГАНИЗАЦИОННЫХ И ТЕХНИЧЕСКИХ МЕР ПО ОБЕСПЕЧЕНИЮ
БЕЗОПАСНОСТИ ПЕРСОНАЛЬНЫХ ДАННЫХ ПРИ ИХ ОБРАБОТКЕ
8 ИНФОРМАЦИОННЫХ СИСТЕМАХ ПЕРСОНАЛЬНЫХ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ. НЕОБХОДИМЫХ ДЛЯ ВЫПОЖЕНИЯ УСТАНОВЛЕННЫХ ПРАВИТЕЛЬСТВОМ РОССИЙСКОЙ ФЕДЕРАЦИИ ТРЕБОВАНИЙ К ЗАЩИТЕ ПЕРСОНАЛЬНЫХ ДАННЫХ ДЛЯ КАЖДОГО ИЗ УРОВНЕН ЗАЩИЩЕННОСТИ
мВ
ОРГАНИЗАЦИОННЫХ И ТЕХНИЧЕСКИХ МЕР ПО ОБЕСПЕЧЕНИЮ БЕЗОПАСНОСТИ ПЕРСОНАЛЬНЫХ ДАННЫХ ПРИ ИХ ОБРАБОТКЕ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ ПЕРСОНАЛЬНЫХ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ
Устройство Адрес устройства:
192.168.194Л] : [539151 [ Начать Узнать статус устройства_
Статус сервера: Без ошибок.
Загрузить документ Изменить директорию сохранения
D:\Git Projects\sign_antifrod/saved_documents
Проверить подпись документа
Загружено новое изображение: Приказ ФСБ России от 10.07.2014 N 378-l.pdf
Документ подписан: "Р: \GitProjects\sig п_а п№гос!/5ауес]_с1оситеп15/ Приказ ФСБ России от 10.07.2014 N 378-0.pdf
Управление изображением
Деформация
I Э C:\Windows\systemJ2\cmd.exe
Full encode algorithm = 0:00:00.211875
1
[HARDWARE]: Нажата кнопка 1 SignCurrentPage [CRYPTO]: Hash time = 0:00:00 [CRYPTO]: Sign time = 0:00:00.091943 Total signing tinie = 0:00:00.09294-2 [HARDWARE]: [SCREEN] -> [Successfully ] [signed. ]
[HARDWARE]: [/SCREEN]
[HARDWARE]: Ожидание нажатия кнопки___
GetSignedPage
ShowCurrentPage
save_debug_images = False
RemoveBa ckgroun dColor = 0:00:00.018017
Load Image = 0:00:00.116267
Deform = 0:00:00.022014
Lines = 0:00:00.065044
Save = 0:00:00.004997
Full encode algorithm = 0:00:00.209333
3
[HARDWARE]: Нажата кнопка 3 GetVerifyCode [HARDWARE]: [SCREEN] -> [9dl72a3fl78e4384] [9e 90bebf078f3a 83] [HARDWARE]: [/SCREEN] [HARDWARE]: Ожидание
Рис. 7. Подписание документа и проверка подписи
прервано (рис. 8).
Проверка подписи документа идёт на клиенте после нажатия кнопки «Проверить подпись документа» и выбора РЭР-файла для верификации. Пример результата выполненной верификации подписанной страницы отображён на рис. 9.
I S C:\Windows\system32\cmd.e>
российской федерации
организационных и технических мер по обеспечению
--------------------------------m обработке
чых данных скои защиты
Р I тН'р пН-
Устройство Адрес устройства:
192.168.194.11 : ¡539151 |~Начатъ | Узнать статус устройства
Статус сервера: Подписание прервано.
Подпись
Загрузить документ Изменить директорию сохранения
D:\GitProjects\sign_antifrod/saved_documents
Проверить подпись документа
Подписание прервано Загружено новое изображение: Приказ ФСБ России от 10.07.2014 N 378-l.pdf Документ подписан: "D: \GitProjects\sign_antifrod/saved_documents/ Приказ ФСБ России от 10.07.2014 N
Управление изображением Текст
[HARDWARE]: Нажата khoi AbortProcess [HARDWARE]: [SCREEN] -:
cessfully ] [aborted. ]
[HARDWARE]: [/SCREEN] [HARDWARE]: Ожидание
Подписание прервано
Рис. 8. Отмена обработки документа нажатием на кнопку 2
0 Информация о подписи
Документ "и:/С| ^гдеЛ^д'" апИюс1Лауес1 ссиг еп^/ Приказ ФСБ России от 10.07.2014 N 37B-2.pdf принадлежит пользователю Иванов Иван Иванович
Проверить подпись документа
Документ "Г>:/Г^Г'гп]г<+г./г.1(1п апИГгой/ эауе(1_(1ос|Iтгп1т./11риказ ФСБ России от 10.07.2014 N 378-2.pdf' принадлежит пользователю Иванов Иван Иванович
Приложение запущено
Рис. 9. Результат проверки ЭП ранее подписанной страницы
Все элементы программной части, в том числе логика взаимодействия аппаратной части комплекса с программной, функционируют корректно и без ошибок.
3.2. Тестирование программно-аппаратного комплекса в сборе
После успешного развертывания исходного кода, установки всех необходимых pvthon-модулсй и запуска аппаратной части с использованием модуля hardware.py, па экране Raspberry Pi отобразился адрес доверенного устройства (рис. 10а).
Статус устройства можно узнать, нажав на кнопку 3 (рис. 10Ь). С помогцыо клиентского приложения загрузим многостраничный PDF-документ. Спустя какое-то время на экране клиентского приложения
отобразилась первая защищённая страница. Проверим её код подлинности, нажав на кнопку 3 (рис. 10с).
Код подлинности выводится на аппаратное устройство корректно. В кодах подлинности на защищенной картинке и на дисплее устройства расхождений не обнаружено. Подпишем текущую страницу, нажав на кнопку 1. Спустя некоторое время статус устройства обновился (рис. 10d) и на клиентской стороне записались PDF-файл страницы документа и «.sign» файл ЭП.
После подписания первой страницы на экране клиента появилась вторая защищённая страница. Прервём обработку документа нажатием на кнопку 2 (рис. 10е). Обработка документа была прервана, и доверенное устройство ждёт дальнейших указаний.
е
Рис. 10. Работа аппаратной части устройства
Было проведено тестирование времени выполнения вложенных алгоритмов и сравнение показателей работы серверного кода Raspberry Pi с показателями, полученными в результате эмуляции данного устройства. Введем обозначения: TRPi - время выполнения операции на Raspberry Pi; Tem - время выполнения операции на эмуляторе. Результаты тестирования представлены в таблице. Тестирование было проведено на примере десяти PDF-страниц одного документа.
Исходя из проведённого тестирования операции на Raspberry Pi функционируют исправно, но в среднем занимают в 7.044 раз больше времени, чем аналогичные операции, произведённые на полноценном персональном компьютере. При этом наибольшее время занимает работа с PFD-файлами, а именно: разбиение документов на отдельные
Таблица
Среднее время исполнения вложенных серверных алгоритмов
Осуществляемая операция Trpi Т ± em TRPl/Tem
Разбиение документа на страницы (доку- 5.595 с 0.651 с 8.59
менты объёмом до 3 МБ)
Генерация PNG из PDF 2.246 с 0.431 с 5.21
Генерация защитного рисунка (637x992) 1.419 с 0.216 с 6.57
Время между клиентским запросом и по- 4.994 с 0.836 с 5.97
лучением защищённой картинки
Подписание страницы документа ЭП 0.835 с 0.094 с 8.88
(страницы до 400 кб)
страницы, конвертация страниц в растровые изображения.
Для частичной оптимизации данной проблемы можно перевести разделение PDF-доку ментов на сторону клиента, при этом оставив и оптимизировав механизм конвертации страниц в изображения на стороне доверенного устройства. Из таблицы видно, что на эмуляторе эта операция выполнялась в 8.59 раз быстрее, следовательно, и на стороне клиента она будет выполняться почти во столько же раз быстрее. В этой ситуации общее время всех операций уменьшится почти в 1.5 раза.
4. Заключение
В данной работе представлен прототип программно-аппаратного комплекса для обеспечения информационной безопасности при использовании электронных подписей.
Однако, в процессе тестирования было выяснено, что серверный код на Raspberry Pi 3 model А+ работает недостаточно быстро. В связи с этим для комфортного использования данного программно-аппаратного комплекса необходимо задействовать более производительное аппаратное устройство (например, Raspberry Pi 4-го поколения, так как производительность его процессора в три раза быстрее [6]) и более эффективный серверный код, в частности модуль для разделения PDF-доку ментов на отдельные страницы и конвертации этих страниц в растровые изображения, так как эти операции вместе занимают наибольшее время.
Разработанный прототип программно-аппаратного комплекса выполняет безопасное подписание страниц документов с помощью электронной цифровой подписи, обеспечивая при этом защиту данного механизма от компрометации. Использование данного комплекса будет удачным решением для повседневной работы за счёт эргономичного форм-фактора.
Следует отметить, что данный прототип в случае его внедрения в электронный документооборот организаций потребует дальнейших исследований в части поиска более производительного аппаратного устройства и оптимизации кода программного обеспечения. Также потребуется рассмотрение вопроса сертификации разработанного устройства как средства защиты информации.
Список литературы
1. ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи, URL: http://docs.cntd.ru/document/gost-r-34-10-2012 (дата обращения: 09.01.2021).
2. Raspberry Pi 3 Model А+. URL: https: / / www.raspberrvpi.org/products / raspberry-pi-3-model-a-plus / (дата обращения: 09.01.2021).
3. Python bindings for the Qt cross platform application toolkit. URL: https://pypi.org/project/PvQt5/ (дата обращения: 09.01.2021).
4. Документация библиотеки Pillow. URL: https://pillow.readthedocs.io/en/stable/# (дата обращения: 09.01.2021).
5. A high-performance open source universal RPC framework. // URL: https://grpc.io (дата обращения: 09.01.2021).
6. Raspberry Pi 4 vs Pi 3 - В чем различия? URL: https://cnx-software.ru/2019/06/25/raspberry-pi-4-vs-pi-3-v-chem-razlichiva / (дата обращения: 09.01.2021).
Summary
Gertner D. A., Leontiev D. О., Nosov L. S., Shuchalin D. S. Hardware and software complex for ensuring information security when using electronic signatures
This paper presents prototype of a software and hardware complex for secure signing of electronic documents on the basis of a trusted device specialized for these operations.
Keywords: hardware and software system, electronic digital signature, Raspberry Pi, Python.
References
1. GOST R 34.10-2012 Information technology. Cryptographic information protection. Processes for generating and verifying electronic digital signature, Available at: http://docs.cntd.ru/document/gost-r-34-10-2012 (accessed: 09.01.2021).
2. Raspberry Pi 3 Model A+. Available at: https://www.raspberrvpi.org/ produets/raspberry-pi-3-model-a-plus/ (accessed: 09.01.2021).
3. Python bindings for the Qt cross platform application toolkit, Available at: https://pypi.org/project/PvQt5/ (accessed: 09.01.2021).
4. Pillow Library Documentation, Available at: https://pillow,readthe-docs. io/en/stable/# (accessed: 09,01,2021),
5. A high-performance open source universal RPC framework, Available at: https://grpc.io (accessed: 09.01.2021).
6. Raspberry Pi 4 vs Pi 3 - What are the differences? Available at: https: / / cnx-soft ware.ru/2019/06/25/raspberrv-pi-4-vs-pi-3-v-chem-razlichiya/ (accessed: 09.01.2021).
Для цитирования: Гертнер Д. А., Леонтьев Д. О., Носов Л. С., Шучалин Д. С. Программно-аппаратный комплекс для обеспечения информационной безопасности при использовании электронных подписей // Вестник Сыктывкарского университета. Сер. 1: Математика. Механика. Информатика. 2021. Вып. 1 (38). С. 43-55. DOI: 10.34130/1992-2752_ 2021_ 1_43.
For citation: Gertner D, A,, Leontiev D, 0,, Nosov L, S,, Shuehalin D, S, Hardware and software complex for ensuring information security when using electronic signatures, Bulletin of Syktyvkar University. Series 1: Mathematics. Mechanics. Informatics, 2021, 1 (38), pp. 43-55, DOI: 10,34130/1992-2752_2021_1_43,
ООО «Крейф»
СГУ им. Питирима Сорокина Поступила 09.02.2021