Современные тепловизоры подключаются к компьютеру и записывают температуру каждого пикселя в CSV. Эти данные отлично подходят для обучения нейросети. Несколько месяцев назад учёные из университета Глазго провели эксперимент и разработали реально эффективную модель ThermoSecure для распознавания нажатых клавиш по тепловому следу.

Учёные пришли к выводу, что с клавиатуры можно относительно надёжно снимать введённые пароли через 0–60 секунд после ввода символов. Давайте посмотрим, как работает система машинного зрения пошагово.

Экспериментальная установка показана фотографии выше, каждый объект на ней обозначен. В частности, для эксперимента использовалась инфракрасная камера Optris PI 450 (A) стоимостью €3950 (разрешение 764×480, 80 Гц, 40mK NETD, температурный диапазон от −20° C до 100° C, на фотографии A), установленная на штативе рядом с клавиатурой a Microsoft Wired ISO Keyboard 600 (QWERTY) с кейкапами из ABS-пластика (B). Высота штатива и расстояние до объекта изменялось в каждой сессии в диапазонах от 60–90 см и 50–121 см, соответственно. Кроме того, менялся и угол поворота клавиатуры.



На экране ноутбука D участнику эксперимента демонстрировали символы, которые он должен вводить, в то время как другой ноутбук (С) записывал тепловые 16-битные изображения с камеры. К каждому тепловому изображению программные интерфейсы Optris API записывали файл CSV с температурой пикселей.

Архитектура ThermoSecure


  1. Локализация клавиатуры: сбор данных и аннотация, обучение модели для надёжного распознавания клавиатуры в кадре.
  2. Регистрация нажатых клавиш: распознавание раскладки, нажатых клавиш, в том числе многократно нажатых (они теплее, чем однократно нажатые).
  3. Определение порядка нажатий, распознавание этапа аутентификации на фоне общего взаимодействия с системой, то есть на фоне обычной работы.


Разметка контура клавиатуры в процессе аннотации при обучении модели

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

  1. Наложение медианного фильтра 5×5
  2. Преобразование в градации серого
  3. Повторное наложение медианного фильтра
  4. Контраст-ограниченная адаптивная гистограммная эквализация (CLAHE) (doi: 10.1109/ICACCI.2014.6968381)


Четыре этапа предварительной обработки изображений

На втором этапе производится наложение контура Rotated Bounding Box (RBBox) из Mask R-CNN — специальной нейросети, выполняющей сегментацию изображений. Из этого контура извлекают координаты четырёх вершин прямоугольника. Затем модель использует шаблонную конфигурацию клавиатуры (4 области, 6 рядов) для вычисления координат клавиш и соотнесения температурных кластеров в кадре с местонахождением конкретных клавиш, которые используются для ввода пароля.





Наконец, на последнем этапе модель использует координаты клавиш, полученные ранее, и температурные данные с каждого теплового изображения, для получения средней, минимальной и максимальной температуры каждого кейкапа. Затем эти три значения (mean, max, min) усредняются для каждой клавиши, чтобы вычислить правильный порядок их нажатия.

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





В данном случае наибольшую вероятность демонстрирует последовательность 6fbx9p, хотя просчитываются все варианты:

( ' Password : ', '6 fbx9p ', ' with a probability : ' , 0.40740188103110087)
( ' Password : ', '6 fxx9p ', ' with a probability : ' , 0.4071952200350172)
( ' Password : ', ' ffbx9p ', ' with a probability : ' , 0.40670664210825924)
( ' Password : ', '6 fb99p ', ' with a probability : ' , 0.40659163972726375)
( ' Password : ', '6 f9x9p ', ' with a probability : ' , 0.4065814008654436)
( ' Password : ', ' ffxx9p ', ' with a probability : ' , 0.40649998111217556)
( ' Password : ', '6 fx99p ', ' with a probability : ' , 0.40638497873118007)
( ' Password : ', '6 bbx9p ', ' with a probability : ' , 0.4059259564615335)

По результатам эксперимента учёные рассчитали вероятность распознавания пароля по тепловому следу в зависимости от длины пароля и времени между вводом пароля и съёмом теплового следа. Как видим, короткие шестисимвольные пароли через 20 секунд после ввода распознаются с точностью 100%, а через 60 секунд после ввода — с точностью 83%. Другие результаты показаны в таблице:



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

Исследователи также пришли к выводу, что кейкапы из пластика ABS гораздо лучше нагреваются, чем кейкапы PBT, и поэтому более уязвимы для съёма теплового отпечатка.

Научная статья опубликована 15 сентября 2022 года в журнале ACM Transactions on Privacy and Security (doi: 10.1145/3563693).

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






Подробнее о преимуществах сертификата подписи кода по ссылке

Комментарии (15)


  1. 3epka
    29.10.2022 17:34
    +2

    То есть 2 одинаковых символа в пароле (все равно - друг за другом или в любом другом месте) не помогут против такого способа определения, я правильно понимаю? Сомнительно по моему...


    1. gurovofficial
      29.10.2022 19:42
      +2

      Да и последовательность мы так не узнаем, а для длинного пароля - это может быть немало комбинаций


      1. selivanov_pavel
        29.10.2022 23:31
        +1

        Почему нет? Что теплее - то последним нажимали, нажатие второй раз греется с уже подогретого состояния - тоже зацепка.


        1. Arbuzer
          31.10.2022 23:09

          Количество сообщенного тепла во второй раз уже меньше, так как ближе к равновесной температуре системы "клавиатура-рука-среда"


          1. selivanov_pavel
            31.10.2022 23:12

            Меньше, но не нулевое. Плюс пока на клавише был тёплый палец, клавиша меньше теряла тепло в воздух, который пальцем закрыли.


  1. BubaVV
    29.10.2022 20:27
    +1

    Подогревать клавиатуру до температуры тела?


  1. YDR
    29.10.2022 20:36
    +1

    рукой накрывать часть клавиатуры после набора пароля, чтобы прогрелась с другой неравномерностью.


  1. Daimos
    29.10.2022 21:52

    Пароль не ввожу, пользуюсь отпечатком пальца или пинкодом, с повторяющимися цифрами.


  1. Aleks_ja
    29.10.2022 22:29
    +3

    Из статьи не понятно - человек просто ввёл пароль и потом ничего не вводил? Ну например не стал что-нибудь печатать.


  1. agalakhov
    30.10.2022 01:32
    +3

    Это все довольно легко проверяется, если есть тепловизор. У меня получилось вот что:

    • На десктопе тепловой след действительно достаточно хорошо виден и позволяет разглядеть примерный порядок клавиш (неточно, но перебор сократит).

    • На ноутбуке разглядеть следы не удается, так как ноутбук заметно греется.

    • Следы остаются достаточно долго и могут быть проблемой в ситуациях, когда человек ввел пароль, а потом взялся за мышку (частый сценарий).

    • Подсматривание таким образом пин-кодов банковских карт может быть серьезной проблемой.


    1. BigBeerman
      30.10.2022 08:41

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


    1. catharsis
      30.10.2022 20:57

      С пин-кодами похоже хорошо работает

      https://petapixel.com/2014/08/29/heres-iphone-thermal-cameras-can-used-steal-pin-codes/


  1. MaximRV
    30.10.2022 09:51
    +3

    Не зря наверное я пароли ногтями набираю иногда, на незнакомых девайсах. Пинкоды так тем более.


  1. dvsa
    30.10.2022 15:35

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


    1. hollycon
      30.10.2022 20:26

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