В статье рассматриваются основные понятие и подходы, связанные с шифрованием данных и криптоанализом. Рассмотрены атаки на криптографические алгоритмы.
Ключевые слова: шифрование, криптоанализ.
- Атаки.
Перехват и прослушивание передаваемых по сети данных называется пассивной атакой, т. к. атакующий не воздействует на протокол, алгоритм, ключ, само сообщение, какие-либо части системы шифрования. Пассивную атаку очень сложно обнаружить, в большинстве случаев проще попытаться предотвратить ее, чем выявить и остановить.
Активными атаками является изменение сообщений, изменение системных файлов, попытки выдать себя за другого человека. При выполнении активных атак атакующий что-то реально делает, а не просто собирает данные. Пассивные атаки обычно используются для сбора информации перед проведением активной атаки, которые можно разделить на несколько видов:
1) Атака «Только шифротекст».
При выполнении атаки этого типа, атакующий имеет шифротекст нескольких сообщений. Каждое из сообщений зашифровано одним и тем же алгоритмом. Целью атакующего является вскрытие ключа, использованного в процессе шифрования. Если атакующий сможет вскрыть ключ, он сможет расшифровать все остальные сообщения, зашифрованные на том же ключе.
Атака «только шифротекст» (cipher-only attack) — это самый распространенный тип активных атак, поскольку получить шифротекст достаточно просто, например, прослушивая чей-то сетевой трафик. Однако это сложнейшая атака, в которой крайне сложно добиться успеха, поскольку атакующий имеет слишком мало информации о процессе шифрования.
2) Атака «Известный открытый текст»
При выполнении атаки типа «известный открытый текст» (known-plaintext attack), у атакующего есть открытый текст и соответствующий ему шифротекст одного или нескольких сообщений. Целью также является вскрытие ключа, использованного при шифровании этих сообщений, чтобы расшифровать и прочитать другие сообщения.
Обычно сообщения начинаются и заканчиваются одним и тем же текстом. Например, атакующий может узнать, что большинство сообщений сотрудников компании начинается с определенного приветствия и заканчивается подписью, в которую входит имя сотрудника, должность и контактная информация. Таким образом, атакующий имеет некоторый объем открытого текста (одинаковые данные в каждом сообщении) и может перехватить зашифрованное сообщение и извлечь из него шифротекст. Это позволит вскрыть несколько частей этой головоломки, а для завершения атаки нужно будет провести обратный инжиниринг, частотный анализ или брутфорс-атаку. Атаки типа «известный открытый текст» использовались США против Германии и Японии во Второй Мировой войне.
3) Атака «Выбранный открытый текст»
При выполнении атаки типа «выбранный открытый текст» (chosen-plaintext attack), у атакующего также есть открытый текст и соответствующий ему шифротекст, но он имеет возможность самостоятельно выбирать открытый текст и получать его в зашифрованном виде. Это дает атакующему дополнительные возможности для более глубокого изучения механизмов работы процесса шифрования, а также для сбора большего объема информации об используемом ключе. Если ему удастся вскрыть ключ, он сможет расшифровать другие сообщения, зашифрованные на этом ключе.
Как это делается? Например, атакующий может подготовить специальное сообщение, которое заставит получателя переслать его кому-то еще. Атакующий отправляет это сообщение пользователю, тот пересылает его своему коллеге, а почтовая программа на его компьютере автоматически зашифровывает сообщение перед отправкой. После этого атакующий перехватывает трафик пользователя и получает копию шифротекста к написанному им самим открытому тексту.
4) Атака «Выбранный шифротекст»
При выполнении атаки типа «выбранный шифротекст» (chosen-ciphertext attack), атакующий может выбирать шифротекст для расшифрования и имеет доступ к получаемому в результате открытому тексту. Целью опять же является вскрытие ключа. Это более сложная атака по сравнению с предыдущей. Для ее реализации атакующему может потребоваться контроль над системой, содержащей криптосистему.
- Открытые и секретные алгоритмы
В настоящее время в мире в основном используются хорошо известные и понятные криптографические алгоритмы, а не секретные. Криптографы знают, насколько стойким и хорошо спроектированным должен быть алгоритм, представляемый на суд общественности. Тысячи умов лучше, чем пять, и часто это помогает найти в алгоритме проблемы, которые не заметили разработчики. Именно поэтому различные производители и компании устраивают соревнования по взлому их кодов и процессов шифрования. Если кому-то удается их взломать, разработчики возвращаются к чертежной доске и усиливают ту или иную часть алгоритма.
Однако не все алгоритмы сделаны общедоступными, например, некоторые алгоритмы, разработанные Агентством национальной безопасности США, являются секретными. Поскольку уровень критичности данных, с которыми работают шифры АНБ, настолько велик, они хотят максимально сохранить процесс в секрете. АНБ не проводит публичных тестов и исследований своих алгоритмов, однако это не говорит о слабости алгоритмов АНБ. Эти алгоритмы разрабатываются, исследуются и тестируются лучшими криптографами, имеющими очень высокую квалификацию.
2.1. Дифференциальный криптоанализ
Целью атаки этого типа также является вскрытие ключа, использованного при шифровании. Эта атака анализирует пары шифротекста, созданного при зашифровании пар открытого текста с определенными различиями, и анализирует их воздействие и результат, получаемый в результате этих различий. Первая такая атака была проведена в 1990 году против алгоритма DES. В дальнейшем она эффективно и успешно применялась для взлома DES и других блочных алгоритмов.
Атакующий берет два сообщения в виде открытого текста и следит за изменениями, которые происходят с блоками при их прохождении через различные S-боксы. (Каждое сообщение зашифровывается на одном и том же ключе). Выявленные расхождения в значениях получаемого в результате шифротекста используются в качестве карты вероятных значений для различных возможных значений ключа. Атакующий выполняет этот процесс для максимально возможного набора различных сообщений и определяет вероятные значения ключа. Постепенно ключ проявляется, и это с высокой вероятностью будет именно тот ключ, который использовался в процессе шифрования. Поскольку атакующий для атаки выбирает сообщения в виде открытого текста, это является атакой с «выбранным открытым текстом».
2.2. Линейный криптоанализ
Линейный криптоанализ является другим вариантом атаки, направленной на выявление наиболее вероятного значения ключа, использованного в процессе шифрования блочным алгоритмом. Атакующий выполняет атаку «известный открытый текст» на несколько различных сообщений, зашифрованных на одном и том же ключе. Чем больше сообщений потенциально может использовать атакующий для этой атаки, тем вероятность нахождения правильного ключа.
Атакующий анализирует входящие и исходящие значения для каждого S-бокса. Он анализирует вероятность того, что определенные входящие значения дают в результате определенную комбинацию. Выявление таких результирующих комбинаций позволяет ему оценивать вероятность для различных значений ключа, пока он не найдет повторяющийся шаблон, имеющий высокую вероятность.
- Атаки с использованием побочных каналов.
Все рассмотренные ранее атаки, основаны в первую очередь на математических аспектах криптографии. Использование открытого текста и шифротекста, а также применение мощных математических инструментов, направлено на вскрытие ключа, использованного в процессе шифрования.
Но существуют и другие методы. Предположим, мы видим какое-то животное, похожее на утку. Оно ходит как утка, издает звуки как утка, плавает в воде, ест жуков и маленьких рыб. Мы можем с уверенностью сделать вывод о том, что это утка. Так же и в криптографии, мы можем увидеть некоторые факты и сделать вывод о значении ключа. Например, мы можем измерить, сколько расходуется электроэнергии при зашифровании и расшифровании (по колебаниям электрического напряжения). Мы можем также перехватить создаваемые при этом излучения и затем рассчитать, сколько времени выполняются процессы. Анализ происходящего вне криптосистемы, измерение различных свойств и характеристик отличается от анализа того, что происходит в самой криптосистеме, но также дает данные, используя которые можно попытаться провести математические расчеты.
Если мне нужно узнать ваши привычки и предпочтения, но я не хочу, чтобы вы знали об этом, я не буду спрашивать вас напрямую. Вместо этого я прослежу, когда вы приходите на работу, когда уходите домой, какую одежду вы носите, что вы делаете, о чем говорите... Это тоже примеры получения информации с помощью побочных каналов (side-channel).
Таким образом, в криптографии сбор «внешней» информации с целью вскрытия ключа шифрования — это просто еще один способ атаки на криптосистемы.
Атакующий измеряет потребляемую энергию, излучения, время обработки определенных данных. Полученную информацию он использует при проведении обратного инжиниринга процесса для вскрытия ключа шифрования или получения критичных данных. Например, атака, при которой анализируется потребляемая энергия, анализирует производимое тепло. Эта атака успешно применяется для взлома смарт-карт и получения с них конфиденциальной информации. В 1995 году закрытый ключ алгоритма RSA был взломан с помощью измерения относительного времени, которое расходуется на различные криптографические операции.
Идея этого заключается в том, что вместо атаки устройство, мы просто смотрим, как оно работает. В биологии, ученые часто проводят «бесконтактные» эксперименты, в процессе которых они смотрят, как организм питается, спит, спаривается и т. д. Ученые пытаются изучить организм путем анализа его поведения, вместо того, чтобы убить его и заглянуть внутрь.
3.1. Атаки повтора
Большой проблемой в распределенной среде являются атаки повтора (replay attack), при выполнении которых атакующий перехватывает определенные данные, а затем отправляет их снова, надеясь, что получившее их устройство примет их за легитимную информацию. Чаще всего атакующий пытается перехватить и повторно использовать аутентификационные данные, чтобы пройти аутентификацию в системе от имени легитимного пользователя и получить таким образом несанкционированный доступ к ней.
Контрмерами против атаки повтора является использование штампов времени и номеров последовательности. Пакеты могут содержать номера последовательности и каждое получившее их устройство будет проверять эти номера. Если пакет имеет уже использовавшийся ранее номер, это указывает на атаку повтора. Также на пакеты может ставится штамп времени. При этом на каждом компьютере настраивается пороговое значение, определяющее временной интервал, в рамках которого указанное в пакете время будет считаться корректным. Если в пакете указано время, выходящее за пределы этого интервала, это также может говорить об атаке повтора.
3.2. Алгебраические атаки
При выполнении алгебраической атаки (algebraic attack), атакующий анализирует уязвимости в математических частях алгоритма и использует его внутренние алгебраические структуры. Для примера, атака на версию «текстовой книги» криптосистемы RSA использует такие свойства алгоритма, как факт, что при шифровании 0 получается 0.
3.3. Аналитические атаки
Аналитические атаки (analytics attack) выявляют структурные слабости и недостатки алгоритма, вместо выполнения брутфорс-атаки, при которой просто перебираются все возможные значения, без учета специфических свойств алгоритма. Примерами являются Атака «maninthemiddle» на Double DES и Атака разложения на множители в RSA.
3.4.Статистические атаки
Статистические атаки (statistical attack) выявляют статистические слабости в структуре алгоритма — например, если удается выявить статистический шаблон, например, сравнивая количество значений «0» с количеством значений «1». Это может быть вызвано, например, использованием некачественного генератора случайных чисел. Если ключи берутся напрямую из выдачи RNG, распределение ключей может быть предсказуемым. Знания о статистической предсказуемости могут использоваться для снижения времени на поиск ключей.
- Завершение.
Криптография применяется в том или ином виде на протяжении 4000 лет, а атаки на нее выполняются примерно 3999 лет и 364 дня. Одна группа людей работает над поиском новых способов скрытия и передачи секретов, тогда как другая — занимается поиском уязвимостей в новых идеях и продуктах. Хотя это выглядит нехорошим и деструктивным поведением, в компьютерном мире это способствует созданию все лучших и все более защищенных продуктов и сред.
Криптографические алгоритмы предоставляют низкоуровневые инструменты для большинства протоколов безопасности, используемых в современных инфраструктурах. Алгоритмы используют математические функции и предоставляют различные функции и уровни безопасности. Большой скачок произошел при переходе шифрования от чисто симметричных ключей к использованию криптографии с открытыми ключами. Это дало пользователям гораздо больше свободы и гибкости при взаимодействии с другими пользователями по всему миру.
Шифрование может выполняться на различных уровнях модели OSI широким спектром приложений, протоколов и механизмов. Сегодня уже не так просто забыть про криптографию или выполнении функций шифрования, поскольку многие операционные системы, приложения и протоколы заботятся об этом самостоятельно в фоновом режиме. Однако администраторам, занимающимся поддержкой таких сред, а также профессионалам по безопасности, которые выбирают и внедряют решения по безопасности, знание криптографии необходимо.
Литература:
- CISSP All-in-One Exam Guide, 6th Edition 6th Edition By Shon Harris.