В современном мире в условиях внедрения информационных технологий во многие сферы деятельности человека, государства и общества возникает острый вопрос о сохранении целостности информации, фигурирующей в информационных системах. Средством, позволяющим однозначно ответить на вопрос о целостности электронного документа, как раз и является электронная цифровая подпись.
В нашем быстро развивающемся обществе время для бизнеса очень ценно, тогда как использование электронной цифровой подписи вместо обычной собственноручной позволяет существенно, а порой и в разы сократить время, необходимое на одни и те же действия.
Целью данной работы является разработка клиент-серверного приложения для создания и распознавания QR кода с электронной цифровой подписью при использовании современных популярных фреймворков (Maven, Spring) для отображения информации о сотрудниках компании, которая подгружается посредством подключения к базе данных PostgreSQL.
Клиент реализуется как мобильное приложение на платформе Android OS, а сервер в свою очередь организован на локальном персональном компьютере. Сервер отвечает за прием запросов от клиента, в которых клиент спрашивает, достоверна ли подпись, распознанная им через QR код, а также за отправку запросов-ответов клиенту с информацией о сотруднике в случае подлинности цифровой подписи.
Разработанный программный продукт реализует модель пропускной системы компании, при которой с помощью мобильного приложения (в данном случае мобильное приложение имитирует турникет пропускной системы) сканируется QR код, в котором должна храниться подписанная информация о сотруднике. В случае достоверности подписи выводится
информация о сотруднике, которая идентифицирует сотрудника для службы безопасности. Естественно, что при устройстве сотрудника на работу информация о нем вносится в базу данных и создается его персональный QR код с уникальным идентификатором, которому как раз и присваивается электронная цифровая подпись.
Выпускная квалификационная работа состоит из введения, первой главы, второй главы, заключения, списка литературы и приложения.
· Во введении содержится общая информация о работе, а также раскрыта актуальность данной решаемой задачи и ее практическая значимость;
· В первой главе отражены теоретические аспекты, связанные с выбором инструментов и средств реализации данного приложения;
· Во второй главе описаны реализации клиентской части приложения, серверной, а также описана и реализована логика клиент – серверной архитектуры приложения;
· В заключении приводятся основные результаты выполненной работы;
· В списке литературы перечислены различные источники и электронные ресурсы, которые были изучены в процессе исследования и реализации данной работы;
· В приложении заключен весь код проекта.
ВВЕДЕНИЕ.................................................................................................... 3
1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ.............................................................. 5
1.1. Выбор языка программирования и среды разработки....................... 5
1.2. Особенности операционной системы Android...................................... 8
1.3. Общая схема работы Android приложения.......................................... 9
1.4. Хранение данных................................................................................. 10
1.5. Применение QR кода........................................................................... 11
1.6. Электронная цифровая подпись. Схема ЭЦП на основе алгоритма RSA и функции хеширования SHA256................................................................. 12
1.7. Постановка задачи............................................................................... 16
2. РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ........................................................... 18
2.1. Серверная часть приложения.............................................................. 18
2.2. Клиентская часть приложения............................................................. 24
2.3. Клиент – серверное взаимодействие приложения.............................. 28
ЗАКЛЮЧЕНИЕ........................................................................................... 31
СПИСОК ЛИТЕРАТУРЫ.......................................................................... 32
ПРИЛОЖЕНИЕ........................................................................................... 34
Печатные издания:
1. Лясин, Д.Н. Методы и средства защиты компьютерной информации [Текст]: учебное пособие/ Д. Н. Лясин, С. Г. Саньков. - Волгоград: ВолгГТУ, 2005. – 127 с.
2. Ишмухаметов Ш. Т. Математические основы защиты информации [Текст]: учебное пособие/ Ш. Т. Ишмухатеров, Р. Х. Латыпов, Р. Г. Рубцова. – Казань: Казан. ун. 2014. – 95 с.
3. Mathew N. «Beginning Databases with PostgreSQL: From Novice to Professional. 2nd edition» [Текст]/ N. Mathew, R. Stones. – New York: Springer-Verlag, 2005. – 664 с.
4. Шилдт Г. Java 8. Полное руководство. [Текст]/ Г. Шилдт; Пер. с англ. и ред. И. В. Берштейна. – 9е изд. – М. : ООО "И.Д. Вильямс", 2015. - 1376 с.
5. Хорстманн К. С. Java. Библиотека профессионала, том 1. Основы. [Текст]/ Кей С. Хорстманн, Гари Корнелл; Пер. с англ. и ред. И. В. Берштейна. – 9е изд.–– М. : ООО «И. Д. Вильямс», 2014. – 864 с.
Интернет – ресурсы:
1. Как начать разрабатывать под Android [Электронный ресурс]. – Режим доступа: https://tproger.ru/translations/how-to-start-android. – Как начать разрабатывать под Android. – (Дата обращения: 22.05.2019)
2. Using Spring ResponseEntity to Manipulate the HTTP Response [Электронный ресурс]. – Режим доступа:
https://www.baeldung.com/spring-response-entity. – Using Spring ResponseEntity to Manipulate the HTTP Response | Baeldung. – (Дата обращения 17.05.2019).
3. Android – разработка для начинающих: план изучения | AppTractor [Электронный ресурс]. – Режим доступа: https://apptractor.ru/learn/plan- izucheniya-android-razrabotki-dlya-nachinayushhih.html. – Android – разработка для начинающих: план изучения. – (Дата обращения 21.05.2019).
4. Общие сведения о платформе Android | Android Developers [Электронный ресурс]. – Режим доступа: https://developer.android.com/guide/index.html. – Общие сведения о платформе Android – (Дата обращения 21.05.2019).