120
Глава 4
Коды аутентификации сообщений
4.1 Целостность сообщения
4.1.1 Секретность и целостность
Одной из самых основных целей криптографии является предоставление возмож-
ности безопасной коммуникации через
открытый канал связи. Но что означает «без-
опасная коммуникация»? В Главе 3 мы показали, что возможно засекреченная ком-
муникация через открытый канал. То есть мы показали, как шифрование может быть
использовано для того, чтобы помешать перехватчику (или более активному против-
нику) узнасть что-либо о содержании сообщений, посылаемых через незащищенных
канад связи. Однако, не все проблемы безопасности связаны с секреттностью. Часто
такой же или даже более важной задачей является обеспечение целостности сообще-
ния (или аутентификации сообщения) в том смысле, что каждый участник должен
иметь возможность определить, когда полученное сообщение было послано участ-
ником, который утверждает что его послал именно он, и что сообщение не было из-
менено при передаче. Рассмотрим два канонических примера.
Представим пользователя, который связывается со своим банком через Ин-
тернет. Когда банк получает запрос на перевод $1,000 со счета пользователя на
счет
другого пользователя X, банк должен ответить на следующие вопросы:
1. Является ли запрос настоящим? То есть, действительно ли данный поль-
зователь послал этот запрос, или запрос был послан противником (возможно,
самим пользователем X), выдающим себя за законного пользователя?
2. Предполагая, что запрос на перевод был послан законным пользователем,
являются ли детали запроса, в том виде, в каком они получены, такими как пред-
полагал законный пользователь? Или, например, была изменена сумма перевода?
Заметим, что обычные методы коррекции ошибок недостаточны для ответа
на второй вопрос. Коды коррекции ошибок обнаруживают и исправляют толь-
ко «произвольные» ошибки, затрагивающие только малую часть передачи, они
не защищают от злонамеренного противника, который может выбрать, где вне-
дрить любое количество ошибок.
Второй случай, в котором возникает необходимость в целостности сообщения,
— это случай веб-куки. Протокол HTTP, который используется в передаче данных
в сети, не сохраняет состояния, так что когда между клиентом и сервером происхо-
121
дит сеанс связи (например, когда пользователь [клиент] покупает на сайте продавца
[сервера]), любое состояние, созданное во время этого сеанса (например, содержание
корзины пользователя) часто помещается в «куки», которое хранится клиентом и по-
сылается от клиента к серверу как часть любого сообщения, посылаемого клиентом.
Предположим, что куки, хранимое некоторым пользователем, включает предметы в
корзине пользователя вместе с ценами на каждый предмет, как если продавец пред-
лагает разные цены разным клиентам (например, отображая скидки и специальные
предложения, или специальные цены для отдельных пользователей). Пользователь не
должен иметь возможность изменить куки, которое он хранит, чтобы изменить цены
на предметы в своей корзине. Таким образом, продавцу нужен метод обеспечения це-
лостности куки, хранимого у пользователя. Заметим, что содержание куки (а именно
предметы и их цены) не засекречены и даже должны быть известны пользователю.
Таким образом, проблема заключается именно в целостности.
На
самом деле, нельзя
считать коммуникацию целостной,
если не было
предпринято никаких мер для обеспечения этой целостности. Действительно,
нельзя с точностью утверждать ни о каком незащищенной заказе товара, бан-
ковской операции онлайн, электронном письме или СМС сообщении, что они
были отправлены из заявленного источника, и что они не были изменены при
передаче. К сожалению, люди часто доверчивы, так что такая информация как
номер вызывающего абонента или адрес электронной почты рассматриваются
как «доказательство источника», хотя их достаточно легко фальсифицировать.
Это создает возможность для потенциально опасных атак.
В этой главе мы покажем, как обеспечить целостность сообщений с исполь-
зованием
методов криптографии, чтобы предотвратить необнаруженное по-
вреждение сообщений в открытом канале связи. Заметим, что мы не можем
предотвратить все повреждения сообщений противником в целом, так как от
этого можно защитить только на физическом уровне. Вместо этого, мы гаранти-
руем, что любое такое повреждение будет
обнаружено честными участниками.
Достарыңызбен бөлісу: