
- •Введение
- •Основные понятия и определения.
- •Основные виды угроз интересам коммерческого банка
- •Обеспечение безопасности информационных систем
- •Этапы создания системы безопасности
- •Системы контроля и управления доступом. Структура и компоненты систем контроля и управления доступом.
- •Принцип функционирования системы контроля и управления доступом
- •Системы охраны периметров
- •Типы периметральных систем
- •Защита информации от утечки за счёт побочного электромагнитного излучения и наводок (пэмин)
- •Криптографическая защита информации. Принципы кодирования информации
- •Традиционная криптография
- •Основные понятия и терминология криптологии
- •Классификация криптографических систем
- •Тpебования к кpиптосистемам
- •Потоковое шифрование. Скремблеры.
- •Современные симметричные криптосистемы.
- •Алгоритм aes
- •Криптография с открытым ключом
- •Комбинированные (гибридные) системы.
- •Стеганография
- •Идентификация и установление подлинности. Объект идентификации и установления подлинности.
- •Идентификация и установление подлинности пользователя.
- •Идентификация и установление подлинности электронных документов – цифровая подпись.
- •Управление криптографическими ключами.
- •Управление ключами в симметричных криптосистемах.
- •Управление ключами в асимметричных системах.
- •Цифровые сертификаты
- •Защита от вредоносных программ
- •Сетевые черви
- •Троянские программы
- •Эволюция сетей - эволюция вирусов
- •Антивирусные средства
- •Сетевая безопасность. Методы и средства защиты от удаленных атак через сеть Internet. Возможные атаки в сети.
- •Межсетевой экран
- •Фильтры пакетов
- •Шлюзы сеансового уровня
- •Шлюзы прикладного уровня
- •Прокси-сервер
- •Средства анализа защищенности
- •Сканирование
- •Зондирование
- •Проверка заголовков
- •Имитация атак
- •Краткий обзор брандмауэров
- •Антихакер Касперского
- •Обеспечение безопасности электронных платежей через сеть Internet.
- •Основные методы защиты.
- •Литература
- •Приложение 1 Арифметика в классах вычетов (модулярная арифметика)
- •Вычисление обратной величины
Управление криптографическими ключами.
Любая криптографическая система основана на использовании криптографических ключей.
Управление ключами - информационный процесс, включающий реализацию следующих основных функций:
-генерация ключей;
-хранение ключей;
-распределение ключей.
Управление ключами в симметричных криптосистемах.
Генерация ключей.
Добротные криптографические ключи должны иметь достаточную длину и случайные значения битов.
Для получения ключей используются аппаратные и программные средства генерации случайных значений. Как правило, применяют датчики псевдослучайных чисел. Идеальными генераторами являются устройства на основе "натуральных" случайных процессов, например на основе белого радиошума.
В ИС со средними требованиями защищенности вполне приемлимы программные генераторы ключей, которые вычисляют псевдослучайное значение как сложную функцию от текущего времени и (или) числа, введенного пользователем.
Один из методов генерации сеансового ключа для симметричных криптосистем описан в стандарте ANSI X9.17.
Он предполагает использование алгоритма DES (можно и другие симметричные алгоритмы шифрования).
Схема генерации случайного ключа Ri = DESK(DESK(Ti)Vi):
K - ключ, зарезервированный для генерации секретных ключей;
Т - временная отметка;
V0 - секретное 64-битовое начальное число. Следующее значение Vi+1 вычисляют так: Vi+1 = DESK(DESK(Ti)Ri)
Если необходим 128-битовый ключ, генерируют пару ключей Ri и Ri+1 и объединяют их.
Если ключ не меняется регулярно, это может привести к раскрытию и утечке информации. Регулярную замену ключа можно осуществить, используя процедуру модификации ключа.
Модификация ключа - это генерирование нового ключа из предыдущего значения с помощью однонаправленной функции. Новое значение не пересылается между участниками, а вычисляется ими одновременно.
Процедура модификации не обеспечивает повышения безопасности нового ключа, т.к. если злоумышленнику известен прежний ключ, то он сможет выполнить процедуру модификации.
Хранение ключей.
Под функцией хранения ключей понимают организацию их безопасного хранения, учета и удаления. Вопросам безопасного хранения ключей следует уделять особое внимание.
Секретные ключи никогда не должны записываться в явном виде, только в зашифрованном.
Необходимость в хранении и передаче ключей, зашифрованных с помощью других ключей, приводит к концепции иерархии ключей. В стандарте ISO8532 изложен метод, суть которого состоит в том, что вводится иерархия ключей: главный ключ (ГК), ключ шифрования ключей (КК), ключ шифрования данных (КД).
Иерархия ключей может быть:
-двухуровневой (КК/КД);
-трехуровневой(ГК/КК/КД).
Самым нижним уровнем являются рабочие или сеансовые ключи КД, которые используются для шифрования данных, персональных идентификационных номеров (ПИН) и аутентификации сообщений. Когда эти ключи надо защитить при передаче или хранении, используют ключи следующего уровня - КК. Ключи шифрования ключей никогда не должны использоваться как сеансовые, и наоборот.
Стандарт устанавливает, что различные типы рабочих ключей должны всегда шифроваться с помощью различных версий КК.
КК, используемые для пересылки ключей между узлами связи, известны также как ключи обмена между узлами сети (cross domain keys). Обычно в канале используются два ключа для обмена между узлами сети, по одному в каждом направлении.
На верхнем уровне иерархии ключей располагается главный ключ, мастер-ключ. Этот ключ применяют для шифрования КК. Обычно в ИС используется только одни мастер-ключ. ГК распространяется неэлектронным способом - при личном контакте, чтобы исключить его перехват. Раскрытие противником ГК полностью уничтожает защиту ИС.
Значение мастер-ключа фиксируется на длительное время (до нескольких недель или меяцев). ГК помещают в защищенный по считыванию и записи и от механических воздействий блок криптографической системы так, чтобы раскрыть значение этого ключа было невозможно. Однако все же должен существовать способ проверки, является ли значение ключа правильным. Один из способов аутентификации: администратор, получив новое значение мастер- ключа, шифрует некоторое сообщение этим ключом. Пара криптограмма-сообщение помещается в память. Всякий раз, когда требуется аутентификация мастер-ключа, берется сообщение из памяти и подается в криптографическую систему. Получаемая криптограмма сравнивается с криптограммой, хранящейся в памяти. Если они совпадают, считается, что данный ключ является правильным.
Рабочие ключи обычно создаются с помощью псевдослучайного генератора и могут храниться в незащищенном месте. Это возможно, поскольку такие ключи генерируются в форме соответствующих криптограмм, т.е. генератор выдает вместо КS его криптограмму, полученную с помощью мастер-ключа. Расшифрование такой криптограммы выполняется только перед использованием ключа КS. Криптографическая система сначала восстанавливает ключ КS, а затем шифрует сообщение М, используя открытую форму сеансового ключа КS .
Криптографический блок может быть спроектирован как единая СБИС и помещен в физически защищенное место.
Важное условие - периодическое обновление ключевой информации в ИС. При этом должны переназначаться как рабочие ключи, так и мастер-ключи. В особо ответственных ИС обновление ключевой информации желательно делать ежедневно.
Распределение ключей.
Распределение ключей - самый ответственный процесс в управлении ключами. К нему предъявляются следующие требования:
-оперативность и точность распределения;
-скрытность распределяемых ключей.
Распределение ключей реализуется двумя способами:
Использование одного или нескольких центров распределения ключей.
Прямым обменом сеансовыми ключами между пользователями.
Недостаток первого - возможны злоупотребления, т.к. центру известны все ключи, и соответственно, доступны все сообщения.
Недостаток второго - проблема надежной аутентификации субъектов сети.
В обоих случаях должна быть обеспечена подлинность сеанса связи. Это можно осуществить используя один из механизмов:
механизм запроса-ответа: А включает в посылаемое сообщение (запрос) для В непредсказуемый элемент (например, случайное число). При ответе В должен выполнить некоторую операцию над этим элементом (например, +1), что невозможно выполнить заранее, поскольку неизвестно, какое случайное число придет в запросе. После получения ответа В пользователь А может быть уверен, что сеанс является подлинным.
механизм отметки времени предполагает фиксацию времени для каждого сообщения. Это позволяет определить, насколько старо пришедшее сообщение, и отвергнуть его, если появится сомнение в его подлинности. Необходимо установить допустимый временной интервал задержки.
В обоих случаях используют шифрование.
Целесообразно отделить процедуру подтверждения подлинности партнеров от процедуры собственно распределения ключей. После установления подлинности участники сами формируют сеансовый ключ без участия центра распределения ключей с тем, чтобы распределитель ключей не имел возможности выявить содержание сообщений.
Распределение ключей с участием центра распределения ключей.
При включении в процесс распределения ключей ЦРК осуществляется его взаимодействие с одним или обоими участниками сеанса с целью распределения секретных или открытых ключей, предназначенных для использования в последующих сеансах связи.
Протокол для симметричных криптосистем с использованием отметок времени:
1.Каждый из участников сеанса А и В имеет уникальный идентификатор (IA, IB) и мастер ключ (Ka, Kb), известный только ему и ЦРК. Эти мастер ключи генерируются в ЦРК и распределяются каждому объекту при личном контакте. Мастер-ключ используется для шифрования сеансового ключа Ks, когда последний передается по сети. Сеансовый ключ генерируется в ЦРК и используется участниками сеанса для защиты сообщений при передаче по линиям связи.
А ЦРК : IA, E Кa(IB, "Прошу связь с В").
В ЦРК имеются таблицы идентификаторов и соответствующих им мастер-ключей.
ЦРК разыскивает мастер - ключ Кb и вычисляет сеансовый ключ Кs.
ЦРК А : EKa(T,Ks,IB,EKb(T,Ks,IA))
А расшифровывает, проверяет отметку времени, чтобы убедиться, что это сообщение не является повтором предыдущей процедуры распределения ключей, сохраняет у себя сеансовый ключ и посылает В зашифрованную часть сообщения, а также случайное число r, зашифрованное сеансовым ключом Ks.
А В : EKb(T,Ks,IA), E Ks(r)
В расшифровывает, проверяет отметку времени. Верная отметка времени и уникальный идентификатор А, зашифрованные ключом Kb, обеспечивают подтверждение подлинности А по отношению к В.
В расшифровывает r и посылает сообщение, зашифрованное сеансовым ключом и содержащее некоторую функцию от случайного числа f(r) (например, r-1):
В А : ЕKs(f(r))
После расшифрования А получает подтверждение, что на другом конце связи действительно В.
Далее связь идет с сеансовым ключом Ks.
Обмен с ЦРК требуется каждый раз, когда А желает установить связь с В.
Требуется хорошая защита ЦРК.
Прямой обмен ключами между пользователями.
При использовании симметричной криптосистемы, частая смена ключа превращается в серьезную проблему. Use два способа:
use криптосистемы с открытым ключом для шифрования и передачи секретного ключа симметричной криптосистемы (уже рассмотрен).
use системы открытого распределения ключей Диффи-Хеллмана - позволяет обмениваться ключами по незащищенным каналам связи. Принцип близок к сисмемам шифрования с открытым ключом.
Алгоритм открытого распределения ключей Диффи-Хеллмана.
Предложен в1976г. и является первым алгоритмом с открытыми ключами.
Основан на трудности вычисления дискретных логарифмов в конечном поле.
А и В организовывают канал:
Стороны заранее договариваются о модуле N (простое число) и примитивном элементе g (от 1 до N-1), который образует все ненулевые элементы множества ZN, т.е. {g,g2,...,gN-1=1} = ZN-{0}. Эти значения не секретны и являются общими для всех пользователей.
А и В независимо друг от друга выбирают собственные секретные ключи kA и kB - случайные большие целые числа.
А вычисляет открытый ключ yA = gkA (mod N), а В - открытый ключ yB = = gkB (mod N).
А и В обмениваются значениями открытых ключей по незащищенному каналу.
А и В вычисляют общий секретный ключ:
А: К = (yB)kA
B: K' = (yA)kB
При этом К = К'.
Схема реализации алгоритма Диффи-Хеллмана:
Ключ К может использоваться в качестве общего секретного ключа в симметричной криптосистеме.
Кроме того, стороны могут шифровать сообщения, используя следующее преобразование шифрования (типа RSA): С = ЕК(М) = МК (mod N).
Для злоумышленника задача нахождения kA по N, g и yA -задача нахождения дискретного логарифма в конечном поле, которая считается неразрешимой.
Важен выбор N и g. N и (N-1)/2 должны быть простыми числами. g желательно выбирать так, чтобы оно было примитивным элементом множества ZN (в принципе достаточно, чтобы оно генерировало большую подгруппу ).
Этот алгоритм позволяет обойтись без защищенного канала для передачи ключей, однако необходимо иметь гарантию того, что А получил открытый ключ именно от В и наоборот. Это решается с помощью электронной подписи.
Алгоритм позволяет шифровать данные при каждом сеансе на новых ключах и исключить, таким образом, их хранение.
Преимущества по сравнению с RSA: формирование общего секретного ключа происходит в сотни раз быстрее.
Протокол SKIP управления криптоключами.
(Simple Key management for Internet Protokol).
Основан на Диффи-Хеллмана и обладает рядом достоинств:
Высокая степень защиты;
быстрая смена ключей;
поддержка групповой рассылки защищенных сообщений;
модульная замена систем щифрования;
минимальная избыточность.
Принцип: организация множества двухточечных обменов (по алгоритму Диффи-Хеллмана) в компьютерной сети.
Узел I имеет секретный ключ ki и сертифицированный открытый ключ gi mod N.
Подпись сертификата открытого ключа производится при помощи надежного алгоритма (ГОСТ, DSA и др.) . Открытые ключи свободно распространяются ЦРК из общей базы данных.
Для каждой пары узлов I, J вычисляется совместно используемый секретный ключ (обычно в 1024 бита) gij mod N.
Разделяемый ключ Кij вычисляется из gij путем хеширования до согласованной в протоколе длины 64...128 бит.
Узел вычисляет ключ Кij (используемый как ключ шифрования ключей) для относительно длительного применения и размещает его в защищенной памяти.
В сети с n узлами должно храниться и периодически меняться n*(n-1) ключей, что накладывает ограничение на значение n.