Исследователи из университетов США и Израиля опубликовали научную работу, в которой рассказали о методе так называемого видеокриптоанализа. Термин получился довольно сомнительный, да и исследование вышло сложным для понимания. Но мы, как всегда, постараемся объяснить, что именно было сделано, максимально простыми словами. А штука получилась интересная.
Атака с использованием видеокриптоанализа
Если представить себе реальную атаку с использованием данной технологии, то выглядеть она может следующим образом. Некие злоумышленники получают доступ к системе видеонаблюдения в здании. Одна из камер направлена на дверь особо охраняемого помещения, в котором хранятся, ну, например, секретные документы. На двери стоит считыватель смарт-карт. Сотрудник организации подходит к двери, вставляет карту, замок открывается.
В смарт-карте установлен микрочип, с которым взаимодействует ридер. Ключ, сохраненный в смарт-карте, сверяется с данными в считывателе: для этого ридер выполняет определенный криптографический алгоритм, а если проще, серию вычислений. В нормальной ситуации сделать копию такого ключа крайне сложно, даже если удастся получить доступ к оригиналу. Но есть одна уязвимость: в считывателе карт есть светодиод. Он показывает, что устройство работает, либо меняет цвет с красного на зеленый, когда посетитель авторизован и можно открывать дверь.
Яркость этого индикатора зависит от нагрузки на системы ридера и меняется в ходе криптографической операции: например, когда встроенный в считыватель карт процессор нагружен вычислениями, светодиод становится чуть менее ярким. Анализ этих изменений позволяет реконструировать приватный ключ, а значит — создать смарт-карту, которая откроет дверь в секретную комнату. Если у злоумышленников есть доступ к видеокамере и можно получить видеозапись работы считывателя, то в теории они могут полностью взломать систему безопасности здания.
Сложности практической реализации
В таких работах ничто не бывает просто! Сценарий, показанный выше, вряд ли можно реализовать на практике прямо сейчас. Для специалистов в области аппаратной безопасности такая уязвимость не является новой. Мы имеем дело с классической атакой по сторонним каналам: когда через какое-то неочевидное место в схеме работы устройства происходит утечка данных. Традиционный, используемый в течение десятилетий, способ атаки на смарт-карты и другие устройства, где используются алгоритмы шифрования данных, заключается в измерении напряжения, подающегося на устройство. В процессе вычислений это напряжение немного меняется. Наблюдая за изменениями, мы иногда можем восстановить работу алгоритма: связать, например, падение напряжения с определенным значением, которое в данный момент обрабатывается.
Особенность такой атаки по сторонним каналам заключается в том, что вычисления происходят очень быстро. Чтобы иметь возможность реконструировать ключ шифрования, мы должны измерять напряжение сотни или даже тысячи раз в секунду. Но светодиод также включен в общую схему питания устройства, а значит, его яркость меняется в зависимости от напряжения. Оцените прогресс: теперь для атаки не требуется сложное и дорогое оборудование. Не надо разбирать устройство и припаивать провода к схеме. Направили видеокамеру на светодиод, сделали запись, проанализировали и получили результат.
Особенности видеоанализа
При практическом анализе видео авторы работы столкнулись со множеством трудностей. Типичная камера снимает видео с частотой 60 кадров в секунду, продвинутая — в лучшем случае 120. Для полноценной атаки на алогоритм шифрования это очень мало. Для улучшения метода исследователи воспользовались одним врожденным недостатком любой цифровой фотокамеры, с которым ее производители обычно борются. Это так называемый rolling shutter. Когда мы нажимаем на кнопку съемки, матрица фотоаппарата не делает снимок мгновенно. Сканирование светочувствительных датчиков происходит последовательно, линия за линией, сверху вниз. Если мы фотографируем объект, движущийся с высокой скоростью, это может приводить к интересным артефактам. Типичный пример: вращающиеся лопасти двигателя самолета.
Авторы работы поступили следующим образом: приблизили камеру к светодиоду так, чтобы он заполнял почти всю площадь кадра. И дальше начали измерять яркость не кадра целиком, а каждой строки в каждом кадре. Таким образом «частоту измерений», а соответственно, и точность удалось значительно повысить: до 61 400 раз в секунду в случае фотокамеры iPhone 14. Любопытно, что в этом, ну очень странном, сценарии применения камеры смартфона iPhone показал некоторое преимущество над Samsung: зафиксировал больше данных.
На скриншоте выше показан результат работы этой улучшенной конфигурации: исследователи заставили светодиод «мигать» с определенной частотой, постепенно повышая ее. Включение и выключение светодиода четко видны при измерении флуктуаций питания (график слева вверху). Достаточно хорошо видно изменение яркости светодиода при использовании специализированного фотодатчика (справа вверху). В качестве видеокамер в данном тесте использовали два смартфона (графики в нижнем ряду). Как видите, они зафиксировали мигание светодиода с достаточно низкой частотой, а более высокочастотные изменения яркости «потерялись». Но если бы измерения производились с базовой частотой кадров (60 или 120 раз в секунду), то даже таких результатов не удалось бы достичь. Оказалось, что этого усовершенствования достаточно для успешной атаки.
Результаты атаки
Для практического подтверждения возможности «видеоатаки» исследователи показали, как можно извлечь приватный ключ шифрования из нескольких считывателей смарт-карт. Во всех пяти экспериментах был показан положительный результат: светодиод действительно «выдает секреты»! В теории даже необязательно подносить смартфон или видеокамеру к устройству, при некоторых условиях сигнал можно зафиксировать с расстояния до 60 метров. Авторы также выяснили влияние на точность наличия других источников света (например, если помещение освещено солнцем). Все это несколько усложняет атаку, добавляет шумов в полезный сигнал, но не делает ее невозможной.
Но это еще не все. Исследователи провели атаку на смартфон Samsung Galaxy S8, на котором выполнялся алгоритм SIKE, применяемый в шифровании данных.
У смартфона нет светодиода, который горит, когда устройство включено. Но исследователи схитрили: подключили к телефону портативные колонки, у которых такой светодиод как раз есть! Колонки получают питание от смартфона, а значит, светодиод также будет гореть менее ярко в тот момент, когда процессор потребляет больше энергии в процессе вычислений.
На смартфоне реализовали атаку Hertzbleed (мы о ней подробно писали здесь), заодно подтвердив, что она актуальна и для процессоров на базе архитектуры ARM (в оригинальной работе исследовались только уязвимости процессоров Intel и AMD с архитектурой х86).
И вот это уже совсем теоретический эксперимент: речь не идет о похищении каких-то реально используемых ключей шифрования. На смартфоне выполнялась программа, которая проводила вычисления по определенному алгоритму. Измеряя яркость светодиода подключенных к смартфону колонок, удалось зафиксировать работу алгоритма и реконструировать приватный ключ. Так как смартфон гораздо сложнее считывателя смарт-карт, уровень шума в измерениях был значительно выше. Но даже в таких условиях был достигнут успех.
О пользе научных исследований
Данное исследование вряд ли будет применяться на практике в ближайшем будущем. Это очень сложная атака, для которой будет нелегко найти реалистичный сценарий использования. Как часто бывает с научной работой, смысл не в практической эксплуатации «обнаруженных уязвимостей». Самое важное в данном исследовании, пожалуй, то, что довольно сложное оборудование для проведения атак по сторонним каналам заменили на доступные всем устройства.
Мы регулярно пишем о краже информации через неявные каналы, например динамик настольного ПК. Но во всех этих случаях требуется, чтобы на компьютере жертвы уже было установлено вредоносное ПО. В данной работе содержится намек на возможность эксфильтрации секретной информации без предварительного взлома, просто путем наблюдения за индикатором.
Поэтому важен вклад этой работы в общее знание об атаках по сторонним каналам. Будем надеяться, что производители наиболее уязвимых устройств примут эти новые данные к сведению и улучшат конструкцию новых устройств. До того, как появятся действительно опасные методы эксплуатации подобных дыр в безопасности. Ведь, как верно отмечают в работе, сделать так, чтобы светодиод не выдавал секретные данные, очень просто. Можно добавить в цепь питания копеечный конденсатор, и проблема будет решена. Можно внедрить меры противодействия атакам по сторонним каналам в программном обеспечении. И наконец, можно и вовсе обойтись без индикатора: возможно, они не так уж сильно и нужны.