• Для просмотра содержимого форума - вам необходимо пройти процедуру регистрации.

Как взломать сканер отпечатков пальцев?

bogdan26

Модератор
Модератор

bogdan26

Модератор
Модератор
Регистрация
16 Май 2020
Сообщения
83
Реакции
100
Количество vs качество
Сегодня Apple ставит датчики Touch ID практически во все устройства (за исключением линейки iPod Touch), в то время как производители смартфонов на Android получили возможность доступа к нужному API только с выходом Android 6.0, под управлением которой сейчас работает порядка 15% устройств. Попробуем разобраться, насколько безопасен дактилоскопический метод аутентификации и имеет ли практический смысл его использование.

Соблюдая исторический порядок, начнем мы, пожалуй, с Apple.


Touch ID и Secure Enclave: сладкая парочка
Однажды проблемой Apple, уже в те времена начинавшей обращать внимание на безопасность данных, было то, что пользователи в массе своей не желали каким-либо образом защищать собственные устройства. Вводить PIN-код для разблокировки телефона? Это долго и неудобно. Посмотрев на ситуацию, в Apple решили не заставлять людей использовать коды блокировки, а попросту максимально упростить процесс разблокировки. Основная идея технологии Touch ID вовсе не в том, чтобы сделать безопаснее твой конкретный аппарат. Идея в том, чтобы сделать безопасность достаточно удобной и привлекательной для основной массы пользователей. И своей цели компания добилась.

Touch ID — это уникальный программно-аппаратный комплекс, и слово «уникальный» здесь не несет рекламного оттенка: каждый датчик в процессе производства проходит настройку для работы с конкретным устройством. Помнишь скандал с «ошибкой 53»? Именно эта особенность стала камнем преткновения, который блокировал работу устройств с замененным в кустарных условиях датчиком отпечатков пальцев.


Где хранятся отпечатки пальцев
Казалось бы, необходимость хранить данные отпечатков в виде односторонней хеш-функции очевидна, но тебе это только кажется:
разработчики HTC One Max решили, что хранить отпечатки можно в виде картинок в самой обычной папке в памяти устройства. Чем бы ни думали разработчики HTC, инженеры Apple такой ошибки не совершили: сканированный отпечаток пропускается через хеш-функцию и сохраняется в Secure Enclave — защищенном от доступа извне микрокомпьютере. Отдельно отмечу, что эти данные не попадают в iCloud и не передаются на сервер компании.

Что интересно, даже односторонние хеш-функции отпечатков зашифрованы, причем ключи шифрования вычисляются во время загрузки устройства на основе уникального аппаратного ключа (который также хранится внутри Secure Enclave и не может быть оттуда извлечен) и кода блокировки, который вводит пользователь. Расшифрованные дактилоскопические данные хранятся только в оперативной памяти устройства и никогда не сохраняются на диск. При этом система время от времени удаляет данные отпечатков даже из оперативной памяти устройства, вынуждая пользователя авторизоваться с помощью кода блокировки (который, напомним, даст системе возможность расшифровать данные отпечатков и возобновить работу датчика Touch ID).


Когда и почему iOS удаляет данные отпечатков из оперативной памяти
Пожалуй, самое интересное в системе безопасности iOS — это именно вопрос о том, при каких обстоятельствах iOS удалит данные отпечатков из оперативной памяти устройства и заставит пользователя заново авторизоваться с помощью кода разблокировки. Но для начала подумаем, зачем Apple вообще понадобилось периодически удалять отпечатки?

В компании отлично понимают (и понимали три года назад), что любую биометрическую систему можно обмануть. Да, в Apple разработали прекрасные дактилоскопические сканеры, обойти которые далеко не так просто, как датчик, к примеру, Samsung Galaxy S5. Но при этом все-таки можно. В конце концов, владельца можно заставить приложить палец для разблокирования телефона — вот только в рамках американской правовой системы для этого требуется ордер, на получение которого уходит время… по истечении которого телефон удалит из памяти данные отпечатков и не позволит разблокировать устройство по отпечатку пальца.

Звучит как натяжка? Попахивает теорией заговора? Нет, просто Apple очень не понравилась попытка давления со стороны правоохранительных органов, в ответ на которое она и ввела эту меру: Apple adds another rule forcing iPhone and iPad users to employ a passcode to unlock their device.


Но не будем отвлекаться, а посмотрим внимательно на условия, при которых система блокирует работу Touch ID и вынуждает авторизоваться с помощью кода блокировки. Датчик Touch ID выключается, а данные отпечатков удаляются из памяти устройства при соблюдении любого из следующих условий:

  • телефон выключен или перезагружен;
  • пользователь добавляет данные еще одного пальца;
  • телефон получает команду удаленной блокировки через Find My iPhone;
  • было пять безуспешных попыток разблокирования с помощью отпечатка подряд;
  • устройство ни разу не разблокировалось в течение двух суток;
  • антиполицай: прошло более шести суток с момента последнего ввода кода блокировки, а само устройство не было разблокировано датчиком Touch ID в течение последних восьми часов.
Смысл последнего пункта нужно пояснить. По мнению сайта PhoneArena, он «может усложнить работу правоохранительных органов». Я выразился бы более уверенно, ведь последний пункт был введен сразу после нашумевшего процесса с террористом из Сан-Бернардино, когда на Apple оказывалось беспрецедентное давление.

Как обойти сканер отпечатков пальцев
Если речь идет о взломе Touch ID, то обмануть датчик сложно, но можно. Для обмана современных датчиков тебе придется создать трехмерную модель пальца, причем из правильного материала. На старых устройствах (iPhone 5s, iPad mini 3) обойти датчик заметно проще. К примеру, команда немецких хакеров смогла провести датчик iPhone 5s через два дня после выхода устройства на рынок, попросту распечатав оригинальный отпечаток пальца с разрешением 2400 dpi.


Но перед тем, как приступать к моделированию отпечатка, тебе необходимо позаботиться о сохранности данных на устройстве, а также о том, чтобы данные отпечатка не успели «протухнуть».

Действовать нужно четко и быстро:
у тебя минимум времени.

1) Итак, к тебе в руки попал телефон в неизвестном состоянии. Не трогай кнопку Touch ID! Если телефон заблокирован (а он, скорее всего, заблокирован), ты напрасно потратишь одну попытку из пяти. Проверь состояние устройства коротким нажатием кнопки питания.

2) Если устройство заблокировано, изолируй его от внешних радиосетей, поместив его в клетку Фарадея (в домашних условиях ее роль выполнит обычная микроволновка. Выключенная микроволновка!). Не забудь поставить его на зарядку, даже если ее роль будет выполнять внешний аккумулятор. Все это делается для того, чтобы оградить устройство от команд по протоколу Find My iPhone, которые позволят как дистанционно заблокировать устройство, так и уничтожить его содержимое. (Думаешь, эти меры очевидны? Как бы не так! Науке известны как минимум два нашумевших случая, когда полицейские допускали удаленное уничтожение данных с уже конфискованных устройств.)

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

4) Если устройство было заблокировано, у тебя есть максимум 48 часов (на самом деле меньше) на попытки обмануть датчик отпечатков.

5) Обрати внимание: все манипуляции с устройством должны проводиться исключительно в среде, защищенной от радиоволн (сетей Wi-Fi и сотовых сетей). Для срабатывания Find My iPhone достаточно пары секунд.

6) Если датчик отпечатков удалось обмануть, отключи автоматическую блокировку экрана (см. пункт 3). Имей в виду: попытки добавить еще один отпечаток в настройках или сменить код блокировки не пройдут — для этих операций система всегда потребует ввести код.

Как это использовать?
Допустим, у тебя получилось обмануть датчик отпечатка пальцев. Что дальше? iOS — закрытая система, а вся память устройства будет зашифрована. Варианты?

  • Установка джейлбрейка: нет. Для взлома 64-битного iPhone или iPad тебе в любом случае потребуется ввести код блокировки (а в некоторых случаях еще и отключить код блокировки в настройках).
  • Физическое извлечение данных: можно попробовать. Если джейлбрейк уже установлен, ты сможешь извлечь большую часть данных, но не сможешь расшифровать keychain. А вот если джейлбрейка нет, то ничего поделать не получится — для его установки тебе потребуется код блокировки.
  • iCloud: возможно. Разблокировав устройство, ты сможешь заставить его сохранить свежую резервную копию в iCloud (Settings –> iCloud –> Backup –> Backup now). Помни, однако, что для извлечения этих данных из облака тебе понадобится пароль от Apple ID, а если в учетке активирована двухфакторная аутентификация — то и доступ ко второму фактору (в роли которого, впрочем, может выступить исследуемое устройство). Важный момент: тебе придется подключить устройство к Wi-Fi, в результате чего вместо резервной копии на устройство может прилететь команда блокировки или уничтожения данных.
  • Резервная копия iTunes: пожалуй, это единственное, что сделать можно и нужно. Разблокированное устройство легко подключается к iTunes, с помощью которого создается резервная копия данных на твоем компьютере. Дальнейшее — дело техники. Один момент: пароль на резервную копию. Если он установлен, тебе придется его взломать (например, с помощью Elcomsoft Phone Breaker).
    А вот если он не установлен — обязательно установи свой! Простейшего 123 будет вполне достаточно. Из резервной копии, зашифрованной паролем, ты сможешь извлечь все данные, а из незашифрованной — все, кроме keychain. Поскольку в keychain хранится все самое интересное, установить временный пароль перед снятием резервной копии будет весьма полезно.

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


Отпечатки пальцев и Android
Перейдем к исследованию дактилоскопической аутентификации в устройствах под управлением Android. Разобрав очень удачную реализацию от Apple, посмотрим внимательно на состояние дел в лагере конкурентов.


Google Android 4.x–5.1.1: все очень грустно
Первые устройства со встроенными дактилоскопическими датчиками стали появляться довольно давно, еще во времена Android 4.4. На сегодняшний день их уже очень много: это Samsung Galaxy S5, S6, S7, Motorola Moto Z, Sony Xperia Z5, LG G5, Huawei Ascend Mate 7 и последующие, Meizu Pro 5 — и это далеко не все. Вот только не в каждом устройстве датчик отпечатков используется правильным образом. Связано это в первую очередь с тем, что вплоть до версии Android 6.0 в системе не существовало универсального API для дактилоскопической аутентификации. Нет API — нет и формальных требований Compatibility Definition, и, соответственно, нет никакой сертификации со стороны Google.

При полном отсутствии внешнего контроля производители нагородили такое… в страшном сне не приснится. Например, разработчики HTC One Max экстерном сдали экзамен по курсу «Android за 21 день» и реализовали замечательную систему, которая хранит полноценные копии отпечатков пальцев в публично доступном каталоге в несжатом (не говоря уже о шифровании) формате. Пожалуй, в инструкциях по «взлому» этой системы нет никакой нужды. Уточню только, что данные хранятся в файле /data/dbgraw.bmp, причем для твоего удобства разрешение доступа выставлено 0666.


Пример не единичный. Samsung Galaxy S5 вышел с Android 4.4 на борту. В скором времени хакерам удалось получить доступ к сканеру отпечатков и успешно обойти защиту.

До выхода шестой версии Android производители успели выпустить массу устройств, к которым безграмотно прикрутили датчики отпечатков. Ломать их даже неинтересно, до того там все уныло. Понятно, что долго терпеть такую ситуацию в Google не могли. Они и не стали.

Android 6.0: Fingerprint API и Nexus Imprint
С выходом Android 6.0 в Google не только разработали собственный API для аутентификации по отпечаткам пальцев, но и обновили Compatibility Definition Document, которому обязаны следовать все производители, желающие сертифицировать свои устройства для установки сервисов Google (это очень важный момент, о нем чуть позже).

Было выпущено сразу два референсных устройства: Nexus 5X и Nexus 6P. В них — и неотключаемое шифрование раздела данных, и правильная реализация датчиков отпечатков, получившая название Nexus Imprint.


Итак, чего же требует Google от производителей для получения сертификата соответствия? В отличие от ситуации с обязательным шифрованием на Android 5.0, на сей раз список требований не допускает двойных толкований. Переведем выдержку из официального документа.

7.3.10. Датчик отпечатков пальцев
В устройствах, в которых возможно использование блокировки экрана, РЕКОМЕНДУЕТСЯ использование датчика отпечатков пальцев. Требования к устройствам, оборудованным таким датчиком и предоставляющим доступ к API сторонним разработчикам:

  • ОБЯЗАТЕЛЬНО декларировать поддержку android.hardware.fingerprint.
  • ОБЯЗАТЕЛЬНО полная реализация fingerprint API из документации к Android SDK [Resources, 95].
  • ОБЯЗАТЕЛЬНО иметь уровень ложноположительных срабатываний менее 0,002%.
  • НАСТОЙЧИВО РЕКОМЕНДУЕТСЯ уровень ложноотрицательных срабатываний менее 10%, задержка срабатывания менее 1 секунды (для 1 сохраненного отпечатка).
  • ОБЯЗАТЕЛЬНО ограничивать скорость попыток 30-секундной задержкой после 5 неудачных попыток.
  • ОБЯЗАТЕЛЬНО иметь аппаратное безопасное хранилище, а верификацию отпечатков проводить исключительно в доверенной зоне Trusted Execution Environment (TEE) или на выделенном процессоре с безопасным каналом связи с TEE. (На этом погорел Samsung S5, в котором с безопасным каналом связи была проблема)
  • ОБЯЗАТЕЛЬНО шифровать данные отпечатков таким образом, чтобы доступ к ним невозможно было получить за пределами Trusted Execution Environment (TEE) согласно Android Open Source Project [Resources, 96].
  • ОБЯЗАТЕЛЬНО не разрешать добавлять отпечатки без установления доверенной цепочки (пользователь должен добавить или верифицировать PIN/паттерн/пароль через TEE согласно Android Open Source).
  • НЕ ПОЗВОЛЯТЬ сторонним приложениям различать отдельные отпечатки.
  • ОБЯЗАТЕЛЬНО корректно обрабатывать флаг DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT.
  • ВСЕ ОПИСАННЫЕ ВЫШЕ ТРЕБОВАНИЯ ОБЯЗАТЕЛЬНЫ при обновлении до Android 6.0, при этом данные отпечатков должны быть или мигрированы безопасным образом, или сброшены.
  • ЖЕЛАТЕЛЬНО использовать иконку Android Fingerprint из Android Open Source Project.
Как видим, документ не подразумевает двойных толкований. Производители, желающие сертифицировать устройства на базе Android 6.0 и выше, оборудованные датчиками отпечатков, должны полностью выполнить все требования. Более того: устройства, которые обновляются на Android 6.0, также обязаны соответствовать новым требованиям (и, соответственно, проходить сертификацию).

Наши китайские друзья
А как обстоят дела в многочисленных китайских телефонах, которые тоже идут с датчиками отпечатков?
Там все очень по-разному.

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

В Китае Google под запретом, и многие полуподвальные производители совершенно не собираются заморачиваться с ненужными сертификациями. Да ты и сам знаешь, с какими прошивками зачастую приходят устройства из Китая. В угоду производительности шифрование, как правило, не включается даже в прошивках на основе Android 6.0, а загрузчик не блокируется принципиально (в случае с процессорами MediaTek) или может быть легко разблокирован. Соответственно, есть там датчик отпечатков или нет — не играет ни малейшей роли.



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

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

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



Сравнение с Touch ID
Напрямую сравнить безопасность Apple Touch ID с ситуацией в мире Android не получится: если у Apple устройств единицы, то смартфонов на Android, наоборот, слишком много. В них могут использоваться самые разные датчики, основанные на разнообразных технологиях (от емкостных и оптических до ультразвуковых). Для разных датчиков подбирают разные технологии обхода. К примеру, для Samsung Galaxy S6 вполне срабатывает финт с разблокированием телефона моделью пальца, напечатанной на 3D-принтере из самого обычного пластика (с Apple Touch ID такой простой трюк не пройдет; для печати нужно будет использовать материал, обладающий особыми свойствами). Некоторые другие устройства легко обманываются распечатанными с высоким разрешением картинками.

А вот сравнение с Nexus Imprint вполне имеет смысл. В Nexus 5X и 6P Google использовал образцово-показательный подход к безопасности. Это и неотключаемое шифрование раздела данных, и грамотная интеграция датчиков отпечатков, да и сами датчики выбраны не абы как.

В устройствах сторонних производителей могут использоваться недостаточно безопасные датчики, могут зиять откровенные дыры в безопасности (несмотря на формальное соответствие требованиям Android Compatibility Definition).
 
Сверху