Виртуальная реальность

Обратная разработка протокола сканера отпечатков пальцев Goodix: ключевые открытия и пошаговое руководство

Виртуальная реальность
Reversing a Fingerprint Reader Protocol (2021)

Изучение и анализ протокола USB-сканера отпечатков пальцев Goodix на примере модели Lenovo Ideapad 5 с использованием методов реверс-инжиниринга драйвера Windows. Подробное описание TLS-PSK защиты, расшифровка изображения и создание Python-скрипта для получения снимков с сенсора.

Современные ноутбуки всё чаще оснащаются встроенными сканерами отпечатков пальцев, обеспечивающими быстрый и удобный доступ к устройству. Несмотря на распространённость технологий биометрической аутентификации, многие модели сканеров остаются недоступными для систем Linux из-за отсутствия поддержки драйверов и информации о внутренних протоколах. В 2021 году был опубликован подробный разбор протокола USB-сканера отпечатков пальцев Goodix, используемого в Lenovo Ideapad 5, который проливает свет на процесс установления связи с устройством, обмен данными, механизмы безопасности и способ расшифровки снимков пальца. Анализ основан на реверс-инжиниринге штатного Windows-драйвера, логировании трафика и эксплуатации возможностей отладки пользовательского режима драйверов Windows (UMDF). Устройство подключается по USB и работает через проприетарный протокол, использующий TLS-PSK для шифрования трафика, что значительно осложняет попытки пассивного перехвата и анализа данных.

Автор провел тщательный анализ USB-трафика с использованием Wireshark и usbmon, установив, что передаваемые большие пакеты данных содержат зашифрованное изображение, получить которое без ключа невозможно. Строковые данные, обнаруженные в начале взаимодействия, стали отправной точкой для поиска дополнительной информации о сенсоре и проведению дальнейшего анализа. Особое внимание уделялось возможности использовать стандартные методы расшифровки, однако ввиду работы TLS и шифрования ключей, прямой доступ к изображению оставался недоступным. Для понимания взаимодействия драйвера и устройства был проанализирован пользовательский драйвер Windows, работающий в пространстве пользователя, что упростило задачу отладки и выявления логики. При помощи дизассемблера и отладчика x64dbg удалось получить доступ к подробным логам драйвера, включающим функции и строки исходного кода благодаря вписанным в бинарник именам.

Полученные данные позволили лучше понять последовательность обмена данными, особенно процесс инициализации TLS-сессии. Оказалось, что драйвер устанавливает TLS-соединение с устройством, применяя предварительно разделенный ключ (PSK), который хранится на устройстве и в памяти драйвера. Особенностью реализации является тот факт, что PSK шифруется с использованием системного механизма Windows CryptProtectData, привязанного к учетной записи пользователя, что исключает возможность простого переноса ключа между системами без снижения безопасности. Этот механизм работает по принципу доверия с «первого использования»: при подключении к новому ПК драйвер сгенерирует новый случайный PSK, который будет записан на устройство, заменяя прежний, если дешифровка старого не удалась. Такая схема позволяет избежать недопустимого прослушивания данных, но ставит под угрозу безопасность в случае замены ключа злоумышленником без уведомления пользователя.

Замена PSK с помощью отладки драйвера позволила автору задать фиксированный ключ, обеспечив устойчивую расшифровку потока. Ключевой элемент защиты – использование whitebox-криптографии для реализации шифрования PSK перед записью его в память устройства, что препятствует простой извлекательной атаке на ключ. Тем не менее, белый ящик оказался недостаточно защищённым, что позволило частично или полностью проанализировать и воспроизвести механизм шифрования, открывая путь к дальнейшим модификациям. Помимо разбора протокола, особое внимание было уделено формату передаваемого изображения отпечатка. Расшифрованные данные с низкой энтропией свидетельствовали о корректной работе дешифровки, но первоначально изображение выглядело как «шум».

При помощи инструментов типа GIMP и анализа размеров можно было определить разрешение сканера – 54x176 пикселей при 500 dpi. Пиксели представлены с глубиной 12 бит, что диктовало специфическую упаковку данных в байты – каждые 4 пикселя упаковывались в 6 байт по нестандартной схеме. Это позволило построить алгоритм декодирования, который выдаёт четкое изображение отпечатка без искажений. В завершение работы был создан proof-of-concept драйвер на языке Python. Он устанавливает соединение, задает ключ, инициирует TLS-сессию и способный получать поток изображений с частотой до 16 кадров в секунду.

Для реализации TLS-соединения пришлось обойти ограничение большинства библиотек, ожидающих сокет TCP, и использовать прокси, перенаправляющий USB-трафик через TCP-сервер OpenSSL с поддержкой PSK. Это решение позволило также применять Wireshark для подробного анализа и отладки. Данный проект оказал важное значение для сообщества пользователей Linux, заинтересованных в поддержке недокументированных или новых моделей сканеров Goodix в рамках известной библиотеки libfprint. Он показал, что даже в условиях сложных механизмов безопасности и проприетарного ПО возможно получить исходные данные и наладить доступ к биометрическим сенсорам. Дополнительным плюсом стала публикация Wireshark-дисектора, адаптированного и улучшенного по сравнению с уже существующими, что значительно облегчает анализ USB-трафика для последующих исследований и разработок.

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

Автоматическая торговля на криптовалютных биржах Покупайте и продавайте криптовалюты по лучшим курсам Privatejetfinder.com (RU)

Далее
Stop flooding us with AI-based grant applications, begs Health Institute
Пятница, 31 Октябрь 2025 Национальные институты здравоохранения призывают ограничить поток заявок на гранты, созданных с помощью ИИ

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

Obsolescence Guaranteed
Пятница, 31 Октябрь 2025 Обеспеченная устареванием: Возрождение классических компьютеров с Obsolescence Guaranteed

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

Show HN: Jeopardy Maker – Create Jeopardy Games Using AI
Пятница, 31 Октябрь 2025 Создайте Интерактивные Игры Джепарди с Помощью Искусственного Интеллекта: Платформа Factile

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

Wikipedia threatens to limit UK access to website
Пятница, 31 Октябрь 2025 Википедия угрожает ограничить доступ к своему сайту в Великобритании: возможные причины и последствия

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

About 700M years ago, the Earth froze over – now we may know why
Пятница, 31 Октябрь 2025 Почему Земля замерзла 700 миллионов лет назад: разгадка снежного глобального похолодания

Ученые раскрывают причины глобального оледенения Земли около 700 миллионов лет назад, связывая его с масштабными извержениями вулканов и отсутствием растительности, что привело к сильному снижению углекислого газа в атмосфере и создало состояние «Снежной Земли».

Deep Researcher with Test-Time Diffusion
Пятница, 31 Октябрь 2025 Глубокое исследование с помощью Test-Time Diffusion: революция в генерации научных отчетов

Подробный обзор инновационного подхода Test-Time Diffusion, который трансформирует процесс создания сложных и объемных исследовательских отчетов с помощью больших языковых моделей. Рассмотрены ключевые особенности, преимущества и примеры использования технологии.

Anthropic researchers: Thinking longer makes models dumber
Пятница, 31 Октябрь 2025 Почему длительное обдумывание снижает эффективность ИИ: исследование Anthropic

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