Компьютерные сети. 6-е изд.
Шрифт:
8.7. Цифровые подписи
Подлинность документов (юридических, финансовых и др.) определяется наличием или отсутствием авторизованной собственноручной подписи (фотокопии не в счет). Чтобы компьютерные системы обмена сообщениями могли заменить пересылку бумажных документов, необходимо решить проблему подписи, исключив возможность подделки.
Задача разработки замены для подписи от руки довольно сложна. По сути, требуется система, с помощью которой одна сторона может отправить другой стороне подписанное сообщение, при этом:
1. Получатель может проверить
2. Позднее отправитель не может отрицать содержание отправленного сообщения.
3. Получатель не имеет возможности изменить сообщение.
Первое требование имеет большое значение, к примеру, для финансовых систем. Когда компьютер клиента передает компьютеру банка заказ на покупку тонны золота, тот должен быть уверен, что устройство, с которого пришел запрос, действительно принадлежит данному клиенту, прежде чем снимать деньги с его счета. Другими словами, банк должен аутентифицировать клиента (и наоборот).
Соблюдение второго условия требуется для защиты банка от мошенничества. Предположим, что банк покупает заказанную тонну золота, после чего цена на этот металл резко падает. Недобросовестный клиент может подать на банк в суд, заявляя, что никогда не заказывал покупку. Банк может предъявить суду письмо с заказом, но клиент будет отрицать его подлинность. Свойство, при котором стороны не могут отрицать факт подписания контракта, называется неотказуемостью (nonrepudiation). Схемы цифровых подписей, которые мы изучим далее, помогают ее обеспечить.
Третье требование необходимо для защиты клиента. Если цена на золото после его покупки банком резко взлетает, банк может создать подписанное сообщение, в котором клиент заказывает не тонну золота, а один слиток. При таком сценарии банк, совершив мошенничество, забирает оставшуюся часть золота себе.
8.7.1. Подписи с симметричным ключом
Один из методов реализации цифровых подписей состоит в создании центрального авторитетного органа, которому все доверяют, назовем его Большим Братом (Big Brother, BB). Каждый пользователь выбирает секретный ключ и лично относит его в его офис. Таким образом, к примеру, секретный ключ Алисы KA известен только ей самой и BB. Если вы забудете, что значит какой-либо символ или подстрочный индекс, вы всегда можете свериться с илл. 8.20. Здесь описаны самые важные обозначения, используемые в этом и последующих разделах.
Обозначение
Описание
A
Алиса (отправитель)
B
Банковский менеджер Боб (получатель)
P
Открытый текст сообщения, которое хочет отправить Алиса
BB
Большой Брат (авторитетный центральный орган)
t
Временная метка (для подтверждения новизны)
RA
Случайное число, выбранное Алисой
Симметричный ключ
KA
Секретный ключ Алисы (аналогично и в случае KB, KBB и т.д.)
KA(M)
Сообщение M шифруется/дешифруется с помощью секретного ключа Алисы
Асимметричные ключи
DA
Закрытый ключ Алисы (аналогично и в случае DB и т.д.)
EA
Открытый ключ Алисы (аналогично и в случае EB и т.д.)
DA(M)
Сообщение M шифруется/дешифруется с помощью закрытого ключа Алисы
EA(M)
Сообщение M
Профиль сообщения
MD(P)
Профиль сообщения для открытого текста P
Илл. 8.20. Алиса хочет отправить сообщение своему банковскому менеджеру: расшифровка ключей и символов
Чтобы отправить своему банковскому менеджеру Бобу подписанное незашифрованное сообщение P, Алиса формирует сообщение KA(B, RA, t, P), зашифрованное ее ключом KA (B — идентификатор Боба, RA — случайное число, выбранное Алисой, t — временная метка для подтверждения новизны сообщения). Затем она отсылает его BB (илл. 8.21). BB видит, что это сообщение от Алисы, расшифровывает его и передает Бобу. Сообщение для Боба содержит открытый текст сообщения Алисы KBB(A, t, P) и подпись BB. Получив его, Боб может выполнять заказ Алисы.
Илл. 8.21. Цифровая подпись BB
Что случится, если позже Алиса будет отрицать отправку этого сообщения? Прежде всего, все подают друг на друга в суд (по крайней мере, в США). В суде Алиса решительно утверждает, что она не отправляла Бобу спорное сообщение. Судья спрашивает Боба, почему он уверен, что данное сообщение пришло именно от Алисы, а не от Труди. Сначала Боб заявляет, что BB не принял бы сообщение от Алисы, если бы оно не было зашифровано ее ключом KA. У Труди просто нет возможности отправить фальшивое сообщение от имени Алисы — Боб сразу бы это обнаружил.
Затем Боб театрально демонстрирует суду вещественное доказательство A: KBB(A, t, P). Боб говорит, что это сообщение подписано BB, а значит, Алиса является источником сообщения P. Судья просит BB (которому все доверяют) проверить подпись под этим сообщением. Когда BB подтверждает, что Боб говорит правду, судья решает дело в пользу Боба. Дело закрыто.
Теоретически проблема с протоколом цифровых подписей, показанным на илл. 8.21, может возникнуть, если Труди повторно воспроизведет любое из сообщений. Чтобы свести к минимуму такую вероятность, используются временные метки. Кроме того, Боб может просмотреть все недавние письма и проверить, не встречалось ли в них такое же RA. При повторе RA сообщение считается дубликатом и отбрасывается. Очень старые (исходя из временной метки) письма также игнорируются. Для защиты от атаки мгновенного повторного воспроизведения Боб просто проверяет значение числа RA в каждом входящем сообщении, сверяя его со всеми RA, полученными за последний час. Если в течение часа такое значение не приходило, Боб может быть уверен, что полученное сообщение является новым запросом.
8.7.2. Подписи с открытым ключом
Главная проблема создания цифровых подписей с помощью шифрования с симметричным ключом — все должны согласиться доверять BB. Помимо этого, BB получает возможность читать подписываемые им сообщения. Самыми логичными кандидатами на управление сервером BB являются правительство, банки или нотариальные бюро. Однако им доверяют не все граждане. Было бы здорово, если бы для получения подписи на электронном документе не требовался какой-либо доверенный полномочный орган.