DOI: 10.15514/ISPRAS-2021-33(5)-6
Оптимизация программ на ProVerif для криптографических протоколов выработки
общего ключа
1-2 Е.М. Винарский, ORCID: 0000-0002-7328-0942 <vinarskii@ispras.ru>
1 А.В. Демаков, ORCID: 0000-0001-6573-7925 <demakov@ispras.ru> 1 Институт системного программирования им. В.П. Иванникова РАН, 109004, Россия, г. Москва, ул. А. Солженицына, д. 25 2 Национальный исследовательский университет «Высшая школа экономики», 109028, г. Москва, Покровский бульвар, д. 11
Аннотация. Криптографические протоколы используются для установления безопасного соединения между "честными" агентами, которые общаются строго в соответствии с правилами протокола. Для того, чтобы убедиться, что спроектированный криптографический протокол является криптографически стойким, обычно используются различные программные инструменты. Однако, адекватная спецификация криптографического протокола обычно представляется в виде набора требований к последовательностям передаваемых сообщений, включая формат таких сообщений. Выполнение всех этих требований приводит к тому, что формальная спецификация для реального криптографического протокола становится громоздкой, в следствии чего её трудно анализировать формальными методами. Одним из таких стремительно развивающихся инструментов для формальной верификации криптографических протоколов является ProVerif. Отличительной особенностью инструмента ProVerif является то, что при больших протоколах он часто не справляется с их анализом, т.е. не может ни доказать безопасность протокола, ни опровергнуть её. В таких случаях прибегают либо к апроксимации задачи, либо к эквивалентным преобразованиям модели программы на языке ProVerif, упрощающих ProVerif-модель. В этой статье мы предлагаем способ для упрощения ProVerif-спецификаций для AKE-протоколов, использующих схему шифрования Эль-Гамаля. А именно, мы предлагаем эквивалентные преобразования, позволяющие построить ProVerif-спецификацию, которая упрощает анализ спецификации для инструмента ProVerif. Экспериментальные результаты для криптопротоколов Нидхема-Шрёдера и Yahalom показывают, что такой подход может быть перспективным для автоматической проверки реальных протоколов.
Ключевые слова: криптографические протоколы; эквивалентные преобразования; ProVerif
Для цитирования: Винарский Е.М., Демаков А.В. Оптимизация программ на ProVerif для криптографических протоколов выработки общего ключа. Труды ИСП РАН, том 33, вып. 5, 2021 г., стр. 105-116. DOI: 10.15514/ISPRAS-2021-33(5 )-6
Благодарности: Исследование поддержано грантом Минобрнауки РФ №075-15-2020-788
Optimization of ProVerif programs for AKE-protocols
1,2 E.M. Vinarskii, ORCID: 0000-0002-7328-0942 <vinaskii@ispras.ru> 1 A.V. Demakov, ORCID: 0000-0001-6573-7925 <demakov@ispras.ru> 1 Ivannikov Institute for System Programming of the Russian Academy of Sciences, 25, Alexander Solzhenitsyn st., Moscow, 109004, Russia 2 National Research University Higher School of Economics, 11, Pokrovsky Boulevard, Moscow, 109028, Russia
Abstract. Cryptographic protocols are used to establish a secure connection between "honest" agents who communicate strictly in accordance with the rules of the protocol. In order to make sure that the designed cryptographic protocol is cryptographically strong, various software tools are usually used. However, an adequate specification of a cryptographic protocol is usually presented as a set of requirements for the sequences of transmitted messages, including the format of such messages. The fulfillment of all these requirements leads to the fact that the formal specification for a real cryptographic protocol becomes cumbersome, as a result of which it is difficult to analyze it by formal methods. One of such rapidly developing tools for formal verification of cryptographic protocols is ProVerif. A distinctive feature of the ProVerif tool is that with large protocols, it often fails to analyze them, i.e. it can neither prove the security of the protocol nor refute it. In such cases, they resort either to the approximation of the problem, or to equivalent transformations of the program model in the ProVerif language, simplifying the ProVerif model. In this article, we propose a way to simplify the ProVerif specifications for AKE protocols using the El Gamal encryption scheme. Namely, we suggest equivalent transformations that allow us to construct a ProVerif specification that simplifies the analysis of the specification for the ProVerif tool. Experimental results for the Needham-Schroeder and Yahalom cryptoprotocols show that such an approach can be promising for automatic verification of real protocols.
Keywords: cryptographic protocols; equivalent transformations; ProVerif
For citation: Vinarskii E.M., Demakov A.V. Optimization of ProVerif programs for AKE-protocols. Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 5, 2021, pp. 105-116 (in Russian). DOI: 10.15514/ISPRAS-2021-33(5)-6
Acknowledgements. The research is supported by the grant of the Ministry of Education and Science of the Russian Federation No. 075-15-2020-788.
1. Введение
Криптографические протоколы (КП) широко используются в современных сетях. Они гарантируют аутентификацию участников, секретность сеансовых ключей и т.д. Инструмент для формальной верификации криптопротоколов ProVerif широко используется для проверки свойств безопасности для практически важных протоколов таких, как TLS 1.3, ARINC823 и др. [1, 2, 3]. Поскольку для криптографических протоколов необходимо выполнить множество требований, их адекватные формальные модели очень громоздки, в следствие чего трудно провести их формальную верификацию. Однако, если использовать специфические особенности инструмента ProVerif и проводить анализ только относительно заранее определённых свойств безопасности (например, только секретности общих сессионных ключей), то громоздкость протокола и, соответственно, сложность анализа может быть уменьшена. В частности, для инструмента ProVerif такое упрощение может быть проведено при помощи эквивалентных преобразований (ЭП), то есть таких преобразований, которые не уменьшают адекватность модели, но при этом упрощают анализ криптопротокола.
Одним из основных криптографических примитивов является функция шифрования. Однако, чтобы построить адекватную модель, описывающую операцию шифрования/расшифровния, нам необходимо добавить в ProVerif уравнение, связывающее эти две операции, пример такого уравнения изображён на рис. 1 и 2. Такие уравнения могут сильно усложнить ProVerif-модель, и, следовательно, проверку свойства безопасности для построенной PraVerif-модели.
В этой статье мы предлагаем эквивалентные преобразования, упрощающие ProVerif-модель с операциями шифрования/расшифрования. Мы используем следующие шаги для оптимизации представления криптографического протокола на языке ProVerif, чтобы упростить проверку свойств безопасности.
В настоящее время в формальной верификации криптографических протоколов господствуют две основных модели.
• Символьная модель. Криптографические примитивы рассматриваются как идеальные черные ящики, моделируемые функциональными символами в алгебре термов. Все вычисления проводятся в фиксированной теории, образованной функциональными символами и правилами редукции (уравнения) над ними. Сообщения - это термы на этих примитивах. Противник может проводить вычисления, используя только в рамках фиксированной теории. Лучшими символьными солверами на текущий момент являются Tamarin-prover [4, 5, 6] и ProVerif [7, 8, 9].
• Модель доказуемой стойкости. В данной модели сообщения - это битовые строки, криптографические примитивы - функции от битовых строк, а противник - любая вероятностная машина Тьюринга. Стойкость протокола выражается через стойкости его примитивов. Самым успешным инструментом на текущий момент является CryptoVerif [10].
В этой статье мы работаем с инструментом ProVerif, который реализует символьный подход к проверке КП. ProVerif принимает на вход модель протокола безопасности, определяя действия честных агентов и спецификацию желаемых свойств протокола. Для описания честных агентов протокола используется алгебра процессов. ProVerif автоматически переводит процессы в систему дизъюнктов Хорна и использует алгоритм, основанный на свободном выборе дизъюнкта из доступного множества, чтобы определить, является ли утверждение верным в заданной системе правил вывода (теории). Если такого логического вывода не существует, то желаемое свойство безопасности считается доказанным. Если вывод существует, то рассматриваемое свойство может быть не стойко. Полной гарантии нестойкости быть не может, так как дизъюнкты Хорна могут применяться неограниченное число раз, что является аппроксимацией криптопротокола, в следствие чего логический вывод может соответствовать ложной атаке [7, 8].
Работы, связанные с оптимизацией представления моделей КП для программных инструментов верификации достаточно развита. Авторы в статье [5] предлагают 2 подхода к упрощению доказательства лемм для модели КП на Tamarin Prover - (i) использование source lemm, которые позволяют ограничить размеры модели, в которой ищутся решения (ii) использование оракулов, помогающих подсказать путь, следуя которому можно доказать/опровергнуть лемму. Мы предлагаем использовать стандартный математический способ (эквивалентные преобразования) для упрощения модели. В статье [7] разбирается метод представления КП дизъюнктами Хорна (правила вывода), получившиеся правила вывода дополняются правилами вывода, определёнными для противника, получившиеся правила вывода формируют теорию. Угрозой считается вывод терма, сигнализирующего, что противник знает секрет. При оптимизации ProVerif-модели для КП мы прежде всего упрощали систему правил вывода. Были сделаны следующие шаги, чтобы оптимизировать ProVerif-модель для КП.
1. Ограничиваем свойства безопасности свойством секретности сессионного ключа.
2. Вводим понятие ProVerif-моделей, эквивалентных относительно формул криптопротоколов.
3. Предлагаем эквивалентные преобразования (ЭП) для функции шифрования и доказываем, что получившийся в результате таких преобразований криптопротокол остаётся эквивалентным исходному относительно свойства секретности сессионного ключа.
4. Проводим эксперименты для протоколов Нидхема-Шрёдера и Yahalom, которые показывают, что предложенные эквивалентные преобразования, действительно, упрощают анализ криптопротокола. Структура статьи выглядит следующим образом. В разд. 2 представлены основные определения и показано, как ProVerif преобразует криптопротокол в систему дизъюнктов Хорна. Разд. 3 посвящена описанию эквивалентных преобразований. В разд. 4 представлены экспериментальные результаты. В разд. 4 содержится заключение статьи и описаны некоторые направления будущей работы.
2. Представление криптографического протокола на ProVerif и дизъюнкты Хорна
В этой секции мы кратко опишем синтаксические конструкции, включённые в язык ProVerif. На рис. 1 [7] изображена грамматика, определяющая правила построения термов и процессов на языке ProVerif; полное описание можно найти в [7].
М,ЛГ :: = х. у, г a,b. с, k
terms
variable name
construe tor application
P,Q : =
M(N).P M(j).P 0
P\Q
\F
(ya)P
ht r ,y(Aii.....M„) in Г eist Q
if M - .Y then P eise Q event [M). Г
prrice\se\ output
inpul
nil
parallel composition
replication
restriction
destructor application conditional event
Рис. 1. Синтаксис ProVerif Термы в ProVerif могут состоять из переменных, идентификаторов, конструкторов и деструкторов. Конструкторы используются для построения термов, деструкторы - частичные функции (определены не над всеми входными данными). Например, деструктор let х = g(Mi,^,Mn) in Р else Q пытается вычислить g(Mi,^,Mn); если это удается, то в переменную х записывается результат вычисления g и выполняется процесс Р, иначе выполняется процесс Q. Действие (va)P обозначает, что процесс Р обладает случайным секретным значением а.
2.1 Представление шифрования в ProVerif
Мы рассматриваем оптимизацию криптопротоколов, содержащих процедуру симметричного шифрования. При моделировании схемы шифрования в ProVerif обычно используется связка конструктора Encrypt с деструктором Decrypt. На рис. 2 и 3 изображено представление на ProVerif схем шифрования.
fun Encrypt ( bit string . b i t s t r ing ) : bi t s t r i ng . rod ur forall mess : bit string , key : bits tr ing Decry pt ( Encrypt (mess , key) .key) iness
Рис. 2. Стандартная функция симметричного шифрования Fig. 2. Standard symmetric encryption function
fun Encrypt ( bits t r ing , bit string ,bitstring):bitstring. reduc forall mess: bitstring ,key : bi tstring , iv : bitstring
Рис. 3. Функция симметричного шифрования с вектором инициализации Fig. 3. Function of symmetric encryption with an initialization vector Схему шифрования, изображённую на рис. 2 мы будем называть стандартной. Для такой схемы ProVerif порождает следующие дизъюнкты Хорна (ДХ):
• attacker (mess) A attacker(key) ^ attacker (Encrypt (mess, key));
• attacker (Encrypt(mess, key)) A attacker(key) ^ attacker (mess).
Схему шифрования, изображённую на рис. 3 мы будем называть шифрованием с инициализирующим вектором. Такая схема порождает следующие дизъюнкты Хорна
• attacker (mess) A attacker(key) A attacker(iv) ^ attacker(Encrypt(mess, key, iv));
• attacker(Encrypt(mess, key, iv)) A attacker(key) A attacker(key) ^ attacker (mess).
2.2 Схема шифрования Эль-Гамаля
В статье мы предполагаем, что вычисления происходят в группе G, где g - образующий элемент в G [11]. На рис. 4 представлено уравнение (gx)y = (ду)х ProVerif для группы G. Схема шифрования Эль-Гамаля [11] предлагает способ передать ключ симметричного шифрования другой стороне в зашифрованном виде. Опишем, как схема Эль-Гамаля может быть представлена на языке ProVerif. Предположим, что криптосистема состоит из клиента Clnt(x,gx) и сервера Serv(y,gy), где х (у) - долговременный закрытый ключ клиента (сервера) и дх (ду) долговременный открытый ключ клиента (сервера). Пусть к -симметричный ключ, сгенерированный на стороне клиента, который необходимо передать серверу защищённым способом. Тогда клиент генерирует случайный а Еи G, вычисляет s = к ■ (ду)а и отправляет серверу сообщение
(9a,s)
Clnt ^ Serv.
Сервер принимает s и вычисляет к = s ■ (да)-у = к ■ дуа ■ д-уа = к. Таким образом сервер получает ключ симметричного шифрования к, отправленный клиентом.
equation forall a I :hi(. string. a2:hits r. ring;
Рис. 4. Уравнение на языке ProVerif Fig. 4. Equation in ProVerif language
fun ModMult(bitstring .bitstring , bitstring): bitstring. roduc forall aO : bitstring ,al : bitstring , a2 : bi tstring ;
Рис. 5. Уравнение на языке ProVerif Fig. 5. Equation in ProVerif language Схема шифрования Эль-Гамаля на языке ProVerif может быть реализована с помощью конструктора ModMult и деструктора ModDivO (рис. 5). Такая схема представляется следующими ДХ, где vCurveN - модуль эллиптической кривой:
• attacker(key) A attacker(gy) А attacker (vCurveN) ^ attacker(ModMult(key,gy, vCurveN));
• attacker(ModMult(a0, a1, a2)) A attacker(a1) A attacker(a2) ^ attacker(a0).
2.3 Свойства безопасности криптографического протокола
В данном подразделе мы рассматриваем свойство секретности ключа (свойство достижимости [7]), в ProVerif свойство секретности ключа key задаётся формулой ф5ес = attacker (key).
Чтобы проверить свойство секретности ф5ес = attacker (key), ProVerif строит систему дизъюнктов Хорна и ищет способ вывести терм attacker (key). Если противник смог вывести терм attacker (key), то это следует понимать, как "противник может знать key". С другой стороны, если противник не может вывести событие attacker (key), то "противник НЕ знает key". Такая аппроксимация восходит к той особенности, что каждый дизъюнкт Хорна может быть применён сколь угодно много раз, что может порождать "ложные" атаки. Тем не менее, задача проверки выводимости терма attacker (key) алгоритмически разрешима (см. [7]), и предложенный алгоритм [7] показал свою эффективность при проверке практически важных протоколов (см. [4, 5, 6]).
Пусть п - криптопротокол, тогда модель п на языке ProVerif мы будем обозначать через Мп, Р(Мп) - система дизъюнктов Хорна (ДХ), построенных по модели Мп. Обозначим через ЖриЬ (Mpriv) множество открытых (приватных) имён. Таким образом, систему ДХ, построенных по протоколу п и возможностям противника обозначим "Rn = =
Р(Мп) U [{attacker(a[])la Е ЖриЬ} U {(Rn), (Rh), (Rl), (Rs)}, где правила вывода {(Rn),(Rh),(Rl),(Rs)} представлены на рис. 6 и терм message(x.y) означает, что сообщение у было отправлено в канал х. Построенную таким образом "Rn мы называем правилами вывода, порождаемые моделью протокола п или просто теорией п. Мы говорим, что криптопротокол п удовлетворяет свойству секретности ф5ес = attacker (key) тогда и только тогда, когда &п,жриЬ,жрг1р ^ Vsec, то есть событие attacker (key) НЕ выводимо в теории %-л,жриЬ,жрг1„. Дадим определение теорий криптопротоколов, эквивалентных относительно формул.
Определение. Пусть <р - формула, пг и п2 - криптопротоколы, тогда мы говорим, что
пг П2 если Яп1,ЖриьЛрг1у ^ Р тогда и только тогда когда Я-п2,ЖриьЛрг1» ^ Р.
attacker(&0 }
For each public can struct or / of arity n,
attacker (a: i) A ... A attacker(.r„) attacker!'/[xi,.. For cach public destructorg,
for each rewrite rule g(M\..... M„) —> M in def(cr), attacker (A/i} A ... A attacker(l/n) => attacker(M) message^®, y) A att-acker(x) =i- attacker(j/) attacker(.r) A attacker(y) message{^. y)
(Rn) (Rf)
(Rg)
1 Rl I
(Rs>
Рис. 6. Дизъюнкты Хорна для противника Fig. 6. Horn's disjuncts for an enemy
3. Эквивалентные преобразования
В этом разделе мы описываем некоторые техники, позволяющие провести эквивалентные преобразования над ProVerif-моделью, которые позволяют упростить модель протокола п, оперирующий над открытыми именами ЖриЬ и закрытыми именами Mpriv (R-niKvubiwprlv). Как показывают наши эксперименты (разд. 4), для оптимизированной ProVerif-модели приведённые здесь эквивалентные преобразования упрощают проверку свойства секретности ключей. Для простоты изложения мы пишем "Rn вместо ^ж,жриЬ,жрг1 v.
3.1 Оптимизация в представлении схемы шифрования
Мы докажем, что, если мы проверяем безопасность криптопротокола на ProVerif относительно свойств секретности ключа ф5ес, определённых в подразд. 2.3, то схема шифрования с инициализирующем значением эквивалентна стандартной схеме шифрования. Пусть п"1" - криптопротокол, использующий схему шифрования с вектором инициализации iv, тогда Mev содержит конструкторы/деструкторы, изображённые на рис. 2. Обозначим соответствующую систему ДХ криптопротокола п через Peiv(Mn), соответственно, теорию п обозначим через .
Обозначим через Me модель крипторотокола п, в которой все вхождения конструктора Encryptiv (рис. 3) заменены на конструктор Encrypt (рис. 2) и все вхождения деструктора Decryptiv заменены на деструктор Decrypt. Соответствующую теорию обозначим через —е. Тогда справедлива следующее утверждение, в которой утверждается, что теории K'eiv и эквивалентны относительно формулы фБес = attacker (key).
Утверждение 1. Пусть iv 6 Npub, тогда ~<psec —е, т.е. И Vsec тогда и только тогда,
когда К И Qsec.
Доказательство.
^ Пусть —е™ И Vsec, но при этом неверно, что —е И Vsec. Тогда терм attacker(key) выводим в теории -е, рассмотрим такой вывод р (последовательное применение ДХ) в теории —е, Р = г1, ...,гп. Такой логический вывод р обязательно содержит ДХ, порождаемые конструкторами Encrypt и деструкторами Decrypt, так как иначе такой же логический вывод р существовал бы и в теории —е™.
Рассмотрим такой вывод р = г1,...,гп, и пусть rj - применение ДХ attacker (mess) А attacker (key) ^ attacker (Encrypt(mess, key)). Из того, что iv 6 Mpub, следует, что противнику доступен терм attacker(iv), следовательно, логический вывод р может содержать ДХ attacker (mess) А attacker(key) А attacker(iv) ^
attacker (Encrypt (mess, key, iv)). Аналогично, если логический вывод р содержит применение ДХ attacker (Encrypt(mess, key)) А attacker (key) ^ attacker (mess), то может быть применён и ДХ attacker(Encrypt(mess,key,iv)) А attacker (iv) А attacker (key) ^ attacker (mess).
Таким образом, логический вывод р существует и в теории —е1', то есть неверно, что —%v И ysec - противоречие.
^ пусть теперь —е И tysec, тогда факт, что ке™ И tysec, доказывается аналогично. Аналогичное утверждение может быть доказано и для других схем шифрования. Таким образом, далее мы будем рассматривать только теории, в которых используются только стандартные функции шифрования.
3.2 Использование одного ключа шифрования при схеме шифрования Эль-Гамаля
В данном разделе мы предлагаем эквивалентные преобразования, которые позволяют упростить модели криптопротоколов, использующих симметричное шифрование с использованием схемы Эль-Гамаля. Пусть одна сторона криптопротокола п передаёт другой зашифрованные сообщения mess1 на симметричном ключе k1 и mess2 на симметричном ключе k2. Мы рассматриваем свойство секретности криптопротокола п: <pseci = attacker (k-J.
Мы покажем, что схема с двумя сессионными симметричными ключами k1, k2 , изображённая на рис. 7, эквивалентна схеме с одним сессионным симметричным ключом k1 , изображённой
Vinarskii E.M., Demakov A.V. Optimization of ProVerif programs for AKE-protocols. Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 5, 2021, pp. 105-116_
на рис. 8. Обозначим теорию, построенную по Мкък2(п), через —е~'к2, в то время, как построенную по Мк1(п) через —е1. Мы доказываем, что теории —е' 2 и —е эквивалентны относительно формулы <Ps ec = attacker (k).
in (с ,(g_al: bitstring .cma^kl : bit string , enc^mesal : bitstring)); in (« ,(gjl2:btUtring ,rms_k2: bitstring ,<'iic_rne*s2: bitstring )) :
Рис. 7. Схема протокола с двумя сессионными ключами симметричного шифрования Fig. 7. Scheme of the protocol with two session keys of symmetric encryption
processC(skC, ркС)
now к: bitstring ;
new a: bit string ;
let g_pkS_a i2xp(pkS, a) in
let cms_k ModMuIt(k. g_a) in
let g_a Exp( vBasePoint . a) in
let en с __ mess Encrypt (messl , k) in
out(c, (g_a, crns_k . enc_messl )) ;
new k2: bitetring ;
new a2 : bitetring :
let g_pkS_a2 Exp(pkS, a2) in
let rms_k2 ModMiilt(k2, g_a2) in
let enc_mees2 Encrypt (mess2 , k) in
let g_a2 Exp ( v Base Point , a2) in
ont(c, enc_mess2);
processS(skS, pkS )
in (c , (g__a: bits t ring .cms к : bitetring , enc _ mess : bitstring)) let к ModDivO(cms_k, Exp(g_a, skS )) in let messl Decrypt (one _ mess 1 , k) in
i n ( с , enc_ mees2 : bitstring) ;
let mess2 Decrypt (enc_mess2 . k) in
Рис. 8. Схема протокола с одним сессионным ключом симметричного шифрования Fig. 8. Scheme of the protocol with one session symmetric encryption key
Утверждение 2. Кк1,к2 ~VseCi Кк.
Доказательство. Отметим, что обе теории определены над одним и тем же пространством имён: ЖриЬ U Mpriv.
Пусть верно К^1 И ф5ес, но при этом неверно К^1' 2 И (psec 1. Тогда терм attacker (к1) выводим в теории Кк1,к2, рассмотрим такой вывод p = r1,...,rn (последовательное применение ДХ) в теории К!^. ДХ, порождаемые теориями Кк(л) и Кк1,к2(л) отличаются тем, что теория Кк1,к2(л) содержит термы attacker (Exp(g,a2)),
attacker (мodMult(k2, Exp(g, a2))), attacker(Encrypt(mess2,k2)), которых не содержит теория Кк1(л).
Таким образом, так как логический вывод p существует в теории Кк1,к2 (л), но не существует в теории Кк1(л), то p содержит термы attacker (Exp(g,a2)),
attacker (ModMult(k2,Exp(g,a2))), attacker(Encrypt(mess2,k2)), так как иначе такой
вывод существовал бы и в теории Кк1 (п).
При этом термы attacker (Exp (g,a2)), attacker (ModMult(k2,Exp(g,a2))^) могут быть
выведены противником согласно правилу вывода (Rh) с рис. 6. Аналогично, если в выводе p, приводящий к обладанию противником терма attacker(k1), то есть терм attacker(Encrypt(mess2,k2)) и существует вывод p = p[k1/k, к2/к], следовательно, неверно, что Кк1(л) И attacker (k-J - противоречие.
Теперь рассмотрим, как ещё может быть упрощена схема шифрования Эль-Гамаля. Пусть клиент использует симметричный ключ шифрования кс, переданный серверу с использованием схемы Эль-Гамаля. В то время, как сервер использует симметричный ключ шифрования ks, переданный клиенту с использованием схемы Эль-Гамаля. Мы предлагаем эквивалентные преобразования, которые позволяют перейти к модели, в которой используется только один ключ симметричного шифрования. Обозначим теорию, построенную по Мкс,кз(л) через К1^с,к5, в то время, как построенную по Мкс(л) через Ккс. Тогда справедливо утверждение 3, которое доказывается аналогично утверждению 2.
Утверждение 3. Kknc,ks ~<psecc К1^с.
Таким образом, мы показали, что при проверке свойства секретности сессионного ключа в протоколе со схемой шифрования Эль-Гамаля, в которой используются несколько сессионных ключей можно перейти к проверке свойства секретности сессионного ключа в протоколе, в котором используется всего один сессионный ключ. Также мы показали, что схемы шифрования с вектором инициализации эквивалентны стандартным схемам шифрования для ProVerif модели. В разд. 4 мы покажем, как использовать эти результаты для оптимизации ProVerif-кода.
4. Экспериментальные результаты
В данном разделе представлены эксперименты с протоколами Нидхема-Шрёдера и Yahalom, которые показывают эффективность предложенных эквивалентных преобразований для ProVerif-кода криптопротокола.
Мы работали с модификацией протокола Нидхема-Шрёдера, изображённой на рис. 9. В оригинале в этой схеме используется 3 сессионных ключа. Мы проверяли свойство секретности сессионного ключа фБес = attacker (key). Мы модифицировали эту схему, сначала согласно Теореме 1 перешли к стандартной функции шифрования, а затем применили теоремы 2 и 3, чтобы перейти к эквивалентным PraVerif-моделям с меньшим числом правил вывода. Далее мы запустили Proverif, чтобы проверить 3 версии ProVerif-моделей: с тремя сессионными ключами, с двумя сессионными ключами и с одним
113
сессионным ключом. Все исходные коды экспериментов доступны по ссылке [12]. В качестве метрики мы использовали количество правил, которые использовал ProVerif для доказательства формулы секретности сессионного ключа (psec = attacker (key).
Рис. 9. Схема протокола Нидхема-Шрёдера с тремя сессионным ключами симметричного
шифрования
Fig. 9. Scheme of the Needham-Schroeder protocol with three session keys of symmetric encryption В результате, если используется 3 сессионных ключа, то ProVerif использует 45800 правил, если 2 сессионных ключей, то ProVerif использует 3000 правил и если 1 сессионных ключа, то ProVerif использует 200 правил. Таким образом, мы видим существенный выигрыш при использовании оптимизаций, предложенных в статье.
Аналогичные эксперименты мы провели с ProVerif-моделью протокола Yahalom (мхема изображена на рис. 10). Мы проверяли свойство секретности сессионного ключа ф5ес = attacker(k), все исходные коды экспериментов доступны по ссылке [12]. Мы модифицировали эту схему, сначала согласно утверждениям 2 и 3, перейдя к схеме шифрования Эль-Гамаля с одним сессионным ключом. В результате, если используется 2 сессионных ключа, то ProVerif использует 2600 правил, а если 1 сессионный ключ, то 200 правил. Таким образом, снова, мы видим существенный выигрыш при использовании оптимизаций, предложенных в статье для доказательства свойства секретности сессионного ключа с использованием ProVerif.
Рис. 10. Схема протокола Yahalom с двумя сессионным ключами симметричного шифрования Fig. 10. Scheme of the Yahalom protocol with two session keys of symmetric encryption
5. Заключение
В этой статье мы предложили техники для оптимизации ProVerif-модели криптографического протокола. Мы предложили несколько преобразований ProVerif-модели и доказали, что они являются эквивалентными относительно формулы секретности сессионного ключа. Эффективность данных преобразований была проверена на реализации протоколов Нидхема-Шрёдера и Yahalom.
Далее мы планируем предложить различные техники оптимизации для других конструкций языка ProVerif и провести эксперименты с практически важными протоколами.
Список литературы / References
[1]. B. Blanche! Symbolic and Computational Mechanized Verification of the ARINC823 Avionic Protocols. In Proc. of the 30th IEEE Computer Security Foundations Symposium (CSF'17), 2017, pp. 68-82.
[2]. K. Bhargavan, B. Blanchet, and N. Kobeissi. Verified models and reference implementations for the TLS 1.3 standard candidate. Research Report RR-9040, Inria, 2017.
[3]. K. Bhargavan, B. Blanchet, and N. Kobeissi. Verified Models and Reference Implementations for the TLS 1.3 Standard Candidate. In Proc. of the IEEE Symposium on Security and Privacy (S&P'17), pp. 483-503.
[4]. S. Meier, B. Schmidt et al. The TAMARIN prover for the symbolic analysis of security protocols. In Proc. of the 25th International Conference on Computer Aided Verification, 2013. pp. 696-701.
[5]. S. Meier. Advancing automated security protocol verification. Doctoral Thesis. ETH Zurich, 2013, 214 p.
[6]. B. Schmidt. Formal analysis of key exchange protocols and physical protocols. Doctoral Thesis. ETH Zurich, 2012, 199 p.
[7]. B. Blanchet. Modeling and Verifying Security Protocols with the Applied Pi Calculus and ProVerif. Foundations and Trends in Privacy and Security, vol. 1, no. 1-2, 2016, pp 1-135.
[8]. B. Blanchet. Automatic Verification of Correspondences for Security Protocols. Journal of Computer Security, vol. 17, issue 4, 2009, pp 363-434.
[9]. B. Blanchet. Automatic Verification of Security Protocols in the Symbolic Model: the Verifier ProVerif. Lecture Notes in Computer Science, vol. 8604, 2012, pp. 54-87.
[10]. B. Blanchet. CryptoVerif: A Computationally Sound Mechanized Prover for Cryptographic Protocols. In Proc. of the Dagstuhl Seminar on Formal Protocol Verification Applied, 2007.
[11]. T. Elgamal. A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. IEEE Transactions on Information Theory, vol. 31, no. 4, 1985, pp. 469-472, 1985.
[12]. E. Vinarskii. URL: https://github.com/vinevg1996/proverif_code_optimisation, accessed 24.10.2021.
Информация об авторах / Information about authors
Евгений Максимович ВИНАРСКИИ - аспирант факультета ФКН ВШЭ, старший лаборант ИСП РАН. Научные интересы: конечные автоматы, верификация.
Evgenii Maksimovich VINARSKII - PhD student, Department of Computer Science, Higher School of Economics. Research interests: finite state machines, software testing and verification.
Алексей Васильевич ДЕМАКОВ - кандидат физико-математических наук, ведущий научный сотрудник. Научные интересы: графы программ, тестирование.
Alexey Vasilyevich DEMAKOV - PhD in Physics and Mathematics, Leading Researcher. Research interests: program graphs, software testing and verification.