Кража ключей шифрования

Теоретическая атака, которая позволила похитить секретный ключ для доступа к данным, наблюдая за стандартным поведением процессора и ОС
У информационной безопасности есть много уровней сложности. На слуху эффективные, но технически простые атаки с использованием фишинговых рассылок и социального инжиниринга. Мы часто пишем о сложных таргетированных атаках с использованием уязвимостей в корпоративном программном обеспечении и сервисах. Атаки, использующие фундаментальные особенности работы аппаратного обеспечения, можно считать одними из самых сложных. Цена такой атаки высока, но в некоторых случаях это не останавливает злоумышленников. Исследователи из двух американских университетов недавно опубликовали научную работу, в которой показан интересный пример атаки на «железо». Используя стандартную функцию операционной системы, позволяющую переключаться между разными задачами, авторы исследования смогли разработать атаку SleepWalk, позволяющую взломать новейший алгоритм шифрования данных.
SleepWalk относится к классу атак по сторонним каналам. Под «сторонним каналом» обычно понимается любой способ похитить секретную информацию, используя непрямое наблюдение. Например, представим, что вы не можете наблюдать за человеком, который набирает на клавиатуре пароль, но можете подслушивать. Это реалистичная атака, в которой сторонним каналом выступает звук нажатия на клавиши, — он выдает, какие именно буквы и символы были набраны. Классическим сторонним каналом является наблюдение за изменением энергопотребления вычислительной системы. Почему энергопотребление меняется? Здесь все просто: разные вычислительные задачи требуют разных ресурсов. При сложных вычислениях нагрузка на процессор и оперативную память будет максимальной, а при наборе текста в текстовом редакторе компьютер большую часть времени будет находиться в режиме простоя. В некоторых случаях изменение энергопотребления выдает секретную информацию, чаще всего — приватные ключи, используемые для шифрования данных. Точно так же как сейф с кодовым замком может выдавать правильное положение ротора еле слышным щелчком.
Почему такие атаки сложны? Прежде всего, любой компьютер одновременно выполняет множество задач. Все они как-то влияют на потребление электроэнергии. Выделить из этого шума какую-то полезную информацию крайне непросто. Даже при исследовании простейших вычислительных устройств, таких как ридеры смарт-карт, исследователи делают сотни тысяч измерений за короткий период времени, повторяют эти измерения десятки и сотни раз, применяют сложные методы обработки сигнала, чтобы в итоге подтвердить или опровергнуть возможность атаки по стороннему каналу. Так вот, SleepWalk в некотором смысле упрощает такую работу: исследователи смогли извлечь полезную информацию, измеряя характер энергопотребления только один раз, во время так называемого переключения контекста.
Мы привыкли переключаться между разными программами в компьютере или смартфоне. На более глубоком уровне такая многозадачность обеспечивается разными механизмами, одним из которых является переключение контекста. Состояние одной программы сохраняется, а в процессор загружаются данные другой программы. За решение, когда и какой программе отдать приоритет, отвечает операционная система. Впрочем, у программиста есть простой способ вызвать переключение контекста принудительно, добавив в код программы инструкцию sleep. Операционная система в таком случае увидит, что в данный конкретный момент программа не требует вычислительных мощностей, и переключится на другую задачу. Переключение контекста, особенно при использовании функции sleep, является энергозатратным мероприятием: нужно сохранить состояние одной программы и загрузить в процессор данные от другой. На скриншоте выше такому переключению соответствует явный скачок измеряемого напряжения.
Как выяснилось, характер этого скачка зависит как от выполняемой до этого задачи, так и от обрабатываемых данных. По сути, исследователи смогли значительно упростить процесс атаки по стороннему каналу с измерением энергопотребления системы. Вместо измерений в течение длительного периода анализируется один всплеск в заранее известное время. Это позволяет получить косвенные данные сразу двух типов: что за программа выполнялась до переключения и какие при этом обрабатывались данные. Исследователи проводили эксперименты на одноплатном компьютере Raspberry Pi 4. На нем сначала было показано, что разные вычислительные задачи дают уникальную характеристику того самого всплеска электроэнергии при переключении контекста. Представим, что на этом компьютере выполняется шифрование данных. Мы можем подавать на вход алгоритма шифрования любой текст, но не знаем ключ, с помощью которого данные шифруются. Что, если вызвать переключение контекста в определенный момент работы алгоритма шифрования? Операционная система начнет сохранять состояние программы, произойдет скачок энергопотребления. С помощью осциллографа исследователи измеряли характер этого скачка много раз подряд. И в результате смогли извлечь секретный ключ!
На самом деле в реальном эксперименте было очень много важных особенностей. Полностью реконструировать приватный ключ удалось для алгоритма шифрования SIKE. Это достаточно свежий алгоритм, предложенный на замену традиционным алгоритмам, чтобы защитить данные даже в случае появления квантовых компьютеров. Несмотря на кажущуюся инновационность, этот алгоритм уже признан недостаточно надежным. Более того, для извлечения секретного ключа авторы исследования воспользовались не только атакой SleepWalk, но и одной из слабых сторон самого алгоритма.
В итоге такая работа помогает делать существующие и разрабатываемые алгоритмы шифрования чуть более надежными. У атаки SleepWalk есть еще одна особенность: она косвенно указывает на важный момент при реализации криптографических систем. Внедрять алгоритмы, стойкие к анализу с помощью квантовых вычислений (так называемую постквантовую криптографию), важно, но не менее важно делать это правильно. Иначе новый, по идее, более стойкий алгоритм может оказаться более уязвимым к традиционным атакам, чем проверенный временем.
По материалам Касперский

Кража ключей шифрования - 954170835837

Комментарии

Комментариев нет.