Шрифт:
Закладка:
Обозначение
Описание
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 являются правительство, банки или нотариальные бюро. Однако им доверяют не все граждане. Было бы здорово, если бы для получения подписи на электронном документе не требовался какой-либо доверенный полномочный орган.
К счастью, здесь нам поможет шифрование с открытым ключом. Предположим, такие алгоритмы шифрования и дешифрования, помимо обычного свойства D(E(P)) = P, обладают свойством E(D(P)) = P. Например, оно есть у алгоритма RSA, так что это предположение вполне обоснованно. В этом случае Алиса может отправить Бобу подписанное открытое сообщение P, переслав ему EB(DA(P)). Обратите внимание, что она знает свой собственный (закрытый) ключ дешифрования DA, так же как и открытый ключ Боба EB, поэтому сформировать такое сообщение ей по силам.
Приняв сообщение, Боб расшифровывает его как обычно, используя свой закрытый ключ DB, что в результате дает DA(P), как показано на илл. 8.22. Он сохраняет зашифрованный текст в надежном месте, после чего декодирует его открытым ключом шифрования Алисы EA, получая открытый текст.
Чтобы понять, как в данном случае работает цифровая подпись, предположим, что впоследствии Алиса отрицает отправку Бобу сообщения P. Когда дело доходит до суда, Боб предъявляет P и DA(P). Судья легко может убедиться, что у Боба есть подлинное сообщение, зашифрованное ключом DA, просто применив к нему ключ EA. Боб не знает закрытого ключа Алисы, следовательно, получить зашифрованное этим ключом сообщение он мог только от нее. Сидя в тюрьме за лжесвидетельство и мошенничество, Алиса сможет заняться разработкой новых интересных алгоритмов с открытым ключом.
Илл. 8.22. Цифровая подпись, полученная при помощи шифрования с открытым ключом
Хотя схема шифрования с открытым ключом довольно элегантна, у нее есть серьезные недостатки. Правда, они скорее связаны не с самим алгоритмом, а со средой, в которой он работает. Прежде всего, Боб может доказать, что сообщение было отправлено Алисой, только пока ключ DA хранится в тайне. Если Алиса раскроет свой секретный ключ, этот аргумент потеряет актуальность, так как в этом случае нельзя определить источник сообщения (им может быть кто угодно, включая самого Боба).
Например, проблема может возникнуть, если Боб является биржевым брокером Алисы. Она заказывает ему покупку определенных акций. Сразу после этого их цена резко падает. Чтобы отречься от своего запроса, Алиса сообщает в полицию, что ее дом был обворован, и в том числе украден компьютер вместе с секретным ключом. В зависимости от законов ее страны или штата Алиса может понести (или нет) юридическую ответственность, особенно если она заявляет, что обнаружила проникновение в квартиру, только вернувшись с работы, — через несколько часов после того, как это якобы произошло.
Другая проблема этой схемы цифровой подписи возникает, если Алиса поменяет свой ключ. Это абсолютно законно, более того, рекомендуется периодически менять ключ, чтобы