Принципы использования эцп
Криптографические методы позволяют надежно контролировать целостность как отдельных порций данных, так и их наборов (таких как поток сообщений); определять подлинность источника данных; гарантировать невозможность отказаться от совершенных действий ("неотказуемость").
В основе криптографического контроля целостности лежат два понятия:
· хэш-функция;
· электронная цифровая подпись (ЭЦП).
Хэш-функция – это труднообратимое преобразование данных (односторонняя функция), реализуемое, как правило, средствами симметричного шифрования со связыванием блоков. Результат шифрования последнего блока (зависящий от всех предыдущих) и служит результатом хэш-функции.
Пусть имеются данные, целостность которых нужно проверить, хэш-функция и ранее вычисленный результат ее применения к исходным данным (так называемый дайджест). Обозначим хэш-функцию через h, исходные данные – через T, проверяемые данные – через T'. Контроль целостности данных сводится к проверке равенства h(T') = h(T). Если оно выполнено, считается, что T' = T. Совпадение дайджестов для различных данных называется коллизией. В принципе, коллизии, конечно, возможны, поскольку мощность множества дайджестов меньше, чем мощность множества хэшируемых данных, однако то, что h есть функция односторонняя, означает, что за приемлемое время специально организовать коллизию невозможно.
Рассмотрим теперь применение асимметричного шифрования для выработки и проверки электронной цифровой подписи. Пусть E(T) обозначает результат зашифрования текста T с помощью открытого ключа, а D(T) – результат расшифрования текста Т (как правило, шифрованного) с помощью секретного ключа. Чтобы асимметричный метод мог применяться для реализации ЭЦП, необходимо выполнение тождества
E(D(T)) = D(E(T)) = T
Рисунок 1 Выработка ЭЦП
Рисунок 2 Проверка ЭЦП
Из равенства E(S') = h(T') следует, что S' = D(h(T')) (для доказательства достаточно применить к обеим частям преобразование D и вычеркнуть в левой части тождественное преобразование D(E())). Таким образом, электронная цифровая подпись защищает целостность сообщения и удостоверяет личность отправителя, то есть защищает целостность источника данных и служит основой неотказуемости.
Для контроля целостности последовательности сообщений (то есть для защиты от кражи, дублирования и переупорядочения сообщений) применяют временные штампы и нумерацию элементов последовательности, при этом штампы и номера включают в подписываемый текст.
Цифровые сертификаты
При использовании асимметричных методов шифрования (и, в частности, электронной цифровой подписи) необходимо иметь гарантию подлинности пары (имя пользователя, открытый ключ пользователя). Для решения этой задачи в спецификациях X.509 вводятся понятия цифрового сертификата и удостоверяющего центра.
Удостоверяющий центр – это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и другая информация о пользователях хранится удостоверяющими центрами в виде цифровых сертификатов, имеющих следующую структуру:
· порядковый номер сертификата;
· идентификатор алгоритма электронной подписи;
· имя удостоверяющего центра;
· срок годности;
· имя владельца сертификата (имя пользователя, которому принадлежит сертификат);
· открытые ключи владельца сертификата (ключей может быть несколько);
· идентификаторы алгоритмов, ассоциированных с открытыми ключами владельца сертификата;
· электронная подпись, сгенерированная с использованием секретного ключа удостоверяющего центра (подписывается результат хэширования всей информации, хранящейся в сертификате).
Цифровые сертификаты обладают следующими свойствами:
· любой пользователь, знающий открытый ключ удостоверяющего центра, может узнать открытые ключи других клиентов центра и проверить целостность сертификата;
· никто, кроме удостоверяющего центра, не может модифицировать информацию о пользователе без нарушения целостности сертификата.
В спецификациях X.509 не описывается конкретная процедура генерации криптографических ключей и управления ими, однако даются некоторые общие рекомендации. В частности, оговаривается, что пары ключей могут порождаться любым из следующих способов:
· ключи может генерировать сам пользователь. В таком случае секретный ключ не попадает в руки третьих лиц, однако нужно решать задачу безопасной связи с удостоверяющим центром;
· ключи генерирует доверенное лицо. В таком случае приходится решать задачи безопасной доставки секретного ключа владельцу и предоставления доверенных данных для создания сертификата;
· ключи генерируются удостоверяющим центром. В таком случае остается только задача безопасной передачи ключей владельцу.
Цифровые сертификаты в формате X.509 версии 3 стали не только формальным, но и фактическим стандартом, поддерживаемым многочисленными удостоверяющими центрами.
Задания для выполнения
1. Прочитайте теоретический материал.
2. Сгенерируйте свой личный сертификат с помощью программы C4PKI Generator (используйте только английские символы во избежание проблем с кодировкой). Установите его в системное хранилище сертификатов.
3. Откройте хранилище сертификатов (выполните команду certmgr.msc). Проверьте наличие установленного сертификата в разделе «Личное».
4. Защитите паролем и зашифруйте документ MS Word и документ OpenOffice Writer. Сохраните документ, затем откройте его снова.
5. Поставьте ЭЦП на документ MS Word и документ OpenOffice Writer. Сохраните документ, затем откройте его снова. Скопируйте свой документ кому-нибудь из одногруппников. Откройте его. Проверьте наличие ЭЦП.
6. Защитить выполненную работу – для этого вам нужно будет продемонстрировать результаты выполненной работы и подготовленный отчет в письменной виде,а также ответить на вопросы преподавателя по теоретическому материалу лабораторной работы.
Контрольные вопросы
1. Для чего был создан и для каких целей используется механизм ЭЦП? Что она защищает и какие аспекты ИБ улучшает?
2. Что общего между ЭЦП и обычной традиционной личной подписью на бумажных документах?
3. Опишите механизмы выработки и проверки ЭЦП (можно пользоваться схемами из методички).
4. Что такое контроль целостности? Зачем он нужен?
5. Что такое цифровой сертификат? Какими способами можно его создать? Чем определяется уровень доверия к сертификатам?
6. Как установить сертификат для использования в разных программах? Как происходит управление установленными сертификатами в ОС?
7. Как защитить электронный документ паролем? Какой аспект ИБ это улучшает?
8. Как добавить ЭЦП в электронный документ MS Word или OpenOffice Writer? Как её просмотреть? Какой аспект ИБ это улучшает?