Глава 8. Безопасный канал общения
быть важно в ситуациях, когда интерпретация сообщений зависит от поряд-
ка, в котором они получены.
Зачастую пользователь А хочет быть уверенным в том, что пользова-
тель Б получит всю переданную ему информацию. Во многих системах для
этого реализуют схему уведомлений, при которой пользователь Б отправля-
ет пользователю А уведомление (явное или неявное) о получении сообщения.
Пользователь А повторно отправляет пользователю Б все сообщения, о до-
ставке которых не было получено уведомлений. Обратите внимание, что наш
безопасный канал общения никогда не инициирует повторную отправку со-
общений. Все это приходится выполнять самому пользователю А или, как
минимум, протоколу, который использует канал общения.
“А почему бы не реализовать механизм повторной отправки в рамках са-
мого канала общения?” — спросите вы. Потому что это усложнило бы его
описание. Мы хотим, чтобы модули, ответственные за обеспечение безопас-
ности, оставались простыми. Уведомления и повторная отправка — это стан-
дартные механизмы коммуникационных протоколов, и они могут быть реа-
лизованы поверх нашего безопасного канала общения. В конце концов, эта
книга посвящена криптографии, а не основным механизмам коммуникацион-
ных протоколов.
8.2
Порядок аутентификации и шифрования
Очевидно, к нашим сообщениям будет применяться и шифрование и аутен-
тификация. Это можно сделать двумя способами: вначале зашифровать со-
общение, а затем провести аутентификацию шифрованного текста или же
вначале обеспечить аутентификацию сообщения, а затем зашифровать и со-
общение, и значение MAC.
Существует два основных аргумента в пользу первого подхода. Теоре-
тические результаты показывают, что при использовании конкретных опре-
делений безопасности шифрования и аутентификации подход, при котором
вначале применяется шифрование, а затем аутентификация, является без-
опасным, а подход, при котором вначале применяется аутентификация, а за-
тем шифрование, — небезопасным. Следует, однако, отметить, что второй
подход оказывается небезопасным только тогда, когда схема шифрования
имеет определенное слабое место. На практике мы никогда не используем
схемы шифрования с подобными недостатками. Между тем такие слабые
схемы шифрования удовлетворяют конкретному формальному определению
безопасности. (Это хороший пример расхождения между доказательствами
безопасности и практической безопасностью.) Применение функции вычисле-
ния MAC к шифрованному тексту, полученному с помощью подобной схемы
8.2. Порядок аутентификации и шифрования
137
шифрования, исправляет недостатки последней и делает ее безопасной. Как
видите, для реальных систем подобные теоретические результаты не име-
ют большого значения. В действительности существуют аналогичные дока-
зательства того, что такая проблема вообще не возникает для всех поточных
шифров (таких, как режим CTR) и для режима CBC.
Необходимо также отметить, что подход “сначала шифрование, затем
аутентификация” более эффективен при отбрасывании фальсифицирован-
ных сообщений. Если с сообщением все в порядке, пользователь Б должен
и расшифровать сообщение, и проверить его значение MAC независимо от
того, в каком порядке применялись шифрование и аутентификация. Если же
сообщение является поддельным (т.е. имеет неправильное значение MAC),
пользователь Б его отбросит. Если к сообщению вначале применялось шиф-
рование, а затем аутентификация, на стороне получателя операция дешиф-
рования будет проводиться после операции аутентификации. В этом случае
пользователю Б не придется расшифровывать поддельные сообщения, по-
скольку он обнаружит и отбросит их еще до расшифровки. Если же к со-
общению сначала применялась аутентификация, а затем шифрование, поль-
зователю Б придется расшифровывать абсолютно все сообщения — только
так он сможет проверить их значения MAC. Таким образом, во втором слу-
чае пользователю Б придется проделывать лишнюю работу по расшифровке
поддельных сообщений. Данная проблема становится актуальной тогда, ко-
гда злоумышленник Е отсылает пользователю Б большое количество фальси-
фицированных сообщений. Отбрасывая эти сообщения еще до расшифровки,
пользователь Б снижает нагрузку на процессор. Кроме того, в некоторых (на-
до сказать, весьма редких) случаях применение данного подхода несколько
затрудняет проведение атак типа “отказ в обслуживании” (denial-of-service —
DOS). На практике большинство DOS-атак направлены на переполнение ка-
нала общения, а вовсе не на загрузку фальсифицированными сообщениями
процессора пользователя Б. Лично нам этот аргумент не кажется убедитель-
ным, так как мы всегда готовы пожертвовать производительностью ради без-
опасности.
Существует два основных аргумента и в пользу второго подхода, при
котором вначале применяется аутентификация, а затем шифрование. Если
шифрование выполняется перед аутентификацией, злоумышленник Е видит
и текст, для которого вычислено значение MAC, и само значение MAC. Ес-
ли же шифрование выполняется после аутентификации, злоумышленник ви-
дит только шифрованный текст и зашифрованное значение MAC; сам текст,
для которого вычислено значение MAC (т.е. открытый текст), и настоящее
значение MAC от него скрыты. Это существенно затрудняет нападение на
функцию вычисления MAC по сравнению с первым подходом. Вообще го-
воря, суть спора о порядке шифрования и аутентификации состоит в том,
138
Достарыңызбен бөлісу: |