Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 20:12, курс лекций
Автономно работающий компьютер можно эффективно защитить от внешних покушений разнообразными способами, например просто запереть на замок клавиатуру или снять жесткий накопитель и поместить его в сейф. Компьютер, работающий в сети, по определению не может полностью отгородиться от мира, он должен общаться с другими компьютерами, возможно, даже удаленными от него на большое расстояние, поэтому обеспечение безопасности в сети является задачей значительно более сложной. Логический вход чужого пользователя в ваш компьютер является штатной ситуацией, если вы работаете в сети.
Основные понятия безопасности
Конфиденциальность, целостность и доступность данных
Классификация угроз
Системный подход к обеспечению безопасности
Политика безопасности
Базовые технологии безопасности
Шифрование
Аутентификация, авторизация, аудит
Технология защищенного канала
Технологии аутентификации
Сетевая аутентификация на основе многоразового пароля
Аутентификация с использованием одноразового пароля
Аутентификация на основе сертификатов
Аутентификация информации
Система Kerberos
Первичная аутентификация
Получение разрешения на доступ к ресурсному серверу
Получение доступа к ресурсу
Достоинства и недостатки
Выводы
Задачи и упражнения
Любая процедура шифрования, превращающая информацию из обычного «понятного» вида в «нечитабельный» зашифрованный вид, естественно, должна быть дополнена процедурой дешифрирования, которая, будучи примененной к зашифрованному тексту, снова приводит его в понятный вид. Пара процедур — шифрование и дешифрирование — называется криптосистемой.
Информацию, над которой выполняются функции шифрования и дешифрирования, будем условно называть «текст», учитывая, что это может быть также числовой массив или графические данные.
В современных алгоритмах
шифрования предусматривается Наличие
параметра — секретного ключа. В
криптографии принято правило Керкхоффа:
«Стойкость шифра должна определяться
только секретностью ключа». Так, все
стандартные алгоритмы
Алгоритм шифрования считается раскрытым, если найдена процедура, позволяющая подобрать ключ за реальное время. Сложность алгоритма раскрытия является одной из важных характеристик криптосистемы и называется криптостойкостъю.
Существуют два класса криптосистем — симметричные и асимметричные. В симметричных схемах шифрования (классическая криптография) секретный ключ зашифровки совпадает с секретным ключом расшифровки. В асимметричных схемах шифрования (криптография с открытым ключом) открытый ключ зашифровки не совпадает с секретным ключом расшифровки.
Симметричные алгоритмы шифрования
На рис. 11.1 приведена классическая модель симметричной криптосистемы, теоретические основы которой впервые были изложены в 1949 году в работе Клода Шеннона. В данной модели три участника: отправитель, получатель, злоумышленник. Задача отправителя заключается в том, чтобы по открытому каналу передать некоторое сообщение в защищенном виде. Для этого он на ключе k зашифровывает открытый текст X и передает шифрованный текст Y. Задача получателя заключается в том, чтобы расшифровать Y и прочитать сообщение X. Предполагается, что отправитель имеет свой источник ключа. Сгенерированный ключ заранее по надежному каналу передается получателю. Задача злоумышленника заключается в перехвате и чтении передаваемых сообщений, а также в имитации ложных сообщений.
Рис. 11.1. Модель симметричного шифрования
Модель является универсальной — если зашифрованные; данные хранятся в компьютере и никуда не передаются, отправитель и получатель совмещаются в одном лице, а в роли злоумышленника выступает некто, имеющий доступ к компьютеру в ваше отсутствие.
Наиболее популярным стандартным симметричным алгоритмом шифрования данных является DES (Data Encryption Standard). Алгоритм разработан фирмой IBM и в 1976 году был рекомендован Национальным бюро стандартов к использованию в открытых секторах экономики. Суть этого алгоритма заключается в следующем (рис. 11.2).
Данные шифруются поблочно.
Перед шифрованием любая форма
представления данных преобразуется
в числовую. Эти числа получают
путем любой открытой процедуры
преобразования блока текста в число.
Например, ими могли бы быть значения
двоичных чисел, полученных слиянием ASCII-кодов
последовательных символов соответствующего
блока текста. На вход шифрующей
функции поступает блок данных размером
64 бита, он делится пополам на левую
(L) и правую (R) части. На первом этапе
на место левой части
Рис. 11.2. Схема шифрования по алгоритму DES
Вот уже в течение двух
десятков лет алгоритм DES испытывается
на стойкость. И хотя существуют примеры
успешных попыток «взлома» данного
алгоритма, в целом можно считать,
что он выдержал испытания. Алгоритм
DES широко используется в различных
технологиях и продуктах
В симметричных алгоритмах
главную проблему представляют ключи.
Во-первых, криптостойкость многих
симметричных алгоритмов зависит от
качества ключа, это предъявляет
повышенные требования к службе генерации
ключей. Во-вторых, принципиальной является
надежность канала передачи ключа второму
участнику секретных
Несимметричные алгоритмы шифрования
В середине 70-х двое ученых — Винфилд Диффи и Мартин Хеллман — описали принципы шифрования с открытыми ключами.
Особенность шифрования на основе открытых ключей состоит в том, что одновременно генерируется уникальная пара ключей, таких, что текст, зашифрованный одним ключом, может быть расшифрован только с использованием второго ключа и наоборот.
В модели криптосхемы с открытым ключом также три участника: отправитель, получатель, злоумышленник (рис. 11.3). Задача отправителя заключается в том, чтобы по открытому каналу связи передать некоторое сообщение в защищенном виде. Получатель генерирует на своей стороне два ключа: открытый Е и закрытый D. Закрытый ключ D (часто называемый также личным ключом) абонент должен сохранять в защищенном месте, а открытый ключ Е он может передать всем, с кем он хочет поддерживать защищенные отношения. Открытый ключ используется для шифрования текста, но расшифровать текст можно только с помощью закрытого ключа. Поэтому открытый ключ передается отправителю в незащищенном виде. Отправитель, используя открытый ключ получателя, шифрует сообщение X и передает его получателю. Получатель расшифровывает сообщение своим закрытым ключом D.
Очевидно, что числа, одно из которых используется для шифрования текста, а другое — для дешифрирования, не могут быть независимыми друг от друга, а значит, есть теоретическая возможность вычисления закрытого ключа по открытому, но это связано с огромным количеством вычислений, которые требуют соответственно огромного времени. Поясним принципиальную связь между закрытым и открытым ключами следующей аналогией.
Рис. 11.3. Модель криптосхемы с открытым ключом
Пусть абонент 1 (рис. 11.4, а) решает
вести секретную переписку со
своими сотрудниками на малоизвестном
языке, например санскрите. Для этого
он обзаводится санскритско-
На рис. 11.4, б показана другая схема использования открытого и закрытого ключей, целью которой является подтверждение авторства (аутентификация или электронная подпись) посылаемого сообщения. В этом случае поток сообщений имеет обратное направление — от абонента 1, обладателя закрытого ключа D, к его корреспондентам, обладателям открытого ключа Е. Если абонент 1 хочет аутентифицировать себя (поставить электронную подпись), то он шифрует известный текст своим закрытым ключом D и передает шифровку своим корреспондентам. Если им удается расшифровать текст открытым ключом абонента 1, то это доказывает, что текст был зашифрован его же закрытым ключом, а значит, именно он является автором этого сообщения. Заметим, что в этом случае сообщения S2, S3, 84, адресованные разным абонентам, не являются секретными, так как все они — обладатели одного и того же открытого ключа, с помощью которого они могут расшифровывать все сообщения, поступающие от абонента 1.
Если же нужна взаимная аутентификация и двунаправленный секретный обмен сообщениями, то каждая из общающихся сторон генерирует собственную пару ключей и посылает открытый ключ своему корреспонденту.
Для того чтобы в сети
все п абонентов имели
Рис. 11.4. Две схемы использования открытого и закрытого ключей
Хотя информация об открытом
ключе не является секретной, ее нужно
защищать от подлогов, чтобы злоумышленник
под именем легального пользователя
не навязал свой открытый ключ, после
чего с помощью своего закрытого
ключа он может расшифровывать все
сообщения, посылаемые легальному пользователю
и отправлять свои сообщения от его
имени. Проще всего было бы распространять
списки, связывающие имена
В настоящее время одним из наиболее популярных криптоалгоритмов с открытым ключом является криптоалгоритм RSA.
Криптоалгоритм RSA
В 1978 году трое ученых (Ривест, Шамир и Адлеман) разработали систему шифрования с открытыми ключами RSA (Rivest, Shamir, Adleman), полностью отвечающую всем принципам Диффи-Хеллмана. Этот метод состоит в следующем:
1. Случайно выбираются два очень больших простых числа р и q.
2. Вычисляются два произведения n=pxq и nr=(p-l)x(q-l).
3. Выбирается случайное целое число Е, не имеющее общих сомножителей с m.
4. Находится D, такое, что DE=1 по модулю m.
5. Исходный текст, X, разбивается на блоки таким образом, чтобы 0<Х<n.
6. Для шифрования сообщения необходимо вычислить С=ХЕ по модулю n.
7. Для дешифрирования вычисляется X=CD по модулю n.
Таким образом, чтобы зашифровать сообщение, необходимо знать пару чисел (Е,-п), а чтобы дешифрировать — пару чисел (D, n). Первая пара — это открытый ключ, а вторая — закрытый.
Зная открытый ключ (Е, n),
можно вычислить значение закрытого
ключа D. Необходимым промежуточным
действием в этом преобразовании
является нахождение чисел р и q,
для чего нужно разложить на простые
множители очень большое число
n, а на это требуется очень
много времени. Именно с огромной
вычислительной сложностью разложения
большого числа на простые множители
связана высокая
Программная реализация криптоалгоритмов типа RSA значительно сложнее и менее производительна, чем реализация классических криптоалгоритмов типа DES. Вследствие сложности реализации операций модульной арифметики криптоалгоритм RSA часто используют только для шифрования небольших объемов информации, например для рассылки классических секретных ключей или в алгоритмах цифровой подписи, а основную часть пересылаемой информации шифруют с помощью симметричных алгоритмов.
В табл. 11.1 приведены некоторые сравнительные характеристики классического криптоалгоритма DES и криптоалгоритма RSA.
Таблица 11.1. Сравнительные характеристики алгоритмов шифрования
Характеристика |
DES |
RSA |
Скорость шифрования |
Высокая |
Низкая |
Используемая функция шифрования |
Перестановка и подстановка |
Возведение в степень |
Длина ключа |
56 бит |
Более 500 бит |
Наименее затратный |
Перебор по всему ключевому пространству |
Разложение числа на простые множители |
Время генерации ключа |
Миллисекунды |
Минуты |
Тип ключа |
Симметричный |
Асимметричный |