Skip to content

Commit

Permalink
Describe protocol attacks
Browse files Browse the repository at this point in the history
  • Loading branch information
vlsergey committed Nov 10, 2019
1 parent 3c98feb commit b6e9113
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 4 deletions.
45 changes: 45 additions & 0 deletions protocols-attacks.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
\section{Атаки на протоколы}
\selectlanguage{russian}

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

Под \emph{атакой на защищённый протокол}\index{атака!на протокол} понимается попытка проведения анализа сообщений протокола и/или выполнения непредусмотренных протоколом действий для нарушения заявленных или подразумеваемых свойств протокола.\footnote{Используется модифицированное определение из~\cite{Cheremushkin:2009}. Отличие в том, что Черёмушкин в своём определении не описывает, что такое <<нарушение работы протокола>> и оставляет двусмысленными случаи нарушения, например, свойств G9/PFS и G20/STP.}

Атака считается \emph{успешной}, если нарушено хотя бы одно из заявленных или подразумеваемых свойств протокола.

В случае успешной атаки на подразумеваемые свойства будем уточнять, что успешна \emph{атака на использование протокола} в некоторой системе. Это будет говорить, разумеется, не о недостатках самого протокола, но о неверном выборе протокола (или его настроек) авторами системы.

Существует большое количество типов атак на протоколы. У многих атак есть некоторые общие принципы, что позволяет выделить классы атак для упрощения анализа и разработки протоколов, устойчивых к целым классам атак.

\begin{itemize}
\item[MitM] <<Атака посередине>>\\*
\langen{man-in-the-middle attack}
\item[{}] Класс атак, в котором злоумышленник ретранслирует и, при необходимости, изменяет все сообщения, проходящие между двумя и более участниками протокола, причём последние не знают о существовании злоумышленника, считая, что общаются непосредственно друг с другом. К данной атаке уязвимы все протоколы, которые не реализуют взаимную аутентификацию сторон (цель G1). Классическим примером атаки данного класса является атака на протокол Диффи~---~Хеллмана\index{протокол!Диффи~---~Хеллмана}, рассмотренном в разделе~\ref{section-protocols-diffie-hellman}.

\item[Replay] Атака с повторной передачей\\*
\langen{replay attack}
\item[{}] Класс атак, в котором злоумышленник записывает все сообщения, проходящие в одном сеансе протокола, а далее повторяет их в новом, выдавая себя за одного из участников первого сеанса. Примерами протоколов, к которым применима данная атака, являются протоколы Ву-Лама\index{протокол!Ву-Лама} и бесключевой протокол Шамира\index{протокол!Шамира бесключевой} из раздела~\ref{section-protocols-shamir}.

\item[TF] Атака подмены типа\\*
\langen{type flaw attack}
\item[{}] Класс атак, в котором злоумышленник используя переданное в легальном сеансе протокола сообщение конструирует новое, передавая его на другом проходе (раунде) протокола под видом сообщения другого типа (с другим предназначением). К таким атакам уязвимы, например, протокол Wide-Mouth Frog\index{протокол!Wide-Mouth Frog} из раздела~\ref{section-protocols-wide-moth-frog}, протоколы Деннинга~---~Сако\index{протокол!Деннинга~---~Сако}, Yahalom\index{протокол!Yahalom} и Отвей~---~Рииса\index{протокол!Отвей~---~Рииса}.

\item[PS] Атака с параллельными сеансами\\*
\langen{parallel-session attack}

\item[STS] Атака с известным разовым ключом\\*
\langen{short-term secret attack}
\item[KN] Атака с известным сеансовым ключом\\*
\langen{known-key attack}
\item[{}] Классы атак, в которых злоумышленник получает доступ к временным секретам, используемых в протоколах (например, новым сеансовым ключам), после чего может обеспечить, например, аутентификацию или хотя бы установление сессии от имени одной из сторон протокола.

\item[UKS] Атака с неизвестным сеансовым ключом\\*
\langen{unknown key-share attack}
\item[{}] Класс атак на протоколы с аутентификацией ключа, в которых злоумышленник получает возможность доказать одной из сторон владение ключом (с помощью, например, повтора сообщения из легального сеанса), хотя сам ключ злоумышленник не знает. К такому классу атак уязвим, например, симметричный протокол Нидхема-Шрёдера из раздела~\ref{section-protocols-needham-schroeder}.

\end{itemize}

Важно отметить, что если не сказано иное, то в рамках анализа криптографических протоколов (не конкретных систем) используется предположение о стойкости всех используемых криптографических примитивов. Например, предполагается, что пока идёт защищённый обмен информацией, использующий сеансовый ключ, выработанный в сеансе некоторого криптографического протокола, то злоумышленнику не хватит ресурсов и времени на то, чтобы получить данный сеансовый ключ через атаку на используемые шифры или криптографически-стойкие хеш-функции.

С другой стороны, следует предполагать, что сеансовые ключи, получаемые в рамках сеансов протоколов, через некоторое время (однако, много большее времени самого сеанса связи) будут получены злоумышленником (классы атак STS и KN). А через значительно более время злоумышленник сможет получить и доступ к <<мастер>>-ключам -- ключам длительного использования, так что протоколы с генерацией сеансовых ключей должны разрабатываться в том числе со свойством G9/PFS.

2 changes: 1 addition & 1 deletion protocols-diffie-hellman.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\subsection{Протокол Диффи~---~Хеллмана}\index{протокол!Диффи~---~Хеллмана}
\subsection{Протокол Диффи~---~Хеллмана}\index{протокол!Диффи~---~Хеллмана}\label{section-protocols-diffie-hellman}
\selectlanguage{russian}

Алгоритм с открытым ключом впервые был предложен Диффи и Хеллманом в работе 1976 года <<Новые направления в криптографии>> (\langen{Bailey Whitfield Diffie, Martin Edward Hellman, ``New directions in cryptography''},~\cite{Diffie:Hellman:1976}).
Expand Down
2 changes: 1 addition & 1 deletion protocols-needham-schroeder.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\subsection{Протокол Нидхема~---~Шрёдера}\index{протокол!Нидхема~---~Шрёдера|(}
\subsection{Протокол Нидхема~---~Шрёдера}\index{протокол!Нидхема~---~Шрёдера|(}\label{section-protocols-needham-schroeder}
\selectlanguage{russian}

Протокол Нидхема~---~Шрёдера (\langen{Roger Needham, Michael Shroeder}, 1979,~\cite{Needham:Schroeder:1978}) похож на модифицированный протокол Wide-Mouth Frog, но отличается тем, что доверенный центр (Трент) во время работы основной части протокола не общается со вторым абонентом. Первый абонент получает от доверенного центра специальный пакет, который он без всякой модификации отправляет второму абоненту.
Expand Down
2 changes: 1 addition & 1 deletion protocols-three-pass.tex
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ \subsection{Тривиальный вариант}

Теперь приведём протокол надёжной передачи секретного ключа, основанный на экспоненциальной (коммутативной) функции шифрования. Стойкость этого протокола связана с трудностью задачи вычисления дискретного логарифма: при известных значениях $y, g, p$, найти $x$ из уравнения $y = g^x \mod p$.

\subsection{Бесключевой протокол Шамира}\index{протокол!Шамира бесключевой|(}
\subsection{Бесключевой протокол Шамира}\index{протокол!Шамира бесключевой|(}\label{section-protocols-shamir}

Стороны предварительно договариваются о большом простом числе $p \sim 2^{1024}$. Каждая из сторон выбирает себе по секретному ключу $a$ и $b$. Эти ключи меньше и взаимно просты с $p-1$. Также стороны приготовили по специальному числу $a'$ и $b'$, которые позволяют им расшифровать сообщение, зашифрованное своим ключом:
\[\begin{array}{l}
Expand Down
2 changes: 1 addition & 1 deletion protocols-wide-mouth_frog.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
\subsection{Протокол Wide-Mouth Frog}\index{протокол!Wide-Mouth Frog|(}
\subsection{Протокол Wide-Mouth Frog}\index{протокол!Wide-Mouth Frog|(}\label{section-protocols-wide-moth-frog}
Протокол Wide-Mouth Frog является, возможно, самым простым протоколом с доверенным центром. Его автором считается Майкл Бэрроуз (1989 год, \langen{Michael Burrows}, \cite{Burrows:Abadi:Needham:1990}). Протокол состоит из следующих шагов.

\begin{figure}[!htb]
Expand Down
2 changes: 2 additions & 0 deletions protocols.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ \chapter{Криптографические протоколы}\index{прото

\input{protocols-classification}

\input{protocols-attacks}

\section{Протоколы распространения ключей}

Задача распространения ключей является одной из множества задач построения надёжной сети общения многих абонентов. Задача состоит в получении в нужный момент времени двумя легальными абонентами сети секретного сессионного ключа шифрования (и аутентификации сообщений). Хорошим решением данной задачи будем считать такой протокол распространения ключей, который удовлетворяет следующим условиям.
Expand Down

0 comments on commit b6e9113

Please sign in to comment.