Автор работы: Пользователь скрыл имя, 01 Февраля 2014 в 16:00, дипломная работа
С конца 80-ых, начала 90-ых годов проблемы связанные с защитой информации беспокоят как специалистов в области компьютерной безопасности, так и многочисленных пользователей персональных компьютеров. Это связано с глубокими изменениями, вносимыми компьютерной технологией в нашу жизнь. Изменился сам подход к понятию «информация». Этот термин сейчас больше используется для обозначения специального товара, который можно купить, продать, обменять на что-то другое и т.д. При этом стоимость информации часто превосходит стоимость самой вычислительной системы, в рамках которой она хранится, в десятки, а то и в сотни раз.
Защищенная программа может исполняться следующими способами:
- последовательно
Рис.10. Последовательное исполнение защищенной программы
- прямой переход
Рис.11. Прямой переход
- реверс
Рис.12. Реверс
Нужно отметить, что есть некоторые дополнения. После исполнения дешифрованного кода, данный код остается в памяти и программа подвержена взлому. Потенциальный взломщик может купить одну лицензию и после исполнения кода снять дамп памяти. На его основе может быть получена работоспособная программа. Для противодействия данному типу атак необходимо сразу после исполнения кода стереть его из памяти.
Это программно-аппаратные комплексы защиты, просто они более известны как «аппаратные (электронные) ключи защиты».
Этот класс систем защиты ПО в последнее время приобретает все большую популярность среди производителей программного обеспечения.
Идея ключа заключается в том, что ключ присоединяется к определённому интерфейсу компьютера. Далее защищённая программа через специальный драйвер отправляет ему информацию, которая обрабатывается в соответствии с заданным алгоритмом и возвращается обратно. Если ответ ключа правильный, то программа продолжает свою работу. В противном случае она может выполнять любые действия, заданные разработчиками - например, переключаться в демонстрационный режим, блокируя доступ к определённым функциям.
Соответственно аппаратные ключи защиты состоят из собственно ключа, подключаемого в один из стандартных портов ПК (COMM, LPT, PCMCIA, USB и т.д.) или слот расширения материнской платы, и программного обеспечения (драйверов для различных операционных систем и модуля, встраиваемого в защищаемую программу).
Аппаратная часть таких ключей выполнена на микросхемах FLASH-памяти, на PIC-котроллерах или на заказных ASIC-чипах. Эта элементная база отличается очень низким энергопотреблением.
Рассмотрим аппаратные реализации ключей защиты.
Самый простой и самый легко взламываемый - ключ на основе FLASH-памяти. Основная его идея в том, чтобы перед продажей защищаемого программного обеспечения записать в ключ некоторые данные и/или части программного кода, а на этапе проверки легальности использования ПО считать эти данные из ключа. Ломается защита приблизительно следующим образом: определяется алгоритм обмена информацией между компьютером и ключом, считывается информация из FLASH-памяти ключа и пишется соответствующий эмулятор (драйвер, который подменяет собой штатный драйвера электронного ключа и - вместо обмена с реальным устройством - передает прикладной программе заранее подготовленные данные). Помимо этого, такие ключи обладают наименьшей степенью прозрачности для стандартных протоколов обмена (из-за того, что данные, не предназначенные для ключа, теоретически могут быть восприняты им как команда на чтение или запись FLASH-памяти, что приведет либо к порче хранимой информации, либо к нарушению протокола обмена с другим устройством, подключенным к тому же порту компьютера).
Ключи, сделанные на основе PIC или ASIC-чипов, имеют на порядок большую устойчивость к взлому и “прозрачность” для штатных протоколов обмена. Обе эти микросхемы представляют собой контроллеры, содержащие в себе процессор, некоторое количество оперативной памяти, FLASH-память команд и память для хранения микропрограммы. Микропрограмма и внутренняя память обычно защищается от внешнего считывания, так что сделать аппаратную копию ключа довольно проблематично. Такие комплексы содержат в аппаратной части не только ключ дешифрации, но и блоки шифрации/дешифрации данных, таким образом при работе защиты в электронный ключ передаются блоки зашифрованной информации, а принимаются оттуда расшифрованные данные. В системах этого типа достаточно сложно перехватить ключ дешифрации, так как все процедуры выполняются аппаратной частью, но остается возможность принудительного сохранения защищенной программы в открытом виде после отработки системы защиты. Кроме того, к ним применимы методы криптоанализа.
Основное отличие PIC-ключей от ASIC-ключей в том, что PIC-чипы программируются разработчиком ключей (то есть он может относительно легко изменить алгоритмы работы), а ASIC-чипы являются заказными микросхемами (алгоритмы жестко задаются на этапе производства микросхем). Поэтому ASIC-ключи получаются более дешевыми, чем собранные на основе PIC-чипов, но по этой же причине защита на их основе менее надежна (определив алгоритм обработки данных в одном из ASIC-чипов, можно написать эмулятор ключа для всей партии, которая - в силу особенностей производства - обычно бывает достаточно большой).
Программная часть защитного комплекса:
На стороне персонального компьютера навесная защита разделяется на двоичный код, внедряемый в защищаемый файл (файлы) и модуль ядра операционной (драйвер) взаимодействующий с аппаратной частью комплекса.
Двоичный код уровня приложений операционной системы размещает в защищаемом файле (файлах) метки начала и окончания защищаемых блоков и после запуска программного обеспечения с установленной навесной защитой, при обнаружении меток производит обмен с аппаратной частью посредством драйвера.
Драйвер необходим для взаимодействия с устройством, предоставления интерфейса взаимодействия на уровень приложений и реализации защищенного обмена с аппаратурой.
Данный комплекс представляет собой комбинированную систему, предназначенную для защиты, в первую очередь, коммерческого программного обеспечения или конфиденциальной информации пользователя от несанкционированного использования. Основная идея состоит в создании распределенной защиты с совместным использованием методов шифрования исполняемого кода и хранением, дешифрацией и исполнением защищаемых блоков программы во внешнем устройстве.
Программно-аппаратный комплекс защиты программного обеспечения физически и логически разделен на две составляющих, которые могу разрабатываться и использоваться как совместно, так и, с небольшими изменениями, как отдельные продукты: внешнее устройство, осуществляющее выполнение основных алгоритмов защиты информации и программного обеспечения персонального компьютера, реализующего связь с аппаратной частью защиты и шифрование исполняемого кода. Аппаратное устройство подключается и взаимодействует с персональным компьютером посредством интерфейса USB 2.0. Это последовательный, высокоскоростной аппаратный интерфейс, рассчитанный на скорость обмена до 480 Мбит/сек. И присутствующий практически на любом персональном компьютере.
Мы совмещаем аппаратную защиту и методику шифрования исполняемого кода. Как и в случае шифрования исполняемого кода в него вносятся маркеры начала и конца защищаемых блоков. Часть кода, находящегося между маркерами, шифруют ключом. Далее эти зашифрованные участки кода переносятся во внешнее устройство. Там же хранится ключевая информация, необходимая для дешифровки. В исполняемый код вместо защищаемых блоков вносят «мусор» такого же объема.
На этапе выполнения
программы, при достижении
Абстрактно, внешнее устройство может выполнять различные функции, связанные с защитой информации:
Достоинства разрабатываемой защиты
Задачей данной дипломной работы является разработать аппаратную часть комплекса защиты ПО, которая должна удовлетворять условиям таблицы 2.
Таблица 2.
Наименование параметра |
Значение |
1. Себестоимость разработки |
Не более 4 800 руб. ($150) |
2. Форм-фактор |
FLASH — устройство (USB - Flash-drive) |
3. Габариты |
10х50х10 мм |
4. Интерфейс связи с ПК |
USB 2.0 |
5. Задержка, вносимая в работу ПО |
Не более 300 мс |
Также в задачу входит реализация функционала, с помощью которого можно осуществлять обмен с ПК по интерфейсу USB, и дешифровать полученные блоки. В первоначальном варианте необходимо реализовать криптографический алгоритм DES.
Таким образом в данную задачу входят:
1) Аппаратная реализация,
2) Разработка ПО для микроконтрол
3) Разработка конструктива (разработка печатной платы)
Аппаратная реализация состоит из:
1) Разработки архитектуры на основе наложенных ограничений
2) Выбор и обоснование
3) Разработка схемотехники (принципиальной схемы устройства на основе архитектуры)
4) Моделирование схемы
5) Разработка печатной платы
В разработку ПО для микроконтроллера входит:
1) Разработка инициализации контроллера и периферии
2) Разработка взаимодействия с ПК по порту USB
3) Разработка модуля дешифрации получаемых блоков.
В связи с наложенными ограничениями на поставленную задачу выбор был остановлен на использовании микроконтроллера с интерфейсом USB. Существует достаточно большое количество подобных микроконтроллеров. Есть несколько фирм, которые их делают: Microchip, Atmel и Cyrrus Logic.
В таблице приведены некоторые из микроконтроллеров.
Таблица 3.
микроконтроллер |
габарит |
Разрядность АЛУ (bit) |
Ток (mA) |
Диапазон напряжения (V) |
Мощность (mW) |
цена |
ST7SCR1R4 |
TQFP 64 16x16x1.6 mm |
8 |
15 |
4.0 - 5.5 |
40 – 82.5 |
$12.7 |
AT90USB82 |
QFN32 5x5x0.8 - 5x5x1 mm TQFP32 9x9x1.2 mm |
32 |
25 - 30 |
2.7 - 5.5 |
67.5 - 165 |
$1.95, $ 2.04 |
PIC18F2450 |
QFN 28 6x6х0.8 - 6x6х1 mm |
8 |
250 - 300 |
2.0 - 5.5 |
500 - 1650 |
$3.32, $3.35 |
PIC18F4550 |
TQFP44 12x12x1.2mm QFN44 8x8x0.8 - 8x8x1 mm |
8 |
250 - 300 |
2.0- 5.5 |
500 - 1650 |
$4.38-4.64 |
ATmega16U4/ATmega32U4 |
QFN44 7x7x1 mm TQFP44 12x12x1.20mm |
32 |
18 |
2.7 - 5.5 |
48.6 - 99 |
$2.48, $3.57 |
ATmega32U6/AT90USB128 |
TQFP64 16x16x1.20 mm QFN64 9x9x0.8 – 9x9x1.0 mm |
32 |
30 |
2.7 - 5.5 |
81 - 165 |
$3.43, $3.37/ $2.7, $3.5 |
Сравнение микроконтроллеров:
После оценки существующих микроконтроллеров в качестве элементной базы был выбран микроконтроллер PIC18F4550 фирмы Microchip. Данный микроконтроллер обладает следующими характеристиками:
Описание микроконтроллера PIC18F4550
PIC18F4550 - 8-разрядный микроконтроллер со встроенной Flash-памятью и высокоскоростным USB-интерфейсом для экономичных (nanoWatt) и взаимосвязанных применений. Три последовательных порта - FS-USB (12 Мбит/сек), I2C, SPI (до 10 Мбит/сек), и асинхронный последовательный порт EUSART. Микросхема содержит 13-канальный 10-разрядный АЦП, два аналоговых компаратора, два 10-разрядных контроллера ШИМ, три 16-разрядных и один 8-разрядный таймер, сторожевой таймер, детектор напряжения и схему сброса по провалам питания. Модуль USB полностью интегрирован с ядром микроконтроллера, что позволило добиться максимальной пропускной способности при меньшей загрузке процессора. Производительность PIC18F4550 достигает 12 MIPS. В основе микроконтроллера лежит технология Enhanced FLASH (1 000 000 циклов перезаписи, 40 лет гарантированного хранения), что позволяет использовать их в устройствах, эксплуатируемых в жестких условиях и требующих периодического обмена информацией с ПК.