close

Вход

Забыли?

вход по аккаунту

?

Коровина О. В. Информационная безопасность и защита информации

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКАЯ ГОСУДАРСТВЕННАЯ ЛЕСОТЕХНИЧЕСКАЯ АКАДЕМИЯ»
О.В. Коровина
Информационная безопасность и защита информации
Методические указания
для выполнения лабораторных работ для студентов по направлению
подготовки 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
9-11
12
13
14-15
функциональное назначение
нет дисковых устройств
имеется сопроцессор
объем оперативной памяти
начальный активный режим дисплея
количество дисководов
DMA присутствует
число портов RS-232
присутствует игровой адаптер
последовательный порт
число подключенных принтеров
2. Определение типа компьютера. Информация о типе IBM PC содержится во
втором с конца байте памяти по адресу F000:FFFE в ROM BIOS.
Тип компьютера
PC
XT
PCjr
AT
Код
FF
FE
FD
FC
3. Особенности ROM. Для ПК IBM PC начиная с адреса F000:E000 и до адреса
F000:FFFF памяти размещен ROM BIOS. По адресу F000:FFF5 обычно указывается дата
создания BIOS.
Доступ к содержимому BIOS возможен только как к внешнему устройству,
подключенному к портам 70 и 71: сначала в порт 70 следует поместить номер нужного
байта (нумерация начинается с нуля), а затем прочитать значение этого байта из порта 71.
BIOS отличается сравнительно большим временем доступа, поэтому между двумя
последовательными обращениями к портам полезно сделать небольшую паузу.
3
Ниже приведена структура CMOS BIOS:
Адрес
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10*
11*
12*
13*
14*
15*
17*
19*
1A*
1B-20*
21-2D
2E
Имя
Sec
Asec
Min
Amin
Hour
Ahour
DOW
Day
Month
Year
StatA
StatB
StatC
StatD
POST
Shut
Diskette
Res1
HD
Res2
Equipm
BaseMem
ExpnMem
HD1
HD2
Res3
Res4
CheckS
Тип
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Word
Word
Byte
Byte
Byte
Byte
Word
30
32
33
34-3F
ExtendM
Century
Miscell
Res5
Word
Byte
Byte
Byte
Назначение
Секунды системного времени
Секунды будильника
Минуты системного времени
Минуты будильника
Часы системного времени
Часы будильника
День недели текущей даты
День текущей даты
Месяц
Год (две цифры)
Состояние порта A
Состояние порта B
Состояние порта C
Состояние порта D
статус завершения программы POST
Байт состояния программы перезагрузки DOS
Тип накопителя гибких дисков
Не используется
Тип накопителя на жестком диске
Не используется
Байт оборудования
Объем основной памяти (в Кб)
Объем расширенной памяти
Тип жесткого диска 1
Тип жесткого диска 2
Не используется
Не используется
Контрольная сумма (младший байт содержит
старшие разряды, а старший - младшие)
Объем дополнительной памяти
Текущее столетие
Разная информация
Не используется
Адреса, отмеченные знаком «*» защищены контрольной суммой. Поля 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
*
код длины сектора (0 - 128 байт, 1 - 256 байт, 2 - 512 байт, 3 - 1024 байт)
Если при форматировании указать несуществующий номер сектора, т.е. номер
больший максимально допустимого, можно получить уникальный сектор, который
невозможно прочитать и записать. При обращении к такому сектору с функцией чтения
или записи будет выдан аварийный код завершения. Коды завершения, получаемые
программой при работе с подобными секторами, могут быть использованы в качестве
ключа при защите, позволяя настроить программу на конкретный магнитный диск.
Второй изменяемый параметр при форматировании дорожки - код длины. В
процессе форматирования размер каждого сектора определяется индивидуально.
Благодаря этому, существует возможность создать на диске ряд уникальных секторов с
разным кодом длины. Для того, чтобы записать данные в выделенные таким образом
сектора, необходимо при операции записи/чтения соответственно изменять указатель
размера сектора в таблице Базы Диска. База Диска - это таблица, состоящая из 11 байт,
которая содержит ряд параметров, необходимых для работы дисководов, включая и
определенную информацию о формате дисков. Адрес таблицы Базы Диска находится в
векторном пространстве по адресу 120. Смещение байта, ответственного за длину сектора,
относительно начала таблицы равно 3. Обычными средствами DOS подобные сектора не
читаются, что позволяет спрятать в них необходимые данные.
3. Задание к работе
1.
Опишите основные принципы защиты программных продуктов от
несанкционированного копирования. Составьте в виде таблицы классификацию таких
методик.
2.
На одном из языков высокого уровня напишите программу, которая может
свободно копироваться на магнитные носители, но при попытке запуска проверяет: на
исходном ли носителе она находится и в случае несанкционированной копии выводит
соответствующее сообщение.
4. Порядок выполнения работы
Ниже приведен пример программы на языке Си, которая форматирует 38 дорожку
таким образом, чтобы второй сектор дорожки имел длину, отличную от стандартного
размера, а третий сектор был отформатирован с несуществующим номером. Затем
программа осуществляет запись в указанные сектора и распечатку кода завершения
операции.
# include <dos.h>
#include <stdio.h>
#include <conio.h>
main(){
union
REGS
rl;
struct
SREGS
rg;
unsigned int
j;
int
n;
char
a[1024];
// буфер для чтения
char
a1[1024] = «проверка записи и чтения на дорожке»;
int
nsek;
int
smes;
char
far
*ukazad;
/* таблица дорожка - головка - сектор - размер для каждого сектра на дорожке */
char
tab[9][4]={38 , 1 , 1 , 2 , 38 , 1 , 2 , 1 , 38 , 1 , 13 , 2 , 38 , 1 , 4 , 2 , 38 , 1 ,
5 , 2 , 38 , 1 , 6 , 2 , 38 , 1 , 7 , 2 , 38 , 1 , 8 , 2 , 38 , 1 , 9 , 3};
6
system(«dir a:»);
smes = peek(0,120);
// таблица Базы Диска
ukazad = MK_FP(0,smes);
rl.h.dl = 0;
rl.h.ah = 0;
int86x(0x13,&rl,&rl);
clrscr();
rl.h.dl = 0;
// устройство а:
rl.h.dh = 1;
// номер головки
rl.h.ch = 38;
// номер дорожки
rl.h.ah = 5;
// функция форматирования
rl.h.al = 1;
/* адрес таблицы секторов дорожки */
rl.x.bx = FP_OFF(&tab[0]);
rg.es = FP_SEG(&tab[0]); /* номер дефектного сектора */
nsek = rl.h.dh*360+rl.h.ch*9-10+2;
/* вызов прерывания 13h*/
int86x(0x13,&rl,&rl,&rg); /* печать кода завершения */
gotoxy(10,9);
printf(«завершение =%d номер дефектного сектора=%d»,rl.h.ah,nsek);
// запись в отформатированные сектора
for(j=1;j<5;j++){
// писать сектор
rl.h.dl = 0;
rl.h.dh = 1;
rl.h.ch = 38;
rl.h.cl = j;
rl.h.ah = 3;
rl.h.al = 1;
rl.x.bx = FP_OFF(&a[0]); rg.es=FP_SEG(&a[0]);
if (j= =2){
*(ukazad+3) = 1;
gotoxy(1,25); printf(«попытка записи»);
}
int86x(0x13,&rl,&rl,&rg);
gotoxy(30,25);
printf(«j=%d код ошибки=%d»,j,rl.h.ah);
*(ukazad+3) = 2;
getch();
}
// попытка чтения отформатированных секторов
/* номер дефектного сектора для absread() вычисляется следующим образом:
nsek = rl.h.dh*360+rl.h.ch+9+ndefsek-10;
где ndefsek - порядковый номер дефектного сектора в таблице tab
В данном случае ndefsek = 2, результат nsek=694 */
for(j=1;j<5;j++){
// читать сектор
rl.h.dl = 0;
rl.h.dh = 1;
rl.h.ch = 38;
rl.h.cl = j;
rl.h.ah = 2;
rl.h.al = 1;
rl.x.bx = FP_OFF(&a[0]); rg.es=FP_SEG(&a[0]);
7
if (j= =2)
{
*(ukazad+3) = 1;
gotoxy(1,25); printf(«попытка чтения»);
}
memset(a,0,100);
int86x(0x13,&rl,&rl,&rg);
window(1,20,80,24); clrscr(); a[36]=0;
printf(«запись=%s»,a);
window(1,1,80,25); gotoxy(30,25);
printf(«j=%d код ошибки=%d»,j,rl.h.ah);
*(ukazad+3) = 2;
getch();
}
printf(«\n программа отработала»);
exit(0);
}
Содержание отчета
1.
Название работы.
2.
Цель работы.
3.
Блок-схему алгоритма.
4.
Тексты программ.
5. Вопросы для самопроверки
1.
Перечислите основные принципы и приемы, используемы при защите
программ от несанкционированного копирования?
2.
Какие программные и технические средства используются для защиты от
несанкционированного копирования?
3.
Поясните
особенности
программной
среды
при
защите
от
несанкционированного копирования.
8
Лабораторная работа №2
«Резервное копирование и восстановление данных»
Введение
В прошлом при возникновении непредвиденных обстоятельств прибегали к
восстановлению данных с обычных резервных магнитных лент. Сегодня, однако, простой
сервера локальной сети нарушает обычные деловые процессы: компания может вообще
оказаться не в состоянии выполнять свои задачи, если ее сервер NetWare или Windows NT
будет недоступен из-за ремонта или восстановления.
Два важнейших фактора, определяющих успех восстановления, - это скорость
восстановления и новизна восстанавливаемых данных и процессов. Принятые правила и
процедуры, а также контракты по обслуживанию с поставщиками оборудования, хранение
информации в каком-то другом месте напрямую влияют на процесс восстановления.
1. Цель работы - изучить современные принципы резервного копирования,
технологии восстановления информации после аварии оборудования, реализовать одну из
программ, обеспечивающих резервное копирование и восстановление данных.
2. Краткие сведения из теории
Ни один носитель информации не является абсолютно надежным, из строя может
выйти любое устройство хранения данных, и данные могут быть потеряны. Кроме
аппаратных сбоев возможна также потеря данных по причине действия вредоносных
программ (вирусы и т.п.). А самая распространенная причина порчи или удаления данных
— ошибки пользователей (как обычных, так и администраторов), которые могут по
ошибке удалить или перезаписать не тот файл.
По этой причине возникает необходимость регулярного создания резервных копий
информации — файлов с документами, баз данных и состояния операционной системы.
Системы семейства Windows Server имеют встроенный инструмент создания
резервных копий — утилиту ntbackup. Данная утилита позволяет сохранять резервные
копии на самых различных носителях — ленточных накопителях, магнитооптических
дисках, жестких дисках (как на локальных дисках данного сервера, так и на сетевых
ресурсах, размещенных на других компьютерах сети). В версии системы Windows 2003
реализован механизм т.н. теневых копий Shadow Copy, который заключается в том, что в
начале процедуры архивации система делает моментальный «снимок» архивируемых
файлов и уже после этого создает резервную копию из этого снимка. Данная технология
позволяет архивировать файлы, которые в момент запуска утилиты ntbackup были
открыты пользователями.
Сетевой администратор должен совместно с пользователями определить те данные,
которые нужно регулярно архивировать, спланировать ресурсы, необходимые для
создания резервных копий, составить расписание резервного копирования, настроить
программу резервного копирования и планировщик заданий для автоматического
создания резервных копий. Кроме этого, в задачу сетевого администратора входит также
регулярное тестирование резервных копий и пробное восстановление данных из
резервных копий (чтобы вовремя обнаружить возникающие проблемы в создании
резервных копий).
Все операции по созданию резервных копий и восстановлению данных в ОС
семейства Windows осуществляются утилитой ntbackup.
Рассмотрим основы резервного копирования файловых ресурсов. Каждый файл,
хранящийся на диске компьютера, независимо от типа файловой системы, имеет атрибут
9
archive, который в Свойствах файла отображается как «Файл готов для архивирования»
(откройте Свойства файла и нажмите кнопку «Другие»). Если в Свойствах файла вручную
убрать галочку у этого атрибута, то при любом изменении в файле операционная система
автоматически снова установит этот атрибут. На использовании изменений данного
атрибута основаны все используемые в системе Windows методики резервного
копирования.
Типы резервного копирования
Утилитой ntbackup можно создавать резервные копии различных типов.
Рассмотрим их отличительные особенности и различные варианты их применения.
Обычный (Normal)
При выполнении данного типа архивирования утилита ntbackup архивирует все
файлы, отмеченные для архивации, при этом у всех заархивированных файлов очищается
атрибут «Файл готов для архивирования». Данный вид архивирования необходим для
создания еженедельных полных резервных копий каких-либо больших файловых
ресурсов. Если в компании или организации имеются достаточные ресурсы, то можно
ежедневно осуществлять полное архивирование данных.
Разностный (Differential)
При выполнении Разностного архивирования утилита ntbackup из файлов,
отмеченных для архивирования, архивирует только те, у которых установлен атрибут
«Файл готов для архивирования», при этом данный атрибут не очищается. Использование
Обычного и Разностного архивирования позволяет сэкономить пространство на носителях
с резервными копиями и ускорить процесс создания ежедневных копий. Например, если
раз в неделю (как правило, в выходные дни) создавать Обычные копии, а в течение недели
ежедневно (как правило, в ночное время) — Разностные, то получается выигрыш в объеме
носителей для резервного копирования. При такой комбинации архивирования «Обычный
+ Разностный» процесс восстановления данных в случае утери информации потребует
выполнения двух операций восстановления — сначала из последней Полной копии, а
затем из последней Разностной резервной копии.
Добавочный (Incremental)
При выполнении Добавочного архивирования утилита ntbackup из файлов,
отмеченных для архивирования, архивирует только те, у которых установлен атрибут
«Файл готов для архивирования», при этом данный атрибут очищается. Использование
Обычного (раз в неделю по выходным) и Добавочного (ежедневно в рабочие дни)
архивирования также позволяет сэкономить пространство на носителях с резервными
копиями и ускорить процесс создания ежедневных копий. Но процесс восстановления
данных при использовании комбинации «Обычный + Добавочный» уже будет
выполняться иначе: в случае утери информации для восстановления данных потребуется
сначала восстановить данные из последней Полной копии, а затем последовательно из
всех Добавочных копий, созданных после Полной копии.
Копирующий (Copy)
При таком типе архивирования утилита ntbackup заархивирует все отмеченные
файлы, при этом атрибут «Файл готов для архивирования» остается без изменений.
Ежедневный (Daily)
Ежедневный тип архивирования создает резервные копии только тех файлов,
которые были модифицированы в день создания резервной копии.
Два последних типа не используются для создания регулярных резервных копий.
Их удобно применять в тех случаях, когда с какой-либо целью нужно сделать копию
файловых ресурсов, но при этом нельзя нарушать настроенные регулярные процедуры
архивирования.
Разработка и реализация стратегии резервного копирования. Понятие плана
архивации
10
Создание и реализация плана архивации и восстановления информации —
непростая задача. Сетевому администратору надо определить, какие данные требуют
архивации, как часто проводить архивацию и т. д.
При создании плана ответьте на следующие вопросы:
Насколько важны данные? Этот критерий поможет решить, как, когда и какую
информацию архивировать. Для критичной информации, например, баз данных, следует
создавать избыточные архивные наборы, охватывающие несколько периодов архивации.
Для менее важной информации, например, для текущих пользовательских файлов,
сложный план архивации не нужен, достаточно регулярно сохранять их и уметь легко
восстанавливать.
К какому типу относится архивируемая информация? Тип информации поможет
определить необходимость архивации данных: как и когда данные должны быть
сохранены. Как часто изменяются данные? Частота изменения влияет на выбор частоты
архивирования. Например, ежедневно меняющиеся данные необходимо сохранять каждый
день. Нужно ли дополнить архивацию созданием теневых копий? При этом следует
помнить, что теневая копия — это дополнение к архивации, но ни в коем случае не ее
замена. Как быстро нужно восстанавливать данные? Время — важный фактор при
создании плана архивации. В критичных к скорости системах нужно проводить
восстановление очень быстро. Какое оборудование оптимально для архивации и есть ли
оно у вас? Для своевременной архивации вам понадобится несколько архивирующих
устройств и несколько наборов носителей. Аппаратные средства архивации включают
ленточные накопители (это наименее дорогой, но и самый медленный тип носителя),
оптические диски и съемные дисковые накопители.
Кто отвечает за выполнение плана архивации и восстановления данных? В идеале и
за разработку плана, и собственно за архивацию и восстановление должен отвечать один
человек.
Какое время оптимально для архивации? Архивация в период наименьшей загрузки
системы пройдет быстрее, но не всегда возможно провести ее в удобные часы. Поэтому с
особой тщательностью архивируйте ключевые данные.
Нужно ли сохранять архивы вне офиса? Хранение архивов вне офиса — важный
фактор на случай стихийного бедствия. Вместе с архивами сохраните и копии ПО для
установки или переустановки ОС.
Для построения правильной и эффективной системы резервного копирования
необходимо детально изучить и задокументировать все файловые ресурсы, используемые
в компании, а затем тщательно спланировать стратегию резервного копирования и
реализовать ее в системе. Для планирования стратегии необходимо ответить на
следующие вопросы:

какие именно ресурсы будут архивироваться;

минимальный промежуток времени для восстановления данного ресурса при
возникновении аварии;

какой объем данных будет архивироваться;

какова емкость носителей для хранения резервных копий и скорость записи
на эти носители;

сколько времени будет занимать архивирование каждого ресурса;

как часто будет производиться архивация каждого ресурса;

если резервные копии записываются на ленты, то как часто будет
производиться перезапись лент;

по какому графику будет производиться тестовое восстановление данных.
При ответе на эти вопросы будет спланирована потребность в количестве и
емкости накопителей и устройств для выполнения резервных копий, требования к
11
пропускной способности сети для создания резервных копий, график выполнения
резервного копирования, план восстановления на случай аварии.
Средства архивации.
Для резервного копирования файлов можно, разумеется, использовать прямое
копирование файлов на запасной носитель, однако при этом архивные копии занимают
столько же места, сколько занимают исходные файлы, и для копирования нужных файлов
может потребоваться большое дисковое пространство. Более удобно использовать для
создания архивных копий специальные алгоритмы архивации (или уже готовые
программы). Это позволяет не только сэкономить место на архивных дисках, но и
объединять группы совместно используемых файлов в один архив, что заметно облегчает
ведение архивов.
Далее рассмотрим структуру архива и работу с одной из программ архивации ARJ.
Архивный файл представляет собой набор из одного или чаще нескольких файлов,
помещенных в сжатом виде в один файл, из которого их можно извлечь в первоначальном
виде. Архивный файл содержит оглавление, позволяющее узнать, какие файлы
содержатся в архиве. Информация имеет следующий вид:

имя файла

сведения о каталоге (каталогах), в котором содержался файл

дата и время последней модификации архива

размер файла на диске и в архиве

контрольная сумма (код циклического контроля) для каждого файла архива
При помещении файлов в архив используется следующий формат вызова:
ARJ команда режимы имя-архива [каталог\] [имена файлов],
где:
команда:
a - добавить файлы в архив
f - обновить файл в архиве
m - переместить файл в архив
e - извлечь файлы из архива
t - тестировать файлы в архиве
x - извлечь файлы с сохранением структуры каталогов
режим:
-e - извлечь все файлы в один каталог
-g - зашифровать файлы
-m - метод архивации 0-4
-v - создать многотомный архив
Пример: arj a archive.arj file1.txt file2.txt file3.txt *.doc
заархивировать файлы file1.txt file2.txt file3.txt и все файлы с расширением .doc из
текущего каталога в архив с именем archive.arj.
3. Задание к работе
1.Опишите существующие технологии резервного копирования данных, их
особенности.
2. Осуществите архивацию любого файла различными архиваторами: PkZip, Arj,
Rar с различными степенями сжатия, после чего оцените скорость сжатия и размер
получившегося файла. Результаты оформите в виде таблицы.
4. Порядок выполнения работы
3. Разработайте одну из следующих программ:
1) программу, сохраняющую нужные пользователю файлы на дискете,
предварительно заархивировав их любой программой сжатия (например, ARJ, PKZIP или
12
RAR). Программа должна позволять пользователю выбирать нужный диск, метод сжатия.
Имя архива должно состоять из текущей даты и номера копии для данной даты (например,
270112_3.arj - третья копия за 27 января 2012 года).
2) программу, позволяющую пользователю одновременно сохранять данные в
нескольких файлах (например, трех). Затем при повторном запуске программа
анализирует изменения основного файла (самый простой случай - дату создания и
модификации и т.д. вплоть до расчета контрольной суммы) и если они существуют
сообщает об этом пользователю и открывает один из файлов копии. Если файлы копии
также «повреждены», то программа аварийно завершает работу.
Большой файл разбить на части. Программа должна запрашивать у пользователя
следующий диск, сообщать о процессе копирования и о количестве требуемых дисков.
Содержание отчета
1.
Название работы.
2.
Цель работы.
3.
Блок-схему алгоритма.
4.
Тексты программ.
5. Вопросы для самопроверки
1.
Назовите принципы резервного копирования.
2.
Какие технологии восстановления информации используются после аварии
оборудования?
3.
Какими средствами защиты информации обладают современные
операционные системы?
4.
В чем заключается суть архивации данных?
13
Лабораторная работа №3
«Шифрация методами замены и перестановки»
Введение
По мере развития и усложнения средств, методов и форм автоматизации процессов
обработки информации повышается зависимость общества от степени безопасности
используемых им информационных технологий, которая определяется степенью
защищенности и устойчивости как компьютерных систем в целом, так и отдельных
программ.
Для обеспечения защиты информации в настоящее время не существует какого-то
одного технического приема или средства, однако общим в решении многих проблем
безопасности является использование криптографии и криптоподобных преобразований
информации.
1. Цель работы
Исследование основных методов криптографической зашиты информации.
2. Краткие сведения из теории
Криптография – обеспечивает сокрытие смысла сообщения с помощью
шифрования и открытия его расшифрованием, которые выполняются по специальным
алгоритмам с помощью ключей.
Ключ – конкретное секретное состояние некоторых параметров алгоритма
криптографического преобразования данных, обеспечивающее выбор только одного
варианта из всех возможных для данного алгоритма.
Криптоанализ – занимается вскрытием шифра без знания ключа (проверка
устойчивости шифра).
Кодирование – (не относится к криптографии) – система условных обозначений,
применяемых при передаче информации. Применяется для увеличения качества передачи
информации, сжатия информации и для уменьшения стоимости хранения и передачи.
Криптографические преобразования имеют цель обеспечить недоступность
информации для лиц, не имеющих ключа, и поддержание с требуемой надежностью
обнаружения несанкционированных искажений.
Большинство средств защиты информации базируется на использовании
криптографических шифров и процедур шифрования-расшифрования. В соответствии со
стандартом ГОСТ 28147-89 под шифром понимают совокупность обратимых
преобразований множества открытых данных на множество зашифрованных данных,
задаваемых ключом и алгоритмом преобразования.
В криптографии используются следующие основные алгоритмы шифрования:

алгоритм замены (подстановки) – символы шифруемого текста заменяются
символами того же или другого алфавита в соответствии с заранее обусловленной схемой
замены;

алгоритм перестановки – символы шифруемого текста переставляются по
определенному правилу в пределах некоторого блока этого текста;

гаммирование – символы шифруемого текста складываются с символами
некоторой случайной последовательности;

аналитическое преобразование – преобразование шифруемого текста по
некоторому аналитическому правилу (формуле).
Процессы шифрования и расшифрования осуществляются в рамках некоторой
криптосистемы. Для симметричной криптосистемы характерно применение одного и
14
того же ключа как при шифровании, так и при расшифровании сообщений. В
асимметричных криптосистемах для зашифрования данных используется один
(общедоступный) ключ, а для расшифрования – другой (секретный) ключ.
Симметричные криптосистемы
Шифры перестановки
В шифрах средних веков часто использовались таблицы, с помощью которых
выполнялись простые процедуры шифрования, основанные на перестановке букв в
сообщении. Ключем в данном случае является размеры таблицы. Например, сообщение
―Неясное становится еще более непонятным‖ записывается в таблицу из 5 строк и 7
столбцов по столбцам.
Н
О
Н
С
Б
Н
Я
Е
Е
О
Я
О
Е
Т
Я
С
В
Е
Л
П
Н
С
Т
И
Щ
Е
О
Ы
Н
А
Т
Е
Е
Н
М
Для получения шифрованного сообщения текст считывается по строкам и
группируется по 5 букв:
НОНСБ НЯЕЕО ЯОЕТЯ СВЕЛП НСТИЩ ЕОЫНА ТЕЕНМ
Несколько большей стойкостью к раскрытию обладает метод одиночной
перестановки по ключу. Он отличается от предыдущего тем, что столбцы таблицы
переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы.
Используя в качестве ключа слово ЛУНАТИК, получим следующую таблицу
Л
У
Н
А
Т
И
К
А
И
К
Л
Н
Т
У
4
7
5
1
6
2
3
1
2
3
4
5
6
7
Н
О
Н
С
Б
Н
Я
С
Н
Я
Н
Н
Б
О
Е
Е
О
Я
О
Е
Т
Я
Е
Т
Е
О
О
Е
Я
С
В
Е
Л
П
Н
Е
П
Н
Я
В
Л
С
С
Т
И
Щ
Е
О
Ы
Щ
О
Ы
С
И
Е
Т
Н
А
Т
Е
Е
Н
М
Е
Н
М
Н
Т
Е
А
До перестановки.
После перестановки
В верхней строке левой таблицы записан ключ, а номера под буквами ключа
определены в соответствии с естественным порядком соответствующих букв ключа в
алфавите. Если в ключе встретились бы одинаковые буквы, они бы нумеровались слева
направо. Получается шифровка: СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН
МНТЕА. Для обеспечения дополнительной скрытности можно повторно шифровать
сообщение, которое уже было зашифровано. Для этого размер второй таблицы подбирают
так, чтобы длины ее строк и столбцов отличались от длин строк и столбцов первой
таблицы. Лучше всего, если они будут взаимно простыми.
Кроме алгоритмов одиночных перестановок применяются алгоритмы двойных
перестановок. Сначала в таблицу записывается текст сообщения, а потом поочередно
15
переставляются столбцы, а затем строки. При расшифровке порядок перестановок был
обратный. Пример данного метода шифрования показан в следующих таблицах:
2
4
1
3
1
2
3
4
4
П
Р
И
Е
1
З
Ж
А
2
_
Ш
3
Т
О
1
2
3
4
4
И
П
Е
Р
1
А
З
Ю
Ж
Ю
1
А
3
Ю
Ж
2
Е
_
С
Ш
Е
С
2
Е.
_
С
Ш
3
Г
Т
О
О
Г
О
3
Г
Т
О
О
4
И
П
Е
Р
Двойная перестановка столбцов и строк
В результате перестановки получена шифровка АЗЮЖЕ_СШГТООИПЕР. Ключом
к шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы.
Число вариантов двойной перестановки достаточно быстро возрастает с
увеличением размера таблицы: для таблицы 3 х 3 их 36, для 4 х 4 их 576, а для 5*5 их
14400.
В средние века для шифрования применялись и магические квадраты.
Магическими квадратами называются квадратные таблицы с вписанными в их клетки
последовательными натуральными числами, начиная с единицы, которые дают в сумме по
каждому столбцу, каждой строке и каждой диагонали одно и то же число. Для
шифрования необходимо вписать исходный текст по приведенной в квадрате нумерации и
затем переписать содержимое таблицы по строкам. В результате получается шифротекст,
сформированный благодаря перестановке букв исходного сообщения.
16
3
2
13
О
И
Р
Т
5
10
11
8
З
Ш
Е
Ю
9
6
7
12
_
Ж
А
С
4
15
14
1
Е
Г
О
П
П
Р
И
Е
З
Ж
А
Ю
_
Ш
Е
С
Т
О
Г
О
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Число магических квадратов очень резко возрастает с увеличением размера его
сторон: для таблицы 3*3 таких квадратов -1; для таблицы 4*4 - 880; а для таблицы 5*5250000.
Шифры простой замены
Система шифрования Цезаря - частный случай шифра простой замены. Метод
основан на замене каждой буквы сообщения на другую букву того же алфавита, путем
смещения от исходной буквы на K букв.
Известная фраза Юлия Цезаря VENI VINI VICI – пришел, увидел, победил,
зашифрованная с помощью данного метода, преобразуется в SBKF SFAF SFZF (при
смещении на 4 символа).
Греческим писателем Полибием за 100 лет до н.э. был изобретен так называемый
полибианский квадрат размером 5*5, заполненный алфавитом в случайном порядке.
Греческий алфавит имеет 24 буквы, а 25-м символом является пробел. Для шифрования на
квадрате находили букву текста и записывали в шифротекст букву, расположенную ниже
16
ее в том же столбце. Если буква оказывалась в нижней строке таблицы, то брали верхнюю
букву из того же столбца.
Шифры сложной замены
Шифр Гронсфельда состоит в модификации шифра Цезаря числовым ключом.
Для этого под буквами сообщения записывают цифры числового ключа. Если ключ
короче сообщения, то его запись циклически повторяют. Шифротекст получают примерно
также, как в шифре Цезаря, но отсчитывают не третью букву по алфавиту (как в шифре
Цезаря), а ту, которая смещена по алфавиту на соответствующую цифру ключа.
Пусть в качестве ключа используется группа из трех цифр – 314, тогда
Сообщение СОВЕРШЕННО СЕКРЕТНО
Ключ 3143143143143143143
Шифровка ФПИСЬИОССАХИЛФИУСС
В шифрах многоалфавитной замены для шифрования каждого символа
исходного сообщения применяется свой шифр простой замены (свой алфавит).
АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_
А
АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_
Б
_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ
В
Я_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮ
Г
ЮЯ_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭ
.
…………
Я
ВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_АБ
_
БВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_А
Каждая строка в этой таблице соответствует одному шифру замены аналогично
шифру Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его
выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его
циклически повторяют. Шифротекст получают, находя символ в колонке таблицы по
букве текста и строке, соответствующей букве ключа. Например, используя ключ АГАВА,
из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку:
Сообщение
ПРИЕЗЖАЮ_ШЕСТОГО
Ключ
АГАВААГАВААГАВАА
Шифровка
ПНИГЗЖЮЮЮАЕОТМГО
В компьютере такая операция соответствует сложению кодов ASCII символов
сообщения и ключа по модулю 256.
3. Задание к работе
На языке VBA или С++ написать программу шифрования и дешифрования
текстового файла методом, указанным преподавателем. В качестве примера в п. 4
приводится пример реализации алгоритма шифрация методом замены.
4. Порядок выполнения работы
17
На окне программы расположены три текстовых поля: для ввода исходного текста
(textBox1), для вывода зашифрованного текста (textBox2), для вывода расшифрованного
текста (textBox3). Для выполнения основных действий на окне расположены кнопка для
выполнения операции шифрования (button1) и кнопка для выполнения операции
дешифрации (button2). Программа реализована на языке C#.
Шифрование
private void button1_Click(object sender, EventArgs e)
{
string s="";
string T=textBox1.Text;
for (int i = 0; i < T.Length; i++)
{
s+=Convert.ToChar(Convert.ToInt32(T[i])+1);
}
textBox2.Text = s;
}
Дешифрование
private void button2_Click(object sender, EventArgs e)
{
string s = "";
string T = textBox2.Text;
for (int i = 0; i < T.Length; i++)
{
s += Convert.ToChar(Convert.ToInt32(T[i]) - 1);
}
textBox3.Text = s;
}
Содержание отчета
1.
Название работы.
2.
Цель работы.
3.
Блок-схему алгоритма шифрования.
4.
Тексты программ.
5. Вопросы для самопроверки
1.
Цель и задачи криптографии.
2.
Шифры одиночной перестановки и перестановки по ключевому слову.
Шифр Гронфельда.
18
3.
квадрата.
4.
5.
6.
7.
8.
9.
10.
11.
Шифры двойной перестановки. Шифрование с помощью магического
Шифр многоалфавитной замены и алгоритм его реализации.
Алгоритм шифрации двойным квадратом. Шифр Enigma.
Алгоритм шифрования DES.
Алгоритм шифрования ГОСТ 28147-89.
Алгоритм шифрования RSA.
Алгоритм шифрования Эль Гамаля.
Задачи и алгоритмы электронной подписи.
Задачи распределения ключей.
19
Лабораторная работа №4
«Шифрация методами битовых манипуляций»
Введение
По мере развития и усложнения средств, методов и форм автоматизации процессов
обработки информации повышается зависимость общества от степени безопасности
используемых им информационных технологий, которая определяется степенью
защищенности и устойчивости как компьютерных систем в целом, так и отдельных
программ.
Для обеспечения защиты информации в настоящее время не существует какого-то
одного технического приема или средства, однако общим в решении многих проблем
безопасности является использование криптографии и криптоподобных преобразований
информации.
1. Цель работы
Исследование основных методов криптографической зашиты информации.
2. Краткие сведения из теории
Шифры битовых манипуляций.
Методы кодирования сообщений путем манипуляций с битами возникли с
появлением вычислительной техники. Как правило, современные компьютеризированные
шифры попадают в класс, называемый шифрами бытовых манипуляций (bit manipulating
ciphers). Хотя ревнители чистоты теории могут спорить о том, что такие шифры
представляют собой просто вариацию шифров методом замены, большинство
специалистов соглашается с тем, что концепции и методы, лежащие в основе шифров
битовых манипуляций отличаются от всего, что было известно ранее, настолько
значительно, что заслуживают выделения в особый класс.
Шифры битовых манипуляций популярны по двум причинам. Во-первых, они
идеально подходят для использования в компьютерной криптографии, так как используют
операции, которые легко выполняются системой. Вторая причина заключается в том, что
полученный на выходе зашифрованный текст выглядит абсолютно нечитаемым фактически полной бессмыслицей. Это положительно сказывается на безопасности и
защищенности, так как важные данные маскируются под поврежденные файлы, доступ к
которым просто никому не нужен.
Как правило шифры битовых манипуляций применимы только к компьютерным
файлам и не могут использоваться для бумажных копий зашифрованных сообщений.
Причина этого заключается в том, что манипуляции с битами имеют тенденцию
генерировать непечатаемые символы. Поэтому мы всегда будем полагать, что текст,
зашифрованный с помощью битовых манипуляций, всегда будет оставаться в виде
электронного документа.
Шифры битовых манипуляций переводят открытый текст в шифрованный с
помощью преобразования набора бит каждого символа по определенному алгоритму,
используя одну из следующих логических операций или их комбинацию:
AND OR NOT XOR
Простейший (и наименее защищенный) шифр, манипулирующий с битами,
использует только оператор первого дополнения. Этот оператор инвертирует все биты,
входящие в состав байта. Таким образом, все нули становятся единицами и наоборот.
Поэтому байт, над которым дважды проведена такая операция, принимает исходное
значение.
20
В действительности с этой простой схемой кодирования связаны две основные
проблемы. Во-первых, программа шифрования для расшифровки текста не использует
ключа. Поэтому любой, кто знает, что используется данный алгоритм и в состоянии
написать программу, сможет прочитать файл. Во-вторых (и это самое главное), этот метод
отнюдь не тайна для опытных программистов.
Улучшенный метод шифрования методом побитовой манипуляции использует
оператор XOR. Результаты выполнения этого оператора приведены в следующей таблице:
XOR
1
0
1
0
1
0
1
0
Иными словами, результат выполнения оператора XOR получает значение
ИСТИНА тогда и только тогда, когда один из операндов имеет значение ИСТИНА, а
другой - ЛОЖЬ. Именно это и является уникальным свойством оператора XOR - если вы
выполните эту операцию на одним байтом, используя другой байт в качестве «ключа», а
затем возьмете результат и выполните над ним ту же самую операцию с помощью того же
самого ключа, вы снова получите исходный байт. Например:
Исходный байт
Ключ
Зашифрованный байт
XOR
Зашифрованный байт
Ключ
XOR
Расшифрованный байт
11011001
01010011 (ключ)
10001010
10001010
01010011 (ключ)
11011001
Расшифрованный байт равен исходному.
Этот процесс может использоваться для кодирования файлов, так как он решает
две основные проблемы с простейшей версией на базе первого дополнения. Во-первых,
благодаря использованию ключа, расшифровать файл, имея только программу
декодирования нельзя. Во-вторых, используемые манипуляции с битами не настолько
просты, чтобы их можно было сразу распознать.
Ключ не обязательно должен иметь длину 1 байт. Фактически, можно использовать
ключ, состоящий из нескольких символов, и чередовать эти символы на протяжении всего
файла.
Стандарт ГОСТ.
Официально ГОСТ называется «Алгоритм криптографического преобразования
данных ГОСТ 28147-89» - это несколько шире, чем просто зашифровывание или
расшифровка данных. Все режимы криптопреобразований данных, согласно ГОСТ,
базируются на трех циклах алгоритма.
*
цикл зашифровывания (32 - З)
*
цикл расшифровки (32 - Р)
*
цикл выработки имитоприставки (16 - З)
Прежде чем перейти к изучению основных вопросов, рассмотрим дополнительную
информацию, используемую ГОСТом, - именно ее секретность обеспечивает секретность
21
шифрованного сообщения. Эта информация представляет собой 2 массива данных - ключ
и таблицу замен. Приведем их характеристики.
1. Ключ - это массив из 8-ми 32-битовых элементов, обозначаемых в дальнейшем
Xi, где i изменяется от 0 до 7. Таким образом, размер ключа составляет 328=256 битов
или 32 байта.
2. Таблица замен - двумерная таблица - набор из 8-ми одномерных массивов (узлов
замен), каждый из которых содержит 16 различных 4-битовых чисел (от 0 до 15) в
произвольном порядке. Обозначим Km(y) значение первого элемента в m-ом узле замен.
При этом m изменяется в пределах 0...7, а y - в пределах 0...15. Таким образом, общий
объем таблицы замен равен 8 узлов16 элементов4 бита/элемент = 512 битов = 64 байта.
Рассмотрим основной шаг криптопреобразования. На входе шага заданы два 32битовых элемента данных - N1, N2, с этими элементами выполняются следующие
манипуляции:
1) добавление к N1 элемента ключа - сложение по модулю 232;
2) поблочная замена результата по 4 бита по таблице замен;
3) циклический сдвиг результата на 11 битов влево;
4) побитовое сложение результата по модулю 2 с элементом N2;
5) перестановка элементов N2 <- старое, N1 <- результат;
После этого новые элементы N1 и N2 выдаются в качестве результата шага. Так как
в основном шаге используется только один элемент ключа, еще одним параметром шага
является номер этого элемента.
Рассмотрим базовые циклы криптоалгоритма ГОСТа. Они отличаются друг от
друга только числом повторений основного шага и порядком просмотра элементов ключа.
В обозначении цикла nn-X первый элемент (nn) - это число повторений основного шага, а
второй кодирует порядок просмотра элементов ключа (буква З - порядок
зашифровывания, Р - расшифровки). Кроме того, в конце циклов шифрования
предусмотрена
дополнительная
перестановка
элементов.
Приведем
порядок
использования элементов ключа для трех базовых циклов:
*
цикл зашифровывания (32 - З) - 3 раза вперед, 1 раз назад:
0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0
*
цикл расшифровки (32 - Р) - 1 раз вперед, 3 раза назад:
0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0
*
цикл выработки имитоприставки (16 - З) - 2 раза вперед:
0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7
Каждый из циклов получает на входе 2 32-битовых слова и после серии основных
шагов выдает в качестве результата также 2 32-битовых слова.
Основные режимы шифрования.
ГОСТ 28147-89 предусматривает три режима шифрования данных:
1) простая замена;
2) гаммирование;
3) гаммирование с обратной связью;
и дополнительный режим
4) выработка имитоприставки.
В любом из этих режимов данные обрабатываются блоками по 64 бита - именно
поэтому ГОСТ относится к блочным шифрам. Кратко опишем основные режимы
шифрования.
Простая замена.
Зашифровывание заключается в применении цикла 32-З к бокам открытого текста,
расшифровка - в применении цикла 32-Р к блокам шифротекста. Это наиболее простой
режим шифрования, и он имеет следующие недостатки:
*
с точки зрения стойкости шифра, одинаковые блоки исходных данных дают
одинаковые блоки шифротекста; криптологи говорят, что это очень плохо;
22
*
с точки зрения удобства применения, если длина массива информации не
кратна 8 байтам, то возникают 2 проблемы:
*
чем и как дополнять последний блок до полных 8 байтов.
*
после зашифровывания неполного блока в нем все 8 байт станут
значащими, то есть вместе с шифротекстом надо хранить количество байтов в последнем
блоке исходного текста.
ГОСТ ограничивает возможные случаи применения простой замены шифрованием
ключевой информации (ключи и таблицы замен);
Гаммирование.
Процесс зашифрования заключается в генерации гаммы шифра и наложении этой
гаммы на исходный открытый текст. Перед шифрованием открытые данные разбиваются
на блоки Т(0)i одинаковой длины (по 64 бита). Гамма шифра вырабатывается в виде
последовательности блоков Г(ш)i аналогичной длины (Т(ш)i=Г(ш)i+Т(0)i, где + побитовое сложение, i =1-m). Наложение на открытые данные гаммы производится с
помощью побитовой функции XOR.
Блоки гаммы получаются зашифровыванием в режиме простой замены некоторой
последовательности 64-битовых блоков, вырабатываемых датчиком псевдослучайных
чисел. От этого датчика не требуется обеспечения никаких статистических характеристик
выходной последовательности, а нужен лишь максимально возможный период
повторения данных.
Зашифровывание и расшифровка в этом режиме не отличаются друг от друга.
Процесс расшифрования сводится к повторной генерации шифра текста и наложение этой
гаммы на зашифрованные данные T(0)i=Г(ш)i+Т(ш)i.
Гаммирование с обратной связью.
Данный режим похож на режим гаммирования и отличается от него только тем, что
для выработки блока гаммы для шифрования следующего блока данных используется
блок шифротекста, полученный на предыдущем шаге. Этим достигается зацепление
блоков - каждый блок при шифровании зависит от всех предыдущих.
Выработка имитоприставки к массиву данных.
Имитоприставка - это контрольная комбинация, зависящая от открытых данных и
секретной ключевой информации. Цель использования имитоприставки - обнаружение
всех изменений в массиве информации. Для потенциального взломщика две следующие
задачи, если он не владеет секретным ключом, практически неразрешимы:
- вычисление имитоприставки для заданного открытого массива информации;
- подбор открытых данных под заданную имитоприставку.
3. Задание к работе
На языке VBA или С++ написать программу шифрования и дешифрования
текстового файла методом, указанным преподавателем. В качестве примера в п. 4
приводится алгоритм шифрования методом гаммирования.
4. Порядок выполнения работы
Основные шаги шифрования текстового файла методом гаммирования.
1.
Получить от пользователя ключ, имя входного и выходного файла.
2.
Инициализировать генератор случайных чисел с помощью ключа. Открыть
указанные файлы.
3.
Прочитать строку из файла.
4.
Получить случайное число.
23
5.
Получить ASCII-код очередного символа строки и увеличить его на
случайное число, полученное на шаге 4.
6.
Проверить правильность (допустимый диапазон) нового ASCII-кода.
7.
В выходную строку записать очередной символ, соответствующий ASCIIкоду, полученному на шаге 6.
8.
Если не достигли конца входной строки, то перейти к шагу 4.
9.
Записать полученную строку в выходной файл.
10.
Если не достигнут конец файла, то перейти к шагу 3.
11.
Закрыть файлы.
Алгоритм дешифрации аналогичен алгоритму шифрации за исключением того, что
из ASCII –кода вычитаем 256 и проверяем больше ноля или нет.
Open Filename For Input As # FileNumber –открытие файла для чтения.
Out Put –для вывода.
В ASCII –коде символы 10 и 13 (возврат каретки).
Надо открывать файлы как двоичные, ключевое слово Binary.
Line Input # FileNumber, A$ -переменная строковая.
Print –для записи.
Для чтения и записи двоичного файла объявляем переменную типа Variant.
Put # NF,, VA
Get # NF,, VA
Close –закрытие файла.
Содержание отчета
5.
Название работы.
6.
Цель работы.
7.
Блок-схему алгоритма шифрования.
8.
Тексты программ.
5. Вопросы для самопроверки
1. Методы шифрования путем битовых манипуляций.
2. Понятие оператора первого дополнения.
3. Результаты выполнения оператора XOR.
4. Три цикла алгоритма режимов криптопреобразований данных, согласно ГОСТ.
5. Понятие ключа.
6. Понятие таблицы замен.
7. Отличия базовых циклов криптоалгоритма ГОСТа.
8. Режимы шифрования данных по ГОСТ 28147-89.
9. Суть режима простой замены.
10. Отличие режимов гаммирования и гаммирования с обратной связью.
11. Цель использования имитоприставки.
24
Лабораторная работа №5
«Антивирусные средства»
Введение
Расширение масштабов практического применения и увеличение функциональных
возможностей современных вычислительных машин, автоматизированных систем (АС) и
сетей связи сопровождается ростом опасности преднамеренной дезорганизации их работы
или использования в преступных целях.
Вредоносность или полезность соответствующих программ для ЭВМ определяется
не в зависимости от их назначения, способности уничтожать, блокировать,
модифицировать, копировать информацию (это - вполне типичные функции абсолютно
легальных программ), а в связи с тем, предполагает ли их действие, во-первых,
предварительное уведомление собственника компьютерной информации или другого
добросовестного пользователя о характере действия программы, а во-вторых, получение
его согласия (санкции) на реализацию программой своего назначения. Нарушение одного
из этих требований делает программу для ЭВМ вредоносной.
1. Цель работы
Исследование основных методов борьбы с вредоносными программами.
2. Краткие сведения из теории
В настоящее время можно выделить два вида вредоносных программ это
программы закладки и программы вирусы.
Компьютерный вирус - это программа, которая способна заражать другие
программы, модифицируя их так, чтобы они включали в себя копию вируса (или его
разновидность).
Компьютерная закладка - это аппаратное или программное средство,
реализующее угрозы аппаратным или программным ресурсам компьютера.
Вредоносные программы можно классифицировать
1. По методу внедрения в вычислительную систему:

Оператором вычислительной системы.

При разработке программного обеспечения.

При разработке программы BIOS.

Замена аппаратных составляющих вычислительной системы
2. По месторасположению:

Аппаратная реализация

Программная реализация
По логической структуре:
Однокомпонентные – вредоносная программа жестко привязана к системе.
Двухкомпонентные - закладка-вирус, закладка-закладка и вирус-закладка:
Закладка-вирус - распространение вирусов. Закладка хранит вирусы в виде базы
данных со структурой отличной от той, которую будет иметь зараженная вирусом
программа, и поэтому при поверхностном анализе на совпадение сигнатур вирус в базе
данных закладки обнаружен не будет.
Закладка-закладка то же, что и закладка-вирус, но только второй составляющей
является закладка (либо сама, либо другая).
Вирус-закладка - в качестве одной из функций в вирусе реализована возможность
внедрять в вычислительные системы закладки.
25
Многокомпонентные - имеется более двух составляющих. Такие закладки сложны
в разработке и применении, их легче выявить. С позиции злоумышленника рациональнее
разрабатывать и применять несложные закладки с малым набором функций.
По функциональным возможностям:

Искажение обрабатываемых данных.

Нарушение работы системы защиты, установленной на компьютере.

Получения информации с помощью другого компьютера, в случае, если
компьютер с закладкой включен в локальную или глобальную вычислительную систему.

Имитация сбоев аппаратных средств: создание звуковых и визуальных эффектов, инициирование ошибок в программах пользователей и, (или) операционной
системы, повышенный износ периферийного оборудования

Диверсия.

Нарушение работы вычислительных сетей.
По активизации:

Внешнее воздействие.

Внутреннее воздействие.
Компьютерные вирусы
В общем случае под компьютерным вирусом подразумевается компактная
по своим габаритам программа, обладающая следующими специфическими свойствами:
Эта программа способна самостоятельно, без санкции пользователя, проникать
(осуществлять ―самозапись‖) на носители информации (жесткие диски и дискеты,
компакт-диски и т.д.).
―Вирусный модуль‖ при проникновении на новый носитель информации
(магнитный, оптический) применяет средства маскировки: он не имеет какого-либо
собственного имени. Проникая на носитель, в одних случаях он добавляет свое ―тело‖
программы к уже имеющимся на нем файлам (тем сам заражая их и выступая в
дальнейшем под их прикрытием), в других- записывает себя, например, в отдельный
рабочий кластер диска, помечая его как сбойный (дефектный), в третьих- размещается в
области так называемых старших адресов адресного пространства носителя (винчестера и
т.д.), отведенных под оперативную память компьютера и т.д.
Проникнув тем или иным способом на носитель информации, вирус начинает
осуществлять несанкционированные пользователем действия, определяемые
содержащейся на нем программой. Эти действия могут иметь и вполне безобидный
характер (например, время от времени воспроизводить какую-либо музыкальную фразу,
текстовую или видео - заставку), но могут приводить и к самым тяжелым последствиям от безвозвратной порчи файлов до вывода компьютера из строя.
Объектами вируса являются операционная система (MS-DOS, Win95, OS/2),
системные файлы (msdos.sys, io.sys, IBMBIO.COM, IBMDOS.COM), секторы начальной
загрузки дисков (BOOT Record), командный файл (command.com), таблица размещения
файлов (FAT), файлы типа COM или EXE (*.COM, *. EXE) , файл конфигурации
(config.sys) и память компьютеров.
В литературе, посвященной компьютерной вирусологии, обычно выделяют
несколько основных типов вирусов, среди которых представлены:
- загрузочные вирусы, поражающие загрузочные сектора дисков;
- файловые вирусы, заражающие исполнительные файлы различных типов;
- комбинированные вирусы, обладающие признаками вирусов различных типов. В
последнее время достаточно широкое распространение получили так называемые вирусыневидимки (Stealth-вирусы) и полиморфные вирусы-мутанты, в программах которых
реализованы различные алгоритмы маскировки, позволяющим скрывать даже косвенные
признаки их присутствия на диске.
26
За последнее время количество производимых во всем мире вирусов значительно
возросло. Причем четко прослеживается тенденция дальнейшего роста этого числа. Если в
1992-1993 годы появлялось 10-50 новых вирусов в месяц, в 1994-95 гг. - уже от 100 до 200,
то теперь - от 350 до 400 в месяц (т.е. от 7 до 20 вирусов в день).
Пути распространения вирусов:

Дистрибутивные диски.

Глобальные и локальные сети.

Неаккуратность пользователей при передаче друг другу дискет.
Защита компьютерной информации от вредоносных программ.
Одним из методов борьбы с компьютерными закладками является
тестирование программных модулей. Оценки сложности программных модулей
подтверждают
невозможность
или практическую
нерентабельность полного
исчерпывающего тестирования многих модулей. Поэтому основным критерием
тестирования является достижение максимальной глубины проверки модуля при
реальных ограничениях ресурсов. Для реализации таких подходов необходимы
теоретические и экспериментальные исследования, позволяющие оценивать достигнутую
полноту проверки программы при ограниченных затратах и практическое внедрение
методов систематического регламентированного тестирования.
Программные методы борьбы с компьютерными вирусами
Принципиально существует три вида программных средств защиты:
сканеры, т.е. программы, которые, просматривая после запуска все области
системы, тестируют ее на наличие вирусов (примеры российских программ — AIDSTEST,
AVP, Dr. Web);
резидентные мониторы или резидентные блоки, которые находясь резидентно в
памяти, следят за тем, чтобы система не совершала ―недозволенных‖ или
―вирусообразных‖ действий. При этом, как правило, хорошие подобные программы
имеют возможности настройки и пользователь сам сможет решать какие именно функции
системы нуждаются в контроле;
ревизоры диска (ADINF), которые работают по принципу слепка, сделанного с
системы — по требованию пользователя ревизор восстановит диск в прежнем состоянии.
Это, кстати, один из самых надежных методов защиты компьютера, но одновременно
один из самых неудобных, поскольку данный метод нуждается в постоянном применении.
Правила профилактики «вирусов»:
1.
Использование лицензионного программного обеспечения.
2.
Резервное архивирование.
3.
Проверка на наличие вирусов всю поступающую к вам информацию,
особенно с дискет.
4.
Периодическая проверка дискового пространства на наличие вирусов.
5.
Разумное выделение собственных вычислительных ресурсов в совместное
пользование.
6.
Периодическое обновление выпусков антивирусных программ.
3. Задание к работе
1. Кратко перечислите основные классификации компьютерных вирусов.
Объясните основные особенности функционирования каждого класса вирусов.
2. Создайте системный диск и осуществите проверку информации на жестком
диске как с помощью программы Dr.Web, так и с помощью программы AVP. Сравните
время работы пакетов.
3. На любом языке высокого уровня напишите программу, осуществляющую поиск
в файлах с заданной маской некоторой подстроки, задаваемой пользователем.
27
4. Порядок выполнения работы
//Пример на С++ преобразования текста в 16-ную систему
void CCrypto1Dlg::SetText16(char s[], int ID, int len_buf) { CString str; char
fu[3],str1[80]; int i; SetDlgItemText(ID,""); for(i=0;i<LEN_BUF;I++){ if (s[i]==0){ fu[1]='0';
fu[0]='0'; } else{
//побитовое отсечение 4 старших битов
fu[1]=char16(s[i]&(char)15); fu[0]=char16((s[i]>>4)&(char)15); //сдвиг вправо на 4
бита } fu[2]='\0'; //Этот ключ в 16-чной системе выглядит GetDlgItemText(ID,str);
strcpy(str1,str); strcat(str1,fu); if (i!=len_buf-1) strcat(str1," "); str=CString(str1);
SetDlgItemText(ID,str); }
}
//преобразование числа в 16-ную цифру
char CCrypto1Dlg::char16 (char sym) { if (sym<=9) return sym+'0'; else return sym+'A'10; }
//Непосредственно гаммирование
for(i=0;i<len_buf;i++) {
//выбор двух символов как 16-ное число
sprintf(s,"%c%c",cryp[j],cryp[j+1]);
//преобразование строки в 16-ное число
num=strtol(s,&endptr,16);
//получение символа с искомым 16-ым кодом
sprintf(s,"%c",num);
//операция XOR
buf[i]=may[i]^s[0];
j+=3; - 72 }
………
//Пример, реализующей шифрование открытого текста Text //длиной LenPosl с
использованием скремблера skr, //начального ключа KeyCentr:
for(takt=0,key=KeyCentr;takt!=LenPosl;takt++, key=(key>>1)^a0)
{
Text[takt>>3]^=(key&1)<<(takt&7);
for(tmp=skr&key, a0=0; tmp; tmp>>=1)
//если единица в текущем разряде, то формируем новый //младший бит
if(tmp&1) a0^=key0;
}
Содержание отчета
1.
Название работы.
2.
Цель работы.
3.
Описание алгоритма.
4.
Листинг программы.
5. Вопросы для самопроверки
1.
2.
3.
4.
Какие типы вирусов бывают?
Какие бывают пути распространения вирусов?
Какие существуют средства борьбы с вирусами?
Как происходит поиск файлов на жестком диске?
28
Лабораторная работа №6
«Работа со специализированными программами защиты данных»
Введение
Обычные средства криптографии (с одним ключом для шифровки и дешифровки)
предполагали, что стороны, вступающие в переписку, должны были в начале обменяться
секретным ключом, или паролем, с использованием некоего секретного канала для того,
чтобы начать обмен зашифрованными сообщениями. Получается замкнутый круг: чтобы
передать секретный ключ, нужен секретный канал. Чтобы создать секретный канал, нужен
ключ.
1. Цель работы - изучить программу Pretty Good Privacy (PGP), зашифровать и
проверить правильность тестового сообщения.
2. Краткие сведения из теории
Разработанная Филипом Циммерманном программа PGP относится к классу систем
с двумя ключами, публичным и секретным. Это означает, что вы можете сообщить о
своем публичном ключе всему свету, при этом пользователи программы смогут
отправлять вам зашифрованные сообщения, которые никто, кроме вас, расшифровать не
сможет. Вы же их расшифровываете с помощью вашего второго, секретного ключа,
который держится в тайне.
Публичный ключ выглядит примерно так:
-----BEGIN PGP PUBLIC KEY BLOCK----Version: 2.6.3
mQCNAzF1IgwAAAEEANOvroJEWEq6npGLZTqssS5EScVUPVaRu4ePLiDjUz6U7a
Qr
Wk45dIxg0797PFNvPcMRzQZeTxYl0ftyMHL/6ZF9wcx64jyLH40tE2DOG9yqwKAn
yUDFpgRmoL3pbxXZx9lO0uuzlkAz+xU6OwGx/EBKYOKPTTtDzSL0AQxLTyGZAAUR
tClCb2IgU3dhbnNvbiA8cmpzd2FuQHNlYXR0bGUtd2Vid29ya3MuY29tPokAlQMF
EDF2lpI4h53aEsqJyQEB6JcD/RPxg6g7tfHFi0Qiaf5yaH0YGEVoxcdFyZXr/ITz
rgztNXRUi0qU2MDEmh2RoEcDsIfGVZHSRpkCg8iS+35sAz9c2S+q5vQxOsZJz72B
LZUFJ72fbC3fZZD9X9lMsJH+xxX9CDx92xm1IglMT25S0X2o/uBAd33KpEI6g6xv
-----END PGP PUBLIC KEY BLOCK----Вы можете опубликовать свой публичный ключ на вашей Web странице , или
послать его электронной почтой своему другу. Ваш корреспондент зашифрует сообщение
с использованием вашего публичного ключа и отправит его вам. Прочесть его сможете
только вы с использованием секретного ключа. Даже сам отправитель не сможет
расшифровать адресованное вам сообщение, хотя он сам написал его 5 минут назад. На
сегодня даже самым мощным компьютерам требуются века, чтобы расшифровать
сообщение, зашифрованное с помощью PGP.
Генерация ключей.
Первое, что необходимо сделать – сгенерировать собственный набор общих и
секретных ключей. Эти ключи будут сохранены в ключнице (keyring), и потом их всегда
можно будет там найти. Для запуска процедуры генерации ключей наберите:
PGP – kg
Переключатель –kg указывает PGP создать пару ключей. Потребуется ввести
некоторые данные. Сначала PGP потребует определения желательного уровня
шифрования. Имеются три уровня, пронумерованные 1,2,3. Наименее защищенный
29
уровень использует ключ с размером 512 бит, в то время как наиболее безопасный
уровень – 1024 бита. За дополнительную защиту придется расплачиваться
быстродействием. Затем PGP запросит идентификатор пользователя. Этот идентификатор
будет добавлен к вашему открытому ключу, т.е. в нем будет содержаться имеющая
значение информация. Адрес электронной почты следует вводить в угловых <скобках>.
На следующем шаге необходимо сгенерировать начальное число ключей. Для этого вы
набираете на клавиатуре случайный текст, а программа измеряет паузы между нажатиями
клавиш. Кроме того, PGP запросит ввести пользовательский пароль. Этот пароль
требуется для работы с частной стороной ключей и работы PGP. Убедитесь, что пароль
выбран достаточно сложный, но вы в состоянии его запомнить. Если он станет кому-либо
известен, то злоумышленник сможет воспользоваться вашими секретными ключами,
чтобы расшифровать сообщения, посланный вам конфиденциально. Создание ключа
потребует некоторого времени. Как только ключи сгенерированы, они помещаются в
ключницу пользователя. По умолчанию создаются две ключницы: PUBRING.PGP и
SECRING.PGP. Можно создавать другие ключницы, генерируя новые наборы ключей,
используя различные имена.
Чтобы подготовить блок ASCII-текста, который вы будете использовать для
распространения своего открытого ключа, требуется набрать команду вида
PGP – kxa John Smith
В результате действия этой команды на диске создается файл, содержащий
открытый ключ Джона Смита. –kxa означает «извлечь ключ ASCII». Эта команда должна
создать файл с именем SMITH.ASC, который содержит открытый ключ в форме, которую
можно добавлять в сообщениям электронной почты.
Всякий раз, когда кто-либо присылает вам свой открытый ключ, вы должны
сохранить ключ в файле. После этого следует ввести команду, добавляющую этот ключ к
вашей ключнице, например:
PGP – ka paul.pgp
PGP сообщит вам о том, что открытый ключ некоторого человека был добавлен к
ключнице открытых ключей.
Следует обратить внимание на то, что операция заканчивается запросом о том,
хотите ли вы заверить ключ. Под понятием «заверить» подразумевается «убедиться в том,
что ключ действительно принадлежит человеку, с которым предстоит связываться».
Заверение ключей.
Если вы хотите заверить ключ, следует безопасным образом войти в контакт с его
владельцем. Попросите его ввести команду PGP -kvc для своей ключницы и сравните
«отпечаток пальца», выведенный у него, с отпечатком, выведенным на вашем дисплее.
Отпечаток пальца получается при пользовании хэш-функции для создания резюме
сообщения. При этом защита заключается в уверенности, что вы говорите с владельцем
ключа. Обсуждение отпечатка пальца по телефону, например, не вносит ничего, что
ставило бы под угрозу целостность шифрования, если только вы не получаете
информацию от самозванца.
Если вы не можете заверить ключ в тот момент, когда его добавляете, то можно
сделать это позже. Чтобы заверить ключ, уже находящийся в ключнице, напечатайте
команду
PGP – ks paul
Т.е. вы просите PGP заверить ключ Пола в заданной по умолчанию ключнице.
Шифрование сообщений.
Чтобы зашифровать сообщение, поместите текст в файл и воспользуйтесь
переключателем –е. Напечатайте
PGP –e Forjoe.txt
30
PGP попросит ввести идентификатор человека, для которого предназначено
сообщение, затем шифрует сообщение, записывает на диск и сообщает имя созданного
файла. Для того, чтобы в конечном файле содержались только печатаемые символы
можно добавить опцию а. Т.е.
PGP –ea Forjoe.txt
Расшифровка сообщений.
Получив сообщение, зашифрованное с использованием вашего открытого ключа,
следует сохранить его на диске и воспользоваться командой вида
PGP Forjoe.asc
Подписи.
Если вы хотите подписать сообщение, а не шифровать его, используйте
переключатель –s.
PGP –sa sometext.txt
Результатом действия команды станет создание файла, содержащего, на первый
взгляд, информационный мусор. Но любой человек, у которого есть ваш открытый ключ,
сможет прочитать сообщение, пользуясь командой
PGP sometext.txt
Также можно подписать и шифрованное сообщение
PGP –sea sometext.txt
PGP запросит открытый ключ получателя и затем выведет зашифрованный текст.
Подписание такого сообщения обеспечит уверенность в том, что сообщение не пытались
исказить или взломать.
3. Задание к работе
1.
Осуществить вышеописанные манипуляции с программой PGP над какимлибо файлом. Обменяться зашифрованными файлами с кем-либо и проверить механизм
добавления ключей в ключницу.
2.
Попробуйте изменить произвольный символ в зашифрованном файле.
Проверьте, что PGP определяет факт изменений.
4. Порядок выполнения работы
Пример реализации шифрования и дешифрования текста с использованием RSA
int j=Text.Length(); //Находим длину строки
for (int k=1; k<=j; k++)
{
P=Text[k]; // Выбираем символ
n1->nul(); n1->add(p);
n2=n1-> a_p_mod(e, n);
//Шифруем символ
p=n2->ret();
Code+=cod(p);
//Сохраняем полученное значение
}
//Дешифрование
int j=Code.Length(); //Находим длину шифра
for (int k=0, i=0; k<j; k+=0, i++)
{
31
p=uncod(Code, i);
//Выбираем нужное значение
n1->nul();
n1->add(p);
n2=n1->a_p_mod(d, n);
//Дешифруем символ
p=n2->ret();
Text+=(p&0xFF);
; //Сохраняем полученное значение
}
Содержание отчета
1.
Название работы.
2.
Цель работы.
3.
Блок-схему алгоритма.
4.
Тексты программ.
5. Вопросы для самопроверки
1.
В чем заключается защита информации с помощью специальных
программных средств?
2.
Что такое ключ?
3.
Как происходит шифрование сообщений с помощью ключей?
4.
Какие существуют способы шифрования с помощью ключей?
32
Коровина Олеся Владимировна
ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ И ЗАЩИТА ИНФОРМАЦИИ
Методические указания для выполнения лабораторных работ студентами
очной формы обучения направления 230200.62 Информационные системы
(квалификация бакалавр)
Редактор
Подписано в печать
Объем 33 с.
. Формат
Воронежская государственная лесотехническая академия, тираж __ экз.
РИО ВГЛТА. УОП ВГЛТА 394087, г. Воронеж, ул. Тимирязева, 8
33
Документ
Категория
Без категории
Просмотров
5
Размер файла
524 Кб
Теги
защита, информационные, безопасности, коровина, информация
1/--страниц
Пожаловаться на содержимое документа