Амелин Р.В.Информационная безопасностьэлектронный учебник |
Оглавление
Установочный модуль
Модуль 1 Глава 1.Введение в информационную безопасность Глава 2. Принципы построения защищенной АИС Глава 3. Модели безопасности Тест к модулю 1 Модуль 2 Глава 4.Введение в криптографию. Симметричное шифрование Тест к модулю 2 Модуль 3 Глава 5.Шифрование с открытым ключом. ЭЦП Глава 6.
Тест к модулю 3
Криптографические протоколы Модуль 4 Глава 7.Парольная защита Глава 8. Компьютерные вирусы и борьба с ними Глава 9. Средства защиты сети Тест к модулю 4 Практические задания Глоссарий Список литературы Актуальные проблемы уголовно-правовой борьбы с посягательствами на компьютерную информацию по УК РФ |
|
Глава 6. Криптографические протоколы6.1. Понятие криптографического протоколаПротокол — это последовательность шагов, которые предпринимают две или большее количество сторон для совместного решения некоторой задачи. Все шаги предпринимаются в порядке строгой очередности и ни один из них не может быть сделан прежде, чем закончится предыдущий. Криптографические протоколы используются для выполнения некоторых действий по обмену информацией в ситуации, когда цели участников могут быть нарушены злоумышленником (например, под угрозой оказывается конфиденциальность, целостность или подтверждаемость сообщений). Шаги криптографического протокола позволяют осуществить информационный обмен таким образом, что цели участников оказываются выполненными, а цели злоумышленника — нет. Приведенная в предыдущем разделе последовательность шагов по созданию и проверке электронной цифровой подписи может служить примером протокола, в котором целью участников являются гарантия подлинности сообщения, а целью злоумышленника — его фальсификация. Криптографические протоколы широко используют шифрование, хэширование, односторонние функции, генерацию случайных чисел. 6.2. Протоколы аутентификацииАутентификация пользователей — процесс, с помощью которого одна сторона (проверяющий) убеждается в идентичности другой стороны. Протоколы аутентификации должны обеспечивать защиту от потенциального злоумышленника, цель которого — выдать себя за другого пользователя. В частности, протокол аутентификации не должен позволить проверяющему получить такую информацию о стороне, доказывающей свою подлинность (аутентичность), которая впоследствии помогла бы ей выдать себя за нее. Все протоколы аутентификации можно разбить на три класса:
Также протоколы аутентификации классифицируются по уровню обеспечиваемой безопасности: 1.Простая аутентификация (на основе паролей). Самый простой вариант такой аутентификации — когда система хранит пароли в открытом виде в специальном файле и сравнивает с ними пароль, вводимый пользователем при входе в систему. С точки зрения безопасности такой подход очень уязвим: файл с паролями может быть похищен злоумышленником. Поэтому гораздо надежнее, когда в специальном файле хранятся только хэши паролей. Когда пользователь вводит пароль, вычисляется его хэш с сравнивается. Если злоумышленник похитит файл, содержащихся в нем хэшей будет недостаточно, чтобы восстановить пароли. 2.Строгая аутентификация (на основе криптографических методов). Чаще всего заключается в том, что пользователь идентифицируется по признаку владения некоторым закрытым ключом, но сам ключ в ходе протокола не раскрывается. 3.Протоколы доказательства с нулевым разглашением. Рассмотрим примеры протоколов: Строгая односторонняя аутентификация на основе случайных чисел. Обе стороны разделяют ( им известен) общий ключ K и выбрали симметричный алгоритм шифрования.
Если злоумышленник перехватывает отправляемые по сети сообщения, он не сможет воспользоваться ими, чтобы выдать себя за A или B, поскольку ключ K в явном виде не передается, а каждый сеанс аутентификации использует новое случайное число. Строгая двусторонняя аутентификация на основе случайных чисел. Двусторонность означает, что во время сеанса аутентификации обе стороны убеждаются в подлинности друг друга. Обмен сообщениями происходит по следующей схеме:
Аутентификация на основе асимметричного алгоритма.
6.3. Протоколы обмена ключамиПротокол обмена ключами — это такой протокол, с помощью которого знание некоторого секретного ключа (который может впоследствии использоваться для шифрования с помощью симметричного алгоритма) разделяется между двумя или более сторонами, причем противник, имеющий возможность перехватывать пересылаемые сообщения, не способен этот ключ получить. Различают три вида протоколов обмена ключами: протоколы передачи (уже сгенерированных) ключей, протоколы совместной выработки общего ключа и схемы предварительного распределения ключей. Схема предварительного распределения ключей состоит из двух алгоритмов: распределения исходной ключевой информации и формирования ключа. С помощью первого алгоритма генерируется открытая часть исходной ключевой информации, которая размещается на общедоступном сервере и секретные части (для каждой стороны). Второй предназначен для вычисления действующего ключа для взаимодействия между абонентами по имеющимся у них секретной и общей открытой части исходной ключевой информации. Применяется для уменьшения объема хранимой и распределяемой секретной ключевой информации. Схема предварительного распределения ключей должна быть устойчивой, то есть учитывать возможность раскрытия части ключей при компрометации (утечке), обмане или сговоре части абонентов и гибкой — допускать возможность быстрого восстановления путем удаления скомпрометированных ключей и подключения новых абонентов [9]. Один из самых известных протоколов обмена ключами — алгоритм Диффи-Хеллмана. Он является весьма надежным для обмена ключами по каналу, исключающему возможность модификации (т.е. злоумышленник имеет возможность перехватывать данные, но не изменять их). Стойкость алгоритма проистекает из сложности дискретного логарифмирования: не существует эффективного алгоритма решения уравнения ax mod n = b (для простого n такое x < n существует и единственно).
Нетрудно заметить, что, располагая значениями v, n, vx mod n и vy mod n, но не зная x и y, злоумышленник не может вычислить ключ vxy mod n. 6.4. Специфические протоколыПротоколы аутентификации и протоколы обмена ключами — наиболее многочисленные классы криптографиечских протоколов. Однако существует ряд протоколов, предназначенных для решения других специфических задач, в частности: Протоколы голосования. Предназначены для обеспечения проведения выборов, в ходе которых каждый участник может анонимно подать свой голос. При этом ни один участник не может проголосовать дважды; голосовать могут только зарегистрированные участники; каждый участник может проверить, правильно ли учтен его голос. Протокол безопасного голосования основывается на использовании двух доверенных сторон — агентства по проверке голосующего T1 и агентства для подведения итогов голосования T2. Перед проведением голосования T1 должно отослать T2 список всех разрешенных идентификаторов участников голосования. Каждый голосующий (i) посылает T1 некоторую идентифицирующую его информацию, после чего, если голосующему разрешено голосовать, то T1 отправляет ему значение E1(i) — идентификатор голосующего и фиксирует факт участия в выборах. Далее голосующий вычисляет секретный идентификатор E2(i) и результат голосования E3(i) и посылает T2 набор (E1(i), E2(i), E3(i)). T2 проверяет, существует ли E1(i) в списке разрешенных идентификаторов голосующих; если существует, то добавляет E2(i) к списку голосующих за E3(i). Преобразования E1, E2, и E3 основаны на асимметричных алгоритмах или необратимых функциях [16]. Протоколы одновременной подписи. Цель участников: подписать некоторый документ таким образом, чтобы каждая сторона имела гарантию, что если она поставит свою подпись, это сделает и другая сторона. При этом участники могут быть удалены друг отдруга и подписывать документ при помощи ЭЦП. Протоколы групповой подписи. Только члены группы могут подписывать сообщение, при этом получатель подписи может убедиться, что сообщение подписано членом группы, но не может определить — каким именно. Тем не менее, при споре подпись может быть раскрыта для определения личности подписавшего. Самый простой протокол групповой подписи — с использованием доверенного арбитра. Арбитр генерирует большое количество пар открытых и закрытых ключей и раздает их членам группы (по m ключей каждому из n членов). Список открытых ключей публикуется. Чтобы подписать сообщение, член группы выбирает любой из своих закрытых ключей. Чтобы убедиться, что сообщение подписано одним из членов группы, достаточно проверить, что открытый ключ, с помощью которого проверяется ЭЦП, входит в набор открытых ключей группы. Наконец, проверка личности подписавшего определяется посредством обращения к арбитру. Единственная слабость этого протокола — сам арбитр, который может подделывать подписи всех участников. Неоспариваемая подпись. Отличается от обычной цифровой подписи тем, что для ее проверки необходимо разрешение подписавшего. Слепая подпись. Обладает свойствами электронной цифровой подписи, но при этом подписывающий не может ознакомиться с содержанием документа (пример: заверение завещания у нотариуса). Протоколы разделения секрета. Позволяют разделить сообщение на несколько частей между членами группы таким образом, что каждый член группы не сможет извлечь никакой информации из своей части и только собравшись вместе участники группы смогут прочитать сообщение. Наиболее распространенный протокол разделения секрета требует участия арбитра, который генерирует множество бессмысленных сообщений, которые дают исходное, будучи сложенными вместе операцией XOR. Например, чтобы разделить сообщение между двумя участниками арбитр генерирует случайное число R той же длины, что и исходное сообщение M, а затем вычисляет R 6.5. Генерация случайных чиселБольшое значение для криптографии имеет генерация истинно случайных (непредсказуемых) чисел. Случайные числа используются при генерации сеасовых ключей (а также открытых и закрытых ключей асимметричных алгоритмов), во многих криптографических протоколах. Многие приложения имеют уязвимости связанные именно с предсказуемостью генерируемых паролей, сеансовых ключей и т.д. Проблема заключается в том, что программное приложение не может генерировать абсолютно случайные числа в силу свойства детерминированности алгоритма. Поэтому для целей криптографии используются генераторы псевдослучайных чисел. Генератор псевдослучайных чисел (ГПСЧ) — алгоритм, генерирующий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному). Криптографически стойкие генераторы псевдослучайных чисел должны обладать следующими свойствами:
Рассмотрим примеры ГПСЧ: 1. Линейный конгруэнтный генератор. Выбираются три константы m > 0 (модуль), a (множитель) и c (приращение), такие что 0 xn+1 = (axn + c) mod m При этом число m должно быть очень большим, для a предпочтительный диапазон 0.01 2. Смешанный квадратичный генератор. Применяется для генерации битовой последовательности b1, b2, ... по следующим соотношениям: xn+1 = xn2 mod m, bn = xn * z mod 2, где произведение x * z — скалярное произведение чисел x и z, представленных в двоичной форме, т.е. Кроме того m должно представлять собой произведение двух больших простых чисел вида 4k + 3, а x0 взаимно просто с m. В мощных криптосистемах военного применения используются действительно случайные генераторы чисел, основанные на физических процессах. Они представляют собой платы, либо внешние устройства, подключаемые к ЭВМ через порт ввода-вывода. Два основных источника белого Гауссовского шума – высокоточное измерение тепловых флуктуаций и запись радиоэфира на частоте, свободной от радиовещания. назад | оглавление | вперед
|