- •Введение
- •Основные понятия и определения предмета защиты информации
- •Правовое обеспечение информационной безопасности
- •Статья 272 ук рф
- •Статья 273 ук рф
- •Статья 274 ук рф
- •Статья 146 ук рф
- •Статья 147 ук рф
- •Организационно – распорядительная документация
- •Концепция защиты свт и ас от нсд к информации
- •1.3. Санкционированный и несанкционированный доступ
- •1.4. Угрозы безопасности и каналы реализации угроз
- •1.5. Основные принципы обеспечения информационной безопасности
- •1.6. Ценность информации
- •1.7. Меры обеспечения безопасности компьютерных систем
- •1.8. Характеристика способов защиты компьютерной информации
- •2. Разграничение доступа к ресурсам
- •Политики безопасности
- •Дискреционные политики безопасности
- •Мандатные политики безопасности
- •Контроль доступа, базирующийся на ролях
- •Политика безопасности сети
- •3. Идентификация и аутентификация субъектов
- •3.1. Классификация подсистем идентификации и аутентификации субъектов
- •3.2. Парольные системы идентификации и аутентификации пользователей
- •Методы и средства криптографической защиты
- •4.1. Принципы криптографической защиты информации
- •4.2. Традиционные симметричные криптосистемы
- •4.2.1. Шифрование методом замены
- •Шифрование методом Цезаря
- •Простая моноалфавитная замена
- •Шифр Гронсфельда
- •Шифрование методом Вернама
- •4.2.2. Шифрование методами перестановки
- •Метод простой перетановки
- •Алгорита Гамильтона
- •Шифрование методом гаммирования
- •4.3.Элементы криптоанализа
- •4.4. Современные симметричные системы шифрования
- •4.5. Асимметричные криптосистемы
- •4.5.1. Принципы асимметричного шифрования
- •4.5.2. Однонаправленные функции
- •Целочисленное умножение
- •Модульная экспонента
- •4.5.3. Алгоритм шифрования rsa
- •Алгоритм формирования ключевой пары пользователем а
- •Шифрование и дешифрование сообщений в криптосистеме rsa
- •Действия получателя а
- •Действия отправителя b
- •Действия пользователя a
- •4.6. Сравнение симметричных криптосистем с асимметричными
- •Контроль целостности информации. Электронно-цифровая подпись
- •5.1. Проблема обеспечения целостности информации
- •Алгоритм вычисления контрольной суммы
- •5.2. Функции хэширования и электронно-цифровая подпись
- •5.3. Инфраструктура открытых ключей pki
- •Структура, сервисы и архитектура pki
- •Политика и регламент pki
- •Программные средства поддержки pki
- •Хранение и распределение ключевой информации
- •Типовые схемы хранения ключевой информации
- •Алгоритм идентификации и аутентификации для схемы 1
- •Алгоритм идентификации и аутентификации для схемы 2
- •Защита баз данных аутентификации в ос Windows nt и unix
- •Алгоритм хэширования lanman
- •Алгоритм хэширования ntlm
- •Иерархия ключевой информации
- •Распределение ключей
- •Распределение ключевой информации с использованием центров распределения ключей
- •Прямой обмен сеансовыми ключами между пользователями
- •Протокол Диффи-Хеллмана
- •Протоколы безопасной удаленной аутентификации пользователей
- •Протокол chap (Challenge Handshaking Authentication Protocol)
- •Протокол одноразовых ключей s/key
- •Реализация метода «запрос-ответ» в oc Windows при сетевой аутентификации
- •Алгоритм формирования ответа
- •7. Защита от разрушающих программных воздействий
- •7.1. Понятие разрушающего программного воздействия
- •Модели взаимодействия прикладной программы и рпв
- •Компьютерные вирусы как класс рпв
- •Классификация файловых вирусов по способу заражения
- •Перезаписывающие вирусы
- •Вирусы-компаньоны
- •Защита от рпв. Изолированная программная среда
- •Эвристическая методика выявления рпв в bios
- •8. Защита информации в компьютерных сетях
- •8.1. Основные угрозы и причины уязвимости сети internet
- •Классификация типовых удаленных атак на интрасети.
- •Анализ сетевого трафика
- •Подмена доверенного субъекта
- •Введение ложного объекта компьютерной сети
- •Отказ в обслуживании (DoS)
- •Сканирование компьютерных сетей
- •Ограничение доступа в сеть. Межсетевые экраны
- •Фильтрующие маршрутизаторы (пакетные фильтры)
- •Шлюзы сетевого уровня
- •Шлюз прикладного уровня
- •Виртуальные частные сети (vpn)
- •Протокол skip
- •Доменная архитектура в Windows nt. Служба Active Directory
- •Централизованный контроль удаленного доступа. Серверы аутентификации
- •Прокси – сервер
- •9. Защита программного обеспечения
- •9.1. Проблема защиты программного обеспечения
- •Модульная архитектура технических средств защиты по
- •9.3.Функционирование подсистем и модулей системы защиты по
- •9.4.Электронные ключи hasp
- •9.4. Защита по от изучения
- •9.4.1. Базовые методы нейтрализации систем защиты
- •Понятие и средства обратного проектирования
- •Локализация кода модуля защиты
- •Базовые методы противодействия отладчикам
- •Защита от отладчиков реального режима
- •Защита от отладчиков защищенного режима
- •Базовые методы противодействия дизассемблированию по
- •Защита от отладки
- •Использование недокументированных инструкций
- •Шифрование кода программы
- •Лабораторный практикум
- •10.1. Помехоустойчивые коды
- •10.2. Алгоритм кодирования и декодирования Хаффмена
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Дискреционная модель политики безопасности
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Подсистемы парольной аутентификации пользователей
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Методы криптографической защиты информации
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Литература
10.2. Алгоритм кодирования и декодирования Хаффмена
Алгоритм Хаффмена [18] применяется при передаче информации по сети при удаленном доступе (протокол Тelnet ) . Предположим, что у нас есть алфавит из n символов. Нужно закодировать сообщение в виде строки бит. Присвоим каждому символу алфавита определенную последовательность бит (код). Затем соединим отдельные коды символов, составляющих сообщение, и получим кодировку сообщения. Пусть символам назначены следующие коды: A = 010; B = 100; C = 000; D = 111. Сообщение ABACCDA кодируется как 010100010000000111010. Такая кодировка считается неэффективной. Более эффективным считается подход, который использует частоту повторения кода, а именно: чаще всего повторяющемуся символу присваивается более короткий код, а менее частому более длинный. Введем в рассмотрение таблицу следующего вида:
-
Символ
Частота
Код
А
3
0
B
1
110
C
2
10
D
1
111
При использовании этого кода сообщение ABACCDA кодируется как 0110010101110, что требует лишь 13 бит. В очень длинных сообщениях, которые содержат символы, встречающиеся чрезвычайно редко, экономия существенна. Обычно коды создаются не на основе частоты вхождения символов в отдельно взятом сообщении, а на основе их частоты во всем множестве сообщений.
Отметим, что если используются коды переменной длины, то код одного символа не должен совпадать с началом кода другого символа. Такое условие должно соблюдаться, если декодирование происходит слева направо. Такой подход к кодированию на основе учета частоты повторения символов в сообщениях позволяет реализовывать оптимальное кодирование информации. Операция предполагает использование структуры бинарного дерева. Каждый лист представляет символ исходного алфавита. Каждый узел представляет соединение символов из потомков данного узла.
На рис.10.1 приведено бинарное дерево, построенное с использованием рассмотренного выше примера. Каждый узел содержит символ и его частоту. Бинарное дерево строится снизу вверх, учитывая тот факт, что число предшественника узла со стороны левого поддерева меньше числа узла, а число предшественника узла со стороны правого поддерева больше или равно числу левого предшественника узла. Здесь листья есть символы сообщения, через запятую от символа обозначена его частота.
ACBD,7
A,3
CBD,4
C,2
BD,2
B,1 D,1
Рис. 10.1.
Такие деревья называются деревьями Хаффмена, по имени изобретателя этого метода кодирования. Как только дерево построено, код любого символа алфавита может быть определен просмотром дерева снизу вверх, начиная с листа, представляющего этот символ. Начальное значение кода - пустая строка. Каждый раз, когда мы поднимаемся по левой ветви, к коду слева приписывается 0; каждый раз при подъеме по правой ветви к коду слева приписывается 1, т.е. А имеет код 0; B имеет код 110 и т.д.
Алгоритм декодирования работает в обратном порядке. Проход по дереву начинается с корня дерева. Каждый раз, когда встречается 0, двигаемся по левой ветви, и каждый раз, когда встречается 1 , двигаемся по правой ветви, отнимая от кода слева соответствующий символ 0 или 1. Дойдя до листа, все откинутые от кода сообщения цифры образуют код расшифрованного символа. Повторяем этот процесс опять от корня к листу, но уже с меньшим кодом. Процесс повторяется до тех пор, пока в коде сообщения не останется цифр.
Пример. 10.6. Пусть известна таблица частот повторения символов вида
-
Символ
A
B
C
D
E
F
G
H
I
Частота
15
6
7
12
25
4
6
1
15
Используя таблицу, построить бинарное дерево для кодирования и декодирования сообщения IHFBDEGCA.
Решение.
IHFBDEGCA,91
IHFBD,38
EGCA,53
I
,15
HFBD,23
E,25
GCA,28
HFB,11 D,12
GC,13 A,15
HF,5 B,6
G,6 C,7
H,1 F,4
Рис. 10.2.
После построения дерева проведем кодировку символов. Оформим результат в виде таблицы.
Символ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
Код |
111 |
0101 |
1101 |
011 |
10 |
01001 |
1100 |
01000 |
00 |
Учитывая результат кодировки, можно декодировать любое сообщение из заданного набора символов. Например, имеем код сообщения 1110100010111011, необходимо представить его в виде символов
1110100010111011
110100010111011
10100010111011
0100010111011
Таким образом, дойдя до листа, мы получили отброшенные цифры в следующей последовательности 111, то есть код символа A, согласно таблице кодов. Построим следующий проход дерева от вершины с оставшимся кодом и т.д. Продолжая процесс декодирования, получим сообщение AHEAD.
