Как мы тестировали технологию распознавания лиц и что из этого вышло

yzgss5hlujrkkwxi659dwrfimv0.png

Технологии биометрии стремительно проникают в нашу жизнь. Распознавание лиц появляется в гаджетах. Банки по всему миру приходят к использованию этой технологии в банкоматах. Камеры сети видеонаблюдения, подключенные к системе распознавания лиц, призваны помочь правоохранительным органам в поимке преступников. С помощью лица можно логиниться в сервисах и подтверждать платежи. И это, как и всегда в случае с высокими технологиями, разумеется, только начало. Лицо становится нашим пропуском, визиткой, платежным средством. Его нельзя забыть или потерять (разве что в фигуральном смысле). Но хорошо ли защищена эта технология?

Мы решили взять несколько популярных девайсов и попробовать обойти проверки, основанные на технологии face recognition, начав с простого, с face unlock (разблокировки по лицу).

Примечание: Гаджеты для исследования были предоставлены сотрудниками компании. Описанный в топике эксперимент проводился весной 2019 года, поэтому в нем приняли участие смартфоны не самых последних моделей.

В ролях:


  • OnePlus 5T
  • Samsung Galaxy S8
  • Windows Hello + Intel RealSense
  • iPhone X
  • Александр Полунин, идейный вдохновитель и опытная модель (обход технологии по фото)
  • Павел Новиков, специалист по IoT-девайсам и образец для 3D-модели
  • Дамир Зайнуллин, исследователь и модель для самодельной маски
  • А также Анна Давыдова, Наталья Фролова, Антон Карпин и Чак Норрис


Итак, в нашем распоряжении было четыре девайса, в одном из них — Samsung Galaxy S8 — помимо технологии распознавания лица использовалась также технология распознавания по сетчатке глаза (Iris Scanner).

Было выделено две программно-аппаратные технологии, которые применяются в этих девайсах. Первая — это старая технология распознавания по фото, то есть по плоскому изображению. Программа пытается сопоставить изображение с тем, что видит камера, и предоставляет или не предоставляет доступ к защищаемой информации. Обход этой технологии тестировался на смартфонах OnePlus и Samsung.

Вторая технология, более совершенная, использует лазерную проекцию точек на поверхность, в результате получается своеобразная сетка. Инфракрасная камера, встроенная в девайс, считывает отражение данной сетки и по длительности возврата сигнала от каждой точки понимает глубину и формы объекта, который стоит перед камерой. Таким образом получается трехмерное изображение. Данная технология используется в Windows Hello и iPhone X (а также в популярной камере Kinect).

Для обхода были использованы четыре способа:

  1. цветное фото, распечатанное на принтере;
  2. фото в инфракрасном спектре, распечатанное на принтере в черно-белом цвете;
  3. самодельная маска;
  4. нераскрашенная 3D-модель лица, уменьшенная копия.


jhem_t6v0tpqfx4g_b3cqa9q42i.png

Павел Новиков с уменьшенной копией 3D-модели своего лица

Сразу скажем, что для обхода технологии распознавания мы использовали наименее затратные и наиболее быстрые способы. Например, раскрашенная 3D-модель в натуральную величину — это сложно и дорого. Технология Iris Scanner в Samsung позволяет делать достаточно четкие фотографии сетчатки глаза в инфракрасном спектре. Нам не удалось обойти эту технологию, но мы натолкнулись на очень занимательную статью с примерами обхода. Судя по этой статье, необходимо сделать очень качественный снимок глаза на хорошую камеру, распечатать этот снимок и придать ему объем, приклеив контактные линзы, или, в другом варианте, придать блеск с помощью клея. Конечно, в реальной жизни сложно себе представить человека, который позволит незнакомцу сделать снимок собственных глаз с близкого расстояния. Если же снимать издалека, понадобится очень мощный телеобъектив (да и сама жертва вряд ли будет достаточно неподвижной).

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

Для первого способа обхода мы распечатали цветное фото лица на листе формата А4.

7etclmjdhzvxhkqf2fsbajl26h0.png

Александр Полунин на цветном и черно-белом фото к распознаванию готов

Эксперименты показали, что первый, устаревший метод определения успешно и стабильно обходится на двух смартфонах, которые были в нашем распоряжении, — OnePlus 5T и Samsung S8.

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

Не сработал второй метод — фото, сделанное в инфракрасном спектре и распечатанное на принтере; оно черно-белое и сенсор его не улавливает, ему нужно цветное фотоизображение.

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

Технология распознавания по сетчатке глаза Iris Scanner тестировалась на Samsung S8. Как было сказано выше, эту технологию не удалось обмануть цветным фото глаз. Так как камера и сенсор должны «смотреть» хозяину прямо в глаза, смартфон нужно поднести близко; глаза появляются на экране, нужно навести взгляд на это изображение, включается инфракрасная подсветка. Фронтальная камера фотографирует глаза и рисунок сетчатки. Мы предположили, что качественное распечатанное фото глаз должно разблокировать девайс. Мы добились, чтобы камера «поняла», что мы показываем ей глаза, но детализации картинки не хватило, чтобы обучить систему. Как мы упоминали выше, из статьи других исследователей с сэмплами фото, которыми нужно обманывать данную технологию, стало понятно, что способ обхода технологии существует, однако он получался относительно трудоемким и недешевым.

Что касается второй, более современной технологии, используемой в Windows Hello и iPhone X, то здесь мы наткнулись на ряд любопытных нюансов.

Использование цветного фото (1-й способ) не сработало ни на одном из девайсов, поскольку на фото — плоское изображение, а в Windows Hello, как и в iPhone X, используется трехмерная модель; технология позволяет «видеть» трехмерный объект, который расположен перед камерой, его глубину.

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

rsnvptojotgxesgzilcvwmhuydm.png

Объемное изображение с камеры Intel RealSense. Подобным образом нас «видит» система распознавания лиц. Здесь на пользователе солнцезащитные очки. Камера не получает информации о глазах, но доступная информация о лице позволяет пользователю авторизоваться

Мы сняли с помощью камеры Intel RealSense инфракрасную фотографию, распечатали ее на черно-белом принтере и попробовали авторизоваться (2-й способ). До весны 2018 года этот довольно простой способ срабатывал. Оказалось, что в ПО девайса была ошибка: при авторизации не учитывались глубина и объем. В апреле 2018 года разработчики ошибку исправили.

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

В случае с 3D-моделью лица (4-й способ) Windows Hello вела себя необычно. Когда мы направляли камеру для обучения на данную модель, система обводила лицо, которое она «увидела». При обучении иногда это происходило, иногда нет, но при этом система все равно обучалась.

Технология в камере Intel RealSense позволяет пользователю дообучить систему. Скажем, выросла у тебя борода или ты получил фингал под глазом, и система перестала тебя узнавать. В этом случае у тебя есть возможность дообучить ее. Как оказалось, в действительности она не добавляет к созданному образу какие-то изменения, не улучшает его, а просто создает дополнительный образ. Таким способом мы смогли добавить в систему пять совершенно разных лиц для одной учетной записи Windows, и все пять человек имели возможность залогиниться под этой учетной записью.

В случае с iPhone X инфракрасное фото показало схожесть технологии Face ID с технологией Intel RealSense. Система распознала, что это лицо, и позволила обучить себя. Но при этом распечатав изображение реального пользователя, который занесен в iPhone, залогиниться не удалось: объем по-прежнему играет роль. Принцип прост: по чему обучили — по тому и авторизовались. Обучили по картинке — залогинились по картинке. Обучили по лицу — по фото система не авторизовала.

Мы также выяснили, что в iPhone для работы Face ID камере необходимо «видеть» хотя бы треть лица. (В принципе, можно считать это потенциально слабым местом: для подделки нет необходимости воспроизводить лицо полностью.) Вас распознают, если вы надели шапку или отрастили бороду. В шапке и с бородой авторизоваться также получится, а вот в натянутой до бровей шапке и с намотанным до самого носа шарфом — уже нет. В качестве эксперимента мы последовательно закрывали части лица листами бумаги; закрывали лоб и подбородок по отдельности и вместе, половину лица и лоб с подбородком. Пробовали проделать то же самое не с листами бумаги, а с шапкой, темными очками, платком, шарфом. В ходе эксперимента стало понятно, что для разблокировки iPhone системе обязательно нужно «видеть» нос. При обучении система запоминает лицо, а далее, по всей видимости, ей достаточно фрагмента (приблизительно трети) лица, который она сопоставляет с полученным при обучении.

a9lbamqxufmytfuoooejayb3vga.png

Система распознает владельца, если у него закрыта нижняя часть лица

pavtfuumrs7eefuimgul_d_dr70.png

Для разблокировки системе требуется только треть лица Чака. Главное, чтобы нос не был закрыт

joc3jts-wg-cy1g8xfubrxbpvtk.png

Система позволяет Ане разблокировать iPhone даже в том случае, когда на ней шарф и темные очки

4flkpgwkupzoyqy6kmuhyt1zyog.png

Вариант с открытым лбом и платком, закрывающим нижнюю часть лица, в том числе рот, также позволит войти в систему

76g7sodg2ggjirswkagtduqxtmc.png

Система распознает Чака в шапке

egug6xa9zw3f3y1bhjm0h_m11cq.png

Скрытая за картонным роботом половина лица Ани также позволяет разблокировать устройство

xutqpqiswwmq28msvnrfbcnqng8.png

Смартфон Антона не распознает своего владельца, если в сильные морозы он замотается шарфом до самого носа

Кстати, существует мнение, что подобные системы пропускают детей в телефоны их родителей. Мы опробовали этот метод с iPhone X, но обмануть его таким образом нам не удалось.

В процессе роботы мы наткнулись на довольно забавный нюанс. При обучении технологии Face ID iPhone X требует, чтобы вы покрутили головой, якобы чтобы зафиксировать объемный снимок. На самом деле крутить собственной головой вовсе не обязательно. Во всяком случае медленно и аккуратно поворачивать голову из стороны в сторону и вверх-вниз нет необходимости. После того как девайс нашел лицо, можно повертеть перед камерой любым предметом. Мы, например, воспользовались клеем-карандашом: эффект выглядел абсолютно так же, и круговой индикатор равномерно заполнялся, как если бы вы поворачивали голову, давая возможность девайсу запомнить все точки лица. Выходит, это просто маркетинговый ход?

rw5zwpqarbucr7o3x3g6kzn6hhe.png

nob5jltulvwy7lwns2klaycibzc.png

По окончании обучения iPhone X требует покрутить головой, однако мы покрутили перед камерой обычным клеем-карандашом — и обучение состоялось

hnbmej6rjj74zlaywcwsrlwgkgi.png

В заключение


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

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

Авторы: Александр Полунин, Павел Новиков, Наталья Фролова

© Habrahabr.ru