Криптографические протоколы
В компьютерных протоколах с судейством предусматривается наличие
данных, проверив которые доверенное третье лицо может решить, не
смошенничал ли кто-либо из участников этого протокола. Хороший протокол с
судейством также позволяет выяснить, кто именно ведет себя нечестно. Это
служит прекрасным превентивным средством против мошенничества со стороны
участников такого протокола.
Самоутверждающийся протокол
Самоутверждающийся протокол не требует присутствия арбитра для
завершения каждого шага протокола. Он также не предусматривает наличие
судьи для разрешения конфликтных ситуаций. Самоутверждающийся протокол
устроен так, что если один из его участников мошенничает, другие смогут
моментально распознать нечестность, проявленную этим участником, и
прекратить выполнение последующих шагов протокола.
Конечно же, хочется, чтобы существовал универсальный самоутверждающийся
протокол на все случаи жизни. Однако на практике в каждом конкретном случае
приходится конструировать свой специальный самоутверждающийся протокол.
Разновидности атак на протоколы
Атаки на протоколы бывают направлены против криптографических
алгоритмов, которые в них задействованы, против криптографических методов,
применяемых для их реализации, а также против самих протоколов. Для начала
предположим, что используемые криптографические алгоритмы и методы являются
достаточно стойкими, и рассмотрим атаки собственно на протоколы.
Лицо, не являющееся участником протокола, может попытаться подслушать
информацию, которой обмениваются его участники. Это пассивная атака на
протокол, которая названа так потому, что атакующий (будем именовать его
Петром) может только накапливать данные и наблюдать за ходом событий, но не
в состоянии влиять на него. Пассивная атака подобна криптоаналитической
атаке со знанием только шифртекста. Поскольку участники протокола не
обладают надежными средствами, позволяющими им определить, что они стали
объектом пассивной атаки, для защиты от нее используются протоколы, дающие
возможность предотвращать возможные неблагоприятные последствия пассивной
атаки, а не распознавать ее.
Атакующий может попытаться внести изменения в протокол ради
собственной выгоды. Он может выдать себя за участника протокола, внести
изменения в сообщения, которыми обмениваются участники протокола, подменить
информацию, которая хранится в компьютере и используется участниками
протокола для принятия решений. Это активная атака на протокол, поскольку
атакующий (назовем его Зиновием) может вмешиваться в процесс выполнения
шагов протокола его участниками.
Итак, Петр пытается собрать максимум информации об участниках
протокола и об их действиях. У Зиновия же совсем другие интересы -
ухудшение производительности компьютерной сети, получение
несанкционированного доступа к ее ресурсам, внесение искажений в базы
данных. При этом и Петр, и Зиновий не обязательно являются совершенно
посторонними лицами. Среди них могут быть легальные пользователи, системные
и сетевые администраторы, разработчики программного обеспечения и даже
участники протокола, которые ведут себя непорядочно или даже вовсе не
соблюдают этот протокол.
В последнем случае атакующий называется мошенником. Пассивный мошенник
следует всем правилам, которые определены протоколом, но при этом еще и
пытается узнать о других участниках больше, чем предусмотрено этим
протоколом. Активный мошенник вносит произвольные изменения в протокол,
чтобы нечестным путем добиться для себя наибольшей выгоды.
Защита протокола от действий нескольких активных мошенников
представляет собой весьма нетривиальную проблему. Тем не менее при
некоторых условиях эту проблему удается решить, предоставив участникам
протокола возможность вовремя распознать признаки активного мошенничества.
А защиту от пассивного мошенничества должен предоставлять любой протокол
вне зависимости от условий, в которые поставлены его участники.
Доказательство с нулевым разглашением конфиденциальной информации
Антон: "Я знаю пароль для входа в компьютерную сеть Центробанка
и рецепт приготовления „Байкала"".
Борис: "Нет, не знаешь!"
Антон: "Нет, знаю!"
Борис: "Чем докажешь?"
Антон: "Хорошо, я тебе все расскажу".
Антон долго шепчет что-то на ухо Борису.
Борис: "Действительно интересно! Надо сообщить об этом
газетчикам!"
Антон: "Ё-моё..."
К сожалению, в обычных условиях Антон может доказать Борису, что знает
какую-либо тайну, единственным способом - рассказав, в чем состоит ее суть.
Но тогда Борис автоматически узнает эту тайну и сможет поведать о ней
первому встречному. Есть ли у Антона возможность помешать Борису это
сделать?
Конечно, есть. В первую очередь, Антону не следует доверять свою тайну
Борису. Но как тогда Антон сможет убедить Бориса в том, что действительно
входит в число посвященных?
Антону надо воспользоваться протоколом доказательства с нулевым
разглашением конфиденциальной информации. С помощью этого протокола Антон
окажется в состоянии доказать Борису, что он обладает некой секретной
информацией, однако разглашать данную информацию перед Борисом будет совсем
не обязательно.
Доказательство носит интерактивный характер. Борис задает Антону серию
вопросов. Если Антон знает секрет, то ответит правильно на все заданные ему
вопросы. Если не знает, вероятность правильного ответа на каждый из
вопросов будет невелика. После примерно 10 вопросов Борис будет точно
знать, обманывает ли его Антон. При этом шансы Бориса извлечь для себя
какую-либо полезную информацию о сути самого секрета практически равны
нулю.
Протокол доказательства с нулевым разглашением конфиденциальной
информации
Использование доказательства с нулевым разглашением конфиденциальной
информации можно пояснить на конкретном примере.
Предположим, что имеется пещера, точка входа в пещеру обозначена
буквой A, в точке B пещера разветвляется на две половины - C и D (см.
рисунок). У пещеры есть секрет: только тот, кто знает волшебные слова,
может открыть дверь, расположенную между C и D.
Антону волшебные слова известны, Борису - нет. Антон хочет доказать Борису,
что знает волшебные слова, но так, чтобы Борис по-прежнему оставался в
неведении относительно этих слов. Тогда Антон может воспользоваться
следующим протоколом:
1. Борис стоит в точке A.
2. По своему выбору Антон подходит к двери либо со стороны точки
C, либо со стороны точки D.
3. Борис перемещается в точку B.
4. Борис приказывает Антону появиться или (а) - через левый
проход к двери, или (б) - через правый проход к двери.
5. Антон подчиняется приказу Бориса, в случае необходимости
используя волшебные слова, чтобы пройти через дверь.
6. Шаги 1-5 повторяются n раз, где n - параметр протокола.
Допустим, что у Бориса есть видеокамера, с помощью которой он
фиксирует все исчезновения Антона в недрах пещеры и все его последующие
появления с той или иной стороны. Если Борис покажет записи всех n
экспериментов, произведенных им совместно с Антоном, смогут ли эти записи
послужить доказательством знания Антоном волшебных слов для другого
человека (например, для Владимира)?
Вряд ли. Владимир никогда не сможет полностью удостовериться в том,
что Антон каждый раз предварительно не сообщал Борису, с какой стороны он
направится к двери, чтобы потом Борис приказывал ему выходить именно с той
стороны, с какой Антон зашел. Или что из сделанной видеозаписи не вырезаны
все неудачные эксперименты, в ходе которых Антон появлялся совсем не с той
стороны, с какой ему приказывал Борис.
Это означает, что Борис не в состоянии убедить Владимира, лично не
присутствовавшего при проведении экспериментов в пещере, в том, что Антон
действительно подтвердил там свое знание секрета. А значит, использованный
Антоном протокол доказательства характеризуется именно нулевым разглашением
конфиденциальной информации. Если Антон не знает волшебные слова,
открывающие дверь в пещере, то, наблюдая за Антоном, не сможет ничего
узнать и Борис. Если Антону известны волшебные слова, то Борису не поможет
даже подробная видеозапись проведенных экспериментов. Во-первых, поскольку
при ее просмотре Борис увидит только то, что уже видел живьем. А во-вторых,
потому что практически невозможно отличить сфальсифицированную Борисом
видеозапись от подлинной.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15