Аудиослежка за клавиатурным набором

Исследователи из Японии вновь решают популярную задачу высокотехнологичного шпионажа: как угадывать нажатые клавиши по их звуку.

Аудиослежка за клавиатурным набором

Для научных работников, изучающих различные виды нетривиальных шпионских атак, прослушивание клавиатурного набора — это такой «Hello World», базовая задачка, к решению которой подходили уже очень много раз. В свежей научной работе исследователей из трех японских университетов приводится шесть ссылок на предыдущие труды по этой же теме, из которых самая ранняя публикация датирована 2004 годом. Но все предыдущие практические эксперименты в этой области хоть и обещали результат, делали это с такими серьезными оговорками, что предложенные методы вряд ли могли бы заинтересовать даже потенциальных «джеймсов бондов». Авторы новой публикации утверждают, что смогли обойти большинство ограничений. В этом посте постараемся разобраться, как им это удалось и насколько их метод применим на практике.

В чем принципиальное отличие нового метода

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

Японские исследователи показали, как можно уверенно прослушивать клавиатурный набор, находясь рядом с жертвой в публичном заведении, записывая звук с онлайн-встречи или даже подслушивая через стену при помощи контактного микрофона! И все это — с высокой точностью и с минимально возможным набором данных для обучения. Достаточно захватить 150–200 нажатий, и все дальнейшие символы будут распознаны с вероятностью 99%.

Базовая схема атаки

Варианты и базовая схема атаки, предложенной японскими исследователями. Источник

Как распознать 200 знаков за 200+ попыток

Давайте разберемся, как получилось достичь такой точности и универсальности. Анализ аудиоданных исследователи начали с автоматического разбиения записи на звуки отдельных нажатий на клавиши. Данные обрабатываются по специальному алгоритму, который упрощает дальнейший анализ звуков. Похожие звуки объединяются в кластеры — при распознавании можно предполагать, что они соответствуют нажатиям на одну и ту же клавишу. Любопытной деталью исследования стало распознавание клавиши «Пробел» отдельно от всех остальных. Ее звук настолько серьезно отличается от звука любой другой клавиши, что по ней можно уверенно отделять слова друг от друга. Это, в свою очередь, упрощает следующий этап — собственно анализ обработанной и подготовленной записи с помощью специализированных языковых моделей.

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

Кластеризация звуков нажатия на клавиши

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

Результаты исследования

Экспериментальная установка для подтверждения теоретических выкладок выглядела следующим образом:

Экспериментальная установка

Ноутбук — жертва, смартфон — инструмент шпиона. Источник

Были использованы четыре разных ноутбука, с разным «звучанием» нажимаемых клавиш. В каждом эксперименте участник набирал 2400 символов, а для анализа отбирались от 50 до 400 нажатий. Во всех случаях набираемый текст удавалось надежно распознавать, имея в распоряжении запись от 150 нажатий. Точность распознавания превышала 80%, а при наличии записи 200 нажатий приближалась к 100%.

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

Усложненный эксперимент

Эксперимент с прослушиванием клавиатурного набора через перегородку. Источник

В этом случае точность распознавания несколько снизилась, но не для всех протестированных портативных ПК. Компьютеры Dell и Lenovo дали точность около 80% при распознавании 200 нажатий, в то время как нажатия на кнопки ноутбуков Apple и HP дали почти стопроцентную точность.

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

Разумная критика

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

Распознавание паролей

Точность распознавания паролей в зависимости от их длины и количества записанных нажатий. Источник

[/caption]

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

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

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

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

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.