Логика Бэрроуза — Абади — Нидхэма

Материал из testwiki
Перейти к навигации Перейти к поиску

Логика Бэрроуза — Абади — Нидхэма (Шаблон:Lang-en) или BAN-логика (Шаблон:Lang-en) — это формальная логическая модель для анализа знания и доверия, широко используемая при анализе протоколов аутентификации.

Основная идея BAN-логики состоит в том, что при анализе подобных протоколов в первую очередь следует обратить внимание на то, как стороны, участвующие в процессе аутентификации, воспринимают информацию — что они принимают на веру, а что доподлинно им известно или может быть выведено логическим путём из достоверных для них фактов.[1]

Обычно протоколы аутентификации описываются путём последовательного перечисления сообщений, передаваемых между участниками протокола. На каждом шаге описывается содержимое сообщения, а также указывается его отправитель и получатель. BAN-логика рассматривает подлинность сообщения как функцию от его целостности и новизны, используя логические правила для отслеживания состояния этих атрибутов на протяжении всего протокола.[2]

В BAN-логике существует три типа объектов: участники, ключи шифрования и формулы, их связывающие. При формальном анализе протокола каждое сообщение преобразуется в логическую формулу; затем логические формулы связываются утверждениями. Тем самым, BAN-логика во многом схожа с логикой Хоара.[3] Единственной логической операцией, применяемой в данной логике, является конъюнкция. Также вводятся различные предикаты, например, устанавливающие отношения между участниками и высказываниями (отношение доверия, юрисдикции и т. д.) или выражающие какие-либо свойства высказываний (таких, как свежесть, то есть утверждение, что высказывание получено недавно).

Как и любая формальная логика, BAN-логика снабжена аксиомами и правилами вывода. Формальный анализ протокола состоит в доказательстве некоторого набора утверждений, выраженного формулами BAN-логики, с помощью правил вывода. Например, минимальное требование к любому протоколу аутенификации состоит в следующем: оба участника должны поверить в то, что они нашли секретный ключ для обмена информацией друг с другом.

Основные предикаты и их обозначения

  • P|≡X означает, что P верит в высказывание X. Это значит, что P станет действовать так, как будто X — истинная информация.
  • P⊲X подразумевает, что P видит X, то есть P принял сообщение, в котором содержится X. То есть P может прочитать и воспроизвести (возможно, после процедуры расшифрования) сообщение X.
  • P|∼X означает, что P однажды высказал X, то есть в какой-то момент времени P послал сообщение, содержащее X.
  • P|⇒X означает, что X входит в юрисдикцию P (или P имеет юрисдикцию над X), то есть P обладает авторитетом по вопросу относительно X.
  • #X означает, что высказывание X получено недавно. То есть сообщение X не было послано когда-то в прошлом (до момента запуска протокола).
  • P⟷kQ означает, что P и Q используют для общения разделенный ключ k.
  • {X}k подразумевает, что данные X зашифрованы ключом k.

Другие обозначения

Операция конъюнкции обозначается запятой, а логическое следование — горизонтальной чертой. Таким образом, логическое правило A∧B⇒C в обозначениях BAN-логики записывается как A,BC

Аксиомы BAN-логики

  1. Время делится на две эпохи: прошлое и настоящее. Настоящее начинается с момента запуска протокола.
  2. Участник P, высказывающий X, верит в истинность X.
  3. Шифрование считается абсолютно надежным: зашифрованное сообщение не может быть расшифровано участником, не знающим ключа.

Правила вывода

  • Правило о значении сообщения:
A|≡A⟷KB,A⊲{X}KA|≡B|∼X

Эквивалентная словесная формулировка: из предположений о том, что A верит в совместное использование ключа K с B, и A видит сообщение X, зашифрованное ключом K, следует, что A верит, что B в какой-то момент высказал X.

Заметим, что здесь неявно предполагается, что сам A никогда не высказывал X.

  • Правило проверки уникальности числовых вставок:
A|≡#X,A|≡B|∼XA|≡B|≡X

то есть если A верит в новизну X и в то, что B когда-то высказал X, то A верит, что B по-прежнему доверяет X.

  • Правило юрисдикции:
A|≡B|⇒X,A|≡B|≡XA|≡X

утверждает, что если A верит в полномочия B относительно X, и A верит в то, что B верит в X, то A должен верить в X.

  • Другие правила

Оператор доверия и конъюнкция подчиняются следующим соотношениям:

A|≡X,A|≡YA|≡(X,Y)
A|≡(X,Y)A|≡X
A|≡B|≡(X,Y)A|≡B|≡X

По сути, данные правила устанавливают следующее требование: A доверяет какому-то набору утверждений тогда и только тогда, когда A доверяет каждому утверждению по отдельности.

Аналогичное правило существует для оператора |∼:

A|≡B|∼(X,Y)A|≡B|∼X

Следует заметить, что из A|≡B|∼X и A|≡B|∼Y не следует A|≡B|∼(X,Y), поскольку X и Y могли быть высказаны в разные моменты времени.

Наконец, если какая-то часть высказывания получена недавно, то это же можно утверждать и про все высказывание целиком:

A|≡#XA|≡#(X,Y)

Формальный подход к анализу протоколов аутентификации

С практической точки зрения, анализ протокола осуществляется следующим образом:[4][5]

  • Исходный протокол преобразуется в идеализованный (то есть записанный в терминах BAN-логики).
  • Добавляются предположения о начальном состоянии протокола.
  • С каждым высказыванием связывается логическая формула, то есть логическое утверждение о состоянии протокола после каждого высказывания.
  • К предположениям и утверждениям протокола применяются правила вывода и аксиомы для того, чтобы определить состояние доверия сторон по завершении работы протокола.

Поясним смысл данной процедуры. Первый шаг носит название идеализации и состоит в следующем: каждый шаг протокола, записанный в виде P⟶Q:message, преобразуется в набор логических утверждений, касающихся передающей и принимающей стороны. Пусть, например, один из шагов протокола выглядит следующим образом:

A⟶B:{A,Kab}Kbs

Это сообщение говорит участнику B (обладающему ключом Kbs), что ключ Kab должен быть использован для сообщения с A. Соответствующая логическая формула для данного сообщения имеет вид:

A⟶B:{A⟷KabB}Kbs

Когда данное сообщение доставляется B, справедливо утверждение:

B⊲{A⟷KabB}Kbs

то есть B видит данное сообщение и в дальнейшем будет действовать в соответствии с ним.

После идеализации протокол выглядит как последовательность высказываний и утверждений, связывающих эти высказывания. Начальное утверждение состоит из исходных предположений протокола, конечное утверждение — результат работы протокола:

[assumptions]S1[assertion1]⋯[assertion(n−1)]Sn[conclusions]

Протокол считается корректным, если набор конечных утверждений включает в себя набор (формализованных) целей протокола.

Цели протоколов аутентификации

Запишем цели протокола аутентификации в терминах BAN-логики (то есть какие логические утверждения должны быть выведены из предположений протокола, с учетом последовательности шагов (утверждений), выполняемых в данном протоколе):[6][7]

A|≡A⟷KB и B|≡A⟷KB

то есть обе стороны должны поверить в то, что они используют для обмена сообщениями один и тот же секретный ключ. Однако, можно потребовать и большего, например:

A|≡B|≡A⟷KB и B|≡A|≡A⟷KB

то есть подтверждения приема ключа.[6]

Анализ протокола широкоротой лягушки с помощью BAN-логики

Рассмотрим простой протокол аутентификации — протокол широкоротой лягушки — который позволяет двум сторонам, A и B, установить защищённое соединение, используя сервер S, которому они оба доверяют, и синхронизированные часы.[8] В стандартных обозначениях протокол записывается следующим образом:

A→S:A,{TA,Kab,B}Kas
S→B:{TS,Kab,A}Kbs

После идеализации шаги протокола приобретают вид:

A→S:{TA,A⟷KabB}Kas
S→B:{TS,A|≡A⟷KabB}Kbs

Запишем исходные предположения протокола. Стороны A и B обладают ключами Kas и Kbs соответственно, для защищённой связи с сервером S, что на языке BAN-логики может быть выражено как:

A|≡A⟷KasS
S|≡A⟷KasS
B|≡B⟷KbsS
S|≡B⟷KbsS

Также имеются предположения о временных вставках:

S|≡#TA
B|≡#TS

Помимо этого, есть несколько предположений о ключе шифрования:

  • B полагается на A в выборе хорошего ключа:
B|≡A|⇒(A⟷KabB)
  • B доверяет S передать ключ от A:
B|≡S|⇒(A|≡A⟷KabB)
  • A верит, что сеансовый ключ принят:
A|≡(A⟷KabB)

Приступим к анализу протокола.

  • S получает первое сообщение, из которого можно сделать следующие выводы:
  1. S, видя сообщение, зашифрованное ключом Kas, делает вывод, что оно было послано A (правило о значении сообщения).
  2. Наличие свежей временной вставки TA позволяет заключить, что и все сообщение написано недавно (правило для оператора #).
  3. Из свежести всего сообщения S может заключить, что A верил в то, что послал (правило проверки уникальности числовых вставок).

Следовательно, S|≡A|≡(A⟷KabB).

  • B получает второе сообщение протокола, из которого следует:
  1. Увидев послание, зашифрованное ключом Kbs, клиент B понимает, что оно было отправлено S.
  2. Временная вставка TS доказывает B, что все сообщение было послано недавно.
  3. Ввиду свежести сообщения, B заключает, что S доверяет всему посланному.
  4. В частности, B верит в то, что S доверяет второй части сообщения.
  5. Но B верит и в то, что в юрисдикцию S входит выяснить, знает ли его партнер A секретный ключ, и поэтому B вверяет A полномочия по генерированию ключа.

Из этих рассуждений можно сделать следующие выводы:

B|≡(A⟷KabB)
B|≡A|≡(A⟷KabB)

С учетом исходного предположения о том, что A|≡(A⟷KabB), получаем, что анализируемый протокол обоснован. Единственное, чего нельзя утверждать:

A|≡B|≡(A⟷KabB)

то есть A не добился подтверждения того, что B получил нужный ключ.

Критика

Наибольшей критике подвергается процесс идеализации, поскольку идеализованный протокол может некорректно отражать свой реальный аналог.[9] Это связано с тем, что описание протоколов не дается в формальной манере, что иногда ставит под сомнение саму возможность корректной идеализации.[10] Более того, ряд критиков пытается показать, что BAN-логика может получить и очевидно неправильные характеристики протоколов.[10] Кроме того, результат анализа протокола с помощью BAN-логики не может считаться доказательством его безопасности, поскольку данная формальная логика занимается исключительно вопросами доверия.[11]

Примечания

Шаблон:Примечания

Литература

Ссылки

  1. ↑ Н. Смарт, «Криптография», p. 175.
  2. ↑ B. Schneier, «Applied Cryptography», p. 66.
  3. ↑ M. Burrows, M. Abadi, R. Needham, «A Logic of Authentication», p. 3.
  4. ↑ M. Burrows, M. Abadi, R. Needham, «A Logic of Authentication», p. 11.
  5. ↑ B. Schneier, «Applied Cryptography», p. 67.
  6. ↑ 6,0 6,1 Н. Смарт, «Криптография», p. 177.
  7. ↑ M. Burrows, M. Abadi, R. Needham, «A Logic of Authentication», p. 13.
  8. ↑ Н. Смарт, «Криптография», p. 169—170.
  9. ↑ D.M. Nessett, «A Critique of the Burrows, Abadi, and Needham Logic», pp. 35-38.
  10. ↑ 10,0 10,1 Boyd,C. and Mao, W. «On a Limitation of BAN Logic»
  11. ↑ P.F. Syverson, «The Use of Logic in the Analysis of Cryptographic Protocols»