Информация. ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ. В. Ф. Шаньгининформационная безопасность компьютерных систем
![]()
|
Глава 5 ПРИНЦИПЫ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ 5.1. Основные понятия криптографической защиты информации Криптография является методологической основой совре менных систем обеспечения безопасности информации в компь ютерных системах и сетях. Исторически криптография (в пере воде с греческого этот термин означает «тайнопись») зародилась как способ скрытой передачи сообщений. Криптография пред ставляет собой совокупность методов преобразования данных, направленных на то, чтобы защитить эти данные, сделав их бес полезными для незаконных пользователей. Такие преобразова ния обеспечивают решение трех главных проблем зашиты дан ных: обеспечение конфиденциальности, целостности и подлин ности передаваемых или сохраняемых данных. Для обеспечения безопасности данных необходимо поддер живать три основные функции: • защиту конфиденциальности передаваемых или хранимых в памяти данных; • подтверждение целостности и подлинности данных; • аутентификацию абонентов при входе в систему и при ус тановлении соединения; Для реализации указанных функций используются крипто графические технологии шифрования, цифровой подписи и ау тентификации. Конфиденциальность обеспечивается с помощью алгоритмов и методов симметричного и асимметричного шифрования, а так же путем взаимной аутентификации абонентов на основе много разовых и одноразовых паролей, цифровых сертификатов, смарт- карт и т. п. Целостность и подлинность передаваемых данных обычно достигается с помощью различных вариантов технологии элек тронной подписи, основанных на односторонних функциях и асимметричных методах шифрования. Аутентификация разрешает устанавливать соединения толь ко между легальными пользователями и предотвращает доступ к средствам сети нежелательных лиц. Абонентам, доказавшим свою легальность (аутентичность), предоставляются разрешен ные виды сетевого обслуживания. Обеспечение конфиденциальности, целостности и подлин ности передаваемых и сохраняемых данных осуществляется пре жде всего правильным использованием криптографических спо собов и средств защиты информации. Основой большинства криптографических средств защиты информации является шиф рование данных. Под шифром понимают совокупность процедур и правил криптографических преобразований, используемых для зашиф- ровывания и расшифровывания информации по ключу шифро вания. Под зашифровыванием информации понимается процесс преобразования открытой информации (исходный текст) в за шифрованный текст (шифртекст). Процесс восстановления ис ходного текста по криптограмме с использованием ключа шиф рования называют расшифровыванием (дешифрованием). Обобщенная схема криптосистемы шифрования показана на рис. 5.1. Исходный текст передаваемого сообщения (или храни мой информации) М зашифровывается с помощью криптогра фического преобразования Е к с получением в результате шифр- текста С: С = Е К(М), где к1 — параметр функции Е, называемый ключом шифрования. Шифртекст С, называемый также криптограммой, содержит исходную информацию М в полном объеме, однако последова тельность знаков в нем внешне представляется случайной и не позволяет восстановить исходную информацию без знания клю ча шифрования к\. Ключ шифрования является тем элементом, с помощью кото рого можно варьировать результат криптографического преобра- Отправитель Получатель Рис. 5.1. Обобщенная схема криптосистемы шифрования зования. Данный элемент может принадлежать конкретному пользователю или группе пользователей и являться для них уни кальным. Зашифрованная с использованием конкретного ключа информация может быть расшифрована только его владельцем (или владельцами). Обратное преобразование информации выглядит следующим образом: М' = Dkj{C). Функция D является обратной к функции Е и производит расшифровывание шифртекста. Она также имеет дополнитель ный параметр в виде ключа к2. Ключ расшифровывания /¾ дол жен однозначно соответствовать ключу к{, в этом случае полу ченное в результате расшифровывания сообщение М' будет эк вивалентно М. При отсутствии верного ключа к2 получить исходное сообщение М' = М с помощью функции D невозможно. Преобразование шифрования может быть симметричным или асимметричным относительно преобразования расшифро вывания. Соответственно различают два класса криптосистем: • симметричные криптосистемы (с единым ключом); • асимметричные криптосистемы (с двумя ключами). 5.2. Симметричные криптосистемы шифрования Исторически первыми появились симметричные криптогра фические системы. В симметричной криптосистеме шифрования используется один и тот же ключ для зашифровывания и рас шифровывания информации. Это означает, что любой, кто имеет доступ к ключу шифрования, может расшифровать сообщение. Соответственно с целью предотвращения несанкционированного раскрытия зашифрованной информации все ключи шифрования в симметричных криптосистемах должны держаться в секрете. Именно поэтому симметричные криптосистемы называют крип тосистемами с секретным ключом — ключ шифрования должен быть доступен только тем, кому предназначено сообщение. Сим метричные криптосистемы называют еще одноключевыми крипто графическими системами, или криптосистемами с закрытым клю чом. Схема симметричной криптосистемы шифрования показана на рис. 5.2. Отправитель Получатель Рис. 5.2. Схема симметричной криптосистемы шифрования Данные криптосистемы характеризуются наиболее высокой скоростью шифрования, и с их помощью обеспечиваются как конфиденциальность и подлинность, так и целостность переда ваемой информации [31]. Конфиденциальность передачи ин формации с помощью симметричной криптосистемы зависит от надежности шифра и обеспечения конфиденциальности ключа шифрования. Обычно ключ шифрования представляет собой файл или массив данных и хранится на персональном ключевом носителе, например дискете или смарт-карте; обязательно принятие мер, обеспечивающих недоступность персонального ключевого носи теля кому-либо, кроме его владельца. Подлинность обеспечивается за счет того, что без предвари тельного расшифровывания практически невозможно осущест вить смысловую модификацию и подлог криптографически за крытого сообщения. Фальшивое сообщение не может быть пра вильно зашифровано без знания секретного ключа. Целостность данных обеспечивается присоединением к пе редаваемым данным специального кода (имитовставки), выраба тываемой по секретному ключу. Имитовставка является разно видностью контрольной суммы, т. е. некоторой эталонной ха рактеристикой сообщения, по которой осуществляется проверка целостности последнего. Алгоритм формирования имитовставки должен обеспечивать ее зависимость по некоторому сложному криптографическому закону от каждого бита сообщения. Про верка целостности сообщения выполняется получателем сооб щения путем выработки по секретному ключу имитовставки, со ответствующей полученному сообщению, и ее сравнения с полу ченным значением имитовставки. При совпадении делается вывод о том, что информация не была модифицирована на пути от отправителя к получателю. Симметричное шифрование идеально подходит для шифрова ния информации «для себя», например, с целью предотвращения НСД к ней в отсутствие владельца. Это может быть как архивное шифрование выбранных файлов, так и прозрачное (автоматиче ское) шифрование целых логических или физических дисков. Обладая высокой скоростью шифрования, одноключевые криптосистемы позволяют решать многие важные задачи защи ты информации. Однако автономное использование симметрич ных криптосистем в компьютерных сетях порождает проблему распределения ключей шифрования между пользователями. Перед началом обмена зашифрованными данными необхо димо обменяться секретными ключами со всеми адресатами. Пе редача секретного ключа симметричной криптосистемы не мо жет быть осуществлена по общедоступным каналам связи, сек ретный ключ надо передавать отправителю и получателю по защищенному каналу. Для обеспечения эффективной защиты циркулирующих в сети сообщений необходимо огромное число часто меняющихся ключей (один ключ на каждую пару пользо вателей). При передаче ключей пользователям необходимо обес печить конфиденциальность, подлинность и целостность клю чей шифрования, что требует больших дополнительных затрат. Эти затраты связаны с необходимостью передачи секретных ключей по закрытым каналам связи или распределением таких ключей с помощью специальной службы доставки, например с помощью курьеров. Проблема распределения секретных ключей при большом числе пользователей является весьма трудоемкой и сложной за дачей. В сети на N пользователей необходимо распределить N ( N - 1)/2 секретных ключей, т. е. число распределяемых сек ретных ключей растет по квадратичному закону с увеличением числа абонентов сети. В разд. 5.6 рассматриваются методы, обеспечивающие защи щенное распределение ключей абонентам сети. 5.3. Асимметричные криптосистемы шифрования Асимметричные криптографические системы были разрабо таны в 1970-х гг. Принципиальное отличие асимметричной криптосистемы от криптосистемы симметричного шифрования состоит в том, что для шифрования информации и ее последую щего расшифровывания используются различные ключи: • открытый ключ К используется для шифрования информа ции, вычисляется из секретного ключа к; • секретный ключ к используется для расшифровывания ин формации, зашифрованной с помощью парного ему от крытого ключа К. Эти ключи различаются таким образом, что с помощью вы числений нельзя вывести секретный ключ к из открытого клю ча К. Поэтому открытый ключ К может свободно передаваться по каналам связи. Асимметричные системы называют также двухключевыми криптографическими системами, или криптосистемами с откры тым ключом. Обобщенная схема асимметричной криптосистемы шифро вания с открытым ключом показана на рис. 5.3. Рис. 5.3. Обобщенная схема асимметричной криптосистемы шифрования Для криптографического закрытия и последующего расшиф ровывания передаваемой информации используются открытый и секретный ключи получателя В сообщения. В качестве ключа зашифровывания должен использоваться открытый ключ получателя, а в качестве ключа расшифровыва ния — его секретный ключ. Секретный и открытый ключи генерируются попарно. Сек ретный ключ должен оставаться у его владельца и быть надежно защищен от НСД (аналогично ключу шифрования в симметрич ных алгоритмах). Копия открытого ключа должна находиться у каждого абонента криптографической сети, с которым обмени вается информацией владелец секретного ключа. Процесс передачи зашифрованной информации в асиммет ричной криптосистеме осуществляется следующим образом. Подготовительный этап: • абонент В генерирует пару ключей: секретный ключ кв и открытый ключ Кв\ • открытый ключ Кв посылается абоненту А и остальным абонентам (или делается доступным, например на разде ляемом ресурсе). Использование — обмен информацией между абонентами А и В: • абонент А зашифровывает сообщение с помощью открытого ключа Кв абонента В и отправляет шифртекст абоненту В; • абонент В расшифровывает сообщение с помощью своего секретного ключа кв. Никто другой (в том числе абонент А) не может расшифровать данное сообщение, так как не имеет секретного ключа абонента В. Защита информации в асимметричной криптосистеме основана на секретности ключа кв получателя сообщения. Характерные особенности асимметричных криптосистем: • открытый ключ Кв и криптограмма С могут быть отправле ны по незащищенным каналам, т. е. противнику извест ны Кв и С; • алгоритмы шифрования и расшифровывания: Ев : Л / —^ С] DB С - > М являются открытыми. У. Диффи и М. Хеллман сформулировали требования, вы полнение которых обеспечивает безопасность асимметричной криптосистемы [28]. 1. Вычисление пары ключей (Кв, кв ) получателем В должно быть простым. 2. Отправитель А, зная открытый ключ Кв и сообщение М, может легко вычислить криптограмму C = E Xl (АТ). 3. Получатель В, используя секретный ключ кв и крипто грамму С, может легко восстановить исходное сообщение М= Dk$ (С). 4. Противник, зная открытый ключ Кв, при попытке вычис лить секретный ключ кв наталкивается на непреодолимую вы числительную проблему. 5. Противник, зная пару (Кв, С), при попытке вычислить ис ходное сообщение М наталкивается на непреодолимую вычисли тельную проблему. Концепция асимметричных криптографических систем с от крытым ключом основана на применении однонаправленных функций. Однонаправленной функцией называется функция F(X), обладающая двумя свойствами: • существует алгоритм вычисления значений функции У= Ғ(Х); • не существует эффективного алгоритма обращения (инвер тирования) функции Ғ (т. е. не существует решения урав нения F(X) = Y относительно Л"). В качестве примера однонаправленной функции можно ука зать целочисленное умножение. Прямая задача — вычисление про изведения двух очень больших целых чисел Р и Q, т. е. нахожде ние значения N= Р Q — относительно несложная задача для компьютера. Обратная задача — факторизация, или разложение на мно жители большого целого числа, т. е. нахождение делителей Р и Q большого целого числа N = Р Q, — является практически нераз решимой при достаточно больших значениях N. Другой характерный пример однонаправленной функции — это модульная экспонента с фиксированными основанием и моду лем [62]. Как и в случае симметричных криптографических систем, с помощью асимметричных криптосистем обеспечивается не толь ко конфиденциальность, но также подлинность и целостность передаваемой информации. Подлинность и целостность любого сообщения обеспечивается формированием цифровой подписи этого сообщения и отправкой в зашифрованном виде сообщения вместе с цифровой подписью. Проверка соответствия подписи полученному сообщению после его предварительного расшифро вывания представляет собой проверку целостности и подлинно сти принятого сообщения. Процедуры формирования и провер ки электронной цифровой подписи рассмотрены в разд. 5.5. Преимущества асимметричных криптографических систем перед симметричными криптосистемами: • в асимметричных криптосистемах решена сложная пробле ма распределения ключей между пользователями, так как каждый пользователь может сгенерировать свою пару клю чей сам, а открытые ключи пользователей могут свободно публиковаться и распространяться по сетевым коммуника циям; • исчезает квадратичная зависимость числа ключей от числа пользователей; в асимметричной криптосистеме число ис пользуемых ключей связано с числом абонентов линейной зависимостью (в системе из N пользователей используют ся 2N ключей), а не квадратичной, как в симметричных системах; • асимметричные криптосистемы позволяют реализовать про токолы взаимодействия сторон, которые не доверяют друг другу, поскольку при использовании асимметричных крип тосистем закрытый ключ должен быть известен только его владельцу. Недостатки асимметричных криптосистем: • на настоящий момент нет математического доказательства необратимости используемых в асимметричных алгоритмах функций; • асимметричное шифрование существенно медленнее сим метричного, поскольку при шифровании и расшифровке используются весьма ресурсоемкие операции. По этой же причине реализовать аппаратный шифратор с асимметрич ным алгоритмом существенно сложнее, чем реализовать аппаратно симметричный алгоритм; • необходимость защиты открытых ключей от подмены. 5.4. Комбинированная криптосистема шифрования Анализ рассмотренных выше особенностей симметричных и асимметричных криптографических систем показывает, что при совместном использовании они эффективно дополняют друг друга, компенсируя недостатки. Действительно, главным достоинством асимметричных крип тосистем с открытым ключом является их потенциально высокая безопасность: нет необходимости ни передавать, ни сообщать ко му-либо значения секретных ключей, ни убеждаться в их под линности. Однако их быстродействие обычно в сотни (и более) раз меньше быстродействия симметричных криптосистем с сек ретным ключом. В свою очередь, быстродействующие симметричные крип тосистемы страдают существенным недостатком: обновляемый секретный ключ симметричной криптосистемы должен регу лярно передаваться партнерам по информационному обмену и во время этих передач возникает опасность раскрытия секрет ного ключа. Совместное использование этих криптосистем позволяет эф фективно реализовывать такую базовую функцию защиты, как криптографическое закрытие передаваемой информации с це лью обеспечения ее конфиденциальности. Комбинированное применение симметричного и асимметричного шифрования уст раняет основные недостатки, присущие обоим методам, и позво ляет сочетать преимущества высокой секретности, предоставляе мые асимметричными криптосистемами с открытым ключом, с преимуществами высокой скорости работы, присущими симмет ричным криптосистемам с секретным ключом. Метод комбинированного использования симметричного и асимметричного шифрования заключается в следующем. Симметричную криптосистему применяют для шифрования исходного открытого текста, а асимметричную криптосистему с открытым ключом применяют только для шифрования секретно го ключа симметричной криптосистемы. В результате асиммет ричная криптосистема с открытым ключом не заменяет, а лишь дополняет симметричную криптосистему с секретным ключом, позволяя повысить в целом защищенность передаваемой инфор мации. Такой подход иногда называют схемой электронного «циф рового конверта». Пусть пользователь А хочет использовать комбинированный метод шифрования для защищенной передачи сообщения М пользователю В. Тогда последовательность действий пользователей А и В бу дет следующей. Действия пользователя А: 1. Он создает (например, генерирует случайным образом) се ансовый секретный ключ Ks, который будет использован в алго ритме симметричного шифрования для зашифрования конкрет ного сообщения или цепочки сообщений. 2. Зашифровывает симметричным алгоритмом сообщение М на сеансовом секретном ключе Ks. 3. Зашифровывает асимметричным алгоритмом секретный сеансовый ключ Ks на открытом ключе Кв пользователя В (полу чателя сообщения). 4. Передает по открытому каналу связи в адрес пользовате ля В зашифрованное сообщение М вместе с зашифрованным се ансовым ключом Ks. Действия пользователя А иллюстрируются схемой шифрова ния сообщения комбинированным методом (рис. 5.4). А Отправляемое т сообщение Открытый ключ получателя Кв Рис. 5.4. Схема шифрования сообщения комбинированным методом Действия пользователя В (при получении электронного «циф рового конверта» — зашифрованного сообщения М и зашифро ванного сеансового ключа Ks): 5. Расшифровывает асимметричным алгоритмом сеансовый ключ Ks с помощью своего секретного ключа кв. 6. Расшифровывает симметричным алгоритмом принятое со общение М с помощью полученного сеансового ключа Ks. Действия пользователя В иллюстрируются схемой расшиф ровывания сообщения комбинированным методом (рис. 5.5). Полученное сообщение Исходное сообщение М Секретный ключ получателя кв Рис. 5.5. Схема расшифровывания сообщения комбинированным методом Полученный электронный «цифровой конверт» может рас крыть только законный получатель — пользователь В. Только пользователь В, владеющий личным секретным ключом кв смо жет правильно расшифровать секретный сеансовый ключ Ks и затем с помощью этого ключа расшифровать и прочитать полу ченное сообщение М. При методе «цифрового конверта» недостатки симметрично го и асимметричного криптоалгоритмов компенсируются сле дующим образом: • проблема распространения ключей симметричного крипто алгоритма устраняется тем, что сеансовый ключ Ks, на ко тором шифруются собственно сообщения, передается по открытым каналам связи в зашифрованном виде; для за- шифровывания ключа Ks используется асимметричный криптоалгоритм; • проблемы медленной скорости асимметричного шифрова ния в данном случае практически не возникает, поскольку асимметричным криптоалгоритмом шифруется только ко роткий ключ Ks, а все данные шифруются быстрым сим метричным криптоалгоритмом. В результате получают быстрое шифрование в сочетании с удобным распределением ключей. Когда требуется реализовать протоколы взаимодействия не доверяющих друг другу сторон, используется следующий способ взаимодействия. Для каждого сообщения на основе случайных параметров генерируется отдельный секретный ключ симметрич ного шифрования, который и зашифровывается асимметричной системой для передачи вместе с сообщением, зашифрованным этим ключом. В этом случае разглашение ключа симметричного шифрования не будет иметь смысла, так как для зашифровыва- ния следующего сообщения будет использован другой случайный секретный ключ. При комбинированном методе шифрования применяются криптографические ключи как симметричных, так и асиммет ричных криптосистем. Очевидно, выбор длин ключей для крип тосистемы каждого типа следует осуществлять таким образом, чтобы злоумышленнику было одинаково трудно атаковать любой механизм защиты комбинированной криптосистемы. 5.5. Электронная цифровая подпись и функция хэширования Электронная цифровая подпись используется для аутентифи кации текстов, передаваемых по телекоммуникационным кана лам. При таком обмене существенно снижаются затраты на обра ботку и хранение документов, убыстряется их поиск. Но возни кает проблема аутентификации автора электронного документа и самого документа, т. е. установления подлинности автора и от сутствия изменений в полученном электронном документе. Целью аутентификации электронных документов является их зашита от возможных видов злоумышленных действий, к кото рым относятся: • активный перехват — нарушитель, подключившийся к сети, перехватывает документы (файлы) и изменяет их; • маскарад — абонент С посылает документ абоненту В от имени абонента А; • ренегатство — абонент А заявляет, что не посылал сообще ния абоненту В, хотя на самом деле послал; • подмена — абонент В изменяет или формирует новый доку мент и заявляет, что получил его от абонента А; • повтор — абонент С повторяет ранее переданный доку мент, который абонент А посылал абоненту В. Эти виды злоумышленных действий могут нанести сущест венный ущерб банковским и коммерческим структурам, госу дарственным предприятиям и организациям, частным лицам, применяющим в своей деятельности компьютерные ИТ. Проблему проверки целостности сообщения и подлинности автора сообщения позволяет эффективно решить методология электронной цифровой подписи. 5 .5 .1 . Основны е проц едуры циф ровой подписи Функционально цифровая подпись аналогична обычной ру кописной подписи и обладает ее основными достоинствами: • удостоверяет, что подписанный текст исходит от лица, по ставившего подпись; • не дает самому этому лицу возможности отказаться от обя зательств, связанных с подписанным текстом; • гарантирует целостность подписанного текста. Электронная цифровая подпись (ЭЦП) представляет собой от носительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подписываемым текстом. ЭЦП основана на обратимости асимметричных шифров, а также на взаимосвязанности содержимого сообщения, самой подписи и пары ключей. Изменение хотя бы одного из этих эле ментов сделает невозможным подтверждение подлинности циф ровой подписи. ЭЦП реализуется при помощи асимметричных алгоритмов шифрования и хэш-функций. Технология применения системы ЭЦП предполагает нали чие сети абонентов, посылающих друг другу подписанные элек тронные документы. Для каждого абонента генерируется пара ключей: секретный и открытый. Секретный ключ хранится або нентом в тайне и используется им для формирования ЭЦП. От крытый ключ известен всем другим пользователям и предназна чен для проверки ЭЦП получателем подписанного электронного документа. Система ЭЦП включает две основные процедуры: • формирования цифровой подписи; • проверки цифровой подписи. В процедуре формирования подписи используется секретный ключ отправителя сообщения, в процедуре проверки подписи — открытый ключ отправителя. Процедура формирования цифровой подписи. На подготови тельном этапе этой процедуры абонент А — отправитель сооб щения — генерирует пару ключей: секретный ключ кА и откры тый ключ КЛ. Открытый ключ КА вычисляется из парного ему секретного ключа кА. Открытый ключ КА рассылается остальным абонентам сети (или делается доступным, например на разде ляемом ресурсе) для использования при проверке подписи. Для формирования цифровой подписи отправитель А прежде всего вычисляет значение хэш-функции h(M) подписываемого тек ста М (рис. 5.6). Секретный ключ отправителя КА Отправляемое сообщение Рис. 5.6. Схема формирования электронной цифровой подписи Хэш-функция служит для сжатия исходного подписываемого текста М в дайджест т — относительно короткое число, состоя щее из фиксированного небольшого числа битов и характеризую щее весь текст М в целом (см. разд. 5.5.2). Далее отправитель А шифрует дайджест т своим секретным ключом кА. Получаемая при этом пара чисел представляет собой цифровую подпись для данного текста М. Сообщение М вместе с цифровой подписью от правляется в адрес получателя. Процедура проверки цифровой подписи. Абоненты сети могут проверить цифровую подпись полученного сообщения М с помо щью открытого ключа КА отправителя этого сообщения (рис. 5.7). При проверке ЭЦП абонент В — получатель сообщения М — расшифровывает принятый дайджест т открытым ключом КА от правителя А. Кроме того, получатель сам вычисляет с помощью хэш-функции h(M) дайджест т' принятого сообщения М и сравнивает его с расшифрованным. Если т и т' совпадают, то Полученное сообщение От отправителя Сообщение М ашшш , - Сгенериро ванный дайджест т Цифровая подпись - Расшифро ванный дайджест т' Открытый ключ отправителя кА Рис. 5.7. Схема проверки электронной цифровой подписи Однако, если пользователя интересует, не является ли получен ное сообщение повторением ранее отправленного или не было ли оно задержано на пути следования, то он должен проверить дату и время его отправки, а при наличии — порядковый номер. Аналогично асимметричному шифрованию, необходимо обеспечить невозможность подмены открытого ключа, исполь зуемого для проверки ЭЦП. Открытые ключи ЭЦП можно за щитить от подмены с помощью соответствующих цифровых сер тификатов (см. гл. 13). Сегодня существует несколько стандартов ЭЦП, например ГОСТ 34.10-2001. 5 .5 .2 . Ф у н кц и я хэш ирования Как видно из схемы на рис. 5.7, в качестве исходного значе ния для вычисления ЭЦП берется не сам электронный доку мент, а его хэш-значение, или дайджест. Хэш-значение h(M) — это дайджест сообщения М, т. е. сжа тое двоичное представление основного сообщения М произ вольной длины. Хэш-значение h{M) формируется функцией хэ ширования. Функция хэширования (хэш-функция) представляет собой преобразование, на вход которого подается сообщение переменной длины М, а выходом является строка фиксирован ной длины h(M). Иначе говоря, хэш-функция Л( ) принимает в качестве аргумента сообщение (документ) М произвольной дли ны и возвращает хэш-значение (хэш) Н= h(M) фиксированной длины (рис. 5.8). Рис. 5.8. Схема формирования хэша Н = И(М) Функция хэширования позволяет сжать подписываемый до кумент М до 128 и более бит (в частности до 128 или 256 бит), то гда как М может быть размером в мегабайт или более. Следует от метить, что значение хэш-функции h(M) зависит сложным обра зом от документа Ми не позволяет восстановить сам документ М. Функция хэширования должна обладать следующими свой ствами. цифровая подпись является подлинной. В противном случае либо подпись подделана, либо изменено содержание сообщения. Принципиальным моментом в системе ЭЦП является невоз можность подделки ЭЦП пользователя без знания его секретного ключа подписывания. Поэтому необходимо защитить секретный ключ подписывания от НСД. Секретный ключ ЭЦП аналогично ключу симметричного шифрования рекомендуется хранить на персональном ключевом носителе в защищенном виде. Электронная цифровая подпись представляет собой уникаль ное число, зависящее от подписываемого документа и секретно го ключа абонента. В качестве подписываемого документа может быть использован любой файл. Подписанный файл создается из неподписанного путем добавления в него одной или более элек тронных подписей. Помещаемая в подписываемый файл (или в отдельный файл электронной подписи) структура ЭЦП обычно содержит допол нительную информацию, однозначно идентифицирующую авто ра подписанного документа. Эта информация добавляется к до кументу до вычисления ЭЦП, что обеспечивает и ее целост ность. Каждая подпись содержит следующую информацию: • дату подписи; • срок окончания действия ключа данной подписи; • информацию о лице, подписавшем файл (Ф.И.О., долж ность, краткое наименование фирмы); • идентификатор подписавшего (имя открытого ключа); • собственно цифровую подпись. Важно отметить, что с точки зрения конечного пользователя процесс формирования и проверки цифровой подписи отличает ся от процесса криптографического закрытия передаваемых дан ных следующими особенностями. При формировании цифровой подписи используются закры тый ключ отправителя, тогда как при зашифровывании исполь зуется открытый ключ получателя. При проверке цифровой под писи используется открытый ключ отправителя, а при расшиф ровывании — закрытый ключ получателя. Проверить сформированную подпись может любое лицо, так как ключ проверки подписи является открытым. При положи тельном результате проверки подписи делается заключение о подлинности и целостности полученного сообщения, т. е. о том, что это сообщение действительно отправлено тем или иным от правителем и не было модифицировано при передаче по сети. 8 - 3 3 4 8 J 1. Хэш-функция может быть применена к аргументу любого размера. 2. Выходное значение хэш-функции имеет фиксированный размер. 3. Хэш-функцию h(x) достаточно просто вычислить для лю бого х. Скорость вычисления хэш-функции должна быть такой, чтобы скорость выработки и проверки ЭЦП при использовании хэш-функции была значительно больше, чем при использовании самого сообщения. 4. Хэш-функция должна быть чувствительна к всевозмож ным изменениям в тексте М, таким как вставки, выбросы, пере становки и т. п. 5. Хэш-функция должна быть однонаправленной, т. е. обла дать свойством необратимости, иными словами, задача подбора документа М', который обладал бы требуемым значением хэш- функции, должна быть вычислительно неразрешима. 6. Вероятность того, что значения хэш-функций двух различ ных документов (вне зависимости от их длин) совпадут, должна быть ничтожно мала; т. е. для любого фиксированного л: с вы числительной точки зрения невозможно найти х ' # х , такое, что h(X) = h(x). Теоретически возможно, что два различных сообщения могут быть сжаты в одну и ту же свертку (так называемая коллизия, или «столкновение»). Поэтому для обеспечения стойкости функ ции хэширования необходимо избегать столкновений. Полно стью столкновений избежать нельзя, поскольку в общем случае количество возможных сообщений превышает количество воз можных выходных значений функции хэширования. Однако ве роятность столкновения должна быть низкой. Свойство 5 эквивалентно тому, что Л( ) является односторон ней функцией. Свойство 6 гарантирует, что не может быть най дено другое сообщение, дающее ту же свертку. Это предотвра щает фальсификацию сообщения. Таким образом, функция хэширования может использовать ся для обнаружения изменений сообщения, т. е. может служить для формирования криптографической контрольной суммы (также называемой кодом обнаружения изменений или кодом аутентифи кации сообщения). В этом качестве хэш-функция используется для контроля целостности сообщения при формировании и про верке ЭЦП. Хэш-функции широко используются также для аутентифика ции пользователей. В ряде технологий информационной безо пасности применяется своеобразный прием шифрования — шиф рование с помощью односторонней хэш-функции. Своеобразие это го шифрования заключается в том, что оно по существу является односторонним, т. е. не сопровождается обратной процедурой — расшифровыванием на приемной стороне. Обе стороны (отпра витель и получатель) используют одну и ту же процедуру одно стороннего шифрования на основе хэш-функции [62, 82]. Известные алгоритмы хэширования: • отечественный стандарт ГОСТ P 3 4 .ll—94 [12]. Вычисляет хэш размером 32 байта; • MD (Message Digest) — ряд алгоритмов хэширования, наи более распространенных в мире. Например, алгоритм MD5 [62, 72] применяется в последних версиях Microsoft Win dows для преобразования пароля пользователя в 16-байтное число; • SHA-1 (Secure Hash Algorithm) — это алгоритм вычисления дайджеста сообщений, вырабатывающий 160-битовый хэш- код входных данных, широко распространен в мире, ис пользуется во многих сетевых протоколах защиты инфор мации. Хэш-функции широко используются также для аутентифи кации пользователей. 5.6. Управление криптоключами Любая криптографическая система основана на использова нии криптографических ключей. Под ключевой информацией по нимают совокупность всех действующих в информационной сети или системе ключей. Если не обеспечено достаточно на дежное управление ключевой информацией, то, завладев ею, злоумышленник получает неограниченный доступ ко всей ин формации в сети или системе. Управление ключами включает реа лизацию таких функций, как генерация, хранение и распределе ние ключей. Распределение ключей — самый ответственный процесс в управлении ключами. При использовании симметричной криптосистемы две всту пающие в информационный обмен стороны должны сначала со гласовать секретный сессионный ключ, т. е. ключ для шифрова ния всех сообщений, передаваемых в процессе обмена. Этот ключ должен быть неизвестен всем остальным и должен перио дически обновляться одновременно у отправителя и получателя. Процесс согласования сессионного ключа называют также обме ном или распределением ключей. Асимметричная криптосистема предполагает использование двух ключей — открытого и закрытого (секретного). Открытый ключ можно разглашать, а закрытый — следует хранить в тайне. При обмене сообщениями необходимо пересылать только от крытый ключ, обеспечив подлинность пересылаемого открытого ключа. К распределению ключей предъявляются следующие требо вания: • оперативность и точность распределения; • конфиденциальность и целостность распределяемых клю чей. Для распределения ключей между пользователями компью терной сети применяются два основных способа [9]: 1) использование одного или нескольких центров распреде ления ключей; 2) прямой обмен ключами между пользователями сети. Оба подхода влекут за собой некоторые проблемы. В первом случае центру распределения ключей известно, кому и какие ключи распределены, и это позволяет читать все сообщения, пе редаваемые по сети. Возможные злоупотребления могут сущест венно нарушить безопасность сети. Во втором — необходимо на дежно удостовериться в подлинности субъектов сети. Задача распределения ключей сводится к построению такого протокола распределения ключей, который обеспечивает: • взаимное подтверждение подлинности участников сеанса; • подтверждение достоверности сеанса; • использование минимального числа сообщений при обме не ключами. Характерным примером реализации первого подхода являет ся система аутентификации и распределения ключей Kerberos; она рассмотрена в гл. 13. Остановимся подробнее на втором подходе. При использовании для защищенного информационного об мена криптосистемы с симметричным секретным ключом два пользователя, желающие обменяться криптографически защи щенной информацией, должны обладать общим секретным юно- чом. Эти пользователи должны обменяться общим ключом по каналу связи безопасным образом. Если пользователи меняют ключ достаточно часто, то доставка ключа превращается в серь езную проблему. Для решения этой проблемы возможно: 1) использование асимметричной криптосистемы с откры тым ключом для защиты секретного ключа симметричной крип тосистемы; 2) использование системы открытого распределения ключей Диффи — Хеллмана. Реализация первого способа осуществляется в рамках комби нированной криптосистемы с симметричными и асимметричны ми ключами. При таком подходе симметричная криптосистема применяется для шифрования и передачи исходного открытого текста, а асимметричная криптосистема с открытым ключом при меняется для шифрования, передачи и последующего расшифро вывания только секретного ключа симметричной криптосистемы. Второй способ основан на применении алгоритма открыто го распределения ключей Диффи — Хеллмана, позволяющего пользователям обмениваться ключами по незащищенным кана лам связи. Метод распределения ключей Диффи — Хеллмана У. Диффи и М. Хеллман изобрели метод открытого распре деления ключей в 1976 г. Этот метод позволяет пользователям об мениваться ключами по незащищенным каналам связи. Его безопасность обусловлена трудностью вычисления дискретных логарифмов в конечном поле, в отличие от легкости решения прямой задачи дискретного возведения в степень в том же ко нечном поле. Суть метода Диффи — Хеллмана заключается в следующем (рис. 5.9). Пользователи А и В, участвующие в обмене информации, ге нерируют независимо друг от друга свои случайные секретные ключи кЛ и кв (ключи кА\\ кв — случайные большие целые числа, которые хранятся пользователями А и В в секрете). Затем пользователь А вычисляет на основании своего секрет ного ключа кА открытый ключ KA = g k'(mo d N), Рис. 5.9. Схема открытого распределения ключей Диффи — Хеллмана одновременно пользователь В вычисляет на основании своего секретного ключа кв открытый ключ KB = g k‘ (mod N), где N a g — большие целые простые числа. Арифметические действия выполняются с приведением по модулю N [62]. Числа N и g могут не храниться в секрете. Как правило, эти значения являются общими для всех пользователей сети или системы. Затем пользователи А и В обмениваются своими открытыми ключами КА и Кв по незащищенному каналу и используют их для вычисления общего сессионного ключа К (разделяемого секрета): пользователь А: К = ( К в) кл (mod N) = (g k‘ ) кл (mod N)\ пользователь В: К' = (КА) к‘ (mod N) = (gk* ) к> (mod N)', при этом К= К', так как (g k‘ ) ^ = (g кл ) к‘ (mod N). Таким образом, результатом этих действий оказывается об щий сессионный ключ, который является функцией обоих сек ретных ключей кА и кв. Злоумышленник, перехвативший значения открытых ключей Кл и Кв, не может вычислить сессионный ключ К, потому что он не имеет соответствующих значений секретных ключей кл и кв. Благодаря использованию однонаправленной функции, опера ция вычисления открытого ключа необратима, т. е. невозможно по значению открытого ключа абонента вычислить его секрет ный ключ. Уникальность метода Диффи — Хеллмана заключается в том, что пара абонентов имеет возможность получить известное толь ко им секретное число, передавая по открытой сети открытые ключи. После этого абоненты могут приступить к защите переда ваемой информации уже известным проверенным способом — применяя симметричное шифрование с использованием полу ченного разделяемого секрета. Схема Диффи — Хеллмана дает возможность шифровать данные при каждом сеансе связи на новых ключах. Это позволя ет не хранить секреты на дискетах или других носителях. Не сле дует забывать, что любое хранение секретов повышает вероят ность попадания их в руки конкурентов или противника. На основе схемы Диффи — Хеллмана функционирует прото кол управления криптоключами IKE (Internet Key Exchange), применяемыми при построении защищенных виртуальных сетей VPN на сетевом уровне. |