- •Введение
- •1Информационная безопасность компьютерных систем
- •Основные понятия и определения
- •Основные угрозы безопасности асои
- •Обеспечение безопасности асои
- •Вопросы по теме
- •2Принципы криптографической защиты информации
- •Основные понятия и опеределения
- •Традиционные симметричные криптосистемы
- •Шифры перестановки
- •2.1Шифр перестановки "скитала"
- •2.2Шифрующие таблицы
- •2.3Применение магических квадратов
- •Шифры простой замены
- •2.4Полибианский квадрат
- •2.5Система шифрования Цезаря
- •2.6Аффинная система подстановок Цезаря
- •2.7Система Цезаря с ключевым словом
- •2.8Шифрующие таблицы Трисемуса
- •2.9Система омофонов
- •Шифры сложной замены
- •2.10Шифр Гронсфельда
- •2.11Система шифрования Вижинера
- •2.12Одноразовая система шифрования
- •2.13Шифрование методом Вернама
- •Шифрование методом гаммирования
- •2.14Методы генерации псевдослучайных последовательностей чисел
- •Вопросы по теме
- •3Современные симметричные криптосистемы
- •Американский стандарт шифрования данных des
- •3.2. 0Сновные режимы работы алгоритма des
- •3.1Режим "Электронная кодовая книга"
- •3.2Режим "Сцепление блоков шифра"
- •3.5Области применения алгоритма des
- •Алгоритм шифрования данных idea
- •Отечественный стандарт шифрования данных
- •3.6Режим простой замены
- •3.7Режим гаммирования
- •3.8Режим гаммирования с обратной связью
- •3.9Bыработки имитовставки
- •Вопросы по теме
- •4Асимметричные криптосистемы
- •Концепция криптосистемы с открытым ключом
- •Однонаправленные функции
- •Криптосистема шифрования данных rsa
- •Вопросы по теме
- •5Идентификация и проверка подлинности
- •Основные понятия и концепции
- •Идентификация и механизмы подтверждения подлинности пользователя
- •Взаимная проверка подлинности пользователей
- •Протоколы идентификации с нулевой передачей знаний
- •5.1Упрощенная схема идентификации с нулевой передачей знаний
- •5.2Параллельная схема идентификации с нулевой передачей знаний
- •5.3Схема идентификации Гиллоу - Куискуотера
- •Вопросы по теме
- •6Электронная цифровая подпись
- •Проблема аутентификации данных и электронная цифровая подпись
- •Однонаправленные хэш-функции
- •Алгоритм безопасного хеширования sha
- •Однонаправленные хэш-функции на основе симметричных блочных алгоритмов
- •Отечественный стандарт хэш-функции
- •Алгоритмы электронной цифровой подписи
- •6.1Алгоритм цифровой подписи rsa
- •6.2Алгоритм цифровой подписи Эль Гамаля (egsa)
- •6.3Алгоритм цифровой подписи dsa
- •6.4Отечественный стандарт цифровой подписи
- •Вопросы по теме
- •7Управление криптографическими ключами
- •Генерация ключей
- •Хранение ключей
- •Распределение ключей
- •7.1Распределение ключей с участием центра распределения ключей
- •7.2Прямой обмен ключами между пользователями
- •Протокол skip управления криптоключами.
- •Вопросы по теме
- •8Методы и средства защиты от удаленных атак через сеть Internet
- •Особенности функционирования межсетевых экранов
- •Основные компоненты межсетевых экранов
- •8.1Фильтрующие маршрутизаторы
- •8.2Шлюзы сетевого уровня
- •8.3Шлюзы прикладного уровня
- •Основные схемы сетевой защиты на базе межсетевых экранов
- •8.4Межсетевой экран-фильтрующий маршрутизатор
- •8.5Межсетевой экран на основе двупортового шлюза
- •8.6Межсетевой экран на основе экранированного шлюза
- •8.7Межсетевой экран - экранированная подсеть
- •Применение межсетевых экранов для организации виртуальных корпоративных сетей
- •Программные методы защиты
- •Вопросы по теме
- •9Резервное хранение информации. Raid-массивы
- •Вопросы по теме
- •10Биометрические методы защиты
- •Признаки личности в системах защиты информации
- •10.1Отпечатки пальцев
- •10.2Черты лица
- •10.3Геометрия кисти руки
- •10.4Рисунок радужной оболочки глаза
- •10.5Рисунок сосудов за сетчаткой глаза
- •10.6Расположение вен на руке
- •10.7Динамические характеристики почерка
- •10.8Особенности речи
- •10.9Динамика ударов по клавишам
- •10.10 Другие характеристики
- •Устройства для снятия биометрических характеристик
- •Системы распознавания личности
- •Проверка личности при помощи биометрических характеристик
- •Вопросы по теме
- •11Программы с потенциально опасными последствиями
- •Троянский конь
- •Логическая бомба
- •Программные закладки
- •Атака салями
- •Вопросы по теме
- •12Защита от копирования
- •Привязка к дискете
- •12.1Перестановка в нумерации секторов
- •12.2Введение одинаковых номеров секторов на дорожке
- •12.3Введение межсекторных связей
- •12.4Изменение длины секторов
- •12.5Изменение межсекторных промежутков
- •12.6Использование дополнительной дорожки
- •12.7Введение логических дефектов в заданный сектор
- •12.8Изменение параметров дисковода
- •12.9Технология "ослабленных" битов
- •12.10 Физическая маркировка дискеты
- •Применение физического защитного устройства
- •"Привязка" к компьютеру
- •12.11Физические дефекты винчестера
- •12.12Дата создания bios
- •12.13Версия используемой os
- •12.14Серийный номер диска
- •Конфигурация системы и типы составляющих ее устройств
- •Опрос справочников
- •Введение ограничений на использование программного обеспечения
- •Вопросы по теме
- •13Защита исходных текстов и двоичного кода
- •Противодействие изучению исходных текстов
- •13.1Динамическое ветвление
- •13.2Контекстная зависимость
- •13.3Хуки
- •Противодействие анализу двоичного кода
- •Вопросы по теме
- •14Операционные системы
- •Сравнение nt и unix-систем
- •15.2Создание "вспомогательной" программы, взаимодействующей с имеющейся
- •15.3Декомпилирование программы
- •15.4Копирование программного обеспечения
- •15.5Использование или распространение противозаконных программ и их носителей
- •15.6Деятельность в компьютерной сети
- •Компьютер и/или сеть являются средством достижения целей.
- •Вопросы по теме Лабораторные работы по курсу «Информационная безопасность и защита информации»
- •Лабораторная работа № 1. «Реализация дискреционной модели политики безопасности»
- •Лабораторная работа № 2 . «Количественная оценка стойкости парольной защиты»
- •Лабораторная работа №3. «Создание коммерческой версии приложения»
- •Лабораторная работа №4. «Защита от копирования. Привязка к аппаратному обеспечению. Использование реестра»
- •2. Реестр Windows
- •Литература
Лабораторная работа №4. «Защита от копирования. Привязка к аппаратному обеспечению. Использование реестра»
Цель работы: ознакомиться с возможностями “привязки” к характеристикам компьютера.
Теоретические сведения
В качестве анализируемых характеристик компьютера используются:
информация об используемой операционной системе
имени пользователя;
имени компьютера;
наличии звуковой карты;
наличии подключенных принтера, сканера и т.д;
дата создания bios;
серийный номер диска;
характеристик процессора и т.д.;
данные реестра.
Для получения подобных характеристик в операционной системе Windows используются API-функции и информация из реестра.
1.API-функции
API сокращенно Application Programming Interface(интерфейс прикладного программирования). API - набор функций, которые операционная система предоставляет программисту. API обеспечивает относительно простой путь для программистов для использования полных функциональных возможностей аппаратных средств или операционной системы.
32-разрядные версии Windows, или 95/98 или NT, обычно используют один и тот же набор функций API, хотя имеются некоторые различия между платформами. 32-разрядный API содержит многочисленные расширения и поддержки к устаревшему 16-разрядному API, используемому в Windows 3.x. Старые функции поддерживаются по причинам совместимости. Однако, 32-разрядные приложения должны использовать исключительно 32-разрядные функции. Это не проблема, так как 16-разрядные функции обычно заменялись подобными функциями.
Почти все функции, которые составляют Windows API - внутри DLL (Dynamic Link Library) . Эти dll-файлы находятся в системной папке Windows.Существует свыше 1000 функций API,которые условно делятся на на четыре основные категории.
Работа с приложениями-запуск и закрытие приложений,обработка команд меню,перемещения и изменения размера окон.
Графика-создание изображений.
Системная информация-определение текущего диска,объем памяти,имя текущего пользователя и т.д.
Работа с реестром-манипуляции с реестром Windows.
2. Реестр Windows
Реестр - база данных операционной системы, содержащая конфигурационные сведения. Физически вся информация реестра разбита на несколько файлов. Реестры Windows 9х и NT частично различаются. В Windows 95/98 реестр содержится в двух файлах SYSTEM.DAT и USER.DAT, находящиеся в каталоге Windows. В Windows Me был добавлен еще один файл CLASSES.DAT.
По замыслу Microsoft он должен был полностью заменить файлы ini, которые были оставлены только для совместимости со старыми программами, ориентированными на более ранние версии операционной системы.
Почему произошел переход от ini файлов к реестру? Дело в том, что на эти файлы накладывается ряд серьезных ограничений, и главное из них состоит в том, что предельный размер такого файла составляет 64Кб.
ПРЕДУПРЕЖДЕНИЕ: НИКОГДА не удаляйте или не меняйте информацию в реестре, если Вы не уверены что это именно то, что нужно. В противном случае некорректное изменение данных может привести к сбоям в работе Windows и, в лучшем случае, информацию придется восстанавливать из резервной копии.
Реестр имеет следующую структуру:
HKEY_CLASSES_ROOT. В этом разделе содержится информация о зарегистрированных в Windows типах файлов, что позволяет открывать их по двойному щелчку мыши, а также информация для OLE и операций drag-and-drop;
HKEY_CURRENT_USER. Здесь содержатся настройки оболочки пользователя (например, Рабочего стола, меню "Пуск", ...), вошедшего в Windows. Они дублируют содержимое подраздела HKEY_USER\name, где name - имя пользователя, вошедшего в Windows. Если на компьютере работает один пользователь и используется обычный вход в Windows, то значения раздела берутся из подраздела HKEY_USERS\.DEFAULT;
HKEY_LOCAL_MACHINE. Этот раздел содержит информацию, относящуюся к компьютеру: драйверы, установленное программное обеспечение и его настройки;
HKEY_USERS. Содержит настройки оболочки Windows для всех пользователей. Как было сказано выше, именно из этого раздела информация копируется в раздел HKEY_CURRENT_USER. Все изменения в HKCU (сокращенное название раздела HKEY_CURRENT_USER) автоматически переносятся в HKU;
HKEY_CURRENT_CONFIG. В этом разделе содержится информация о конфигурации устройств Plug&Play и сведения о конфигурации компьютера с переменным составом аппаратных средств;
HKEY_DYN_DATA. Здесь хранятся динамические данные о состоянии различных устройств, установленных на компьютере пользователя. Именно сведения этой ветви отображаются в окне "Свойства: Система" на вкладке "Устройства", вызываемого из Панели управления. Данные этого раздела изменяются самой операционной системой, так что редактировать что-либо вручную не рекомендуется.
Примеры процедур и функций, определяющих параметры компьютера
Определение серийного номера HDD
procedure TForm1.Button1Click(Sender: TObject);
var
SerialNum:Pdword;
a,b:Dword;
buffer:array [0..255] of char;
begin
new(SerialNum);
if getVolumeInformation('c:\',buffer,sizeof(buffer),SerialNum,a,b,nil,0) then
Label1.Caption:=IntToStr(SerialNum^);
Dispose(SerialNum);
end;
Определение буквы CD-ROM
procedure TForm1.Button1Click(Sender: TObject);
var
w:dword;
Root:string;
i:integer;
begin
w:=GetLogicalDrives;
Root := '#:\';
for i := 0 to 25 do
begin
Root[1] := Char(Ord('A')+i);
if (W and (1 shl i))>0 then
if GetDriveType(Pchar(Root)) = DRIVE_CDROM then
Form1.Label1.Caption:=Root;
end;
end;
Определение системной информации
Procedure GetInfo;
Var
WinVer, WinFlags : LongInt; { Версия Windows и флаги }
hInstUser, Fmt : Word; { Дескриптор }
Buffer : ARRAY[0..30] OF Char; { Буфер под ASCIIZ строку }
begin
hInstUser := LoadLibrary('USER'); { Открыли библиотеку User }
LoadString(hInstUser, 514, Buffer, 30);
LabelUserName.Caption := StrPas(Buffer); { Имя пользователя }
LoadString(hInstUser, 515, Buffer, 30);
FreeLibrary(hInstUser);
LabelCompName.Caption := StrPas(Buffer); { Компания }
WinVer := GetVersion;
LabelWinVer.Caption := Format('Windows %u.%.2u', { Версия Windows }
[LoByte(LoWord(WinVer)), HiByte(LoWord(WinVer))]);
LabelDosVer.Caption := Format('DOS %u.%.2u', { Версия DOS }
[HiByte(HiWord(WinVer)), LoByte(HiWord(WinVer))]);
WinFlags := GetWinFlags;
IF WinFlags AND WF_ENHANCED > 0 THEN
LabelWinMode.Caption := '386 Enhanced Mode' { Режим }
ELSE IF WinFlags AND WF_PMODE > 0 THEN
LabelWinMode.Caption := 'Standard Mode'
ELSE LabelWinMode.Caption := 'Real Mode';
IF WinFlags AND WF_80x87 > 0 THEN { Сопроцессор }
ValueMathCo.Caption := 'Present'
ELSE ValueMathCo.Caption := 'Absent';
Fmt := GetFreeSystemResources(GFSR_SYSTEMRESOURCES);
ValueFSRs.Caption := Format('%d%% Free', [Fmt1]); { Свободно ресурсов }
{ Свободно памяти}
ValueMemory.Caption := FormatFloat(',#######', MemAvail DIV 1024) + ' KB Free';
end;
Определение готовности дисковода к работе
function DiskInDrive(const Drive: char): Boolean;
var
DrvNum: byte;
EMode: Word;
begin
result := false;
DrvNum := ord(Drive);
if DrvNum >= ord('a') then dec(DrvNum,$20);
EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if DiskSize(DrvNum-$40) <> -1 then result := true
else messagebeep(0);
finally
SetErrorMode(EMode);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
If DiskInDrive('A') then s:='Drive is Ready'
else s:='Drive is not Ready';
Form1.Label1.Caption:=s;
end;
Определение тактовой частоты процессора.
function GetCPUSpeed: Double;
const DelayTime = 500; // measure time in ms
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
end;
begin
LabelCPUSpeed.Caption := Format('CPU speed: %f MHz', [GetCPUSpeed]);
end;
Проверка наличия звуковой карты
uses mmsystem;
begin
if WaveOutGetNumDevs>0 then result:= 'Yes'
else result:='No';
edit1.text:=result;
end;
Занесение новых данных в реестр
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
begin
reg:=Tregistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER; // открыть ветвь
Reg.OpenKey('ant47\\Test',true); //создать ключ
Reg.WriteString('DATA','ПИ-102-злодеи'); //записать данные
end;
Удаление данных из реестра
procedure TForm1.Button2Click(Sender: TObject);
Var
reg2: TRegistry;
begin
reg2:=Tregistry.Create;
Reg2.RootKey:=HKEY_CURRENT_USER; // открыть ветвь
Reg2.DeleteKey('ant47\\Test'); //удалить ключ
end;
Чтение данных из реестра
procedure TForm1.Button2Click(Sender: TObject);
Var
reg2: TRegistry;
begin
reg2:=Tregistry.Create;
Reg2.RootKey:=HKEY_CURRENT_USER; // открыть ветвь
Reg2.OpenKey('ant47\\Test',true);
edit1.text:=Reg2.readstring('DATA'); //прочитать данные
end;
Задание на лабораторную работу
Создать в программе привязку к компьютеру, используя совокупность характеристик согласно варианту задания. Добиться того, чтобы программа не запускалась на другом компьютере.
Таблица 1. Характеристики CD-ROM
№ Варианта |
Характеристики |
1 |
Серийный номер жесткого диска, наличие звуковой карты |
2 |
Информация из реестра, тактовая частота процессора |
3 |
Версия операционной системы, наименование CD-ROM в сиcтеме |
4 |
Имя пользователя, наличие звуковой карты |
5 |
Название компьютера, информация из реестра |
Контрольные вопросы
Что понимается под “привязкой” к компьютеру?
Какие характеристики обычно используются для идентификации компьютера?
Перечислите основные API-функции для определения индивидуальных характеристик компьютера.
Что представляет собой реестр Windows?
Какую структуру имеет реестр?