Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УМК Компьютерные сети ч 1 (для студентов)3 / ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ

.doc
Скачиваний:
84
Добавлен:
09.04.2015
Размер:
62.46 Кб
Скачать

5

ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ

Применение криптографии с открытым ключом позволяет зашифровать сообщение, сделав его нечитаемым для всех, кому не известен закрытый ключ. Это реша­ет проблему обмена ключами, поскольку знания только открытого ключа не до­статочно для расшифровки сообщения. Но при этом у получателя сообщения нет возможности убедиться в том, что отправитель является тем, за кого себя выдает Так, если вы получите сообщение от Билла Гейтса (Bill Gates), вы скорее всего подумаете, что это чья-то шутка и адрес в письме фальшивый. Как доказать, что сообщение было действительно отправлено Биллом и получено в том же виде в каком его послал Билл?

Справиться с такой задачей помогают цифровые подписи (digital signature). Рас­смотрим, что произойдет, если вы зашифруете сообщение своим секретным клю­чом, а не открытым ключом получателя. Поскольку секретный ключ известен только вам, после расшифровки сообщения вашим открытым ключом получатель сможет определить, что оно пришло от вас. Конечно же, это означает, что сообще­ние сможет расшифровать любой, располагающий копией вашего открытого клю­ча. Не забывайте о том, что пары из секретного и открытого ключей работают в обоих направлениях. Данные, зашифрованные при помощи одного ключа, под­даются расшифровке только посредством второго ключа.

Поэтому при наличии цифровой подписи обычно шифруется не все сообще­ние целиком, а только результат вычисления его хэш-функции. Хэш-функция дает строку данных, длина которой, как правило, намного меньше исходного со­общения (например, равна 160 бит). Как показано на рис. 9.1, результат хэш-функ­ции, иногда называемый дайджестом сообщения (message digest), шифруется сек­ретным ключом и пересылается вместе с сообщением. Пользователь может расшифровать результат хэш-функции и самостоятельно вычислить его для дан­ного сообщения. Если вычисленное значение совпадает с расшифрованным, ло­гично считать, что автор сообщения установлен и сообщение не было изменено, то есть была обеспечена целостность данных. При внесении любых изменений в сообщение его хэш-функция изменится.

Как видите, данный метод не позволяет отправителю отрицать, что сообщение было послано им. Такое свойство называется nonrepudiation (буквально «неуклоняемость»), поскольку, если секретный ключ не был разглашен, цифровая подпись могла быть наложена только отправителем сообщения.

Очевидно, что при наличии цифровой подписи не обязательно шифровать сам текст сообщения. При желании это можно сделать, но в алгоритм цифровой под­писи такая операция уже не входит. Не исключено, что содержимое сообщения не секретно и вам нужно только удостоверить личность отправителя и целост­ность сообщения. Хэш-функция вычисляется независимо от того, зашифровано сообщение или нет. Основная идея здесь состоит в том, что одна и та же математическая хэш-функция используется на обоих концах соединения. Так как секретный ключ, с помощью которого была создана цифровая подпись, есть только у отправителя, то таким образом можно проверить источник сообщения.

Отправитель

Отправитель подтвержден, сообщение не было изменено

Да

Вычислить дайджест сообщения при помощи хэш-функции

Соответствует ли вычисленный дайджест расшифрованному?

Нет

Сообщение было искажено или послано другим отправителем

Расшифровать присланный вместе с сообщением зашифрованный дайджест при помощи открытого ключа отправителя

Зашифровать дайджест сообщения при помощи секретного ключа

Вычислить дайджест сообщения при помощи хэш-функции

Переслать сообщение и зашифрованный дайджест получателю

Получить сообщение и зашифрованный дайджест

Цифровая подпись идентифицирует отправителя и проверяет целостность данных

Цифровые сертификаты

Цифровые сертификаты (digital certificate) в чем-то напоминают цифровые под­писи. Сертификат - это документ, который утверждает, что вы можете «доверять» определенной информации. Предположим, что вы хотите переслать кому-либо сообщение, используя криптографию с открытым ключом. Для этого вам надо вначале раздобыть открытый ключ получателя. Но как убедиться, что этот ключ действительно принадлежит ему? Предположим, что вы ранее не обменивались с ним зашифрованными сообщениями и открытый ключ приходит в электронном письме или от провайдера подобной услуги в Internet. Как определить в данном случае, принадлежит ли действительно ключ этому человеку? Всегда имеется риск, что это чужой ключ, присланный тем, кто надеется выдать себя за другого! Проверить, является ли на самом деле владельцем открытого ключа тот, кто ВЫ думаете, позволяет цифровой сертификат, применение которого основано на присутствии известной доверенной третьей стороны. Сертификат содержит откры­тый ключ, информацию о держателе ключа и удостоверяющую сертификат циф­ровую подпись. Третья сторона, выпускающая сертификаты (она называется Certificate Authority - Сертифицирующим авторитетом, СА), должна быть представлена известным лицом или организацией, которой вы доверяете выпуск сер­тификата. Примером подобного издателя сертификатов служит компания Verisign. Поскольку вы доверяете издателю сертификата и в состоянии прове­рить его подпись, вы будете доверять и имеющейся в сертификате информации.

Третья сторона не обязательно должна быть внешней организацией. Для внут­ренних нужд допустимо использовать специальное программное обеспечение для сервера сертификатов из поставки Windows 2000 Advanced Server. На­личие собственного сервера сертификатов требует создания процедур выпуска и управления сертификатами, но это обойдется дешевле, чем услуги соответствую­щих коммерческих служб.

Если вам нужны цифровые сертификаты, предоставляющие возможность обмениваться данными с другими организациями или внешними пользовате­лями, воспользуйтесь коммерческими сертификатами, например компании Verisign.