Основы защиты информации. Учебное пособие
.pdfМинистерство образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
__________________________________________________________________________
Т.А. ГУЛЬТЯЕВА
ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Утверждено Редакционно-издательским советом университета в качестве учебного пособия
НОВОСИБИРСК
2018
УДК 004.056.5(075.8) Г 944
Рецензенты:
канд. техн. наук А.С. Саутин, канд. техн. наук В.М. Волкова
Работа подготовлена на кафедре теоретической и прикладной информатики для студентов IV курса ФПМИ дневного отделения (направление 02.03.03)
Гультяева Т.А.
Г 944 Основы защиты информации: учебное пособие / Т.А. Гультяева. – Новосибирск: Изд-во НГТУ, 2018. – 83 с.
ISBN 978-5-7782-3641-7
Предлагаемое учебное пособие по изучению основ защиты информации содержит теоретический материал по темам, связанным с основными терминами предметной области, основами криптографии, стеганографии, проектированием защищенных приложений и нарушениями информационной безопасности. Кроме того, учебное пособие содержит набор вопросов для самоконтроля и тестовых заданий с ответами, выполнение которых позволит студентам получить начальные представления по основам защиты информации.
Учебное пособие может быть полезно также специалистам, занимающимся информационными технологиями и самостоятельно разбирающимся с вопросами, связанными с защитой информации.
|
УДК 004.056.5(075.8) |
ISBN 978-5-7782-3641-7 |
© Гультяева Т.А., 2018 |
|
© Новосибирский государственный |
|
технический университет, 2018 |
ОГЛАВЛЕНИЕ |
|
Глава 1. Обзор методов криптографии................................................................. |
5 |
1.1. Методы классической криптографии........................................................ |
5 |
1.2. Симметричные методы криптографии...................................................... |
6 |
1.3. Асимметричные методы криптографии.................................................... |
7 |
1.4. Хэш-функции............................................................................................... |
8 |
1.5. Электронная цифровая подпись................................................................. |
9 |
1.6. Криптографические генераторы псевдослучайных чисел..................... |
10 |
1.7. Разработка собственных криптографических алгоритмов.................... |
11 |
1.8. Надежность защиты при применении криптоалгоритмов |
|
и протоколов.............................................................................................. |
12 |
1.9. Стеганографическая защита информации............................................... |
17 |
1.9.1. Основные понятия........................................................................... |
17 |
1.9.2. Защита программ в исходных текстах........................................... |
17 |
Контрольные вопросы...................................................................................... |
19 |
Глава 2. Проектирование защищенных приложений........................................ |
21 |
2.1. Защита программы.................................................................................... |
21 |
2.2. Обзор моделей распространения программного обеспечения.............. |
22 |
2.2.1. Бесплатные программы (Freeware)................................................. |
22 |
2.2.2. Почти бесплатные программы (Cardware, Mailware, |
|
Donationware).................................................................................. |
23 |
2.2.3. Программы, показывающие рекламу (Adware) ............................ |
23 |
2.2.4. Коммерческие программы.............................................................. |
23 |
2.2.5. Почти работоспособные программы (Demoware, Trialware, |
|
Nagware) .......................................................................................... |
24 |
2.2.6. Условно бесплатные программы (Shareware) ............................... |
24 |
2.3. Методы противодействия атакам на приложения.................................. |
25 |
2.3.1. Переполнение буфера...................................................................... |
25 |
2.3.2. SQL–инъекции................................................................................. |
28 |
3 |
|
2.3.3. Ошибки канонизации...................................................................... |
32 |
2.3.4. Межсайтовое кодирование............................................................. |
33 |
2.3.5. Минимизация привилегий.............................................................. |
35 |
2.3.6. Осмысленные имена функций........................................................ |
37 |
2.3.7. Проверка входных данных.............................................................. |
38 |
2.3.8. Сообщения об ошибках................................................................... |
40 |
2.3.9. Отказ в обслуживании..................................................................... |
41 |
2.4. Способы защиты программного обеспечения от несанкциониро- |
|
ванного тиражирования............................................................................ |
41 |
2.4.1. Регистрационные коды.................................................................... |
41 |
2.4.2. Привязка к носителям информации............................................... |
44 |
2.4.3. Аппаратные ключи.......................................................................... |
45 |
2.4.4. Протекторы...................................................................................... |
47 |
2.5. Избыточная защита приложений............................................................. |
48 |
2.6. Критерии сравнения средств защиты приложений................................ |
49 |
2.7. Причины ослабления защиты................................................................... |
51 |
Контрольные вопросы...................................................................................... |
53 |
Глава 3. Нарушения информационной безопасности........................................ |
55 |
3.1. Нарушители ............................................................................................... |
55 |
3.1.1. Причины появления хакеров.......................................................... |
56 |
3.1.2. Методика вторжения....................................................................... |
56 |
3.1.3. Защита паролей................................................................................ |
57 |
3.1.4. Стратегия выбора пароля................................................................ |
58 |
3.1.5. Обнаружение нарушителей ............................................................ |
59 |
3.2. Вредоносные программы.......................................................................... |
61 |
3.2.1. Классификация вредоносных программ........................................ |
61 |
3.2.2. Природа вируса................................................................................ |
63 |
3.2.3. Антивирусная защита...................................................................... |
65 |
Контрольные вопросы...................................................................................... |
66 |
Приложение........................................................................................................... |
67 |
Библиографический список................................................................................. |
81 |
4
Глава 1 ОБЗОР МЕТОДОВ КРИПТОГРАФИИ
Криптография необходима для реализации, по крайней мере, трех сервисов безопасности:
шифрования;
контроля целостности;
аутентификации.
Шифрование – наиболее мощное средство обеспечения конфиденциальности. Оно занимает центральное место среди программно-тех- нических регуляторов безопасности, служит основой реализации многих из них и в то же время является последним (а подчас и единственным) этапом защиты. Например, для портативных компьютеров только шифрование позволяет обеспечить конфиденциальность данных даже в случае кражи. Все методы шифрования можно классифицировать по следующим признакам:
по типу ключей: симметричные и асимметричные методы;
по размеру обрабатываемого блока информации: потоковые и блочные шифры;
по применяемым преобразованиям над данными: методы подстановки, перестановки; аналитические, аддитивные (гаммирование), комбинированные методы.
1.1. МЕТОДЫ КЛАССИЧЕСКОЙ КРИПТОГРАФИИ
Все методы классической криптографии используют две основные операции: подстановки и перестановки. При подстановке отдельные символы открытого текста заменяются другими символами. Примеры
5
подстановочных шифров: шифры Цезаря, Плейфейера, Хилла, Виженера и др.
При перестановках отдельные символы открытого текста переставляются в порядке, отличном от первоначального.
Естественно, значительно лучшей криптостойкостью обладают шифры, использующие преобразования подстановки и перестановки одновременно. К таковым относятся, например, барабанные шифровальные машины. Одной из наиболее известных реализаций этого типа криптоалгоритмов была шифровальная машина «Энигма», созданная в годы Второй мировой войны в Германии.
В настоящее время определение открытого текста или ключа по шифротексту, полученному с помощью одного из классических методов, для опытного криптоаналитика не является трудноразрешимой задачей.
1.2. СИММЕТРИЧНЫЕ МЕТОДЫ КРИПТОГРАФИИ
Симметричные криптосистемы – это системы, использующие способ шифрования, при котором для шифрования и дешифрования применяется один и тот же криптографический ключ.
Все симметричные криптоалгоритмы подразделяются на два вида – потоковые и блочные шифры.
Блочные шифры обрабатывают информацию блоками определенной длины (64, 128 бит), применяя к блоку ключ в установленном порядке. Примерами таких алгоритмов могут быть алгоритмы DES, 3DES, ГОСТ 28147–89, AES, RC6, IDEA и другие.
Потоковые шифры зашифровывают открытый текст последова-
тельно бит за битом. Генератор ключевой последовательности, ино-
гда называемый генератором бегущего ключа, выдает последовательность бит k1, k2 ,..., ki . Эта ключевая последовательность склады-
вается по модулю 2 с последовательностью бит исходного текста p1, p2 ,..., pi для получения шифрованного текста: ci pi ki .
При дешифровании шифротекст складывается по модулю 2 с идентичной ключевой последовательностью для получения исходного тек-
ста: ci ki pi ki ki pi .
6
Стойкость системы целиком зависит от внутренней структуры генератора ключевой последовательности. Если генератор выдает последовательность с небольшим периодом, то стойкость системы будет невелика. Напротив, если генератор будет выдавать бесконечную последовательность истинно случайных бит, то получится одноразовый блокнот с идеальной стойкостью.
Примеры потоковых шифров: шифр Вернама, алгоритмы RC4, SEAL, WAKE. Потоковый шифр может быть также легко создан на основе блочного, запущенного в специальном режиме (например, ГОСТ 2814789 в режиме гаммирования).
Достоинства симметричных криптосистем:
1)скорость;
2)простота реализации;
3)меньшая требуемая длина ключа для сопоставимой криптостойкости;
4)изученность.
Недостатки симметричных криптосистем:
1)сложность управления ключами в большой сети (означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать. Для сети в 10 абонентов требуется
45 ключей, для 100 – уже 4950, для 1000 – 499 500 и т. д.);
2)сложность обмена ключами (для применения необходимо решить проблему надежной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам).
1.3. АСИММЕТРИЧНЫЕ МЕТОДЫ КРИПТОГРАФИИ
Асимметричная криптосистема (или криптосистема с откры-
тым ключом) – это система шифрования, при которой открытый ключ передается по открытому (т. е. незащищенному, доступному для наблюдения) каналу и используется для шифрования сообщения, при этом для дешифрования сообщения используется секретный ключ.
Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частно-
7
сти, в протоколе TLS и его предшественнике SSL (лежащих в основе
HTTPS), в SSH.
Примеры асимметричных криптоалгоритмов: RSA, DSA, алгоритм Эль-Гамаля и др.
Достоинства асимметричных криптосистем:
1)не нужно каждый раз передавать ключ дешифрования по сети;
2)не обязательно обновлять ключ после каждого применения;
3)в больших сетях количество ключей минимальное.
Недостатки асимметричных криптосистем:
1)скорость работы и требовательность к вычислительным ресур-
сам;
2)для обеспечения одинаковой криптостойкости требуются более длинные ключи (по сравнению с симметричными алгоритмами):
В таблице приведены длины ключей для симметричных и асимметричных алгоритмов.
Длина ключа, обеспечивающего сопоставимую криптостойкость
Длина ключа симметричного |
Длина ключа асимметричного |
алгоритма, |
алгоритма, |
бит |
бит |
|
|
56 |
384 |
|
|
64 |
512 |
|
|
80 |
768 |
|
|
112 |
1792 |
|
|
128 |
2304 |
|
|
1.4. ХЭШ-ФУНКЦИИ
Хэширование, или хэш-функция, – преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Результат хэширования называют хэшем или
дайджестом сообщения.
8
Хэширование применяется для сравнения данных: если у двух массивов хэш-коды разные, то массивы гарантированно различаются; если одинаковые, то массивы, скорее всего, одинаковы. В общем случае однозначного соответствия между исходными данными и хэш-кодом нет, поскольку количество значений хэш-функций меньше, чем вариантов входного массива.
Коллизией хэш-функции H называются два различных входных блока данных x и y таких, что H (x) H ( y) .
Криптографической хэш-функцией называется всякая хэш-функ-
ция, являющаяся криптостойкой, т. е. удовлетворяющая ряду требований, специфичных для криптографических приложений.
Примерами хэш-функций общего назначения служат алгоритмы
CRC32, TTH.
Примерами криптографических хэш-функций могут быть алгорит-
мы MD5, SHA2, RIPEMD, Skein, Tiger, Whirlpool, ГОСТ Р 34.1194.
1.5. ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ
Электронная цифровая подпись (ЭЦП) – реквизит электронного документа, позволяющий установить отсутствие искажения информации в электронном документе с момента формирования ЭЦП и проверить принадлежность подписи владельцу сертификата ключа ЭЦП. Значение реквизита получается в результате криптографического преобразования информации с использованием закрытого ключа ЭЦП.
Использование цифровой подписи позволяет:
1)аутентифицировать лицо, подписавшее документ;
2)контролировать целостность передаваемого документа;
3)защищать документ от изменений (подделки);
4)доказывать невозможность отказа от авторства;
5)доказательно подтверждать авторство документа.
Поскольку подписываемые документы – переменного (и, как правило, достаточно большого) объема, в схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи. Сами по себе хэш-
9
функции не являются частью алгоритма ЭЦП, поэтому в схеме может быть использована любая надежная хэш-функция.
Примеры схем электронной цифровой подписи: алгоритм RSA, схема Эль-Гамаля, американский стандарт ЭЦП DSA, российский стандарт ЭЦП ГОСТ Р 34.102001.
1.6. КРИПТОГРАФИЧЕСКИЕ ГЕНЕРАТОРЫ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
Случайные числа и их генераторы являются неотъемлемыми элементами современных криптосистем. Приведем примеры использования случайных чисел в криптологии:
сеансовые и другие ключи для симметричных криптосистем, та-
ких как DES, ГОСТ 2814789, Blowfish;
стартовые значения для программ генерации ряда математических величин в асимметричных криптосистемах, например, больших простых чисел в RSA, El-Gamal;
случайные слова, комбинируемые с парольными словами для нарушения атаки угадывания пароля криптоаналитиком;
вектор инициализации для блочных криптосистем, работающих
врежиме обратной связи;
случайные значения параметров для многих систем электронной цифровой подписи, например, DSA;
случайные выборы в протоколах аутентификации, например, в протоколе Kerberos;
случайные параметры протоколов для обеспечения уникальности различных реализаций одного и того же протокола, например, в прото-
колах SET и SSL.
Генератор последовательности псевдослучаен, если создаваемая им последовательность выглядит случайной, т. е. проходит все статистические тесты случайности. Последовательность называется крип-
тографически безопасной псевдослучайной последовательностью,
если она непредсказуема, т. е. вычислительно неосуществимо предсказать следующий бит, имея полное знание алгоритма (или аппаратуры) и всех предшествующих битов потока.
10
