Взламываем «умную» зубную щётку |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-06-06 10:24 Только задумайтесь: мы всё чаще используем умные холодильники, машины, розетки и лампочки, умные часы и колонки. Нас окружают умные вещи Однажды я купил новую зубную щётку Philips Sonicare, и во время чистки зубов заметил, что она реагирует на установку насадки миганием светодиода. Быстрый поиск в интернете показал, что насадка взаимодействует с ручкой зубной щётки, позволяя напоминать пользователю о том, что пора купить новую. Кажется, это стоит изучить. Реверс-инжиниринг щётки На основание насадки можно увидеть антенну и крошечную чёрную коробочку, предположительно являющуюся микросхемой. Следующую подсказку можно найти в руководстве: "Радиооборудование в этом продукте работает на частоте 13,56 МГц", похоже на метку NFC. И действительно, при поднесении насадки к моему телефону открылась ссылка на страницу продукта. Используя приложение NFC Tools, мы можем многое узнать об этой метке:
Также с помощью NFC Tools можно считывать данные о состоянии памяти и доступе к ней:
Я повторил этот процесс для одной черной и двух белых насадок W DiamondClean и узнал следующее:
Расшифровка сохранённого времени Давайте проведём эксперимент и посмотрим, какие изменения происходят с NFC меткой при использовании зубной щётки:
Когда щетка используется более 255 секунд, этот таймер переходит на второй бит (02:01:02:00 -> 258s). Попытка перезаписать сохранённое время, к сожалению, не увенчалась успехом, так как этот адрес памяти защищён паролем. Подбор пароля К счастью, оказалось, что требуемый пароль передается открытым текстом! Значит, все, что мне нужно сделать, это перехватить обмен данными между зубной щёткой и головкой. Покопавшись в своём программно-определяемом радио HackRF, методом проб и ошибок пришёл к следующему рабочему алгоритму. Запись радиочастотного сигнала Откроем программу gqrx и настроим её на частоту 13,736 МГц. Теперь, если держать зубную щётку близко к антенне, можно заметить, что головка опрашивается несколько раз в секунду. Приятно удивило, что простая несимметричная антенна принимает сигнал, достаточно сильный для этих целей. Вы можете скачать файл конфигурации gqrx здесь. Во время чистки зубов считыватель NFC делает короткую паузу, и первая последующая пачка пакетов обновляет счётчик времени. Благодаря возможности gqrx делать I/Q-записи, мы можем записать радиочастотные сигналы пароля следующим (
Первые пакеты в файле теперь должны содержать пароль в виде обычного текста. Преобразование записи Прежде чем этот необработанный I/Q файл будет декодирован, его нужно преобразовать в немного другой формат, чтобы программа декодирования могла его прочитать. Я создал небольшой скрипт-компаньон для gnuradio, который применяет фильтр низких частот и преобразует данные в wav-файл с двумя каналами, содержащими действительную и мнимую составляющие комплексного сигнала. Убедитесь, что подставили правильные пути в блоки источник/приемник и проверьте частоту дискретизации (я использовал 2МГц). Сам скрипт доступен здесь. Декодирование записи Я нашел идеальный инструмент для этой задачи под названием NFC-laboratory. После открытия только что созданного WAV-файла он должен выглядеть примерно так, как показано на рисунке выше. В этом случае запись позволяет только увидеть связь, которая идет от хоста к метке (зелёная стрелка). Но для подбора пароля это идеальный вариант. Если посмотреть на спецификацию NTAG213, то можно увидеть, что происходит:
Итак, пароль для этой насадки 67:B3:8B:98 (подчёркнуто на картинке). Запись на щетку С успешно полученным паролем можно установить счётчик на головке щетки на любое нужное нам значение, отправив соответствующие байты по NFC. NFC Tools снова приходит на помощь:
Вот разбивка команды на шаге 3:
Ниже вы можете увидеть память насадки щетки до и после пользовательских команд NFC: Обратите внимание, как меняется таймер 0x24Ну что, зубная щётка успешно взломана, и мы можем играть с таймером по своему усмотрению. Вот несколько интересных наблюдений:
Послесловие Защита при проверке пароля Самые внимательные читатели могли заметить, что цвет насадки менялся на протяжении всего текста. Это потому, что мне пришлось покупать новую после того, как первая насадка была заблокирована. Если внимательно посмотреть на содержимое 0x2A - 43:00:00:00 и страницу 18 технического описания, то можно увидеть, что метка настроена на постоянное отключение доступа к записи после трёх неправильных попыток ввода пароля (что у меня и произошло во время экспериментов). Это означает, что даже ручка зубной щётки не сможет снова записать данные на эту головку. Генерация пароля К сожалению, пароль каждой головки щётки уникален, а процесс его извлечения с помощью SDR сложный и требует специального оборудования. Внизу страницы 30 в техническом описании компания NXP рекомендует генерировать пароль из 7-байтового UID. Ниже приведены все пары UID - пароль, которые я получил от своих трёх насадок:
Все мои попытки угадать одностороннюю функцию для генерации паролей не увенчались успехом. В зависимости от того, насколько тщательно инженеры Philips отнеслись к этой функции, угадать ее может быть практически невозможно. Но если вам удастся разгадать эту загадку, не стесняйтесь, напишите мне. Спасибо за внимание! Что ещё интересного есть в блоге Cloud4Y Спортивные часы Garmin: изучаем GarminOS и её ВМ MonkeyC NAS за шапку сухарей Взлом Hyundai Tucson, часть 1, часть 2 Столетний язык программирования — какой он 50 самых интересных клавиатур из частной коллекции Источник: habr.com Комментарии: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||