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

18.10.2012

Система идентификации по радужной оболочке глаза взломана с помощью генетического алгоритма! — в конце июля 2012 года в сети появились десятки материалов, пересказывающие в залоге сенсационности один из докладов конференции Black Hat USA. Но для вдумчивого читателя все новости по теме содержали больше вопросов, чем ответов. Редакция не гонится за дешевыми сенсациями, так что варианта было два: или написать сдержанную новость, указав читателю на «белые пятна», или досконально разобраться в теме. «Делаем по-максимуму!» — поставил задание издатель. И после первого же поискового запроса перед редактором разверзлась бездна ада.

Занимательная офтальмология

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

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

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

Подавляющее большинство современных биометрических систем, связанных с глазами, сканируют радужку. Сканирование сетчатки популярно в научной фантастике: эта технология (тогда еще гипотетическая) есть в фильме 1966 года о Бэтмене. Сканеры сетчатки мы видим в «Звездном пути», в боевике «Миссия невыполнима» и в одной из серий бондианы — «Золотом глазе». В реальном мире съёмка сетчатки ограниченно используется с 70-х годов на военных объектах, в ЦРУ и ФБР, в некоторых банках.

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

Проще, чем кажется

Первое исследование защищённости систем сканирования радужки авторы июльской сенсации провели ещё четыре года назад. Группа биометрических исследований Мадридского автономного университета представила доклад на семинаре по биометрии и установлению личности BIOID, прошедшем в мае 2008 года в университете датского города Роскилле. Среди коллектива авторов есть и Хавьер Галбалли, так успешно выступивший на Black Hat.

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

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

Аппаратной частью тестового стенда выступила камера LG IrisAccess EOU3000, программной — система, написанная в качестве бакалаврской дипломной работы австралийцем (судя по всему, чешского происхождения) Либором Машеком в 2003 году. По сообщению испанской группы, это единственная имеющаяся система распознавания радужки с открытым исходным кодом. Точнее, это выполненная на Matlab реализация разработки гуру машинного зрения Джона Доугмана — системы, лежащей в основе всех (по крайней мере, по данным 2008 года) коммерческих решений по распознаванию радужки.

Работают все эти системы (в том числе реализация Машека) так. Сначала программа выделяет на изображении границы радужки и зрачка. Для этого используется преобразование Хафа. Потом изображение пересчитывается из декартовых координат в полярные (центр — в зрачке) и получившийся массив данных представляется снова в декартовых координатах. Таким образом, радужка предстаёт перед нами в виде прямоугольника. Но при разной освещённости радужная оболочка глаза может принимать различную ширину — поэтому картинку необходимо растянуть или сжать до стандартных размеров. Кстати, зрачок может находиться не строго по центру радужки. Следовательно, растягивать или сжимать надо каждый столбец получившейся растровой матрицы отдельно.

Этапы работы системы распознавания радужки по алгоритму Джона Доугмана
Этапы работы системы распознавания радужки по алгоритму Джона Доугмана

Затем изображение обрабатывается специальным фильтром (о нём — немного позже). То, что у нас получилось, во всех публикациях называют «кодом радужки» (iriscode). Именно эти данные и хранятся в биометрических системах.

Эти коды сравниваются как строки путём вычисления расстояния Хэмминга. Функция Хэмминга позволяет описывать различия между строками, и чем меньше расстояние Хэмминга, тем меньше различие между строками. Если результат не превышает заданного порога, система подтверждает вашу личность.

Заметьте, насколько серьёзна бакалаврская работа Машека. Попробуйте взять и написать работающую систему распознавания радужки, даже обладая всей полнотой теоретических знаний об аналогах! А в чём заключалась первая работа Хавьера Галбалли и его товарищей по исследовательской группе?

Они распечатали изображения радужных оболочек глаза и предъявили их системе Машека. Использовались два принтера — струйный HP Deskjet 970cxi и лазерный HP LaserJet 4200L. Иногда систему получалось обмануть, иногда — нет, но исследователи продолжили эксперименты, применяя к изображениям различные фильтры. Наилучшие результаты получились со струйным принтером, после применения к изображениям фильтра «цилиндр» (top hat). Этот фильтр резко отбрасывает низкочастотную и высокочастотную составляющую сигнала — так, что передаточная характеристика фильтра по форме напоминает шляпу-цилиндр.

Так каковы же результаты? Были проведены две атаки. При первой — в системе регистрировались пользователи не по изображению настоящего глаза, а по распечатке, и, соответственно, распечатка демонстрировалась при попытке идентификации пользователя. Во втором случае регистрировались настоящие глаза, но для идентификации предъявлялись распечатки.

Успешными оказались обе атаки. Указывается, что тестируемая система могла быть настроена по максимально допустимому проценту позитивных ошибок — то есть ошибочных успешных распознаваний (FAR, false acceptance rate). Было проведено пять серий экспериментов с порогом позитивной ошибки от 0,1% до 5%. При минимальном FAR атака первого типа достигла успеха в 57% попыток, второго типа — в 49% попыток. Для максимального FAR результаты составили 82 и 73% соответственно.

Проверка на «живучесть»

Итак, дженерик-система распознавания радужки прекрасно «съедает» распечатку. А как можно защитить более продвинутое решение? Отслеживать реакцию на внезапный свет? Некомфортно для пользователя. Ждать микродвижений глазного яблока относительно век? Это может значительно увеличить время сканирования.

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

И чтобы алгоритм детектирования растра сработал, вам понадобится мегапиксельная камера с очень точным автофокусом. Не расточительство ли это?

Однако, есть и более интересные идеи. Еще в 2005 году три корейских автора из сеульского университета Санмюн (их имена в романской транскрипции пишутся как Eui Chul Lee, Kang Ryoung Park и Jaihie Kim; в русской транскрипции должно получиться что-то вроде Ый Чхул Ли, Кан Рэн Пак и Чин Ся Ким) предложили оригинальный метод, опирающийся на особенности человеческой анатомии.

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

Разумеется, фигурки Пуркинье так же получатся и от инфракрасного источника света, который глазу не виден, и поэтому не создаёт никаких неудобств пользователю. Представьте: у камеры находятся несколько ИК-светодиодов, расположенных в ряд. Они включаются поочерёдно. Для каждого из светодиодов у вас будет своя картина фигурок Пуркинье-Сансона, и вы даже можете вычислить соотношение расстояний, соответствующее нормальной анатомии человеческого глаза. Примерно такой метод и предложили корейские исследователи.

И это не только теория: корейцы собрали лабораторный стенд, реализовали программную часть и изучили, насколько эффективно это работает. Доля позитивных и негативных ошибок получилась примерно одинаковой — около 0,33%.

Описание научной работы исследователей из университета Санмюн опубликовано и находится в свободном доступе. Увы, пока что ни один производитель биометрического оборудования не заявил об анализе фигурок Пуркинье-Сансона как о своем конкурентном преимуществе. Судя по всему, большинство коммерческих систем распознавания радужки не слишком отличаются от дипломной работы Либора Машека. Чуть дальше этому будет ещё одно подтверждение.

Контактные линзы

Можно ли надеть контактные линзы с рисунком радужки и пройти через биометрический считыватель? Про эту возможность очень много говорят, но никто, кажется, не видел контактной линзы с чужой радужной оболочкой.

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

Косметические контактные линзы могут нести рисунок радужной оболочки глаза
Косметические контактные линзы могут нести рисунок радужной оболочки глаза

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

Считается, что бесцветные контактные линзы никак не мешают работе систем распознавания радужной оболочки глаза. Однако, исследование Сары Бейкер, Аманды Хентц и Кевина Боуайера из Университета Нотр-Дам (штат Индиана) показало, что на самом деле это не вполне так.

Изучение выборки из 51 человека, носящего контактные линзы, и контрольной группы из 64 человек, выявило, что при значении расстояния Хэмминга 0,32 вероятность ошибки для пользователей с линзами в 14 раз больше, чем для тех, кто линзы не носит. Для трёх самых неудачливых участников эксперимента доля ложных негативных решений системы составила 45%. Контактные линзы создают существенные артефакты на изображении и приводят к значительной деградации точности биометрического решения.

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

«Взлом» с помощью генетического алгоритма

Красиво звучит, не правда ли? По новостным заметкам IT-изданий складывалось впечатление, что упоминавшаяся уже группа исследователей из Мадридского автономного университета нашла критическую уязвимость в системе VeriEye от литовской хайтек-компании Neurotechnology. Указывалось, что ученые расшифровали хранящийся в системе «код радужки» и смогли сгенерировать соответствующее ему изображение глаза. Но что именно представляет собой этот код?


...

Полная версия этой статьи доступна только зарегистрированным пользователям.

Логин:
Пароль:
Регистрация
Забыли свой пароль?
Войти как пользователь:

Возврат к списку

 Подписаться на RSS-канал