Это не официальный сайт wikipedia.org 01.01.2023

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

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

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

Основная идея 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 k Q   означает, что P   и Q   используют для общения разделенный ключ k  .
  • { X } k   подразумевает, что данные X   зашифрованы ключом k  .

Другие обозначенияПравить

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

Аксиомы BAN-логикиПравить

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

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

  • Правило о значении сообщения:
A | A K B , A { X } K A | B | X  

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

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

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

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

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

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

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

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

A | X , A | Y A | ( 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 | # X A | # ( X , Y )  

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

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

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

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

A B : { A , K a b } K b s  

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

A B : { A K a b B } K b s  

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

B { A K a b B } K b s  

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

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

[ a s s u m p t i o n s ] S 1 [ a s s e r t i o n 1 ] [ a s s e r t i o n ( n 1 ) ] S n [ c o n c l u s i o n s ]  

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

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

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

A | A K B   и B | A K B  

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

A | B | A K B   и B | A | A K B  

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

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

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

A S : A , { T A , K a b , B } K a s  
S B : { T S , K a b , A } K b s  

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

A S : { T A , A K a b B } K a s  
S B : { T S , A | A K a b B } K b s  

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

A | A K a s S  
S | A K a s S  
B | B K b s S  
S | B K b s S  

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

S | # T A  
B | # T S  

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

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

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

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

Следовательно, S | A | ( A K a b B )  .

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

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

B | ( A K a b B )  
B | A | ( A K a b B )  

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

A | B | ( A K a b B )  

то есть 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. 1 2 Н. Смарт, «Криптография», 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. 1 2 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»

ЛитератураПравить

  • M. Burrows, M. Abadi, R. Needham. A Logic of Authentication (неопр.) // Systems Research Center of Digital Equipment Corporation in Palo Alto. — 1989. — December (т. 426). — С. 44—54.
  • Monniaux, D. Decision procedures for the analysis of cryptographic protocols by logics of belief (англ.) // Computer Security Foundations Workshop, 1999. Proceedings of the 12th IEEE : journal. — 1999. — P. 44—54.
  • Boyd, Colin; Mao, Wenbo. On a Limitation of BAN Logic // Advances in Cryptology — EUROCRYPT ’93 (неопр.) / Helleseth, Tor. — Springer Berlin / Heidelberg, 1994. — С. 240—247. — ISBN 978-3-540-57600-6.

СсылкиПравить