МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКАЯ ГОСУДАРСТВЕННАЯ ЛЕСОТЕХНИЧЕСКАЯ АКАДЕМИЯ»
О.В. Коровина
Информационная безопасность и защита информации
Методические указания для выполнения лабораторных работ для студентов по направлению подготовки 230200.62 Информационные системы
Воронеж 2012
УДК 630
Коровина, О.В. Методические указания для выполнения лабораторных работ по дисциплине «Информационная безопасность и защита информации» для студентов по направлению подготовки 230200.62 Информационные системы [Текс]: методические указания / О.В. Коровина. – Воронеж: ВГЛТА, 2012. – 33 с.
Печатается по решению редакционно-издательского совета ВГЛТА
Рецензент |
|
проректор по научной работе |
|
Воронежского института высоких |
|
технологий, д.т.н., профессор |
Ю.С. Сербулов |
2
Лабораторная работа №1
«Защита программных продуктов от несанкционированного копирования»
Введение
В ПК типа IBM PC программа может получить доступ к оборудованию следующими способами. Она может обратиться к любому из портов ввода/вывода, соответствующему присоединенному оборудованию, или к любому адресу оперативной памяти. Список оборудования на ПК может быть получен программой либо в регистре AX после выполнения прерывания 11, либо непосредственно по адресу 0:0410.
1.Цель работы изучить основные принципы и приемы, используемы при защите программ от несанкционированного копирования. Разработать программы, реализующие чтение CMOS BIOS; программную и аппаратную «привязку» к ПК.
2.Краткие сведения из теории
Особенности аппаратной среды
Ниже приведено описание двух указанных байтов.
Бит |
функциональное назначение |
0 |
нет дисковых устройств |
1 |
имеется сопроцессор |
2-3 |
объем оперативной памяти |
4-5 |
начальный активный режим дисплея |
6-7 |
количество дисководов |
8 |
DMA присутствует |
9-11 |
число портов RS-232 |
12 |
присутствует игровой адаптер |
13 |
последовательный порт |
14-15 |
число подключенных принтеров |
2. Определение типа компьютера. Информация о типе IBM PC содержится во втором с конца байте памяти по адресу F000:FFFE в ROM BIOS.
Тип компьютера |
Код |
PC |
FF |
XT |
FE |
PCjr |
FD |
AT |
FC |
3. Особенности ROM. Для ПК IBM PC начиная с адреса F000:E000 и до адреса F000:FFFF памяти размещен ROM BIOS. По адресу F000:FFF5 обычно указывается дата создания BIOS.
Доступ к содержимому BIOS возможен только как к внешнему устройству, подключенному к портам 70 и 71: сначала в порт 70 следует поместить номер нужного байта (нумерация начинается с нуля), а затем прочитать значение этого байта из порта 71. BIOS отличается сравнительно большим временем доступа, поэтому между двумя последовательными обращениями к портам полезно сделать небольшую паузу.
3
Ниже приведена структура CMOS BIOS:
Адрес |
Имя |
Тип |
Назначение |
0 |
Sec |
Byte |
Секунды системного времени |
1 |
Asec |
Byte |
Секунды будильника |
2 |
Min |
Byte |
Минуты системного времени |
3 |
Amin |
Byte |
Минуты будильника |
4 |
Hour |
Byte |
Часы системного времени |
5 |
Ahour |
Byte |
Часы будильника |
6 |
DOW |
Byte |
День недели текущей даты |
7 |
Day |
Byte |
День текущей даты |
8 |
Month |
Byte |
Месяц |
9 |
Year |
Byte |
Год (две цифры) |
A |
StatA |
Byte |
Состояние порта A |
B |
StatB |
Byte |
Состояние порта B |
C |
StatC |
Byte |
Состояние порта C |
D |
StatD |
Byte |
Состояние порта D |
E |
POST |
Byte |
статус завершения программы POST |
F |
Shut |
Byte |
Байт состояния программы перезагрузки DOS |
10* |
Diskette |
Byte |
Тип накопителя гибких дисков |
11* |
Res1 |
Byte |
Не используется |
12* |
HD |
Byte |
Тип накопителя на жестком диске |
13* |
Res2 |
Byte |
Не используется |
14* |
Equipm |
Byte |
Байт оборудования |
15* |
BaseMem |
Word |
Объем основной памяти (в Кб) |
17* |
ExpnMem |
Word |
Объем расширенной памяти |
19* |
HD1 |
Byte |
Тип жесткого диска 1 |
1A* |
HD2 |
Byte |
Тип жесткого диска 2 |
1B-20* |
Res3 |
Byte |
Не используется |
21-2D |
Res4 |
Byte |
Не используется |
2E |
CheckS |
Word |
Контрольная сумма (младший байт содержит |
|
|
|
старшие разряды, а старший - младшие) |
30 |
ExtendM |
Word |
Объем дополнительной памяти |
32 |
Century |
Byte |
Текущее столетие |
33 |
Miscell |
Byte |
Разная информация |
34-3F |
Res5 |
Byte |
Не используется |
Адреса, отмеченные знаком «*» защищены контрольной суммой. Поля ASec, AMin и AHour определяют момент времени инициации аппаратного прерывания IRQ8, с помощью которого можно автоматически запустить какую-либо программу реального времени.
4. Наличие на диске или в ПК специально созданных дефектов. Скрытые части программы - участки дискового носителя, тем или иным способом связанные с программой, но не зафиксированные в качестве файлов DOS. В подавляющем большинстве случаев программе нет необходимости искусственно создавать такие участки, поскольку они уже имеются в «хвосте» любого файла. Объясняется это тем, что DOS распределяет дисковое пространство кластерами, имеющими длину от 512 до 4096 и более (для FAT16 на дисках более 540 Мб). Даже если полезная длина файла составляет всего несколько байт, DOS выделяет ему целый кластер, большая часть которого будет заполнена случайной информацией, сохранившейся от предыдущего использования
4
кластера другим файлом. При копировании средствами DOS копируется только полезная часть кластера, так что на новом носителе в общем случае остаток кластера будет заполнен совершенно другой информацией.
Более изощренный, но ничуть не более эффективный способ состоит в создании и использовании дополнительных кластеров, которые помечаются в FAT как сбойные или «потерянные». Но в двух описанных случаях защита может быть легко нейтрализована, если используется копирование диска «блок в блок».
Существенно лучшей способностью противостоять попыткам нелегального копирования обладает система защиты, основанная на анализе неустранимых дефектах носителя. В этом случае система проверки имеет список дефектных секторов оригинала и пытается их отформатировать. Если после форматирования обмен с секторами проходит успешно, имеет место нелегальное копирование. Главное достоинство этого способа заключается в принципиальной невозможности создать программными средствами на нормальном носителе неустранимые дефекты.
Особенности программной среды.
1.Место физического размещения защищаемого файла. Анализируется номер начального кластера файла программы.
2.Порядок физического размещения файлов защищаемого пакета на магнитном диске. Аналогично предыдущему пункту, но разница заключается в том, что анализируется не один файл а несколько, в том числе файлы данных. При этом учитывается не только место физического размещения, но и положение файлов относительно друг друга.
3.Наличие на ПК «привычных» для пакета драйверов, таблиц, файлов. Простой для реализации, но столь же простой для снятия защиты способ.
4.Специально модифицированные программы операционной системы. Модифицированный байт делает программную среду уникальной. Защищенная таким образом программа обязана проверять наличие «своего» байта в файлах DOS либо в оперативной памяти, если уже загружена операционная система.
5.Проверка наличия уникальной даты, например даты инициализации диска.
6.Размещение в теле программ в зашифрованном виде данных, которые бы однозначно идентифицировали автора программы и пользователя, которому она официально продана. В качестве таких данных часто используется строка «(с) ФИО Дата»
исистемный номер программы. Такие данные позволят впоследствии применять юридические средства защиты.
Стандартные программы, как правило, выполняют «правильное» копирование магнитных носителей, имеющих строго определенные форматы записи. Используя нестандартные, но допустимые способы организации магнитных носителей, можно исключить копирование носителей стандартными средствами. Для копирования необходима отдельная программа. Недостаток данного метода состоит в ограниченности возможностей нестандартного представления информации на магнитных носителях и, как следствие, слабой защищенности от исследований.
Для магнитных дисков наиболее часто используют: изменение нумерации секторов, изменение длины и числа секторов на дорожку, изменение числа дорожек.
Все пространство дискеты разделено на две стороны. Каждая сторона в свою очередь имеет N дорожек (обычно 80). Каждая дорожка разбивается на сектора. Форматирование дискеты осуществляется по одной дорожке, поскольку промежутки между секторами и адресными маркерами взаимосвязаны. Для форматирования дорожки задаются следующие параметры:
* номер дорожки
*сторона
*номер сектора
5