Инструмент keytap требует обучения перед использованием, но его улучшенная версия keytap2 избавляет от этой необходимости.

Разработчик под псевдонимом ggerganov опубликовал на GitHub набор программных инструментов командной строки и графического интерфейса пользователя (GUI) для захвата и анализа аудиоданных. Самыми интересными из них являются keytap и keytap2.

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

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

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

«Алгоритм проводит кластерный анализ обнаруженных нажатий клавиш, основываясь на схожести их звуков, а затем использует статистические данные о частоте N-грамм букв в предполагаемом языке, на котором написан текст (например, английском). То есть, что необходимо заранее знать язык текста, но это намного меньшее требование по сравнению с первой версией (keytap – ред.). Кроме того, для успешного статистического анализа необходимо достаточное количество записанных образцов», – сообщил ggerganov.

Узнать подробности о реализации keytap2 можно здесь .

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

Источник: securitylab