что такое криптографический протокол
Основные понятия криптографии
Криптографический протокол
Любой протокол имеет следующие свойства:
Свойства протокола напоминают известные нам из курса информатики свойства алгоритма. На самом деле протокол – это и есть алгоритм действия нескольких сторон в определенной ситуации. Участники протокола должны знать протокол и выполнять полностью все его этапы. Участниками криптографического протокола обычно являются абоненты некоторой системы связи. Участники протокола могут не доверять друг другу, поэтому криптографические протоколы должны защищать их участников не только от внешнего противника, но и от нечестных действий партнеров.
Криптографические протоколы – сравнительно молодая отрасль криптографической науки. Первые протоколы появились во второй половине ХХ века. С тех пор эта область криптографии бурно развивалась, и на настоящий момент имеется уже несколько десятков различных типов криптографических протоколов. Все эти типы можно условно разделить на две группы: прикладные протоколы и примитивные. Прикладной протокол решает конкретную задачу, которая возникает (или может возникнуть) на практике. Примитивные же протоколы используются как своеобразные «строительные блоки» при разработке прикладных протоколов. Мы в данном учебном пособии будем рассматривать только примитивные криптографические протоколы, которые при некоторой адаптации к реальным системам связи могут использоваться на практике.
Рассмотрим назначение некоторых видов протоколов.
Рассмотрим простейший протокол для обмена конфиденциальными сообщениями между двумя сторонами, которые будем называть абонент №1 и абонент №2. Пусть абонент №1 желает передать зашифрованное сообщение абоненту №2. В этом случае их последовательность действий должна быть следующей.
Этот протокол достаточно прост, однако он может действительно использоваться на практике. Криптографические протоколы могут быть простыми и сложными в зависимости от назначения. Со многими из них мы познакомимся в различных главах этого курса.
Ключевые термины
Ciphertext – зашифрованное сообщение (закрытый текст, криптограмма).
Enciphering – преобразование открытого текста в криптограмму (зашифрование).
Активная криптографическая атака – при такой атаке противник имеет возможность модифицировать передаваемые сообщения и даже добавлять свои сообщения.
Криптоанализ – наука о преодолении криптографической защиты информации.
Криптографическая система защиты информации – система защиты информации, в которой используются криптографические методы для шифрования данных.
Криптография изучает построение и использование систем шифрования, в том числе их стойкость, слабости и степень уязвимости относительно различных методов вскрытия.
Криптостойкость – характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. способность противостоять криптоанализу).
Система шифрования, или шифрсистема, – это любая система, которую можно использовать для обратимого изменения текста сообщения с целью сделать его непонятным для всех, кроме тех, кому оно предназначено.
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Шифрование с открытым ключом (асимметричное шифрование) – методы шифрования, в которых для шифрования и расшифрования данных используются два разных ключа. При этом один из ключей (открытый ключ ) может передаваться по открытому (незащищенному) каналу связи. Шифрование с открытым ключом используется на практике лишь со второй половины ХХ века.
Краткие итоги
Криптография в переводе с греческого означает «тайнопись». В настоящее время криптография занимается поиском и исследованием математических методов преобразования информации. Параллельно развивается и совершенствуется криптоанализ – наука о преодолении криптографической защиты информации.
Криптография решает следующие задачи: шифрование данных с целью защиты от несанкционированного доступа; проверка подлинности сообщений; проверка целостности передаваемых данных; обеспечение невозможности отказа.
Для современных криптографических систем защиты информации сформулированы следующие требования:
Информация в процессе хранения, передачи и преобразования подвергается воздействию атак. Основными нарушениями информационной безопасности являются раскрытие информационных ценностей ( потеря конфиденциальности ), модификация без разрешения автора (потеря целостности) или неавторизованная потеря доступа к этим ценностям (потеря доступности).
Криптографические атаки могут быть пассивными и активными. В зависимости от количества и типа информации, доступной для криптоанализа, выделяют атаки на основе шифротекста, атаки на основе известного открытого текста, атаки на основе выбранного открытого текста.
В современной криптографии большое внимание уделяется разработке криптографических протоколов, то есть процедур или алгоритмов взаимодействия абонентов с использованием криптографических средств. В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований. Некоторые виды протоколов: протоколы конфиденциальной передачи сообщений; протоколы аутентификации и идентификации; протоколы распределения ключей ; протоколы электронной цифровой подписи; протоколы обеспечения неотслеживаемости.
Криптографические протоколы: определения, запись, свойства, классификация, атаки
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.
Основные понятия
Для успешного выполнения любых целей по защите информации необходимо участие в процессе защиты нескольких субъектов, которые по определённым правилам будут выполнять технические или организационные действия, криптографические операции, взаимодействовать друг с другом, например, передавая сообщения или проверяя личности друг друга.
Формализация подобных действий делается через описание протокола. Протокол — описание распределённого алгоритма, в процессе выполнения которого два или более участников последовательно выполняют определённые действия и обмениваются сообщениями (Здесь и далее в этом разделе определения даны на основе [Cheremushkin:2009]).
Под участником (субъектом, стороной) протокола понимают не только людей, но и приложения, группы людей или целые организации. Формально участниками считают только тех, кто выполняет активную роль в рамках протокола. Хотя при создании и описании протоколов забывать про пассивные стороны тоже не стоит. Например, пассивный криптоаналитик формально не является участником протоколов, но многие протоколы разрабатываются с учётом защиты от таких «неучастников».
Протокол состоит из циклов (англ. round) или проходов (англ. pass). Цикл — временной интервал активности только одного участника. За исключением самого первого цикла протокола, обычно начинается приёмом сообщения, а заканчивается — отправкой.
Цикл (или проход) состоит из шагов (действий, англ. step, action) — конкретных законченных действий, выполняемых участником протокола. Например:
Можно сказать, что протокол прескрептивно описывает правила поведения каждой роли в протоколе. А сеанс это дескриптивное описание (возможно теоретически) состоявшейся в прошлом реализации протокола.
Пример описания протокола.
Запись протоколов
Для записи протоколов, связанных с реализацией функций защиты информации, не используют выражения вроде «участник с ролью «Отправитель»», а заменяют их на краткие обозначения вроде «отправитель» или используют общепринятые экземплификанты: Алиса, Боб, Клара, Ева и т., д. При этом используют следующие соглашения.
В данном пособии мы будем придерживаться промежуточного формата записи.
Либо, отводя отдельный столбец для каждого участника.
Для сокращения описания и упрощения сравнения разных протоколов используют следующие соглашения об обозначениях передаваемых данных.
Свойства безопасности протоколов
Защищённая система и, соответственно, защищённый протокол могут выполнять разные функции безопасности. Многие из этих функций или целей (англ. goals) можно сформулировать как устойчивость к определённому классу атак. Наиболее полным и актуальным считается перечисление и толкование этих целей в документе проекта AVISPA (англ. Automated Validation of Internet Security Protocols and Applications) [AVISPA], суммирующим описания из различных документов IETF (англ. Internet Engineering Task Force). Данные цели принято считать формализируемыми — то есть такими, что для отдельных протоколов есть возможность формально доказать или опровергнуть достижение этих целей.
Гарантия возможности доказать, что факт нахождения системы в одном из состояний означает, что некогда в прошлом система хотя бы раз находилась в некотором другом состоянии. Например, что получение субъектом доступа к ресурсу означает, что некогда в прошлом субъект успешно оплатил данный доступ.
Примеры свойств безопасности, реализуемыми различными протоколами приведены в таблице.
Классификация протоколов
Общепризнанная классификация защитных протоколов отсутствует. Однако можно выделить набор объективных и однозначных признаков, классифицирующих протоколы.
Классификация по «полноте» выполняемых функций проблематична из-за того, что ни один протокол нельзя назвать в полной мере «прикладным». Любой протокол сам по себе это лишь часть некоторой информационной (или организационной) системы, которая как раз и выполняет требуемую пользователями функцию. Однако можно говорить о том, что отдельные протоколы (например, TLS) являются протоколами более высокого уровня, чем протоколы, например, Диффи—Хеллмана, так как последний часто выступает составной частью того же протокола TLS.
Атаки на протоколы
Защищённые свойства протоколов могут быть заявленными, когда о них заявляют сами авторы протокола (и, обычно, приводят различные аргументы в пользу выполнения данных функций), и подразумеваемыми, когда авторы некоторой системы рассчитывают на реализацию защищённых свойств некоторым протоколом.
Под атакой на защищённый протокол понимается попытка проведения анализа сообщений протокола и/или выполнения непредусмотренных протоколом действий для нарушения заявленных или подразумеваемых свойств протокола. (Используется модифицированное определение из [Cheremushkin:2009]. Отличие в том, что Черёмушкин в своём определении не описывает, что такое «нарушение работы протокола» и оставляет двусмысленными случаи нарушения, например, свойств G9/PFS и G20/STP.)
Атака считается успешной, если нарушено хотя бы одно из заявленных или подразумеваемых свойств протокола.
В случае успешной атаки на подразумеваемые свойства будем уточнять, что успешна атака на использование протокола в некоторой системе. Это будет говорить, разумеется, не о недостатках самого протокола, но о неверном выборе протокола (или его настроек) авторами системы.
Существует большое количество типов атак на протоколы. У многих атак есть некоторые общие принципы, что позволяет выделить классы атак для упрощения анализа и разработки протоколов, устойчивых к целым классам атак.
Класс атак на протоколы с аутентификацией ключа, в которых злоумышленник получает возможность доказать одной из сторон владение ключом (с помощью, например, повтора сообщения из легального сеанса), хотя сам ключ злоумышленник не знает. К такому классу атак уязвим, например, симметричный протокол Нидхема-Шрёдера.
Важно отметить, что если не сказано иное, то в рамках анализа криптографических протоколов (не конкретных систем) используется предположение о стойкости всех используемых криптографических примитивов. Например, предполагается, что пока идёт защищённый обмен информацией, использующий сеансовый ключ, выработанный в сеансе некоторого криптографического протокола, то злоумышленнику не хватит ресурсов и времени на то, чтобы получить данный сеансовый ключ через атаку на используемые шифры или криптографически-стойкие хеш-функции.
С другой стороны, следует предполагать, что сеансовые ключи, получаемые в рамках сеансов протоколов, через некоторое время (однако, много большее времени самого сеанса связи) будут получены злоумышленником (классы атак STS и KN). А через значительно более время злоумышленник сможет получить и доступ к «мастер»-ключам — ключам длительного использования, так что протоколы с генерацией сеансовых ключей должны разрабатываться в том числе со свойством G9/PFS.
(Дальше идут разделы с описанием конкретных протоколов.)
Что такое криптографический протокол?
Сегодня криптографами особое внимание уделяется разработке криптографических протоколов, в основе которых лежит набор правил, направленных на регламентацию использования криптографических алгоритмов в информационных процессах и предназначенных для решения конкретных задач. Итак, что такое криптографический протокол?
Криптографический протокол
Так, криптографический протокол – процедура взаимодействия абонентов посредством использования криптографических средств в целях достижения определенной цели, которую не могут достигнуть их противники.
Необходимо отметить, что любой протокол обладает рядом определенных, характерных для него, свойств:
Таким образом, свойства протокола практически аналогичны свойствам алгоритмов. Это обусловлено тем, что протокол в некоторой степени является алгоритмом действий сторон в конкретной ситуации.
В связи с этим, все участники протокола должны знать его и полностью выполнять все его этапы. При этом участники могут не доверять друг другу, что обязывает криптографический протокол обеспечить уровень защиты не только от действий противника, но и от возможных противоправных действий участников системы.
История развития криптографических протоколов
Необходимо отметить, что криптографические протоколы представляют собой совсем молодую отрасль криптографии. Первые подобные алгоритмы появились во второй половине прошлого столетия, после чего началось их стремительное развитие. Сегодня уже известно достаточно большое количество типов протоколов, которые можно разделить на две основные группы:
Прикладные – протоколы, решающие конкретную задачу, возникающую в реальном мире.
Примитивные – протоколы, которые обычно используются в качестве строительных блоков в процессе разработки прикладных протоколов.
Иные виды протоколов
Протоколы, предназначенные для конфиденциальной передачи сообщений. Их суть заключается в следующем. Два участника, являющиеся абонентами сети, соединены одной сетью связи посредством которой передают сообщения друг другу. Предположительно, данная связь может находится под контролем противника. Так, у одного абонента есть некое сообщение, которое необходимо конфиденциальным способом передать другому абоненту. В связи с этим, протоколы такого типа позволяют передавать сообщения таким образом, чтобы противник не смог их перехватить.
Протоколы аутентификации и идентификации. Основной целью таких протоколов является предотвращение доступа определенным лицам, которые не являются участниками системы и не имеют возможности использовать ее ресурсы. Яркий пример применения протокола аутентификации и идентификации – организация доступа участников некой информационной системы.
Протоколы распределения ключей. Они используются в целях обеспечения закрытыми ключами абонентов линии связи для последующей передачи сообщений.
Протоколы электронной цифровой подписи. Такие протоколы предоставляют возможность ставить подпись под электронными документами, которая в свою очередь является аналогом классической подписи. В результате добавляется уникальное числовое дополнение, позволяющее проверить авторство.
Криптографический протокол и криптографические атаки
В предыдущих статьях мы рассмотрели такое понятие, как криптографические атаки, а также их типы на криптографические алгоритмы. При этом необходимо отметить, что в большинстве случае подобные атаки направлены не на алгоритмы шифрования, а непосредственно на криптографический протокол.
Таким образом, даже при наличии полностью надежного алгоритма шифрования, не всегда гарантируется полная безопасность участникам связи.
Известно большое количество примеров, когда криптографические протоколы имеют уязвимые места, которые приводят к противоправным действиям как со стороны участников системы, так и внешних противников.
В связи с этим, криптографические протоколы активно изучаются и совершенствуются.
Основные понятия криптографии
Криптографический протокол
Любой протокол имеет следующие свойства:
Свойства протокола напоминают известные нам из курса информатики свойства алгоритма. На самом деле протокол – это и есть алгоритм действия нескольких сторон в определенной ситуации. Участники протокола должны знать протокол и выполнять полностью все его этапы. Участниками криптографического протокола обычно являются абоненты некоторой системы связи. Участники протокола могут не доверять друг другу, поэтому криптографические протоколы должны защищать их участников не только от внешнего противника, но и от нечестных действий партнеров.
Криптографические протоколы – сравнительно молодая отрасль криптографической науки. Первые протоколы появились во второй половине ХХ века. С тех пор эта область криптографии бурно развивалась, и на настоящий момент имеется уже несколько десятков различных типов криптографических протоколов. Все эти типы можно условно разделить на две группы: прикладные протоколы и примитивные. Прикладной протокол решает конкретную задачу, которая возникает (или может возникнуть) на практике. Примитивные же протоколы используются как своеобразные «строительные блоки» при разработке прикладных протоколов. Мы в данном учебном пособии будем рассматривать только примитивные криптографические протоколы, которые при некоторой адаптации к реальным системам связи могут использоваться на практике.
Рассмотрим назначение некоторых видов протоколов.
Рассмотрим простейший протокол для обмена конфиденциальными сообщениями между двумя сторонами, которые будем называть абонент №1 и абонент №2. Пусть абонент №1 желает передать зашифрованное сообщение абоненту №2. В этом случае их последовательность действий должна быть следующей.
Этот протокол достаточно прост, однако он может действительно использоваться на практике. Криптографические протоколы могут быть простыми и сложными в зависимости от назначения. Со многими из них мы познакомимся в различных главах этого курса.
Ключевые термины
Ciphertext – зашифрованное сообщение (закрытый текст, криптограмма).
Enciphering – преобразование открытого текста в криптограмму (зашифрование).
Активная криптографическая атака – при такой атаке противник имеет возможность модифицировать передаваемые сообщения и даже добавлять свои сообщения.
Криптоанализ – наука о преодолении криптографической защиты информации.
Криптографическая система защиты информации – система защиты информации, в которой используются криптографические методы для шифрования данных.
Криптография изучает построение и использование систем шифрования, в том числе их стойкость, слабости и степень уязвимости относительно различных методов вскрытия.
Криптостойкость – характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. способность противостоять криптоанализу).
Система шифрования, или шифрсистема, – это любая система, которую можно использовать для обратимого изменения текста сообщения с целью сделать его непонятным для всех, кроме тех, кому оно предназначено.
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Шифрование с открытым ключом (асимметричное шифрование) – методы шифрования, в которых для шифрования и расшифрования данных используются два разных ключа. При этом один из ключей (открытый ключ ) может передаваться по открытому (незащищенному) каналу связи. Шифрование с открытым ключом используется на практике лишь со второй половины ХХ века.
Краткие итоги
Криптография в переводе с греческого означает «тайнопись». В настоящее время криптография занимается поиском и исследованием математических методов преобразования информации. Параллельно развивается и совершенствуется криптоанализ – наука о преодолении криптографической защиты информации.
Криптография решает следующие задачи: шифрование данных с целью защиты от несанкционированного доступа; проверка подлинности сообщений; проверка целостности передаваемых данных; обеспечение невозможности отказа.
Для современных криптографических систем защиты информации сформулированы следующие требования:
Информация в процессе хранения, передачи и преобразования подвергается воздействию атак. Основными нарушениями информационной безопасности являются раскрытие информационных ценностей ( потеря конфиденциальности ), модификация без разрешения автора (потеря целостности) или неавторизованная потеря доступа к этим ценностям (потеря доступности).
Криптографические атаки могут быть пассивными и активными. В зависимости от количества и типа информации, доступной для криптоанализа, выделяют атаки на основе шифротекста, атаки на основе известного открытого текста, атаки на основе выбранного открытого текста.
В современной криптографии большое внимание уделяется разработке криптографических протоколов, то есть процедур или алгоритмов взаимодействия абонентов с использованием криптографических средств. В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований. Некоторые виды протоколов: протоколы конфиденциальной передачи сообщений; протоколы аутентификации и идентификации; протоколы распределения ключей ; протоколы электронной цифровой подписи; протоколы обеспечения неотслеживаемости.
Основные понятия криптографии
Криптографический протокол
Любой протокол имеет следующие свойства:
Свойства протокола напоминают известные нам из курса информатики свойства алгоритма. На самом деле протокол – это и есть алгоритм действия нескольких сторон в определенной ситуации. Участники протокола должны знать протокол и выполнять полностью все его этапы. Участниками криптографического протокола обычно являются абоненты некоторой системы связи. Участники протокола могут не доверять друг другу, поэтому криптографические протоколы должны защищать их участников не только от внешнего противника, но и от нечестных действий партнеров.
Криптографические протоколы – сравнительно молодая отрасль криптографической науки. Первые протоколы появились во второй половине ХХ века. С тех пор эта область криптографии бурно развивалась, и на настоящий момент имеется уже несколько десятков различных типов криптографических протоколов. Все эти типы можно условно разделить на две группы: прикладные протоколы и примитивные. Прикладной протокол решает конкретную задачу, которая возникает (или может возникнуть) на практике. Примитивные же протоколы используются как своеобразные «строительные блоки» при разработке прикладных протоколов. Мы в данном учебном пособии будем рассматривать только примитивные криптографические протоколы, которые при некоторой адаптации к реальным системам связи могут использоваться на практике.
Рассмотрим назначение некоторых видов протоколов.
Рассмотрим простейший протокол для обмена конфиденциальными сообщениями между двумя сторонами, которые будем называть абонент №1 и абонент №2. Пусть абонент №1 желает передать зашифрованное сообщение абоненту №2. В этом случае их последовательность действий должна быть следующей.
Этот протокол достаточно прост, однако он может действительно использоваться на практике. Криптографические протоколы могут быть простыми и сложными в зависимости от назначения. Со многими из них мы познакомимся в различных главах этого курса.
Ключевые термины
Ciphertext – зашифрованное сообщение (закрытый текст, криптограмма).
Enciphering – преобразование открытого текста в криптограмму (зашифрование).
Активная криптографическая атака – при такой атаке противник имеет возможность модифицировать передаваемые сообщения и даже добавлять свои сообщения.
Криптоанализ – наука о преодолении криптографической защиты информации.
Криптографическая система защиты информации – система защиты информации, в которой используются криптографические методы для шифрования данных.
Криптография изучает построение и использование систем шифрования, в том числе их стойкость, слабости и степень уязвимости относительно различных методов вскрытия.
Криптостойкость – характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. способность противостоять криптоанализу).
Система шифрования, или шифрсистема, – это любая система, которую можно использовать для обратимого изменения текста сообщения с целью сделать его непонятным для всех, кроме тех, кому оно предназначено.
Шифр – совокупность заранее оговоренных способов преобразования исходного секретного сообщения с целью его защиты.
Шифрование с открытым ключом (асимметричное шифрование) – методы шифрования, в которых для шифрования и расшифрования данных используются два разных ключа. При этом один из ключей (открытый ключ ) может передаваться по открытому (незащищенному) каналу связи. Шифрование с открытым ключом используется на практике лишь со второй половины ХХ века.
Краткие итоги
Криптография в переводе с греческого означает «тайнопись». В настоящее время криптография занимается поиском и исследованием математических методов преобразования информации. Параллельно развивается и совершенствуется криптоанализ – наука о преодолении криптографической защиты информации.
Криптография решает следующие задачи: шифрование данных с целью защиты от несанкционированного доступа; проверка подлинности сообщений; проверка целостности передаваемых данных; обеспечение невозможности отказа.
Для современных криптографических систем защиты информации сформулированы следующие требования:
Информация в процессе хранения, передачи и преобразования подвергается воздействию атак. Основными нарушениями информационной безопасности являются раскрытие информационных ценностей ( потеря конфиденциальности ), модификация без разрешения автора (потеря целостности) или неавторизованная потеря доступа к этим ценностям (потеря доступности).
Криптографические атаки могут быть пассивными и активными. В зависимости от количества и типа информации, доступной для криптоанализа, выделяют атаки на основе шифротекста, атаки на основе известного открытого текста, атаки на основе выбранного открытого текста.
В современной криптографии большое внимание уделяется разработке криптографических протоколов, то есть процедур или алгоритмов взаимодействия абонентов с использованием криптографических средств. В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований. Некоторые виды протоколов: протоколы конфиденциальной передачи сообщений; протоколы аутентификации и идентификации; протоколы распределения ключей ; протоколы электронной цифровой подписи; протоколы обеспечения неотслеживаемости.