Механизмы электронной цифровой подписи

advertisement
Механизмы электронной цифровой подписи
Электронная цифровая подпись (ЭЦП) основывается на двухключевых криптографических алгоритмах, в которых предусматривается использование двух ключей — открытого (публичного) и закрытого (секретного). Идея использования открытого (т.е. известного всем пользователям криптосистемы и потенциальному злоумышленнику) ключа
является фундаментальной, поэтому двухключевые криптосистемы ещѐ называют открытыми шифрами, а выполняемые преобразования — открытым шифрованием.
Двухключевые криптоалгоритмы позволяют обеспечить строгую доказательность
факта составления того или иного сообщения конкретными абонентами (пользователями)
криптосистемы. Это основано на том, что только отправитель сообщения, который держит
в секрете некоторую дополнительную информацию (секретный ключ), может составить
сообщение со специфической внутренней структурой. То, что сообщение имеет структуру, сформированную с помощью секретного ключа, проверяется с помощью открытого
ключа (процедура проверки электронной цифровой подписи). Вероятность того, что некоторое сообщение, составленное нарушителем, может быть принято за сообщение, подписанное каким-либо абонентом системы электронной цифровой подписи, является чрезвычайно низким. Таким образом, процедура проверки электронной цифровой подписи с помощью открытого ключа позволяет с высокой степенью гарантии удостовериться в том,
что полученное сообщение было составлено владельцем секретного ключа. Общедоступный (открытый) ключ формируется на основе секретного ключа или секретный, и открытый ключ вырабатывается одновременно по специальным процедурам, причѐм определение секретного ключа по открытому является вычислительно сложной задачей.
При отправке по информационной магистрали какого-то сообщения, компьютер отправителя или другое информационное устройство «поставит» на нѐм электронноцифровую подпись, которую применять может только отправитель, и зашифрует сообщение так, чтобы его сумел прочитать только получатель. В сообщении может содержаться информация любого вида, в том числе речь, видео или цифровые деньги. Получатель
будет уверен (почти на 100%), что сообщение исходит именно от отправителя, что оно отправлено точно в указанное время, что оно не поддельное и что никто другой не расшифровал его.
Механизм, который позволит это реализовать, базируется на математических принципах, в том числе на «необратимых функциях» и «шифровании по общему ключу». В
криптографии применяется тот вид необратимых функций, который позволяет легко отменить действие, если известна некая дополнительная информация, и в то же время крайне затрудняет отмену при отсутствии подобной информации. В математике существует
целый ряд таких необратимых функций. Одна из них связана с простыми числами, которые изучаются в школе. Простое число нельзя поделить без остатка ни на какое другое
число, кроме единицы и самого себя. В первой дюжине следующие простые числа: 2, 3, 5,
7 и 11. Числа 4, 6, 8 и 10 простыми не являются, поскольку всех их можно разделить на 2
без остатка. А число 9 не относится к простым, потому что делится без остатка на 3. Простых чисел существует великое множество, и когда перемножаются два таких числа, получают значение, которое делится без остатка только на эти же простые числа. Например,
произведение 5 и 7, даѐт результат 35, и это значение можно разделить без остатка только
на 5 и 7. Поиск простых чисел называется в математике «разложением на множители».
Умножить простые числа 11 927 на 20 903 и получить результат 249 310 081 совсем
нетрудно, куда сложнее восстановить два его множителя — простые числа. В этом и проявляется эффект необратимой функции — сложность разложения чисел на множители,
которая и лежит в основе асинхронной двухключевой криптографической системы. Даже
мейнфреймы тратят немало времени на разложение действительно крупного произведения
на составляющие его простые числа. В системе кодирования, основанной на разложении
на множители, используется два разных ключа: один для шифрования сообщения (секрет-
1
ный), а второй — отличный от первого, но связанный с ним, — для расшифровки (открытый). Располагая только ключом шифрования, сообщение легко закодировать, но расшифровать его в пределах реально доступного времени практически невозможно (даже суперкомпьютерам требуются годы на декодирование многоразрядных кодов). Расшифровка
требует отдельного ключа, доступного только определѐнному получателю сообщения —
точнее, компьютеру получателя. Ключ шифрования основан на произведении двух многоразрядных простых чисел, а ключ дешифрования — на самих этих простых числах. Компьютер способен формировать новую пару уникальных ключей очень быстро, алгоритм,
позволяющий сгенерировать два больших простых числа и перемножить их достаточно
несложен. Созданный таким образом ключ шифрования можно без особого риска сделать
общим (открытым), учитывая, насколько сложно даже другому компьютеру разложить его
на составные простые числа и тем самым получить ключ дешифрования.
Образно этот вид криптографических алгоритмов можно представить в виде информационной сети сравнимой с сетью почтовых предприятий, где у каждого есть свой бронированный почтовый ящик с не поддающимся взлому замком. В щель почтового ящика
любой может опустить «письмо», но только у владельца этого ящика есть ключ, который
позволит достать оттуда корреспонденцию (при этом у каждого почтового ящика может
быть вторая, запасная дверца с отдельным ключом, который ещѐ более затрудняет процесс декодирования).
Каждый пользовательский компьютер (или другое информационное устройство) на
основе простых чисел будет генерировать ключ шифрования, сообщаемый всем желающим, и ключ дешифрования (секретный ключ), известный только конкретному пользователю. На практике это будет выглядеть следующим образом:
1) У отправителя (абонента A) есть информация, которую он хочет передать получателю (абоненту B). Система отправителя (абонента A), на базе информационного устройства или компьютера, с помощью открытого ключа получателя шифрует сообщение перед посылкой. Никто, кроме получателя (абонента B), это сообщение прочитать не сможет, несмотря на то, что этот ключ давно стал достоянием гласности. Почему? А потому,
что принадлежащий получателю (абоненту B) открытый ключ не содержит информации,
необходимой для дешифрования. Компьютер получателя (абонента B), приняв сообщение,
декодирует его на основе секретного ключа, соответствующего открытому (см. рисунок
1).
2) Затем получатель (абонент B) отправляет сообщение отправителю (абоненту A).
Компьютер получателя (абонент B) отыскивает открытый ключ отправителя (абонента A)
и с его помощью кодирует ответ. Никто другой это сообщение, кроме отправителя (абонента A), прочитать не сумеет, невзирая на то, что этот ключ также является открытым.
Только абонент A узнаѐт содержание сообщения, потому что только у него есть секретный
ключ дешифрования.
Такая система достаточно практична, поскольку никому не придѐтся заблаговременно обмениваться ключами.
Сообщение к отправке
(абонент А)
Принятое сообщение
(абонент В)
Шифрование
Зашифрованное
сообщение
Дешифрование
Открытый ключ
(абонента В)
Генератор ключей
Секретный ключ
(абонента В)
Рисунок 1 – Асимметричный метод шифрования передачи сообщения от
абонента А к абоненту В
2
Двухключевые криптоалгоритмы обеспечивают и аутентификацию документов,
потому что секретный ключ позволяет зашифровать сообщение, которое можно декодировать только с помощью открытого ключа. Работает это так (см. рисунок 2):
1) Информацию, которую отправитель (абонент A) хочет подписать перед передачей
получателю (абоненту B), кодирует своим секретным ключом. Теперь получатель (абонент B) сможет прочитать это сообщение только в том случае, если произойдѐт его верификация (декодирование) открытым ключом. А он известен и получателю (абоненту B), и
всем остальным. Таким образом, становится ясно, что сообщение поступило именно от
отправителя (абонента A), поскольку такого секретного ключа больше ни у кого нет.
2) Но всем остальным не следует знать, что переданное сообщение именно от отправителя «A». Поэтому дальше отправитель (абонент A) берѐт это закодированное секретным ключом сообщение (первый уровень) и с помощью компьютера шифрует его снова,
на этот раз, применяя открытый ключ получателя (абонента B). Затем по информационной
магистрали пересылается уже дважды зашифрованное сообщение.
3) Получатель (абонент B), приняв дважды зашифрованное сообщение, расшифровывает его на компьютере с помощью своего секретного ключа. Тем самым он раскрывает
второй уровень шифрования.
4) Но остаѐтся не раскрытым первый уровень, который был закодирован на основе
секретного ключа отправителя (абонента A). Поэтому компьютер получателя (абонента B)
«достаѐт» открытый ключ отправителя (абонента A) и вновь производит расшифровку сообщения. Благодаря тому, что сообщение действительно исходило от отправителя (абонента A), оно расшифровывается правильно, и тем самым происходит аутентификация
ЭЦП.
С теоретической точки зрения электронная цифровая подпись представляет собой
последовательность фиксированной длины (длина эта зависит от конкретного алгоритма
ЭЦП), которая вычисляется определѐнным образом с помощью содержимого подписываемой информации и секретного ключа.
Секретный ключ ЭЦП также есть не что иное, как последовательность определѐнной
длины. Это тот самый уникальный элемент, без знания которого невозможно подделать
ЭЦП его владельца. Соответственно пользователь должен хранить свой секретный ключ
таким образом, чтобы никто другой не смог «выведать» его значение. Если же у владельца
ключа есть основания полагать, что ключ известен кому-либо еще, то такой секретный
ключ ЭЦП считается скомпрометированным, и «потерпевший», допустивший компрометацию своего ключа, должен оповестить всех остальных корреспондентов, что его открытый ключ следует считать недействительным. После оповещения лѐгко создать новую пару ключей ЭЦП, гарантирующую авторство электронных документов.
Сообщение к отправке
(абонент А)
Принятое сообщение
(абонент В)
Секретный ключ
(абонента А)
Генератор ключей
(абонент А)
Открытый ключ
(абонента А)
Шифрование
Зашифрованное
сообщение
Дешифрование
Открытый ключ
(абонента В)
Генератор ключей
(абонент В)
Секретный ключ
(абонента В)
Рисунок 2 – Аутентификацию документов асимметричным методом шифрования
3
Если же этого не сделать, подпись «потерпевшего», утерявшего свой ключ, может
появиться под любым электронным документом. И тогда, по аналогии с обычной подделкой документов, можно сказать, что злоумышленник, завладевший чужим ключом, научился удачно подделывать подпись его владельца, да вдобавок ещѐ и получил возможность ставить его печать.
Открытый ключ, наоборот, должен быть доступен всем, с кем данный корреспондент намерен обмениваться информацией, заверенной личной подписью.
Физическое представление ключей ЭЦП зависит от конкретной системы, поддерживающей использование ЭЦП. Чаще всего ключ записывается в файл, который, в дополнение к самому ключу, может содержать, например, информацию о пользователе — владельце ключа, о сроке действия ключа, а также определѐнный набор данных, необходимых для работы конкретной системы.
Данные о владельце ключа позволяют реализовать «побочную», но важную функцию ЭЦП — установление авторства, поскольку при проверке подписи сразу же становится ясно, кто подписал то или иное сообщение. Обычно программы, осуществляющие проверку ЭЦП, настраиваются так, чтобы результат исполнения тега подписи появлялся на
экране в удобном для восприятия виде и с указанием поставившего ЭЦП пользователя,
например, так:
«Подпись файла message.doc верна (Автор: Иванова Татьяна Васильевна)»
Тегом называется код языка HTML, с помощью которого выполняется разметка исходного текста.
Степень защиты можно увеличить, включая в зашифрованные сообщения временные
отметки. При изменении даты и времени предварительной отправки написания документа,
при приѐме получателем это сразу же выявится. Тем самым устанавливается свидетельская ценность фотографий и записей, которая сейчас поставлена под сомнение из-за той
легкости, с которой осуществляется их цифровое ретуширование.
Таким образом,
Электронная цифровая подпись — это способ обозначения авторства в сообщениях, файлах и других цифровых объектах. Процесс подписания цифровых данных вызывает их преобразование, а также добавление в тег подписи определѐнных
скрытых сведений, контролируемых создателем. Цифровые подписи используются в
средах с открытыми ключами и обеспечивают невозможность отрицания авторства и
целостность данных.
Первый шаг, который следует сделать для криптографической защиты корреспонденции отправителя, — это получение сертификата (цифрового удостоверения), т.е. набора электронных документов, удостоверяющих личность (организацию) в операциях шифрования и электронной цифровой подписи.
Сертификат — это цифровой документ, широко используемый для проверки подлинности и безопасного обмена данными в открытых сетях, таких как Internet, Экстрасети
и Интрасети. Сертификат связывает открытый ключ с объектом, хранящим соответствующий закрытый ключ. Сертификаты имеют электронные цифровые подписи, поставленные выдавшими центрами сертификации, и могут предоставляться пользователю, компьютеру или службе. Наиболее широко применяемый формат для цифровых сертификатов
определяется международным стандартом ITU-T X.509 версии 3.
Сектор стандартизации ITU-T — это сектор международного телекоммуникационного союза (ITU, International Telecommunications Union — Международным союзом электросвязи), ответственный за телекоммуникационные стандарты. ITU-T заменяет Comite
Consultatif International Telegraphique et Telephonique (CCITT). В область его
ответственности входят стандартизация операций и конструкций модемов, а также стандартизация протоколов для сетей и факсимильной связи. ITU является международной
4
организацией, в рамках которой государственные органы и частные лица приводят в соответствие глобальные телекоммуникационные сети и службы.
Для повышения надѐжности электронной цифровой подписи, например для противодействия атакам перехвата и повтора сообщений, фальсификации времени отправки сообщений, еѐ можно сделать зависимой от неповторяющегося блока данных.
Схема электронной цифровой подписи включает в себя:
 параметр безопасности n, в качестве которого может выступать длина подписи,
длина подписываемых сообщений и т.п.;
 пространство исходных сообщений;
 максимальное число подписей (signature bound), которые могут быть получены в
данной схеме без замены секретной информации;
 алгоритм G генерации ключей — полиномиальный (от n) вероятностный алгоритм, формирующий по заданному параметру n пару
( K Asekret , K Apublic),
где K Asekret — секретный ключ подписавшегося (абонента A);
K Apublic — соответствующий открытый ключ проверяющего (абонента B);
 алгоритм S формирования подписи сообщения — полиномиальный вероятностный алгоритм, вырабатывающий по заданным исходному сообщению ~p и секретному
ключу K Asekret подпись s для сообщения ~p ;
 алгоритм V проверки (verification) подписи — полиномиальный вероятностный
алгоритм, дающий на выходе при заданных сообщению ~p , открытому ключу K Apublic и
возможной подписи s либо значение единице, когда подпись сообщения принимается,
либо нулю, когда подпись отвергается.
Подпись s= S K sekret ( ~p ) называется допустимой для сообщения ~p , если она принимаA
ется алгоритмом V с вероятностью, близкой к 1. Подделкой подписи сообщения ~p называется нахождение злоумышленником, не имеющим секретного ключа подписывающего,
допустимой подписи для этого сообщения.
В общем случае схема электронной цифровой подписи ~p имеет следующий вид:
1. Отправитель A вычисляет
( K Asekret , K Apublic)=G(n)
и посылает K Apublic получателю B, сохраняя K Asekret в секрете.
2. Для получения подписи документа ~p отправитель A вычисляет
s=S( ~p , K Asekret )
и посылает ~p и s получателю B.
3. Получатель B вычисляет
V ( ~p , s, K Apublic)
и в зависимости от результата принимает или отвергает подпись s сообщения ~p .
В классической схеме электронной цифровой подписи предполагается, что подписывающий (абонент A) знает содержание документа ~p , который он подписывает; проверяющий (абонент B), зная открытый ключ проверки подписи, может проверить правильность подписи в любое время без какого-либо разрешения или участия претендента A.
Для практического применения схем электронной цифровой подписи помимо алгоритмов формирования подписи и еѐ верификации требуется процедура арбитража, т.е.
разрешения споров. Арбитраж необходим, когда один из абонентов, например B, предъявляет сообщение и подпись ( ~p , s), утверждая, что эта пара сообщение-подпись была получена от абонента A, и A отказывается признавать эту подпись своей.
Протоколы (схемы) электронной цифровой подписи являются основными криптографическим средством обеспечения аутентичности информации:
5
• с помощью ЭЦП получатель документа может доказать, что он принадлежит отправителю, при этом автор подписи не сможет оспорить факт отправки документа;
• ЭЦП очень сложно подделать, поэтому считается, что только абонент, чья подпись
стоит на документе, мог подписать документ;
• ЭЦП является неотъемлемой частью документа, перенести еѐ на другой документа
нельзя;
• ни злоумышленник, ни получатель не могут изменить документ, оставив данный
факт незамеченным.
• любой пользователь, имеющий образец подписи, может удостовериться в подлинности документа.
В некоторых ситуациях могут потребоваться схема электронной цифровой подписи,
отличные от рассмотренной классической схемы. Известны следующие специальные схемы (протоколы) ЭЦП:
• схема подписи «вслепую», когда абонент A подписывает документ, не зная его содержимого;
• схема групповой подписи, которая позволяет получателю убедиться в принадлежности полученного сообщения некоторой группе претендентов, но кто именно из членов
группы подписал документ, получатель определить не в состоянии;
• схема разделяемой подписи, которая формируется только при участии определѐнного количества участников протокола, иначе говоря, данная схема является объединением классической схемы подписи и схемы разделения секрета;
• схема конфиденциальной (неотвергаемой) подписи, которая не может быть проверена без участия сформировавшего еѐ участника протокола;
• схема неоспоримой подписи, в которой подделка подписи может быть доказана.
Функции хэширования
Как и для всякой последовательности, существует формула вычисления ЭЦП, которую математически можно представить как:
S = f (h(M), Ks),
где M — текст сообщения;
Ks — секретный ключ;
h(M) — функция хэширования.
В приведѐнной зависимости, для формирования ЭЦП в качестве исходного значения
берѐтся не само сообщение, а его хэш (результат обработки сообщения хэш-функцией).
Хэш-функция — это труднообратимое преобразование данных (односторонняя
функция), реализуемое, как правило, средствами симметричного шифрования со связыванием блоков. Результат шифрования последнего блока (зависящий от всех предыдущих) и
служит результатом хэш-функции.
Дело в том, что заверяемый подписью текст может быть абсолютно произвольного
размера: от пустого сообщения до многомегабайтного файла, содержащего, например,
графическую информацию. Но практически все применяемые алгоритмы вычисления
ЭЦП используют для расчѐта сообщения заранее заданной стандартной длины (например,
в российском алгоритме ЭЦП ГОСТ Р 34.10-94 этот размер определѐн равным 32 байтам).
Задача хэш-функции — из сообщения произвольной длины вычислить цифровую последовательность нужного размера (например, 32 байта).
Прежде всего, необходимо, чтобы результат (хэш сообщения) однозначно соответствовал исходному сообщению (дайджест) и изменялся при любой модификации последнего, даже самой незначительной. Кроме того, хэш сообщения должен вычисляться, таким
образом, чтобы для любого сообщения M было бы невозможно подобрать такое сообщение M', для которого h(M) = h(M').
Другими словами, трудоѐмкость успешного вычисления сообщения M' по известному сообщению M и его хэшу h(M), удовлетворяющего условию h(М') = h(М), должна быть
6
эквивалентна трудоѐмкости прямого перебора сообщений. Невыполнение этого условия
создало бы возможность для злоумышленника подменять сообщения, оставляя их подпись
верной.
Совпадение дайджестов для различных данных называется коллизией. В принципе,
коллизии, конечно, возможны, поскольку мощность множества дайджестов меньше, чем
мощность множества хэшируемых данных, однако то, что h есть функция односторонняя,
означает, что за приемлемое время специально организовать коллизию невозможно. Очевидно, что хэш будет одинаков для многих сообщений, поскольку множество возможных
сообщений существенно больше множества возможных хэш-значений (действительно,
количество сообщений безгранично, а количество хэш-значений ограничено числом 2N,
где N — длина хэш-значения в битах).
Рассмотрим теперь применение асимметричного шифрования для выработки и проверки электронной цифровой подписи. Пусть Е(M) обозначает результат шифрования текста M с помощью открытого ключа, a D(M) — результат дешифрования текста M (как
правило, шифрованного) с помощью секретного ключа. Чтобы асимметричный метод мог
применяться для реализации ЭЦП, необходимо выполнение тождества
E(D(M)) = D(E(M))=M
На рисунке 3 показана процедура выработки электронной цифровой подписи, состоящая в шифровании преобразованием D дайджеста h(M).
Сообщение М
Дайджест h(M)
Сообщение
Электронная
цифровая подпись
ЭЦП D(h(M))
Секретный ключ отправителя
Рисунок 3 – Процедура создания ЭЦП (шифрование преобразованием
D дайджеста h(M))
Из равенства E(S')=h(M') следует, что S' = D(h(M)). Для доказательства достаточно
применить к обеим частям преобразование D и вычеркнуть в левой части тождественное
преобразование D(E()). Таким образом, электронная цифровая подпись защищает целостность сообщения и удостоверяет личность отправителя, т.е. защищает целостность источника данных и служит основой неотказуемости (см. рисунок 4).
Сообщение
Сообщение М'
ЭЦП
S'=D(h(m))
E(S)
Открытый ключ отправителя
h(M')
=?
Да, всѐ в порядке
Рисунок 4 – Проверка ЭЦП
К числу наиболее известных функций хэширования принадлежат следующие:
7
• Российский стандарт ГОСТ Р 34.11-94 (стандарт хэширования ГОСТ Р 34.11-94
шифрует исходные данные, используя другой отечественный криптостандарт ГОСТ
28147-89). Вычисляет хэш-значение размером 32 байта.
• MDx (Message Digest) — семейство алгоритмов хэширования, которые наиболее
распространены за рубежом. Например, алгоритм MD5 применяется в последних версиях
Microsoft Windows для преобразования пароля пользователя в 16-байтное число.
• SHA-1 (Secure Hash Algorithm) — алгоритм хеширования сообщений, создающий
160-битовый хеш-код для вычисления 20-байтного хэш-значения входных данных. Широко распространѐн в мире, преимущественно в сетевых протоколах защиты информации,
используется в стандарте DSS (Digital Signature Standard) для различных целей в сочетании с алгоритмом DSA (Digital Signature Algorithm).
Помимо средства для создания ЭЦП, хэш-функции успешно используются для аутентификации пользователей. Существует немало криптографических протоколов аутентификации, основанных на применении хэш-функций.
Известные алгоритмы ЭЦП
RSA
Разработанный в 1978 г. алгоритм асимметричного шифрования RSA был первым,
который стал широко применяться и для вычисления ЭЦП. Его характерная особенность
— использование одной и той же схемы и для асимметричного шифрования, и для создания ЭЦП.
Вспомним базовые характеристики алгоритма асимметричного шифрования RSA.
Его основной параметр — модуль системы:
N=P∙Q
где P и Q — случайные большие простые числа.
Секретный ключ Ks выбирается случайным образом, а открытый ключ Kp вычисляется по секретному из соотношения:
(Ks ∙ Kp) = 1 mod F(N),
где F(N) — значение функции Эйлера.
Рассмотрим применение алгоритма RSA для формирования ЭЦП на примере вычисления и проверки электронной подписи (S) сообщения M.
1) Первый шаг — вычисление хэша сообщения m = h(M), который затем шифруется
секретным ключом Ks (при шифровании по алгоритму RSA для шифрования используется
открытый ключ). Для алгоритма ЭЦП RSA S = SKp mod N.
2) Получатель, желающий проверить значение S сообщения M, также вычисляет хэш
сообщения по формуле m = h(M) и расшифровывает S с помощью открытого ключа Kp,
используя асимметричный алгоритм шифрования RSA по выражению m' = SKp mod N.
3) Если m' = m, ЭЦП сообщения признаѐтся верной. В противном случае подпись
считается поддельной и делается вывод о том, что целостность сообщения нарушена.
Итак, в криптосистеме RSA секретный ключ используется для вычисления ЭЦП или
для расшифрования сообщений, а открытый — для проверки ЭЦП или шифрования сообщений.
Следует отметить и ряд недостатков, свойственных формированию ЭЦП с использованием RSA (часть из них унаследованы от используемого алгоритма шифрования RSA).
Среди последних стоит упомянуть о том, что ЭЦП RSA уязвима к мультипликативной
атаке, т.е. алгоритм ЭЦП RSA позволяет злоумышленнику, даже не зная секретный ключ
Ks, вычислить подписи сообщений, результат хэширования которых совпадает с произведением результатов хэширования подписанных ранее сообщений.
Существует ещѐ одна, не менее важная проблема, которую можно отнести к недостаткам применения метода формирования ЭЦП — проблема нецелевого использования
секретного ключа. Например, предположим, что среди знакомых некоего пользователя —
владельца секретного ключа Ks появился злоумышленник. Под каким-либо предлогом
8
этот мошенник просит пользователя расшифровать своим ключом Ks по алгоритму асимметричного шифрования RSA зашифрованное сообщение C. Пользователь, испытывающий доверие к этому знакомому, расшифровывает принятое сообщение с помощью формулы M = CKs mod N и отсылает результат (расшифрованное сообщение) злоумышленнику.
На первый взгляд, опасности никакой нет. Однако при внимательном рассмотрении
видно, что M — это, по сути, значение ЭЦП сообщения, хэш которого равен C. Следовательно, легальный пользователь поставил свою подпись под неким сообщением и отправил еѐ злоумышленнику.
Известно, что одна из наиболее серьезных проблем обеспечения информационной
безопасности — низкая квалификация пользователей, их беспечность, а также беззащитность многих из них перед методами социальной инженерии. Несмотря на кажущуюся надуманность описанной в данном примере атаки, подобные инциденты встречаются достаточно часто, и атака, к сожалению, бывает успешной.
В качестве меры противодействия описанному здесь методу атаки пользователям алгоритма RSA рекомендуется применять для собственно асимметричного шифрования и
для ЭЦП разные пары ключей, и непременно использовать все ключи только по назначению.
DSA
Алгоритм DSA (Digital Signature Algorithm) был разработан в 1981 г. и с тех пор используется как стандарт США для электронной цифровой подписи — Digital Signature
Standard (DSS). Алгоритм DSA предусматривает применение в качестве хэш-функции алгоритма SHA-1 (Secure Hash Algorithm).Параметры алгоритма не засекречены.
DSA базируется на применении больших простых чисел одинаковой размерности (от
512 бит). — G и P. Среди его параметров присутствует и простое число и размерностью
160 бит — делитель числа (P - 1). Что же касается секретного ключа Ks, то он представляет собой целое число, случайно выбираемое из диапазона 1< KsKp = GKp mod P.
По сравнению с алгоритмом RSA у DSA есть ряд достоинств:
• при любом достижимом уровне криптостойкости время вычислений для DSA существенно меньше, чем при использовании, например, RSA с тем же уровнем криптостойкости;
• при проверке ЭЦП большинство операций сокращает объѐм требуемых ресурсов.
Стандарт электронной цифровой подписи
Подпись по ГОСТ Р 34.10-94. По своей структуре алгоритм, определѐнный в российском стандарте ГОСТ Р 34.10-94, схож с описанным выше DSA (параметры его также не
секретны). Алгоритм ГОСТ Р 34.10-94 базируется на применении большого простого числа p размерностью 512 или 1024 бит (значение больше 2509 или 21020 соответственно).
Делитель (p - 1), простое число размерностью 256 бит (значение больше 2254). Секретный
ключ Ks выбирается случайным образом из диапазона 0 < KsKs mod р.
Различия между алгоритмами DSA и ГОСТ Р 34.10-94 незначительны и в основном
технические:
• в алгоритмах DSA и ГОСТ Р 34.10-94 по-разному вычисляется проверка ЭЦП;
• алгоритм ГОСТ Р 34.10-94 имеет существенно больший запас стойкости;
• в стандарте ГОСТ Р 34.10-94, кроме описания данного алгоритма формирования и
проверки ЭЦП и контрольного примера, с помощью которого можно по шагам проверить
корректность реализации алгоритма, содержатся также процедуры генерации параметров
больших простых чисел (а это достаточно нетривиальная математическая задача).
Новый российский стандарт ЭЦП. В сентябре 2001 г. был утвержден, а 1 июля 2002
года вступил в силу новый отечественный стандарт ГОСТ Р 34.10-2001 на алгоритм формирования и проверки ЭЦП. Его принципиальное отличие от старого ГОСТ Р 34.10-94 состоит в том, что все специфицированные в нѐм вычисления исполняются в группе точек
9
эллиптической кривой, определенной над конечным полем Fp. Алгоритмы на базе эллиптических кривых позволяют заметно сократить время вычислений без потерь криптостойкости или соответственно увеличить уровень защиты при тех же временных затратах.
Следует добавить, что ГОСТ Р 34.10-94 не отменѐн и в настоящее время параллельно действуют два отечественных стандарта на ЭЦП. Но для ГОСТ Р 34.10-94 принято одно ограничение: при реализации ЭЦП по этому стандарту разрешено использовать только
1024-битные значения параметра p (простого числа).
Классификация атак на ЭЦП
Стойкость схемы электронной цифровой подписи зависит от стойкости используемых криптоалгоритмов и определяется относительно пары угроза-атака. Классификацию
атак на схемы электронной цифровой подписи следующая:
• атака на основе известного открытого ключа — самая слабая из атак, практически
всегда доступная противнику;
• атака на основе известных подписанных сообщений — в распоряжении злоумыш~
~
ленника имеется некоторое число пар ( P , s), где P — некоторое сообщение, а s — допус~
тимая подпись для него, при этом злоумышленник не может влиять на выбор P ;
• простая атака с выбором подписанных сообщений — злоумышленник имеет возможность выбрать некоторое количество подписанных сообщений, при этом открытый
ключ он получает после этого выбора;
• направленная атака с выбором сообщений — выбирая подписанные сообщения,
злоумышленник знает открытый ключ;
• адаптивная атака с выбором сообщений — злоумышленник знает открытый ключ,
выбор каждого следующего подписанного сообщения он может делать на основе знания
допустимой подписи предыдущего выбранного сообщения.
Каждая атака направлена на достижение определѐнной цели. Можно выделить следующие виды угроз для схем электронной цифровой подписи (в порядке возрастания силы):
1) экзистенциальная подделка — создание злоумышленником подписи для какогонибудь, возможно бессмысленного сообщения, отличного от перехваченного;
2) селективная подделка — создание подписи для заранее выбранного сообщения;
3) универсальная подделка — нахождение эффективного алгоритма формирования
подписи, функционально эквивалентного S;
4) полное раскрытие — вычисление секретного ключа, возможно отличного от
sekret
K A , соответствующего открытому ключу K Apublic, что даѐт возможность формировать
подписи для любых сообщений.
ЭЦП подвержена действию обобщѐнного класса программ «троянский конь» с преднамеренно заложенными в них потенциально опасными последствиями, активизирующимися при определѐнных условиях. Например, в момент считывания файла, в котором находится подготовленный к подписи документ, эти программы могут изменить имя подписывающего лица, дату, какие-либо данные (например, сумму в платѐжных документах) и
т.д. Поэтому при выборе системы ЭЦП предпочтение должно быть отдано еѐ аппаратной
реализации, обеспечивающей надѐжную защиту информации от несанкционированного
доступа, выработку криптографических ключей и ЭЦП.
Цифровые сертификаты
При использовании электронной цифровой подписи необходимо иметь гарантию
подлинности пары (имя пользователя, открытый ключ пользователя). Для решения этой
задачи в спецификациях ISO Х.509 вводятся понятия цифрового сертификата и удостоверяющего центра.
Удостоверяющий центр — это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и дру10
гая информация о пользователях хранится удостоверяющими центрами в виде цифровых
сертификатов, имеющих следующую структуру:
• порядковый номер сертификата;
• идентификатор алгоритма электронной подписи;
• имя удостоверяющего центра;
• срок годности;
• имя владельца сертификата (имя пользователя, которому принадлежит сертификат);
• открытые ключи владельца сертификата (ключей может быть несколько);
• идентификаторы алгоритмов, ассоциированных с открытыми ключами владельца
сертификата;
• ЭЦП, сгенерированная с использованием секретного ключа удостоверяющего центра (подписывается результат хэширования всей информации, хранящейся в сертификате).
Цифровые сертификаты обладают следующими свойствами:
• любой пользователь, знающий открытый ключ удостоверяющего центра, может
узнать открытые ключи других клиентов центра и проверить целостность сертификата;
• никто, кроме удостоверяющего центра, не может модифицировать информацию о
пользователе без нарушения целостности сертификата.
В спецификациях ISO Х.509 не описывается конкретная процедура генерации криптографических ключей и управления ими, однако даются некоторые общие рекомендации.
В частности, оговаривается, что пары ключей могут порождаться любым из следующих
способов:
• ключи может генерировать сам пользователь (в этом случае секретный ключ не
попадает в руки третьих лиц, однако нужно решать задачу безопасной связи с удостоверяющим центром);
• ключи генерирует доверенное лицо (приходится решать задачи безопасной доставки секретного ключа владельцу и предоставления доверенных данных для создания
сертификата);
• ключи генерируются удостоверяющим центром (задача безопасной передачи ключей владельцу).
Цифровые сертификаты в формате ISO Х.509 версии 3 стали не только формальным,
но и фактическим стандартом, поддерживаемым многочисленными удостоверяющими
центрами.
Создание и изменение электронной цифровой подписи на примере Microsoft Office
Электронная цифровая подпись состоит из текста и графических элементов (или и
того и другого). После создания подписи и определения настроек для еѐ использования
программа Microsoft Outlook будет автоматически вставлять подпись в отправляемые сообщения электронной почты.
Для разных получателей можно создавать дополнительные подписи:
1. В меню «Сервис» программы Microsoft Word выберите команду «Параметры», а
затем откройте вкладку «Общие».
2. Нажмите кнопку [Параметры электронной почты], а затем откройте вкладку
«Электронная подпись».
3. Введите имя подписи в поле «Введите название электронной подписи или выберите еѐ из списка».
4. В группе «Создайте свою электронную подпись» вставьте текст и рисунки, которые будут использоваться в качестве подписи. Добавьте форматирование в текст с помощью средств форматирования.
5. Нажмите кнопку «Добавить».
11
6. Чтобы создать еще одну подпись, нажмите кнопку [Создать], а затем повторите
шаги 3-5
При наличии нескольких подписей можно переключаться между ними.
1. В электронном сообщении щелкните правой кнопкой мыши существующую подпись.
2. Выберите имя требуемой подписи.
Чтобы изменить подпись в списке, выполняются следующие действия.
1. В меню «Сервис» программы Microsoft Word выберите команду «Параметры», а
затем откройте вкладку «Общие».
2. Нажмите кнопку «Параметры электронной почты», а затем откройте вкладку
«Электронная подпись».
3. Выберите в списке «Введите название электронной подписи или выберите еѐ
из списка» подпись, которую требуется изменить.
4. Внесите нужные изменения в области «Создайте свою электронную подпись».
5. Нажмите кнопку «Заменить».
Электронную цифровую подпись можно ставить на любой корреспонденции отправителя, а шифрование получится только при условии, что у отправителя есть копия сертификата (цифрового удостоверения) адресата (по сути, это его открытый ключ шифрования). Открытый ключ пересылается с каждым подписанным письмом, и если отправителю
необходимо использовать шифрование в переписке с кем-то, то для этого ему (и адресату
тоже) необходимо переслать друг другу письма любого содержания, подписанные электронной цифровой подписью (кнопка с сургучной печатью с ленточкой), для того чтобы
«привязать» открытый ключ к записи в адресной книге.
12
Download