Как украсть данные и обойти шифрование

0 796

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

В этой статье мы рассмотрим последние, которые называют SCA (side-channel attacks) — атаки по сторонним (или побочным) каналам.

Что такое SCA

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

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

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

Звуковые колебания

Простейший пример: ты хочешь узнать пароль своего коллеги, но не можешь подсмотреть его во время набора. При этом на слух удается определить его длину и однократное использование пробела — эта клавиша звучит очень своеобразно. Безо всякого оборудования и хитрых программ ты уже узнал многое о пароле, просто навострив уши.

Если же сделать несколько аудиозаписей того, как логинится коллега, а затем применить статистический анализ, то ты смог бы восстановить весь пароль или его большую часть. Единичные неуверенно распознанные символы все равно подбираются по маске за короткое время.

Такой же по сути (но более сложный в плане реализации) метод атаки по сторонним каналам использовало британское агентство GCHQ в середине шестидесятых. Оно установило микрофоны в египетском посольстве и записывало звуки, которые издает механическая шифровальная машина. По ним выяснили начальные положения двух символьных дисков, а дальше вскрыли схему шифрования обычным перебором.

Сегодня SCA редко выполняются по акустическому каналу — разве что это делается в качестве академического исследования. Например, известный криптограф Ади Шамир задался целью восстановить ключ RSA по диктофонной записи звуковых паттернов шифрования. (Да, электроника тоже по-разному скрипит, когда выполняет типовые операции.) Ему в итоге удалось это сделать, правда в совершенно нетипичных условиях: компьютер непрерывно шифровал одним и тем же ключом в течение часа, все остальные процессы были выгружены.

Электромагнитное излучение

Куда чаще на практике измеряют электромагнитное излучение (ЭМИ). Оно тоже меняется в зависимости от того, какой скан-код отправляется компьютеру с клавиатуры и какие инструкции выполняют разные чипы. По-русски это называется регистрация ПЭМИН (побочных электромагнитных излучений и наводок), а в англоязычной литературе — TEMPEST (Transient Electromagnetic Pulse Emanation Standard).

Аббревиатура TEMPEST была взята из одноименной секретной программы США семидесятых годов. К настоящему времени на ее основе был разработан целый набор стандартов, где описаны требования для защиты оборудования разного класса от демаскирующих ЭМ-излучений. В нулевых годах термин TEMPEST стали использовать для обозначения любой атаки, основанной на регистрации побочного ЭМИ.

В современном варианте для анализа ПЭМИН чаще всего используются программируемые радиосистемы (SDR). Например, в работе Stealing Keys from PCs using a Radio авторы показывают, как с помощью ресивера FUNcube Dongle Pro+ можно вскрыть RSA-ключи, находясь в полуметре от обрабатывающего их ноутбука.

Еще одна любопытная модификация этой атаки — непрерывное измерение электрического потенциала на корпусе ноутбука во время шифрования или дешифрования. Сопоставив график с известным шифр-текстом и алгоритмом, можно вычислить ключ даже очень большой длины.

Виды атак по сторонним каналам

Если получить физический доступ к оборудованию, то векторов для атаки по сторонним каналам становится больше. Можно измерять задержки выполнения разных операций (timing attack), пики потребления энергии в начале раундов шифрования (power-monitoring attack), манипулировать входными данными и изучать сообщения об ошибках (fault attacks).

Вот общая схема:

Разделение это очень условное. Например, под «удаленными» здесь понимают как сетевые атаки, так и, скажем, перехват радиосигналов.

В свою очередь, «локальность» может означать как простую возможность подойти к компьютеру поближе, так и возможность запустить на нем код с локального носителя или даже подпаять провода к криптографическому модулю.

С разделением на активные и пассивные атаки все относительно просто. Вмешиваешься в работу криптосистемы? Меняешь ее параметры? Это активные действия. Тихо сидишь с приемником и молча наблюдаешь? Это пассивный перехват, при котором ты вряд ли спалишься.

Чаще всего активные атаки выполняют для ускорения взлома, но иногда это просто единственный вариант. Например, чтобы вскрыть криптомодуль методом «черного ящика», нужно отправлять ему на вход разные (заведомо известные) сообщения и накапливать выходные данные для последующего статистического анализа (разностный метод).

Считывание остаточной информации

Это одна из самых популярных техник. Она включает в себя восстановление недавно удаленных файлов, универсальную атаку методом холодной перезагрузки (cold boot attack) и более специфические приемы — например, извлечение ключа BitLocker из дампа оперативной памяти.

При работе программы оставляют множество следов на диске (временные файлы, логи) и в оперативке (которая виртуализируется и периодически свопится на тот же диск), поэтому всегда стоит начинать с поиска остаточной информации. Большинство методик требуют наличия физического доступа, но возможны и удаленные атаки, например скачивание бэкапов по сети или считывание кеша сетевого МФУ в поисках прошедших через него документов.

Анализ ошибок вычислений

Самая длительная процедура. Используется в том случае, если у тебя нет более простых возможностей. На уровне аппаратного шифрования возникновение ошибки в расчетах можно спровоцировать изменением тактовой частоты или напряжения питания криптографического модуля. Эти манипуляции сильно упростили появление доступной платформы ChipWhisperer для анализа устойчивости к SCA хардверных компонентов.

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

Из-за типичных недочетов прикладных программ и драйверов этот процесс может быть на удивление результативным. Например, в работе Fault Attacks on Encrypted General Purpose Compute Platforms описано, как можно взломать секретный ключ RSA в программе GnuPG, анализируя ошибки системы с шифрованием всех данных в оперативной памяти (аналог AMD Secure Memory Encryption).

Атака по времени

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

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

(Не)инвазивные атаки

Инвазивностью называют необходимость физических воздействий на атакуемую систему. К примеру, вскрыть корпус USB-Flash с аппаратным шифрованием, растворить эпоксидку ацетоном и удалить медную экранирующую пластину — это инвазивная атака (ее сотрудники Google демонстрировали еще на Black Hat 2017) Если внутри такой флешки нет экранирования, то можно действовать неинвазивно и сразу выполнить пассивную TEMPEST-атаку. Соответственно, есть промежуточные «полуинвазивные» методы, при которых не происходит необратимых изменений конструкции.

Самый инвазивный метод — это зондирование. В простейшем случае вскрывают криптомодуль и на его ножки или дорожки подсоединяют измерительное оборудование. В экстремальном варианте его изучают в буквальном смысле под микроскопом. С чипа снимается тонкий слой микротомом, после чего внутренняя структура микросхемы фотографируется с большим увеличением. Процедура повторяется до тех пор, пока не удастся восстановить принципиальную схему.

Зондирование со «скоблением» микросхем и макросъемкой было популярно в восьмидесятых, когда внутри чипов содержалось сравнительно мало транзисторов, а их размеры позволяли разглядеть соединения в оптический микроскоп. Сейчас оно используется в основном для сравнительного анализа отдельных микроконтроллеров и специализированных схем. Изучить таким образом устройство современных процессоров практически невозможно из-за жестких технологических норм (14 нм и менее) и обилия элементов (миллиарды транзисторов).

Залог успеха

В целом не так важно, какой побочный канал выбрать. 

Главное, чтобы во время считывания данных выполнялись следующие условия:

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

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

Бывает, что метод явно пытаются использовать за границами его применимости. К примеру, динамика показателей напряжения и силы тока, снятых непосредственно с чипа, многое расскажет о характере его вычислений. Так, при помощи CPA (Correlation Power Analysis) в даеком 2014 году удалось взломать AES во всех режимах шифрования. При этом бесполезно пытаться восстановить секретный ключ по изменению энергопотребления компьютера. Максимум получится определить, что он включен и выполняет какие-то ресурсоемкие операции.

Защита от SCA

Способы противодействия атакам по сторонним каналам становятся очевидны из анализа практик взлома. Вот набор общих рекомендаций:

Максимальная изоляция. Как администратор — отключи неиспользуемые сетевые интерфейсы, закрой лишние порты. Как пользователь — используй экранную клавиатуру для ввода паролей. Как параноик — установи на экран поляризующий светофильтр для защиты от подглядывания;

Контроль физического доступа. Запирай свои внешние носители в сейфе или держи при себе. Если у них и есть настоящее шифрование — это не повод бросать их на столе. Не пускай за компьютер посторонних в твое отсутствие даже под гостевой учеткой. Самый страшный хакер — с отверткой и загрузочной флешкой;

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

Выбор криптосистем с элементами противодействия SCA. Один и тот же алгоритм шифрования может иметь принципиально отличающиеся реализации. Так, AES-CTR менее уязвим к SCA, чем AES-ECB;

Создание шумов. Падение SNR ниже критического уровня сделает любую дистанционную атаку неэффективной. Громкая музыка помешает подслушать, микроволновка забьет часть ЭМ-спектра шумами. Более надежно это делают специализированные генераторы помех;

Общие правила безопасности. Регулярная смена паролей и ключей шифрования сделает бесполезными сложные схемы их перехвата.

Заключение

Помимо криптографических систем, атаки по сторонним каналам все чаще выполняются в отношении типовых компонентов компьютеров. Например, недавно была описана SCA на кеш виртуальной памяти со страничной организацией и еще одна универсальная атака на изоляцию сегментов памяти в архитектуре Intel x86.

Старые протоколы шифрования можно атаковать в лоб, поскольку они содержат известные уязвимости на уровне криптографических примитивов. Например, из-за подверженности коллизиям хеш-функция SHA-1 позволяет достаточно быстро сгенерировать поддельную цифровую подпись или создать фейковый сертификат. Аналогичная ситуация сложилась с потоковым алгоритмом RC4. Он лежит в основе WEP-авторизации, которая вскрывается с помощью AirCrack за минуту.

Это все известные слабости старых алгоритмов. Для новых пока не придумано эффективных атак, поэтому единственный способ вскрыть их техническими методами — искать обходные пути. Обычно конкретная модификация атаки удовлетворяет сразу нескольким критериям, поскольку побочные каналы дополняют друг друга.

Еще больше похожего материала можно найти тут:

Мануал по NFT токенам: что это такое и как заработать на NFT?

Звонок с любого номера: как сделать спуфинг телефонного номера?

Как можно проверить QR-код на вирусы?

Немного про безопасность портала Госуслуг

Что внутри у QR-кодов вакцинаци?



















































































Пётр Толстой: нам плевать на Макрона. Убьём…

Французы в шоке, таким жёстким журналисты его ещё не видели. Впрочем, им не привыкать, в том числе и к реакции своих зрителей. Из раза в раз приглашать в эфир ведущего канала BFMTV и бр...

Почему Собчак пропала с радаров
  • pretty
  • Вчера 08:29
  • В топе

КВАДРАТУРА   КРУГАЛистаю ленту новостей и думаю: «Чего-то не хватает, что-то в стране изменилось. А что?». И вдруг понял: нет Собчак. Пропала. Еще буквально пару месяцев назад ее фамилия обя...

Шчо вы к нам прысталы?!

- Какие мы вам братьтя, хто вам это сказал?! Мы сами по себе! А вы лизеты й лизэтэ. Вы понимаете, шо мы не хотымо з вамы жыты?! Мы хотим отдильно, без вас, сами по себе!- Понимаем. И по...