ВВЕДЕНИЕ 3
Глава 1. Общая информация о QR-кодах 6
1.1. Техническая информация 6
1.2. Кодирование 7
Глава 2. Сферы применения и безопасность при использовании QR-кода .... 10
2.1. Сферы применения QR-кода 10
2.2. Безопасность при использовании QR-кода 11
Глава 3. Шифрование и электронная цифровая подпись 13
3.1. Шифрование 13
3.1.1. Методы шифрования 14
3.1.2. RSA 16
3.1.3. AES 18
3.2. Электронная цифровая подпись(ЭЦП) 20
3.2.1. Основные принципы 20
3.2.2. Использование хеш-функций 22
3.3. Хеш-функции 23
3.3.1. SHA-1 24
Глава 4. Программная реализация 25
Глава 5. Проведение эксперимента 29
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 33
ПРИЛОЖЕНИЕ
Большинство из нас уже имело дело со штрих-кодами, которые представляют собой набор полос на белом фоне. Обычно они размещаются в магазинах на продуктах или вещах. Но они позволяют хранить в себе небольшое количество информации. Для того чтобы можно было хранить больше информации, в настоящее время используют QR-коды.
QR-код является разновидностью двумерных штрих-кодов. Первое свое применение они нашли в Японии и использовались в автомобильной промышленности. QR-код способен хранить в себе информацию четырех видов:
- числовой;
- буквенно-цифровой;
- двоичный;
- кандзи.
Благодаря тому, что QR-код можно быстро считать, а также из-за возможности хранить относительно большие объемы данных, они быстро стали популярными не только в автомобильной промышленности, но и во всем мире.
На сегодняшний день QR-коды обретают невиданную популярность. Каждый день мы можем встретить их в магазинах, в различных журналах и листовках, в транспорте, даже многие крупные организации и банки используют QR-коды для предоставления своих услуг. Но, кроме явных положительных сторон, которые предлагают нам QR-коды, появляются и проблемы, влияющие на безопасность.
Создание кода не требует особых усилий и знаний. Из-за того, что технология создания является общедоступной, любой человек может пользоваться уже готовыми генераторами кодов, а программисту не составит труда написать свою программу для работы с QR-кодами. Процедура формирования кода проста. Пользователь подставляет некоторые данные, которые в свою очередь могу включать в себя ссылки на различные ресурсы, далее программа практически сразу выдает ему визуальный аналог в виде изображения. Затем каждый сам решает, как распорядиться полученным QR - кодом. Их можно пересылать, распечатывать, указывать на визитке и т.д.
Кодируя ссылку, мы получаем одну из возможных атак, которая заключается в их подмене. Ссылки могут быть прямыми и непрямыми. С помощью первых пользователь может получить всю необходимую информацию, если просто перейдет по ссылке. В случае со вторыми, пользователю необходимо установить какое-нибудь приложение для того, чтобы получить доступ к контенту. Наиболее опасными являются непрямые ссылки. Так как QR-код может содержать ссылку, отправляющую пользователя на зараженный сайт, на котором находится, например, вирус[1].
Для того чтобы защититься от атак такого типа, в рамках ВКР было создано приложение, которое может полностью зашифровать сообщение или добавить к нему электронную цифровую подпись. В обоих случаях требуется дешифратор, который, используя специальные ключи, расшифровывает сообщение в первом случае, и проверяет значение хеш-суммы во втором случае.
Электронная цифровая подпись представляет собой реквизит, который приписывается к электронному документу или сообщению. Чтобы получить ЭЦП, необходимо преобразовать информацию с помощью методов криптографии со специальным ключом, который дает следующие возможности:
- проверка целостности документа или сообщения;
- проверка авторства;
- подтверждение факта подписания.
Подпись связана не только с создателем, но и с самим документом. Ее невозможно подделать, просто копируя.
Для получения хеша используется специальная функция SHA-1. Для шифрования используются алгоритмы симметричного и асимметричного шифрования AES и RSA соответственно.
С помощью полученной программы можно будет безопасно передавать личную информацию, и сканировать QR - код, не опасаясь того, что сообщение внутри будет содержать вирус.
Проблема безопасного использования станет только более актуальной в ближайшем будущем из-за огромной скорости популяризации.
Цель работы заключается в создании программы, которая поможет защитить QR-код от атак с помощью шифрования всего сообщения или добавления ЭЦП.
Для реализации программы были поставлены следующие задачи:
- реализовать возможность создания и считывания QR-кода;
- реализовать полное шифрование;
- реализовать добавление ЭЦП;
- реализовать алгоритм RSA;
- реализовать дешифратор;
- реализовать проверку ЭЦП.
А также дополнительные задачи:
- реализовать алгоритм AES;
- реализовать гибридное шифрование.
Из-за того, что QR-коды набирают огромную популярность, появляются и те, кто пытается обманывать людей, используя их. Одной из главных угроз является фишинговая атака. Она заключается в том, что пользователи, при сканировании вредоносного QR-кода, могут перейти на сайт, содержащий вирус, или установить зараженное приложение. Злоумышленники, в свою очередь, получают доступ к зараженному устройству и могут украсть деньги или ценную информацию.
Атаки могут производиться следующими способами:
- частичная подмена QR-кода. В данном случае меняется часть рисунка.
- Полная подмена QR-кода. Данный способ является самым распространенным и заключается в полной подмене существующего кода. Полная подмена может быть осуществлена наклеиванием вредоносного QR- кода поверх обычного.
Чтобы избежать угрозу заражения или потери данных, в рамках ВКР было создано приложение, помогающее пользователям избежать подобные ситуации. Внедрение ЭЦП отлично помогает определить поддельный QR- код. А с помощью полного шифрования можно надежно хранить и передавать свои данные.
Разработанная программа найдет свое применение в банках, больницах, аэропортах и т.д. То есть в тех местах, где нужно хранить информацию о посетителях. Просто просканировав QR-код специальным приложением с дешифратором, работники смогут получить всю информацию о клиенте, что гораздо быстрее, чем искать информацию в базе данных. А пользователи в свою очередь смогут оплачивать услуги.