Pull to refresh

Перехват нажатий клавиш смартфона при помощи акселерометра

Reading time3 min
Views12K
Original author: Sebastian Anthony
Двое исследователей из Калифорнийского университета в Дэвисе (UC Davis), Хао Чэнь (Hao Chen) и Лянь Цай (Lian Cai) нашли способ определять, какие клавиши были нажаты на экранной клавиатуре ОС Android путем измерения смещений, покачиваний и вибрации устройства, измеренных встроенным акселерометром [Прим. перев.: и гироскопом]. Это важно, поскольку данные от акселерометров не рассматривались как потенциальный вектор атаки, и, таким образом, свободно доступны любому приложению на любом смартфоне или планшете.

Перехват нажатий клавиш на настольном компьютере или ноутбуке под Windows или Мас невероятно прост: установите соответствующую программу (или троян это сделает за вас), настройте, куда она должна сохранять или отправлять украденные коды клавиш, и всё! Когда речь идет о смартфонах, однако, сложные системы ограничения прав доступа делают этот подход практически невозможным, если только не использовать так называемые побочные каналы. Строго говоря, побочным каналом называется открытый источник информации, который помогает атакующему взломать криптографическую систему. В более широком смысле, побочным каналом может быть лампочка на маршрутизаторе, мигающая в такт передаваемым данным, или звуки нажатия клавиш физической клавиатуры. [Прим. перев.: упомянуты не гипотетические возможности, а реально осуществленные разновидности атак. Буду благодарен тому, кто поможет найти ссылки. Пруф, #3.2.2, #4.2.1] Другими словами, побочные каналы — это характеристики системы, потенциальная опасность которых упускается из виду.

В данном случае двое исследователей использовали данные пространственной ориентации устройства на базе Android — набор из трех углов, задающих ориентацию телефона в пространстве XYZ — чтобы определить, в каком месте пользователь нажал на экран. В принципе, каждая клавиша имеет уникальную картину изменений углов по трем осям, которые могут быть идентифицированы (см. ниже). Точность зависит от модели телефона: HTC Evo 4G обновляет данные об ориентации каждые 30 мс, а Motorola Droid — каждые 110 мс. В целом, исследователям удалось достичь 71,5% точности для 10-кнопочной клавиатуры. Оставшиеся 28,5% составляют ошибки из-за близкого расположения клавиш. Программа (кстати, названная TouchLogger) может, в общем случае, правильно определить столбец или строку для каждого нажатия, но иногда ей не хватает данных для того, чтобы распознать конкретную клавишу.


Полная QWERTY-клавиатура, естественно, более сложна для распознавания нажатий, чем 10-кнопочная цифровая, но перед нами только демонстрация принципа, а точности в 70% более, чем достаточно, чтобы нарушить конфиденциальность любых данных, вводимых в телефон. Кроме того, в работе далее отмечается, что на более крупных устройствах, такие как планшеты, должно быть легче контролировать клавиатуру; а также можно использовать гироскопы совместно с камерой для увеличения разрешения и точности TouchLogger.

Наконец, важно отметить, что этот побочный канал — не просто дыра в безопасности Android: данные акселерометра и гироскопа доступны через API DeviceOrientation, который реализован в Android 3.0, IOS 4.2, а также во всех современными браузерах. Другими словами, этот эксплоит будет требовать установки TouchLogger на телефон Android, но в теории, кто-то может взять работу Чэнь и Цай, реализовать в JavaScript, а затем использовать, чтобы украсть ваши пароли и информацию о кредитных картах когда вы путешествуете в интернете.

Статья в журнале New Scientist, статья о TouchLogger [PDF]
Tags:
Hubs:
+48
Comments70

Articles