ВВЕДЕНИЕ 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
ПРИЛОЖЕНИЕ
В современном мире в условиях внедрения информационных технологий во многие сферы деятельности человека, государства и общества возникает острый вопрос о сохранении целостности информации, фигурирующей в информационных системах. Средством, позволяющим однозначно ответить на вопрос о целостности электронного документа, как раз и является электронная цифровая подпись.
В нашем быстро развивающемся обществе время для бизнеса очень ценно, тогда как использование электронной цифровой подписи вместо обычной собственноручной позволяет существенно, а порой и в разы сократить время, необходимое на одни и те же действия.
Целью данной работы является разработка клиент-серверного приложения для создания и распознавания QR кода с электронной цифровой подписью при использовании современных популярных фреймворков (Maven, Spring) для отображения информации о сотрудниках компании, которая подгружается посредством подключения к базе данных PostgreSQL.
Клиент реализуется как мобильное приложение на платформе Android OS, а сервер в свою очередь организован на локальном персональном компьютере. Сервер отвечает за прием запросов от клиента, в которых клиент спрашивает, достоверна ли подпись, распознанная им через QR код, а также за отправку запросов-ответов клиенту с информацией о сотруднике в случае подлинности цифровой подписи.
Разработанный программный продукт реализует модель пропускной системы компании, при которой с помощью мобильного приложения (в данном случае мобильное приложение имитирует турникет пропускной системы) сканируется QR код, в котором должна храниться подписанная информация о сотруднике. В случае достоверности подписи выводится информация о сотруднике, которая идентифицирует сотрудника для службы безопасности. Естественно, что при устройстве сотрудника на работу информация о нем вносится в базу данных и создается его персональный QR код с уникальным идентификатором, которому как раз и присваивается электронная цифровая подпись.
Выпускная квалификационная работа состоит из введения, первой главы, второй главы, заключения, списка литературы и приложения.
• Во введении содержится общая информация о работе, а также раскрыта актуальность данной решаемой задачи и ее практическая значимость;
• В первой главе отражены теоретические аспекты, связанные с выбором инструментов и средств реализации данного приложения;
• Во второй главе описаны реализации клиентской части приложения, серверной, а также описана и реализована логика клиент - серверной архитектуры приложения;
• В заключении приводятся основные результаты выполненной работы;
• В списке литературы перечислены различные источники и электронные ресурсы, которые были изучены в процессе исследования и реализации данной работы;
• В приложении заключен весь код проекта.
В процессе проектирования выпускной квалификационной работы было создано приложение для создания и распознавания QR кода с электронной цифровой подписью. Проект был реализован на языке программирования Java и использованием популярных фреймворков Maven, Spring, а также базы данных PostgreSQL
Результатом выполнения работы является разработанное клиентсерверное приложение для распознавания QR кодов с ЭЦП, хранящих информацию о сотрудниках компании.
Цели, поставленные на дипломную работу и определенные при постановке задачи, выполнены в полном объеме, а именно:
1. Рассмотрены и изучены синтаксис языка программирования Java SE, его технические возможности
2. Изучены технические и функциональные возможности фреймворков Maven, Spring
3. Изучены возможности свободной объектно-реляционной системы управления базами данных PostgreSQL
4. Исследованы и выбраны подходящие инструменты для создания клиент-серверного взаимодействия между Android приложением (клиентом) и десктопом (сервером)
5. Разработана структура проекта, клиентский интерфейс, серверная часть
6. Реализовано подключение к базе данных
7. Реализована логика взаимодействия клиента и сервера посредством HTTP запросов
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).