Криптография в цифровых технологиях

Криптография в цифровых технологиях необходима как инструмент защиты конфиденциальных данных а так же как средство противодействия незаконному копированию и распространению данных, являющихся интеллектуальной собственностью.
Различные алгоритмы шифрования постоянно применяются в банковских и корпоративных сетях для защиты от промышленного шпионажа или взлома. Все каналы и серверы в таких системах являются защищенными, то есть подвергнутыми обработке по тому или иному алгоритму шифрования. Такие системы требуют обязательного поточного шифрования каналов связи на сетевом уровне и выше, что обеспечивает защиту передаваемого трафика от компрометации при передаче по потенциально скомпрометированным провайдерским каналам, а потенциально скомпрометированным каналом для банка считается любой канал, который не обеспечивается самим банком как провайдером.
Цели криптографии
Криптография рассматривается как средство защиты конфиденциальных данных от:
- Несанкционированного прочтения
- Преднамеренного нарушения целостности либо ничтожения
- Нежелательного копирования
- Фальсификации
Одним из основополагающих требований, предъявляемых к криптографической защите, является принцип ее равнопрочности. То есть, если защита может быть разделена на звенья, то все эти звенья должны иметь одинаковую стойкость к взлому.
Принципы применения
Есть несколько основополагающих принципов применения криптографических алгоритмов
- Криптографические методы позволяют обеспечить защиту передаваемых данных даже в том случае, если эти данные передаются в ненадежной среде (как, например Интернет).
- Алгоритмы шифрования применяют для защиты файлов, содержащих важные сведения, чтобы максимально снизить вероятность доступа к ним посторонних лиц.
- Криптография используется не только для обеспечения секретности, но и для сохранения целостности данных.
- Криптография — средство проверки достоверности данных и их источников (речь идет о цифровых подписях и сертификатах)
- Ключи к алгоритму шифрования держатся в секрете.
- Алгоритмы, форматы файлов и размеры ключей могут быть общеизвестными.
Криптографические алгоритмы, основанные на использовании открытого распределения ключей, позволили создать систему комплексного обеспечения безопасности информации в больших компьютерных сетях и информационных базах данных. Причиной тому явилась особенность криптосистем с открытыми ключами (построенных на основе асимметричных алгоритмов шифрования) использовать гораздо меньшее количество ключей для одного и того же количества пользователей, нежели того требует криптосистема с открытыми ключами.
Существует немало готовых алгоритмов шифрования, имеющих высокую криптостойкость, шифровщику остается только создать свой уникальный ключ для придания информации необходимых криптографических качеств. Ключ используется как для шифрования, так и в процессе расшифрования.
Сертификаты
![]()
Верификация сертификата в операционной системе Microsoft Windows XP
Сертификаты, как правило, используются для обмена зашифрованными данными в больших сетях. Криптосистема с открытым ключом решает проблему обмена секретными ключами между участниками безопасного обмена, однако не решает проблему доверия к открытым ключам. Так как существует возможность замены злоумышленником открытого ключа и перехвата зашифрованного этим ключом сообщения с целью последующей расшифровки собственным закрытым ключом. Подробнее об этом смотрите в статье Криптография. Идеей сертификата понимается наличие третьей стороны, которой доверяют две другие стороны информационного обмена. Предполагается, что таких третьих сторон немного, и их открытые ключи известны всем остальным пользователям заранее. Таким образом, подлог открытого ключа третьей стороны легко выявляется. Если пользователь А сформирует сертификат со своим открытым ключом, и этот сертификат будет подписан третьей стороной С, то любой пользователь сети, доверяющий условной стороне С, сможет удостовериться в подлинности открытого ключа пользователя А. В централизованной инфраструктуре в роли стороны С выступает удостоверяющий центр. В сетях доверия С может быть любым пользователем, и следует ли доверять этому пользователю, удостоверившему ключ пользователя А, решает сам отправитель сообщения.
Структура сертификата
Перечень обязательных и необязательных требований, предъявляемых к сертификату, определяется стандартом на его формат (например, X.509). Как правило, сертификат включает в себя следующие поля:
- имя владельца сертификата (имя пользователя, которому принадлежит сертификат)
- один или более открытых ключей владельца сертификата
- имя удостоверяющего центра
- серийный номер сертификата, присвоенный удостоверяющим центром
- срок действия сертификата (дата начала действия и дата окончания действия)
- информация об использованных криптографических алгоритмах
- электронная цифровая подпись, сгенерированная с использованием секретного ключа удостоверяющего центра (подписывается результат хэширования всей информации, хранящейся в сертификате).
Верификация сертификата
Доверие любому сертификату пользователя определяется на основе цепочки сертификатов. Причем начальным элементом цепочки является сертификат центра сертификации, хранящийся в защищенном персональном справочнике пользователя.
Процедура верификации цепочки сертификатов проверяет связанность между именем владельца сертификата и его открытым ключом. Она подразумевает, что все верные цепочки начинаются с сертификатов, изданных одним доверенным центром сертификации. Под доверенным центром понимается главный ЦС, открытый ключ которого содержится в самоподписанном сертификате. Такое ограничение упрощает процедуру верификации, хотя наличие самоподписанного сертификата и его криптографическая проверка не обеспечивают безопасности. Для обеспечения доверия к открытому ключу такого сертификата должны быть применены специальные способы его распространения и хранения, так как на данном открытом ключе проверяются все остальные сертификаты.
Криптографическая система с открытыми ключами, использующая сертификаты, позволяет реализовать по настоящему защищенные системы, использующие современные технологии и сети передачи данных. Стандартизация в этой области позволяет различным приложениям взаимодействовать между собой, используя единую инфраструктуру открытых ключей.
Электронная цифровая подпись (ЭЦП)
Электронная цифровая подпись применяется в тех случаях, когда необходимо подтвердить принадлежность полученных данных либо исключить возможность отрицания авторства адресантом. Также ЭЦП проверяет целостность данных, но не обеспечивает их конфиденциальность. Электронная подпись добавляется к сообщению и может шифроваться вместе с ним при необходимости сохранения данных в тайне.
Реализация ЭЦП
Электронно-цифровая подпись (ЭЦП) используется физическими и юридическими лицами в качестве аналога собственноручной подписи для придания электронному документу юридической силы, равной юридической силе документа на бумажном носителе, подписанного собственноручной подписью правомочного лица и скрепленного печатью. Последовательность действий по созданию ЭЦП:
- Создание ключей электронной подписи
- Секретные ключи остаются у пользователей-участников обмена; открытые ключи становятся доступными для обеих сторон.
- Секретным ключом подписывается исходящее сообщение, открытым ключом проверяется его подлинность.
- Результатом проверки служит один из ответов: «верна»/«неверна».
Таким образом достигается невозможность подмены авторства и защита сообщения от внесения посторонних изменений, даже если эти изменения незначительны.
Квантовая криптография
Одним из надёжных способов сохранить в тайне телефонные переговоры или передаваемую по электронным сетям информацию является использование квантовой криптографии.
Наибольшее практическое применение квантовой криптографии находит сегодня в сфере защиты информации, передаваемой по волоконно-оптическим линиям связи.
Это объясняется тем, что оптические волокна (ВОЛС) позволяют обеспечить передачу фотонов на большие расстояния с минимальными искажениями. В качестве источников фотонов применяются лазерные диоды передающих модулей; далее происходит существенное ослабление мощности светового сигнала — до уровня, когда среднее число фотонов на один импульс становится много меньше единицы. Системы передачи информации по ВОЛС, в приемном модуле которых применяются лавинные фотодиоды в режиме счета фотонов, называются квантовыми оптическими каналами связи (КОКС).
Вследствие малой энергетики сигналов скорости передачи информации в квантовых сетях по сравнению с возможностями современных оптоволоконных сетей не слишком высоки — первые существенно проигрывают вторым в скорости. Поэтому в большинстве случаев квантовые криптографические системы применяются для распределения ключей, которые затем используются средствами шифрования высокоскоростного потока данных. Важно отметить, что квантово-криптографическое оборудование пока серийно не выпускается. Однако, по мере совершенствования и уменьшения стоимости такого оборудования, можно ожидать появления ККС на рынке телекоммуникаций в качестве, например, дополнительной услуги при построении корпоративных оптоволоконных сетей. Читать статью «Квантовая криптография (шифрование)»
Предпосылки секретности квантового канала связи
При переходе от сигналов, где информация кодируется импульсами, содержащими тысячи фотонов, к сигналам, где среднее число фотонов, приходящихся на один импульс, много меньше единицы, вступают в действие законы квантовой физики. Именно на использовании этих законов в сочетании с процедурами классической криптографии основана природа секретности ККС.
Здесь применяется принцип неопределенности Гейзенберга, согласно которому попытка произвести измерения в квантовой системе искажает ее состояние, и полученная в результате такого измерения информация не полностью соответствует состоянию до начала измерений. Попытка перехвата информации из квантового канала связи неизбежно приводит к внесению в него помех, обнаруживаемых легальными пользователями. Квантовые системы используют этот факт для обеспечения возможности двум сторонам, которые ранее не встречались и предварительно не обменивались никакой секретной информацией, осуществлять между собой связь в обстановке полной секретности без боязни быть подслушанным. Таким образом, в деле криптографии открылись совершенно новые возможности.
Хронология событий
2023: В Петербурге создали надежную систему шифрования на новых принципах
В конце декабря 2023 года российские исследователи из Санкт-Петербургского государственного электротехнического университета «ЛЭТИ» сообщили о разработке специализированного генератора случайных последовательностей для шифрования. В основу отечественной криптографической системы положены принципы радиофотоники и оптики. Подробнее здесь.
2021: Квантовый компьютер выявил уязвимости в AES шифровании
8 февраля 2021 года стало известно о том что обнаружение проблем потенциально может привести к опасным последствиям для таких компаний, как Google, Microsoft и IBM.
Специалисты швейцарской ИТ-компании Terra Quantum AG с помощью квантового компьютера выявили уязвимости в криптографическом алгоритме AES. Используя метод, известный как квантовый отжиг, компания доказала, что даже самые сильные версии AES могут быть расшифрованы квантовыми компьютерами в течение нескольких лет.
Предположительно, данные проблемы ставят под угрозу конфиденциальность данных в Сети, банковских транзакций и электронной почты.
По словам экспертов, проблемы были обнаружены в симметричном алгоритме блочного шифрования Advanced Encryption Standard (AES). Как отметил директор Terra Quantum AG Маркус Пфлич (Markus Pflitsch), им удалось с помощью квантового компьютера не только зафиксировать, но также доказать небезопасность алгоритма шифрования.
AES был принят в качестве стандарта шифрования правительством США. В июне 2003 года Агентство национальной безопасности США постановило, что шифр AES является достаточно надежным, чтобы использовать его для защиты сведений, составляющих государственную тайну [1] .
2020: Ученые научились шифровать данные с помощью кристаллов
13 февраля 2020 года стало известно, что ученые из Университета Глазго (Великобритания) научились использовать кристаллы как генератор случайных чисел для шифрования.
![]()
Исследователи смогли использовать кристаллизацию для получения настоящих случайных чисел, что позволило достичь более высокого уровня шифрования. Ранее для защиты от злоумышленников, которые могли так или иначе получить ключ для взлома, использовали «природные» источники случайных чисел — например, датчики движения или шума.
Химики разработали роботизированную систему, которая использует процесс кристаллизации для создания случайных цепочек чисел и шифрования информации. При правильных условиях химические вещества в жидком растворе могут перейти из неупорядоченного состояния в чрезвычайно организованное — кристалл. Процесс наполнен случайностью — от времени, которое требуется для формирования кристалла, до геометрии структур.
Как сообщил профессор химии Ли Кронин (Lee Cronin), они разработали простого робота, который следил через web-камеру за процессами кристаллизации и преобразовывал разные обнаруженные реакции в последовательность единиц и нулей. Исследователи рассмотрели три различные химические реакции и сравнили их закодированные строки с одной, созданной с помощью генератора псевдослучайных чисел общего назначения Mersenne Twister. Обратная расшифровка такой информации заняла куда больше времени, чем в случае с ранее известными методами, что доказывает эффективность выбранного метода.
По словам специалистов, данный метод предлагает хорошую альтернативу существующим генераторам истинных случайных чисел. Форму их робота можно уменьшить и встроить в обычный компьютер, «предоставляя доступ к мощному и удобному генератору случайных чисел, работающему на химических процессах». Как отметил Кронин, данный метод будет дешевле, чем квантовые вычисления, которые считаются золотым стандартом для генерации случайных чисел [2] .
Литература
- А. Ю. Винокуров. ГОСТ не прост. а очень прост, М., Монитор.-1995.-N1.
- А. Ю. Винокуров. Еще раз про ГОСТ., М., Монитор.-1995.-N5.
- А. Ю. Винокуров. Алгоритм шифрования ГОСТ 28147-89, его использование и реализация для компьютеров платформы Intel x86., Рукопись, 1997.
- А. Ю. Винокуров. Как устроен блочный шифр?, Рукопись, 1995.
- М. Э. Смид, Д. К. Бранстед. Стандарт шифрования данных: прошлое и будущее.
/пер. с англ./ М., Мир, ТИИЭР.-1988.-т.76.-N5.
- Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования ГОСТ 28147-89, М., Госстандарт, 1989.
- Б. В. Березин, П. В. Дорошкевич. Цифровая подпись на основе традиционной криптографии//Защита информации, вып.2.,М.: МП «Ирбис-II»,1992.
- W.Diffie,M.E.Hellman. New Directions in cryptography// IEEE Trans.
Inform. Theory, IT-22, vol 6 (Nov. 1976), pp. 644—654.
- У.Диффи. Первые десять лет криптографии с открытым ключом. /пер. с англ./ М., Мир, ТИИЭР.-1988.-т.76.-N5.
- Водолазкий В., «Стандарт шифрования ДЕС», Монитор 03-04 1992 г. С.
- Воробьев, «Защита информации в персональных ЗВМ», изд. Мир, 1993 г.
- Ковалевский В., «Криптографические методы», Компьютер Пресс 05.93 г.
- Мафтик С., «Механизмы защиты в сетях ЭВМ», изд. Мир, 1993 г.
См. также
Ссылки
- Московское отделение Пензенского научно-исследовательского электротехнического института
- Новости высоких технологий
- Санкт-Петербургский Государственный политехнический университет
- Портал компании Крипто Про
Криптографические протоколы: определения, запись, свойства, классификация, атаки
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.
Основные понятия
Для успешного выполнения любых целей по защите информации необходимо участие в процессе защиты нескольких субъектов, которые по определённым правилам будут выполнять технические или организационные действия, криптографические операции, взаимодействовать друг с другом, например, передавая сообщения или проверяя личности друг друга.
Формализация подобных действий делается через описание протокола. Протокол — описание распределённого алгоритма, в процессе выполнения которого два или более участников последовательно выполняют определённые действия и обмениваются сообщениями (Здесь и далее в этом разделе определения даны на основе [Cheremushkin:2009]).
Под участником (субъектом, стороной) протокола понимают не только людей, но и приложения, группы людей или целые организации. Формально участниками считают только тех, кто выполняет активную роль в рамках протокола. Хотя при создании и описании протоколов забывать про пассивные стороны тоже не стоит. Например, пассивный криптоаналитик формально не является участником протоколов, но многие протоколы разрабатываются с учётом защиты от таких «неучастников».
Протокол состоит из циклов (англ. round) или проходов (англ. pass). Цикл — временной интервал активности только одного участника. За исключением самого первого цикла протокола, обычно начинается приёмом сообщения, а заканчивается — отправкой.
Цикл (или проход) состоит из шагов (действий, англ. step, action) — конкретных законченных действий, выполняемых участником протокола. Например:
- генерация нового (случайного) значения;
- вычисление значений функции;
- проверка сертификатов, ключей, подписей, и др.;
- приём и отправка сообщений.
Можно сказать, что протокол прескрептивно описывает правила поведения каждой роли в протоколе. А сеанс это дескриптивное описание (возможно теоретически) состоявшейся в прошлом реализации протокола.
Пример описания протокола.
- Участник с ролью «Отправитель» должен отправить участнику с ролью «Получатель» сообщение.
- Участник с ролью «Получатель» должен принять от участника с ролью «Отправитель» сообщение.
- 1-го апреля в 13:00 Алиса отправила Бобу сообщение.
- 1-го апреля в 13:05 Боб принял от Алисы сообщение.
- аутентификация сторон и источника данных,
- разграничение доступа,
- конфиденциальность,
- целостность,
- невозможность отказа от факта отправки или получения.
Запись протоколов
Для записи протоколов, связанных с реализацией функций защиты информации, не используют выражения вроде «участник с ролью «Отправитель»», а заменяют их на краткие обозначения вроде «отправитель» или используют общепринятые экземплификанты: Алиса, Боб, Клара, Ева и т., д. При этом используют следующие соглашения.
- Алиса, Боб (от англ. A, B) — отправитель и получатель.
- Карл, Клара, Чарли (от англ. C) — равноправная третья сторона.
- Ева (от англ. eavesdropper) — пассивный криптоаналитик.
- Меллори (от англ. malicious) — активный криптоаналитик.
- Трент (от англ. trust) — доверенная сторона.
- Предварительный этап.
- Все стороны выбрали общие и .
- Алиса генерирует случайное .
- Алиса вычисляет .
- Алиса отправляет Бобу .
- Боб принимает от Алисы .
- Боб генерирует случайное .
- Боб вычисляет .
- Боб отправляет Алисе .
- Боб вычисляет .
- Алиса принимает от Боба .
- Алиса вычисляет .
- Стороны вычислили общий сеансовый ключ .
В краткой записи опускаются инициализация и предварительные требования, вычисления непередаваемых данных (в данном примере — общего сеансового ключа ), а также любые проверки.
В данном пособии мы будем придерживаться промежуточного формата записи.
- Алиса генерирует .
. - Боб генерирует .
Боб вычисляет .
. - Алиса вычисляет .
Либо, отводя отдельный столбец для каждого участника.
Для сокращения описания и упрощения сравнения разных протоколов используют следующие соглашения об обозначениях передаваемых данных.
- , , , и т.п. — идентификаторы участников протокола: Алисы, Боба и Клары, соответственно.
- (от англ. message) — сообщение в исходном виде, открытый текст вне зависимости от кодировки. То есть под может пониматься и исходный текст в виде текста или, например, звука, либо уже некоторое число или массив бит, однозначно соответствующие этому сообщению.
- (от англ. key) — некоторый ключ. Без дополнительных уточнений обычно обозначает секретный сеансовый ключ.
- — общий секретный ключ между Алисой и Трентом (для симметричных криптосистем).
- — открытый ключ Алисы (для асимметричных криптосистем).
- (от англ. encrypt) — данные, зашифрованные на ключе .
- , — данные, зашифрованные на ключах Алисы и Боба, соответственно.
- (от англ. lifetime) — время жизни, например, сертификата.
- (от англ. sign) — данные и соответствующая цифровая подпись на открытом ключе .
- , (от англ. timestamp) — метки времени от соответствующих участников.
- , (от англ. random) — случайные числа, выбранные соответствующими участниками.
- или просто — сообщение , зашифрованное ключом Боба .
- — случайное число , сгенерированное Алисой и ей же подписанное. То есть в сообщении будет и случайное число (открытым текстом), и электронная подпись этого числа.
- — идентификатор и ключ Алисы, метка времени и срок жизни данной записи, всё вместе подписанное открытым ключом доверенного центра (Трента). То есть фактически сертификат ключа Алисы.
Свойства безопасности протоколов
Защищённая система и, соответственно, защищённый протокол могут выполнять разные функции безопасности. Многие из этих функций или целей (англ. goals) можно сформулировать как устойчивость к определённому классу атак. Наиболее полным и актуальным считается перечисление и толкование этих целей в документе проекта AVISPA (англ. Automated Validation of Internet Security Protocols and Applications) [AVISPA], суммирующим описания из различных документов IETF (англ. Internet Engineering Task Force). Данные цели принято считать формализируемыми — то есть такими, что для отдельных протоколов есть возможность формально доказать или опровергнуть достижение этих целей.
-
Аутентификация (однонаправленная).
- Классификация по числу участников протокола:
- двусторонний,
- трёхсторонний и т. п.,
- многосторонний.
- интерактивный (с наличием взаимного обмена сообщениями);
- неинтерактивный (с однократной передачей сообщений), часто называется схемами. Определение не совсем полное. Любая схема предполагает как минимум два этапа. На первом предварительном этапе доверенный центр распределяет некоторую информацию между одноранговыми участниками. На втором этапе (конкретные сеансы протокола) участники обмениваются этой информацией, получая исходный секрет или новый секретный сеансовый ключ. Причём обмен информацией может идти более чем между двумя участниками. Однако после взаимного обмена информацией дополнительных проходов для выполнения целей схемы не требуется.
- на основе только симметричных криптосистем;
- на основе в том числе асимметричных криптосистем.
- (G1) обеспечивает или нет аутентификацию первой, второй стороны протокола и т. д.;
- (G2) обеспечивает или нет аутентификацию сообщений;
- (G3) обеспечивает или нет защиту от повторов;
- и т. п.
- одноранговый, когда все участники могут выполнять любые роли в рамках протокола;
- с доверенным посредником, когда в протоколе всегда участвует третья доверенная сторона;
- с доверенным арбитром, когда в протоколе может участвовать третья доверенная сторона, если остальные участники не пришли к согласию.
- Классификация по целевому назначению протокола:
- … обеспечения целостности,
- … цифровой подписи,
- … идентификации,
- … конфиденциальности,
- … распределения ключей,
- … и т. п.
- примитивные, используются как базовый компонент при построении прикладных протоколов;
- промежуточные;
- прикладные, предназначены для решения практических задач.
Классификация по «полноте» выполняемых функций проблематична из-за того, что ни один протокол нельзя назвать в полной мере «прикладным». Любой протокол сам по себе это лишь часть некоторой информационной (или организационной) системы, которая как раз и выполняет требуемую пользователями функцию. Однако можно говорить о том, что отдельные протоколы (например, TLS) являются протоколами более высокого уровня, чем протоколы, например, Диффи—Хеллмана, так как последний часто выступает составной частью того же протокола TLS.
Атаки на протоколы
Защищённые свойства протоколов могут быть заявленными, когда о них заявляют сами авторы протокола (и, обычно, приводят различные аргументы в пользу выполнения данных функций), и подразумеваемыми, когда авторы некоторой системы рассчитывают на реализацию защищённых свойств некоторым протоколом.
Под атакой на защищённый протокол понимается попытка проведения анализа сообщений протокола и/или выполнения непредусмотренных протоколом действий для нарушения заявленных или подразумеваемых свойств протокола. (Используется модифицированное определение из [Cheremushkin:2009]. Отличие в том, что Черёмушкин в своём определении не описывает, что такое «нарушение работы протокола» и оставляет двусмысленными случаи нарушения, например, свойств G9/PFS и G20/STP.)
Атака считается успешной, если нарушено хотя бы одно из заявленных или подразумеваемых свойств протокола.
В случае успешной атаки на подразумеваемые свойства будем уточнять, что успешна атака на использование протокола в некоторой системе. Это будет говорить, разумеется, не о недостатках самого протокола, но о неверном выборе протокола (или его настроек) авторами системы.
Существует большое количество типов атак на протоколы. У многих атак есть некоторые общие принципы, что позволяет выделить классы атак для упрощения анализа и разработки протоколов, устойчивых к целым классам атак.
-
MitM «Атака посередине»
англ. man-in-the-middle attackС другой стороны, следует предполагать, что сеансовые ключи, получаемые в рамках сеансов протоколов, через некоторое время (однако, много большее времени самого сеанса связи) будут получены злоумышленником (классы атак STS и KN). А через значительно более время злоумышленник сможет получить и доступ к «мастер»-ключам — ключам длительного использования, так что протоколы с генерацией сеансовых ключей должны разрабатываться в том числе со свойством G9/PFS.
(Дальше идут разделы с описанием конкретных протоколов.)
Ссылки
- [ISO 7498-2:1989] ISO 7498-2:1989. Information processing systems — Open Systems Interconnection — Basic Reference Model — Part 2: Security Architecture: Standard / ISO/IEC JTC 1 Information technology. — 02.1989. — URL: www.iso.org/standard/15841.html.
- [AVISPA] Automated Validation of Internet Security Protocols and
Applications (AVISPA): IST-2001-39252. Deliverable 6.1 ’List of Selected Problems’. Properties (Goals). — 2003. — URL: www.avispa-project.org/delivs/6.1/d6-1/node3.html - [Cheremushkin] Черёмушкин А. В. Криптографические протоколы: основные свойства и уязвимости // Прикладная дискретная математика. — 2009. — нояб. — вып. 2. — с. 115—150. — URL: cyberleninka.ru/article/n/kriptograficheskie-protokoly-osnovnye-svoystva-i-uyazvimosti.pdf.
Послесловие
Автор будет благодарен за фактические и другие замечания к тексту. Презентация и текст подготовлены во многом по замечательной лекции Черёмушкина (ссылка выше).
- криптография
- криптографические протоколы
- защищённые протоколы
- учебное пособие
Зачем нужна криптография?
В современном мире криптография используется повсеместно. Например, она применяется для безопасной отправки паролей по сетям при совершении покупок по интернету. Серверы банков и почтовые клиенты сохраняют пароли пользователей с помощью методов шифрования. Они обеспечивают безопасную передачу всей информации в интернете вещей для аутентификации людей и устройств, а также при установлении связи между только устройствами.
Если бы все криптографические функции перестали осуществляться, современная жизнь прекратилась бы в том ее виде, который нам известен. Перестали бы проходить банковские транзакции, прекратился бы интернет-трафик, а сотовые телефоны не смогли бы работать. Вся наша важная информация стала бы общедоступной, что нанесло бы непоправимый вред, попади она в руки злоумышленников.
Криптография позволяет предотвратить такие угрозы, обеспечивая безопасность информации и связи с помощью правил, которые позволяют получать данные и обрабатывать их только тем, кто имеет соответствующий доступ.
Классическая система шифрования
В классическом понимании криптография обеспечивает безопасность передаваемой информации методом ее сокрытия (security by obscurity) от тех пользователей, кому она не предназначена. Однако этот принцип не очень просто реализовать в широком масштабе. Классические методы шифрования безопасны только тогда, когда обе стороны имеют возможность обмениваться информацией в безопасной экосистеме. На рисунке 1 показана структурная схема традиционной криптографической системы. Отправитель и Получатель сначала договариваются о ряде совместно используемых ключей шифрования и дешифрования, которые применяются для последовательно выполняемых операций шифрования и дешифрования каждого сообщения.
Рис. 1. Классическая криптографическая система с обратной связью использует одноразовый ключ в качестве метода шифрования
Одноразовый ключ (One-Time Pad) –метод шифрования, в котором ключ коллективного пользования действует только один раз. Этот же ключ применяется в шифровании и дешифровании. После его использования Отправитель и Получатель должны безопасно обменяться новым набором ключей и хранить его в безопасном месте при обмене следующим набором сообщений. Очевидно, что классические методы обеспечения безопасности путем ее сокрытия больше нежизнеспособны. От злоумышленников необходимо защитить интеллектуальную собственность, глобальные сети передачи данных и коммерческие приложения, используемые по всему миру.
Следующий этап развития криптографии
Для реализации высокоуровневой защиты систем, выполняющих миллиарды транзакций, применяются современные криптографические методы, представляющие собой неотъемлемую часть безопасной, но удобной связи, которой мы пользуемся в повседневной жизни.
Посмотрим, как реализуется такая связь. Для обеспечения безопасной передачи по всему миру большого объема информации применяются хорошо известные и опробованные в открытых средах стандартные алгоритмы, которые позволяют быстро обнаруживать и устранять любые уязвимости. На рисунке 2 показана структурная схема упрощенной современной криптографической системы. Давайте посмотрим, как работает эта система и ее алгоритмы.
Рис. 2. Современная криптографическая система с симметричными ключами обеспечивает более высокий уровень безопасности
Базовый принцип функционирования современной криптографической системы заключается в обеспечении секретности ключей, а не в сохранении используемого алгоритма в тайне. Эта система отвечает следующим четырем основным требованиям.
– Конфиденциальность. Информация никогда не раскрывается не авторизованным пользователям.
– Идентификация и аутентификация. Отправитель и Получатель идентифицируются, а затем авторизуются перед обменом данными.
– Целостность. Хранящаяся информация не изменяется и не перемещается. Выявляется любое изменение данных.
– Предотвращение отказа. Не допускается отказ от факта создания или передачи сообщения, благодаря чему обеспечивается «цифровая» легитимность и отслеживание транзакций.
Современная криптографическая система отвечает всем указанным требованиям или их разным комбинациям в зависимости от нужд приложения. Давайте подробнее рассмотрим эти требования, чтобы в основных чертах понять, как они реализуются.
Конфиденциальность подразумевает защиту информации от неавторизованного доступа. Она обеспечивается путем шифрования отправляемого сообщения с помощью криптографического алгоритма и ключа, который известен только Отправителю и Получателю. Перехватчик может получить зашифрованное сообщение, но не расшифрует его.
На рисунке 3 схематически показано, как осуществляется шифрование. Отправитель и Получатель устанавливают принцип общего использования ключа шифрования и дешифрования. Оба применяют этот ключ для шифровки или дешифровки сообщений, которыми обмениваются друг с другом. Злоумышленник не в состоянии прочесть сообщение, поскольку не обладает ключом для его расшифровки. Далее мы обсудим коллективное использование ключей и алгоритмы шифрования.
Рис. 3. Шифрование делает информацию конфиденциальной
Идентификация и аутентификация
Цель идентификации – опознать объект или пользователя, а затем идентифицировать их перед установлением связи или проведением других операций. Связь устанавливается, как только Отправитель аутентифицирует Получателя [1].
На рисунке 4 показано, как работает односторонняя аутентификация. Банк (Отправитель) устанавливает подлинность ПК клиента (Получателя)с помощью простой комбинации имени пользователя и паспорта, прежде чем клиент сможет воспользоваться услугами сайта банка. На самом деле, этот процесс намного сложнее, чем кажется, но мы приводим этот простой пример для иллюстрации базовых понятий о криптографии. Идентификация и аутентификация могут осуществляться в двух направлениях, когда и Отправителю, и Получателю требуется идентифицировать друг друга до начала обмена сообщениями.
Рис. 4. Пример идентификации и аутентификации – базовых понятий криптографии
Как осуществлять безопасную отправку и получение сообщений по коммуникационной сети или каналу передачи данных? Например, при обмене сообщениями может возникнуть попытка их перехватить и вставить вирус или вредоносную программу, чтобы установить контроль над персональным компьютером Отправителя или другим оборудованием без ведома клиента. Во избежание таких ситуаций необходимо добиться того, чтобы в любые передаваемые сообщения не вносились изменения.
Как видно из рисунка 5, чтобы этого не случилось, применяется профиль сообщения. Отправитель и Получатель договариваются об использовании одного алгоритма сжатия сообщений для их создания и проверки. Если сообщение было изменено, его профиль не соответствует заданному, и Получатель узнает о взломе или ошибке при передаче. В современных криптографических приложениях используется множество алгоритмов, включая SHA‑2и новый SHA‑3.
Рис. 5. Сжатие сообщения позволяет сохранить его целостность при отправке и приеме
При использовании системы связи, в которой происходит обмен большим количеством сообщений, требуется, чтобы Отправитель подтверждал факты отправки сообщений. Это требование схоже с необходимостью поставить подпись под договором, заключенным на листе бумаги, с той лишь разницей, что в системе связи используется цифровая подпись.
На рисунке 6 в упрощенном виде показана генерация цифровой подписи, передача сообщения и его верификация. Сначала Отправитель создает исходящее сообщение и с помощью алгоритма генерирует цифровую подпись, соответствующую этому сообщению и верифицированной информации, идентифицирующей личность Отправителя. Затем Отправитель прикрепляет цифровую подпись к исходному сообщению и отправляет его Получателю. Тот, в свою очередь, принимает комбинированное входящее сообщение и отделяет исходное сообщение от цифровой подписи. Это сообщение и подпись обрабатываются с помощью алгоритма верификации сообщений. Результат проверки используется Получателем для подтверждения того, что принятое сообщение подписано Отправителем.
Рис. 6. Для предотвращения отказа требуется генерация цифровой подписи, передача и верификаций сообщения
Зия Сардар (Zia Sardar), инженер по приложениям, Maxim Integrated
Опубликовано в журнале «Электронные Компоненты» №7, 2020 г.
КРИПТОГРАФИЧЕСКИЙ КЛЮЧ
Криптографический ключ представляет собой строку, состоящую из битов и используемую криптографическими алгоритмами для шифрования и расшифровки данных и проверки электронной подписи.
Соответственно, криптографический ключ применяется для выполнения криптографических операций и является своего рода входными данными для алгоритмов шифрования, используемых в криптографических системах. Таким образом, безопасность криптографической системы зависит от безопасности используемых криптографических ключей.
Криптографические ключи делятся на симметричные и асимметричные в зависимости от используемого алгоритма шифрования .
В симметричных алгоритмах шифрование и дешифрование данных выполняется с помощью одного и того же ключа.
В асимметричных алгоритмах для прямого и обратного криптографического преобразования используются разные ключи. Пары открытых и закрытых ключей, называемые ключевыми парами, предоставляются в рамках PKI удостоверяющим центром (УЦ). При этом закрытый ключ известен только его владельцу и хранится в тайне. В результате вычисления некоторой функции от закрытого ключа определяется открытый ключ, который публикуется в сертификате его владельца и известен всем.
Количество информации, хранимой ключом, определяется длиной ключа, которую принято измерять в битах. Чем больше длина ключа, тем выше надежность алгоритма шифрования и, соответственно, выше уровень защиты информации. Однако использование более длинных ключей требует также и больше времени для шифрования и расшифровки данных.
англ. Authentication (unicast).-
(G1) Аутентификация субъекта.
англ. Entity authentication (Peer Entity Authentication).-
(G7) Аутентификация ключа.
англ. Key authentication.-
(G13) Защита идентификаторов от прослушивания (несвязываемость).
англ. Identity Protection against Eavesdroppers.-
(G17) Подотчётность.
англ. Accountability.
Классификация протоколов
Общепризнанная классификация защитных протоколов отсутствует. Однако можно выделить набор объективных и однозначных признаков, классифицирующих протоколы.