BrutePrint: брутфорс отпечатка пальца на смартфоне

Защита отпечатком пальца в Android-смартфонах не так уж надежна — ее можно взломать.

Как можно взломать смартфон, защищенный отпечатком пальца

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

В общем, все эти методы предполагали кучу возни в реальном мире. Но нельзя ли сделать это как-то более изящно, по возможности не выходя из прекрасного мира чистой цифры и пользуясь всеми его благами? Оказывается, это реально: недавно китайские исследователи Ю Чен и Йилинь Хэ опубликовали работу, в которой описали, как с помощью брутфорса можно взломать практически любой Android-смартфон, защищенный отпечатком пальца. Эту атаку они назвали BrutePrint.

Насколько уникальны отпечатки пальцев

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

В далеком 1892 году английский исследователь сэр Фрэнсис Гальтон выпустил работу с лаконичным названием «Отпечатки пальцев» (в оригинале «Finger Prints»). В ней он обобщил известные ученым его времени данные об отпечатках пальцев. Работа Гальтона послужила теоретической основой для их дальнейшего практического использования в криминалистике.

Помимо прочего, сэр Фрэнсис Гальтон также подсчитал, что вероятность совпадения отпечатков пальцев составляет менее чем 1 к 64 миллиардам (в оригинале — «менее чем 236, или примерно 1 к 64 тысячам миллионов»). Этим значением криминалисты продолжают оперировать до сих пор.

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

Насколько надежны датчики отпечатков пальцев

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

Как видел отпечатки пальцев сэр Фрэнсис Гальтон полтора века назад (слева) и как их видит ваш ультрасовременный смартфон с оптическим датчиком (справа). Источник и второй источник

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

Поэтому когда речь идет о датчиках отпечатков пальцев, которые используются в смартфонах, приводятся гораздо более грустные цифры вероятности совпадения фрагментов отпечатков пальцев, чем пресловутые 1 к 64 миллиардам. Скажем, Apple оценивает такую вероятность при аутентификации с помощью Touch ID как 1 к 50 000. Можно предположить, что при более бюджетных вариантах сенсоров это значение еще на порядок-другой меньше.

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

Можно ли преодолеть эту преграду? Ю Чен и Йилинь Хэ в своем исследовании отвечают на этот вопрос положительно.

BrutePrint: подготовка к брутфорсу Android-смартфонов, защищенных отпечатком пальца

В основе метода лежит общий изъян реализации датчиков отпечатков пальцев в Android-смартфонах: как минимум во всех принявших участие в исследовании моделях датчики общаются с системой без использования шифрования. Это делает возможным MitM-атаку на систему аутентификации: если подключить некое устройство к разъему SPI на материнской плате смартфона, то можно как перехватывать сообщения от датчика, так и отправлять собственные сообщения, притворяясь датчиком отпечатков пальцев.

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

Устройство, используемое для атаки BrutePrint

Устройство для брутфорс-атаки на систему аутентификации с помощью отпечатков пальцев. Источник

Затем они подготовили базу образцов отпечатков пальцев для брутфорса. Исследователи не уточняют, где именно они раздобыли использованную ими базу, и ограничиваются общими соображениями, откуда ее могли бы взять атакующие (научные коллекции, результаты утечки, самостоятельно собранная база).

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

Примеры изображений, полученных датчиками отпечатков пальцев разных типов

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

Две уязвимости в основе BrutePrint: Cancel-After-Match-Fail и Match-After-Lock

Сама атака BrutePrint состоит из эксплуатации двух уязвимостей. Исследователи обнаружили их в базовой логике работы фреймворка аутентификации с помощью отпечатка пальца, который, судя по всему, используется вообще во всех Android-смартфонах. Они назвали эти уязвимости Cancel-After-Match-Fail и Match-After-Lock.

Уязвимость Cancel-After-Match-Fail

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

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

Схема работы уязвимости Cancel-After-Match-Fail в логике аутентификации с помощью отпечатка пальца

Как работает уязвимость Cancel-After-Match-Fail: ошибка позволяет вернуться на стартовую позицию, не потратив попытку. Источник

Уязвимость Match-After-Lock

Вторая уязвимость — Match-After-Lock (MAL, совпадение после блокировки). В логике аутентификации отпечатком пальца предусмотрен период блокировки (локаут) после неуспешной попытки, однако на практике многие производители смартфонов реализуют его в своих версиях Android некорректно. И хотя успешная аутентификация отпечатком в режиме локаута невозможна, остается возможность отправлять новые и новые снимки, на которые система как ни в чем ни бывало реагирует, честно отвечая, правильный это отпечаток или нет. То есть, обнаружив правильный отпечаток, его можно ввести после того, как система выйдет из режима локаута, и таким образом успешно аутентифицироваться.

Атаки с помощью уязвимостей Cancel-After-Match-Fail и Match-After-Lock

Атака с помощью первой уязвимости была успешна для всех протестированных исследователями смартфонов на «полноценном» Android, но почему-то не сработала в HarmonyOS. Уязвимость Match-After-Lock сработала против смартфонов Vivo и Xiaomi, а также обоих смартфонов Huawei, работающих под управлением HarmonyOS.

Таблица уязвимости различных смартфонов к атакам Cancel-After-Match-Fail и Match-After-Lock

Все исследованные смартфоны оказались уязвимы хотя бы для одной из атак. Источник

Таким образом, все смартфоны на Android и HarmonyOS, которые принимали участие в исследовании, оказались уязвимы хотя бы для одной из описанных атак. Соответственно, во всех этих смартфонах получилось довести количество попыток аутентификации отпечатком пальцем до бесконечности.

В итоге, как утверждают исследователи, если в системе аутентификации Android-смартфона был зарегистрирован только один отпечаток, то для успешного взлома требовалось примерно от 2,9 до 13,9 часа. Но если в смартфоне было зарегистрировано максимально возможное для данной модели количество пальцев (4 для Samsung и 5 для всех остальных), то это время сильно снижалось и диапазон составлял уже от 0,66 до 2,78 часа.

Время взлома смартфона с помощью BrutePrint

Вероятность успеха атаки с помощью BrutePrint в зависимости от потраченного времени — при одном зарегистрированном в системе отпечатке (сплошная линия) и максимальном количестве зарегистрированных отпечатков (пунктир). Источник

А что с айфонами?

Используемая в айфонах система Touch ID оказалась гораздо более устойчивой к атаке BrutePrint. Как отмечают исследователи, главное преимущество айфонов в том, что общение датчика отпечатка пальца с остальной системой в них зашифровано. Поэтому перехватить или скормить системе подготовленный отпечаток пальца на устройстве с Touch ID не получится.

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

Так что пользователи iOS могут спать спокойно: Touch ID заметно надежнее, чем аутентификация отпечатком пальцев в Android и HarmonyOS. Да и в большинстве моделей айфонов уже в любом случае используется Face ID.

Насколько это все опасно?

Владельцам Android-смартфонам тоже не стоит слишком уж переживать из-за BrutePrint — с практической точки зрения эта атака едва ли представляет существенную опасность. На то есть несколько причин:

  • Для BrutePrint требуется физический доступ к устройству. Один этот факт уже снижает на порядок-другой вероятность того, что с вами такое случится.
  • Более того, для проведения атаки придется вскрыть устройство и подключиться к специфическому разъему на материнской плате. Провернуть такое незаметно для его владельца как минимум очень непросто.
  • Даже в самом благоприятном для атакующих сценарии на проведение атаки требуется значительное время, измеряемое в часах.
  • И конечно же, для BrutePrint нужно весьма специфическое оснащение, как с точки зрения «железа», так и с точки зрения «софта»: специально подготовленное оборудование, база отпечатков пальцев, натренированная нейросеть и так далее.

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

Как защититься от брутфорса отпечатка пальца в Android-смартфонах

Если, несмотря на вышесказанное, вы считаете, что можете стать жертвой подобной атаки, вот несколько советов, как себя защитить:

  • Регистрируйте как можно меньше отпечатков пальцев (в идеале — один). Чем большее количество пальцев используется в системе аутентификации, тем более она уязвима — как для описанного выше метода, так и для других атак.
  • Не забывайте дополнительно защищать ПИН-кодом или паролем вход в те приложения, которые позволяют это делать.
  • Кстати, с помощью функции AppLock, которая есть в платной версии Kaspersky для Android, любое приложение можно запереть на отдельный пароль.
Советы