Уязвимость в системе защиты на смартфонах Android позволяет красть ключи шифрования и банковские данные
Исследователи из штата Джорджия обнаружили, что одна из технологий для защиты данных на недорогих телефонах, может позволить злоумышленникам украсть их.
Их документ, представленный 10 сентября на 6-м Европейском симпозиуме IEEE по безопасности и конфиденциальности, демонстрирует успешные атаки на два разных типа недорогих телефонов под управлением Android: ZTE Zfive и Alcatel Ideal.
В соответствии со стандартной практикой исследователи сообщали о своих выводах разработчикам программного обеспечения перед публикацией результатов, чтобы проблему можно было исправить.
Атака основана на размещении радиодатчика в пределах нескольких сантиметров от устройства, достаточно близко, чтобы обнаруживать слабые радиоволны, которые случайно испускаются процессором телефона.
Наблюдая за единственной защищенной веб-транзакцией, передаваемой в этих сигналах, злоумышленник может выяснить секретный ключ пользователя, форму цифрового пароля, который используется для шифрования его данных.
"Это потенциально мощная атака, которая фактически помогает украсть ключ, может быть проведена в реальных условиях", - сказал Милош Првулович, профессор компьютерных наук Технологического института Джорджии и соавтор исследования.
"Сколько раз вы клали телефон на стол в аэропорту и не проверяли, что находится под стойкой?" К счастью, исследователи нашли относительно простое решение.
В настоящее время это исправление находится в разработке. Если исследователям удастся выяснить, как заставить атаку работать на высокопроизводительных телефонах, то такая же уязвимость будет обнаружена на миллиардах наиболее широко используемых современных устройств.
Взлом телефона через побочный канал
Секретные ключи или ключи шифрования часто используются для защиты пользовательских данных. Как только злоумышленник получает доступ к ключам шифрования пользователя, он может подделать "цифровую подпись" и получить доступ, например, к банковским данным.
Поскольку недавно обнаруженная атака должна работать на большом количестве телефонов при повседневном использовании, ожидается, что она потребует незамедлительного внесения поправок в соответствующие стандарты безопасности RFC 7748.
Атака нацелена на стандартный процесс шифрования, используемый в широком спектре онлайн-операций, таких как вход в виртуальную частную сеть (VPN), создание безопасного веб-соединения с банком или электронную подпись цифрового документа.
Во время этого процесса две конечные точки в сети, например два телефона, должны обмениваться серией сообщений для проверки идентичности друг друга.
Если они не могут подтвердить, что они те, кем они себя называют, значит, они знают, что не следует отправлять личные данные. Подтверждение личности означает выполнение определенного алгоритма шифрования. Этот алгоритм включает в себя серию операций с секретным ключом, называемым "одноразовым кодом", который может быть представлен в виде двоичного числа, последовательности единиц и нулей или "битов". При каждой операции, которую выполняет процессор телефона, он излучает слабый радиосигнал, в тысячи раз более слабый, чем сигнал передатчика Wi-Fi. Эти сигналы называются излучением "побочного канала", поскольку они не исходят из основных каналов, используемых телефоном для связи.
Много лет назад исследователи поняли, что эти побочные выбросы могут привести к утечке значения nonce. Например, алгоритм шифрования может потребовать дополнительных шагов обработки, когда бит одноразового номера равен единице, что заставляет процессор излучать более продолжительный сигнал для этих битов. Отслеживая структуру более длинных и более коротких излучений, которые исходят от телефона во время обработки одноразового номера, злоумышленник может восстановить значение каждого из его битов. Оттуда они могут взломать шифрование пользователя.
Другие исследователи изобрели решение этой проблемы, известное как алгоритм "постоянного времени". Этот алгоритм гарантирует, что процессор выполняет одинаковую последовательность операций для каждого бита. Следовательно, радиоизлучение для каждого бита неразличимо, и одноразовый номер не может быть восстановлен. Этот алгоритм был кодифицирован в стандартах шифрования, таких как RFC 7748, и получил широкое распространение.
Нарушение алгоритма постоянного времени
В новой работе исследователи обнаружили проблему с алгоритмом постоянного времени.
Одна конкретная операция, которая выполняется для каждого бита, называемая "условной заменой", имеет характерную особенность. Когда операция выполняется над битом со значением единицы, процессор излучает немного более сильный радиосигнал.
Исследователи поняли, что если злоумышленник может просканировать излучения во время этой операции, каждый раз, когда она происходит, они могут определять одноразовый номер. Трудно было выяснить, могут ли они сосредоточиться на конкретной радиосигнатуре условного обмена, скрытой в последовательности многих других излучений.
Кроме того, из-за высокой скорости обработки данных в современных телефонах радиосигнал условного обмена длится недолго. Но, как выясняется, именно алгоритм постоянного времени, предназначенный для защиты от атак по побочным каналам, в первую очередь позволяет атаке работать. Ключевым моментом для исследователей было тщательное наблюдение за излучением телефона. Из-за алгоритма постоянного времени эти выбросы чрезвычайно регулярны.
Каждый раз, когда телефон обрабатывает небольшую часть данных, имеет место одна и та же общая картина излучения. Таким образом, исследователи могут автоматизировать процесс выделения крошечной части выбросов, соответствующей условному обмену, например, научиться определять небольшой логотип на быстро движущемся вагоне поезда, наблюдая за достаточным количеством проезжающих вагонов. Оттуда исследователи смогли измерить мощность излучения, чтобы определить, был ли каждый бит нулем или единицей, и таким образом восстановить весь одноразовый номер.
Атака работает настолько эффективно, что исследователи обнаружили, что для кражи секретного ключа телефона им достаточно было просканировать только одну защищенную транзакцию.
"Если кто-то может поднести зонд или антенну достаточно близко, - сказал Првулович, - мы можем получить ваш ключ сейчас".
Чтобы решить эту проблему, исследователи изменили алгоритм постоянного времени, чтобы сигнал, соответствующий условному свопу, имел одинаковую силу независимо от значения бита.
После того, как разработчики внедрят это исправление в криптографические библиотеки, такие как OpenSSL, алгоритм постоянного времени снова станет безопасным.