Подслушиваем вас внимательно!

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

Прослушка нажатий на кнопки клавиатуры

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

Модель атаки

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

Первая научная работа, подробно изучающая подобную атаку, была опубликована в 2004 году. Тогда исследователи из IBM лишь предложили метод и показали принципиальную возможность отличить друг от друга нажатия на разные клавиши, но не более того. В 2009 году те же исследователи попытались решить проблему с помощью нейросети: специально обученный алгоритм был натренирован на 10-минутной записи клавиатурного набора, причем набираемый текст был заранее известен — это позволило сопоставить определенный звук нажатия на клавишу с набираемой буквой. В результате в дальнейшем нейросеть уверенно распознавала до 96% набираемых символов.

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

Реальное подслушивание

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

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

Форма звукового сигнала

Форма звукового сигнала, соответствующего нажатию на определенные клавиши. Источник

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

Достаточно важным преимуществом нового исследования стало использование нейросети для предсказания целых слов. Если нейросеть определяет по звукам нажатий слово «медв1дь», то мы можем уверенно утверждать, что на самом деле пользователь набрал «медведь», просто произошла ошибка в распознавании. Чем больше букв в слове, тем точнее удается его угадать. Это правило работает вплоть до слов из шести букв, дальше точность не растет.

Всего в эксперименте участвовало 20 добровольцев. Они сначала набирали заранее известный текст, который потом соотносился со звуками нажатий и использовался для тренировки алгоритма распознавания. Затем испытуемые набирали секретный текст, который нейросеть пыталась распознавать, используя данные о характере набора и соответствие реальным словам. Точность распознавания различалась для разных пользователей, но в среднем данный метод позволил правильно угадать 43% текста по звукам нажатий на клавиши.

Сторонние каналы вокруг нас

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

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

Конечно, результат 43% правильно угаданного текста не очень впечатляет! Особенно если вспомнить, что угадываются слова, а не случайная последовательность символов, которую стоит ожидать от пароля. Но новое исследование — это важный шаг в сторону практической реализации атаки. Пока что до этого далеко, но можно представить сценарий, когда ваш пароль, или номер кредитки, или секретную переписку могут увести соседи по кафе либо попутчики в вагоне поезда.

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

Наконец, есть метод противодействия конкретно этой атаке по стороннему каналу. Она построена на том, что у пользователя есть определенный «почерк», постоянный характер набора текста на клавиатуре. И если есть повод опасаться прослушки, то имеет смысл сломать привычный паттерн и начать набирать текст по-другому. Причем одинаково хорошо работает как слишком медленный набор текста, так и слишком быстрый.

Советы