Содержание к диссертации
Введение
1 Методы защиты биометрических приложений от попыток исследования вне доверенной среды 7
1.1 Задача защиты биометрических приложений от попыток исследования вне доверенной среды 6
1.2 Методы защиты исполняемого кода от исследования 8
1.3 Шифрование и упаковка кода 8
1.4 Обфускация программ 10
1.5 Генераторы полиморфных программ 14
1.6 Контроль целостности и защита от модификации 15
1.7 Трансляторы и компиляторы времени исполнения 16
1.8 Гомоморфные преобразования 17
1.9 Превентивные меры контроля доступа
1.10 Методы высоконадежной биометрической аутентификации 20
1.11 Использование преобразователей биометрия-код для защиты исполняемого кода 22 Выводы по главе 26
2 Настраиваемая хэш-функцдя 27
2.1 Определение и способы реализации настраиваемой хэш-функции 27
2.2 Порядок работы с настраиваемой хэш-функцией 32
2.3 Представление обучающего множества входных параметров 33
2.4 Оценка качества входных и выходных параметров 35
2.5 Настройка нейросетевой НХФ 42
2.6 Оценка качества нейросетевой НХФ 56
2.7 Усиление хэширующих свойств нейросетевой НХФ 60
2.8 Экспериментальная проверка методов настройки и усиления хэширующих свойств нейросетевой НХФ 65
Выводы по главе 66
3 Автомат настраиваемой хэш-функции 67
3.1 Стадии процесса высоконадежной биометрической аутентификации 67
3.2 Выбор представления биометрических образов 68
3.3 Выбор представления биометрических параметров 70
3.4 Представление настраиваемой хэш-функции конечным автоматом 72
3.5 Управление состоянием автомата 73
3.6 Управление параметрами обучения автомата НХФ 75
3.7 Сохранение состояния настроенного автомата НХФ 76
3.8 Индикация ошибок автомата НХФ 78
3.9 Моделирование работы автомата НХФ 79
Выводы по главе 81
4 Автомат мультибиометрического преобразования 82
4.1 Преимущества высоконадежной мультибиометрической аутентификации 82
4.2 Виды высоконадежной мультибиометрической аутентификации 82
4.3 Практические вопросы мультибиометрического слияния
4.4 Модель мультибиометрического преобразования 85
4.5 Автоматы преобразования биометрических и случайных параметров 86
4.6 Операции мультибиометрического преобразователя 97
4.7 Схемы мультибиометрического преобразования 98
4.8 Организация мультибиометрического контейнера 101
4.9 Управление обработкой команд автомата мультибиометрического преобразования
4.10 Автоматическое обучение мультибиометрического преобразователя 105
4.11 Выполнение преобразования биометрия-код мультибиометрическим преобразователем 107
4.12 Достаточность введенных классов преобразований для решения задачи мультибиометрической аутентификации 109
4.13 Моделирование работы автомата мультибиометрического преобразования 115
Выводы по главе 116
5 Язык описания процесса мультибиометрической аутентификации 117
5.1 Цели определения языка 117
5.2 Концепция языка 118
5.3 Модель обработки сигналов и вычислений 119
5.4 Графические элементы и конструкции языка 121
5.5 Текстовые элементы языка 130
Выводы по главе 132
Заключение 133
Литература
- Генераторы полиморфных программ
- Представление обучающего множества входных параметров
- Представление настраиваемой хэш-функции конечным автоматом
- Автоматы преобразования биометрических и случайных параметров
Генераторы полиморфных программ
Изменение глобальных имен идентификаторов может быть произведено в каждой единице трансляции (один файл исходного кода) так, чтобы они имели одинаковые имена - в противном случае защищаемая программа может стать нефункциональной. Также следует учитывать, что зарезервированные языком идентификаторы изменять нежелательно.
Обфускация данных связана с трансформацией структур данных. Она считается более сложной, и является наиболее продвинутой и часто используемой.
Обфускация хранения данных. Заключается в трансформации хранилищ данных, а также самих типов данных (например, создание и использование необычных типов данных, изменение представления существующих и т.д.). Ниже приведены основные методы, позволяющие осуществить обфускацию этого вида: - изменение интерпретации данных определенного типа. Как известно сохранение, каких-либо данных в хранилищах (переменных, массивах и т.д.) определенного типа (целое число, символ) в процессе работы программы - очень распространенное явление. Например, для перемещения по элементам массива часто используют переменную типа "целое число", которая выступает в роли индекса. Использование в данном случае переменных иного типа возможно, но это будет нетривиально и может быть менее эффективно. Интерпретация комбинаций разрядов содержащихся в хранилище данных осуществляется в зависимости от его типа; - изменение срока использования хранилищ данных, например переход от локального их использования к глобальному и наоборот; - преобразование статических (неменяющихся) данных в процедурные. Большинство программ в процессе работы выводит различную информацию, которая чаще всего в коде программы представляется в виде статических данных, таких как строки, которые позволяют визуально ориентироваться в ее коде и определять выполняемые операции. Такие строки также желательно предать обфускации. Это можно сделать, записав каждый символ строки с помощью его ASCII кода. Например, символ "А" можно записать как 16-ричное число "0x41", но такой подход очевиден. Более эффективен вариант преобразования, когда в код программы в процессе осуществления обфускации добавляется функция, генерирующая требуемую строку в соответствии с переданными ей аргументами, после чего строки в этом коде удаляются, и на их место записывается вызов этой функции с соответствующими аргументами; - разделение переменных. Переменные фиксированного диапазона могут быть разделены на две и более переменных. Для этого переменную V, имеющую тип Ті, разделяют на п переменных vi, ..., vn типа Тг. Затем создается набор функций позволяющих извлекать переменную типа Ті из Тг и записывать переменную типа Ті в Т?; - изменение представления (кодирование).
Обфускация соединения данных. Один из важных этапов в процессе реверсивной инженерии программ основан на изучении структур данных. Поэтому в процессе обфускации важно усложнить представление используемых программой структур данных. Например, при использовании обфускации соединения это достигается благодаря соединению независимых данных или разделению зависимых. Ниже приведены основные методы, позволяющие осуществить обфускацию этого вида: - объединение переменных. Две или более переменных vi, ... ,vn могут быть объединены в одну переменную V, если их общий размер (vi, ... ,Vk) не превышает размер переменной V.
Например, две переменных длиной по 16 бит могут быть объединены в одну переменную длиной 32 бита по некоторому правилу, смешивающему комбинации значений переменных; - реструктурирование массивов. Заключается в запутывании структуры массивов путем разделения одного массива на несколько подмассивов, объединения нескольких массивов в один, сворачивания массива (с увеличением его размерности) и наоборот, его разворачивания (с уменьшением его размерности). Например, один массив А можно разделить на несколько подмассивов Аі, Аг. При этом один массив Аі будет содержать четные позиции элементов, а второй Аг нечетные позиции элементов массива А; - изменение иерархий наследования классов. Осуществляется путем усложнения иерархии наследования при помощи создания дополнительных классов или использования ложного разделения классов.
Обфускация переупорядочивания данных заключается в изменении последовательности объявления переменных, внутреннего расположения хранилищ данных, а также в переупорядочивании реализуемых функций, массивов, определенных полей в структурах и т.д.;
Обфускация управления осуществляет запутывание потока управления, то есть последовательности выполнения программного кода. Большинство ее реализаций основывается на использовании непрозрачных предикатов, результат работы которых становится известен только в процессе обфускации. После обфускации определение значения такого предиката становится вычислительно сложной задачей. В качестве входных параметров предикатов используются последовательности операций, результат работы которых сложно определить. Непрозрачные предикаты могут быть: - локальными, вычисляемые внутри одиночного выражения (условия); - глобальными, вычисляемые в пределах одной процедуры (функции); - межпроцедурными, зависящие от вычислений внутри нескольких процедур (функций).
Эффективность обфускации управления в основном зависит от используемых непрозрачных предикатов. Это вынуждает создавать как можно более сложные для изучения, но простые и гибкие в использовании непрозрачные предикаты. Кроме того большое значение имеет время их выполнения, количество выполняемых операций и схожесть с имеющимися в программе функциями. В противном случае они легко обнаруживаются. Так как часто для деобфускации используют технологию статического анализа, а одним из ее недостатков является сложность (трудоемкость) статического анализа структур указателей, то обычно в процессе обфускации управления используют устойчивые непрозрачные предикаты, которые позволяют учесть недостатки технологии статического анализа.
Основная идея устойчивых непрозрачных предикатов состоит в том, что в программу, в процессе обфускации добавляется код, который создает набор динамических структур, а также глобальных указателей, которые будут ссылаться на различные элементы внутри этих структур. Помимо этого данный код должен иногда обновлять эти структуры (добавлять новые элементы в них, объединять или разделять некоторые их них, изменять значения глобальных указателей, и т.д.). но таким образом, чтобы при этом были сохранены некоторые условия, например "указатели р и q никогда не будут указывать на один и тот же элемент" или "указатель р может ссылаться (указывать) на указатель q" и т.д. Эти условия впоследствии позволяют создавать требуемые непрозрачные предикаты.
Обфускация управления вычислительная определяет изменения, касающиеся главной структуры потока управления. К ним можно отнести: - расширение условий циклов. Для этого обычно используют непрозрачные предикаты. таким образом, чтобы они никак не влияли на количество выполнений циклического кода: - добавление недостижимого кода, который не будет выполняться в процессе работы программы; - устранение библиотечных вызовов. Большинство программ используют функции, которые определены в стандартных библиотеках исходного языка, на котором писалась программа (например, в Си это библиотека "libc"). Работа таких функции хорошо документирована, а, значит, известна злоумышленнику. Следовательно, их использование может помочь в процессе реверсивной инженерии исполняемого кода. Поэтому имена функций из стандартных библиотек, также желательно придать обфускации, т.е. изменить на наиболее бессмысленные, которые потом будут фигурировать в коде защищаемой программы. Один из наиболее очевидных способов решения этой задачи заключается в использовании в программе собственных версии стандартных библиотек;
- добавление избыточных операций (мертвого кода) в наиболее трудные для начального изучения участки исполняемого кода. Часто избыточные операции используются для расширения арифметических выражений, например, в непрозрачных предикатах;
- распараллеливание кода. Заключается в разделении кода на отдельные независимые участки, которые во время работы программы будут выполняться параллельно. Такая обфускация также может заключаться в импровизации распараллеливания кода программы. Для этого создается так называемый макет процесса, который на самом деле не будет выполнять никаких полезных операций.
Обфускация управления соединения заключается в объединении или разделении определенных фрагментов кода программы, чтобы убрать логические связи между ними. Ниже приведены основные методы, позволяющие осуществить обфускацию этого вида:
- встраивание подставляемых функций. Вместо их вызова выполняется подстановка их исполняемого кода;
- извлечение функций. Является обратным действием по отношению к встраиванию функций. Осуществляется путем объединения некоторой группы взаимосвязанных операторов в коде исходной программы в отдельную функцию (при необходимости для этой функции можно определить некоторые аргументы), которой потом замещают эти группы операторов. Следует учесть, что такое преобразование может быть отменено компилятором в процессе компиляции кода программы;
- чередование, объединение фрагментов кода программы (функций например), выполняющих различные операции, в одну функцию. Выполнение конкретной операций внутри функции производится по некоторому условию или признаку;
- клонирование. Данный метод позволяет усложнить анализ контекста использования функций и объектов используемых в коде исходной программы. Процесс клонирования функций состоит в выделении определенной функции F, часто используемой в коде программы. После этого код функции трансформируется и создается ее клон F, который также будет добавлен в код исходной программы. При этом часть вызовов функции F в коде исходной программы, будет замещена на вызов функции F. В результате обфускации F у злоумышленника создастся представление о том, что функции F, и F" различны. Клонирование объектов осуществляется аналогичным способом;
- трансформация циклов. Блокирование циклов заключается в добавлении вложенных циклов в существующие. В результате этого работа существующих циклов будет заблокирована для определенного диапазона значений. Развертка циклов заключается в повторении тела цикла один или более раз (если количество выполняемых циклов известно в процессе осуществления обфускации. Разделение циклов заключается в том. что цикл,.
состоящий из более чем одной независимой операции, разбивается на несколько циклов которые должны выполняться одинаковое количество раз;
Обфускация управления последовательности заключается в переупорядочивании блоков (инструкций переходов), циклов, выражений.
Превентивная обфускация предназначена для предотвращения применения злоумышленником деобфускаторов, декомпиляторов и других программных средств деобфускации. Она нацелена на учет недостатков и особенностей, присутствующих в наиболее распространенных программных средствах деобфускации.
Достоинства методов обфускации. Высокий теоретически достижимый уровень защиты программы от исследования. После формирования программы исходный код не модифицируется. Имеется возможность контроля за распространением копий программы.
Недостатки методов обфускации. Эффективность защиты зависит от размера программы и ее начальной сложности. Повторяемость преобразований во время исследования. Высокая квалификация разработчиков методов обфускации и программ для обфускации. Не препятствует изучению программы путем подачи различных входных данных. Не защищает результаты вычислений.
Представление обучающего множества входных параметров
В отличие от хэш-функций, детерминированных по определению. НХФ в общем случае является недетерминированной по отношению к множеству X. Поэтому перед использованием она должна быть настроена на конкретное отображение входного множества значений ХСВОЙ И желаемого множества отклика УСВОЙ- После настройки НХФ она может быть протестирована с целью проверки корректности настройки отображения. Разделение на практике этапов обучения, тестирования и использования позволяют рассматривать НХФ как математический объект, для которого могут быть определены стадии жизненного цикла (рисунок 2.4).
На этапе обучения выполняется настройка НХФ с использованием указанных множеств ХСВОЙ и ХвсеЧужие, противопоставляемых друг другу (подробнее в 2.3-2.4), а также множества выходных значений УСВОЙ- В результате обучения определяются параметры формулы (2.5). Найденные параметры сохраняются в виде конфигурации для дальнейшего использования.
Примечание: Здесь и далее будет рассматриваться вариант НХФ, УСВОЙ которой содержит только одно значение усвой с УСВОЙ, называемое выходным кодом. На этапе тестирования выполняется оценка качества НХФ и ее близости к идеальной ХЭШ-фуНКЦИИ С ИСПОЛЬЗОВаНИеМ Текущей Конфигурации, ТеСТОВЫХ МНОЖеСТВ Хсвой, ХвсеЧужие, Хчужой и УСВОЙ - в зависимости от задачи тестирования. Рисунок 2.4 - Стадии жизненного цикла нейросетевой настраиваемой хэш-функции На этапе использования выполняется преобразование биометрия-код, в результате КОТОРОГО ПОДаваеМЫе На ВХОД Параметры Хнеизвестный Преобразуются В ВЫХОДНОЙ КОД Унеизвестный с использованием полученной ранее конфигурации НХФ. На этапах дообучения и переобучения производится дополнительная настройка или, соответственно, повторная настройка НХФ с использованием ХСВОЙ, ХВСеЧужие, УСВОЙ 33
Для правильной настройки НХФ в общем случае необходимо иметь множества ХСВОЙ И Хвсечужие, включающие в себя все возможные примеры значений. На практике такое требование, в большинстве случаев, невыполнимо, поскольку из-за большой размерности пространства входных значений (гл »100) эти множества становятся эквивалентными бесконечным. В этой связи рассмотрим способы приближенного описания множеств примеров.
Связь между результатами экспериментов может быть описана через отношение с помощью некоторой функции Р(х, у): х —» у, несущую информацию об отношении, например, "вычисляется как", "включает", "состоит", "производится из". Значением функции F является признак, принимающий значение 0 (факт недостоверен) или 1 (факт достоверен), определенный для каждого факта (х„ yj). Так как число достоверных фактов конечно, определяемая функция является дискретной. Пример такой функции приведен на рисунке 2.5. Отметим, что в общем случае отношение х и у это отношение многие ко многим.
Представление в виде фактов широко используется в системах логического вывода [39]. Действительно, конечность набора фактов и ограниченное число функций позволяют легко выполнить построение обратной функции Q(y, х): у - х, что позволяет строить дерево дедуктивного вывода.
В качестве преимуществ такого подхода следует отметить высокий уровень формализации знаний, и, следовательно, скорость разработки экспертных систем. В этом же кроются недостатки такого подхода: необходимость подготовки фактов с высоким уровнем достоверности и высокая квалификации специалистов, занимающихся формализацией знаний. Другой проблемой является то, что для описания множества X высокой размерности, обладающего сильным разбросом значений параметров, а также внутренними корреляционными связями между ними потребуется определение огромного числа фактов, что недопустимо для практического использования.
Для обобщения отдельных фактов с целью получения их компактного описания и нечеткого вывода используется аппарат нечеткой логики. В отличие от первого варианта, функция Р может состоять из частей гладких функций, формируемых на основе фактов и гипотез обобщения. Поэтому результирующее значение Р определяет вероятность в диапазоне от 0 до 1 для некоторой комбинации параметров (xj5 у,). Пример такой функции приведен на рисунке 2.6. Цветом условно показана различная вероятность каждого из возможных фактов. Поскольку множество фактов, расположенных на одном участке функции Рк, могут обрабатываться одновременно, достигается большая скорость нечеткого вывода.
В то же время правила обобщения требуют определения для решения конкретной задачи. Поэтому подбор начальных приближений функций также выполняется экспертом и требует высокого качества исходных примеров. При увеличении размерности соотносимых параметров (х, у) значительно возрастает сложность ручного описания зависимостей между ними и падает точность приближения.
Для обеспечения высокой стойкости к атакам подбора необходимо использовать длинные выходные коды и, соответственно, большое число входных параметров (т » 1, п » 1). При этом из-за большого числа допустимых значений по каждой размерности (х, є 9 ) формирование базы фактов в общем случае представляется невозможным.
В работах [27, 28] был предложен другой подход к описанию начальных условий задачи обучения НХФ. Все множество возможных значений X, делится на 2 класса: "Свой" (ХСВОЙ) И "все Чужие" (Хвсечужие)- Класс "Свой" описывает примеры входных значений донора биометрических образов (входных параметров), для которых должно быть получено эталонное значение НХФ УСВОЙ- Класс "все Чужие" описывает все противопоставляемые "Свой" примеры входных значений, допустимые для данной биометрической технологии. При этом вероятность обнаружения в классе "все Чужие", дающего УСВОЙ, уменьшается с ростом размерности входных примеров. Таким образом, отношения между классами X и выходным кодом Y записываются в виде пары отношений: Р(Хсвой, Усвой) =1, (2.6) 1 (-Л-всеЧужиеэ ІСвой) — U.
На практике класс "Свой" аппроксимируется всеми примерами [Х]СВОЙ донора биометрии (от 8 до 32). Класс "все Чужие" приближается репрезентативной выборкой [Х]все чужие, отражающей существенные особенности распределений входных параметров. На практике достаточно использовать число примеров [Х]всеЧч.Жііе порядка 200. В силу ограниченности числа примеров [Х]СВОЙ, описывающих множество ХСВОЙ, первое равенство (2.6) становится нестрогим, т.е. Р([Х]сво», YcBOiO 1- Значение РІ:1-Р([Х]СВОЙ, УСВОЙ) Определяет ВеЛИЧИНу ОШИбкИ ПерВОГО рОДа. АнаЛОГИЧНО ДЛЯ ХвсеЧужие Р([Х]всеЧужие, Свой) 0 . Значение Рц:1-Р([Х]всечуЖие, Усвой) определяет величину ошибки второго рода. Отметим, что на Pi И РЦ влияет алгоритм обучения НХФ, поэтому между Pj и Рц имеется нелинейная зависимость.
Для уменьшения Pi И Рц важным является вопрос выборы достаточного размера примеров обучающих множеств. Множество УСВОЙ состоит из одного значения, поэтому оно определяется однозначно. Множество ХСВОЙ на практике ограничивается примерами, которые вводятся донором личной биометрии. Регулируя число биометрических образов, донор личной биометрии принимает решение о достаточной для практического использования вероятности ошибки первого рода. Число примеров [Х]всеч жие должно выбираться с учетом достаточного приближения к ХвсеЧужие для минимизации Рц. Увеличение числа примеров приводит к плавному изменению статистических параметров, которые, как показано ниже, используются в процедуре настройки НХФ. Вопросы построения и балансировки [Х]всечужие определены в ГОСТ Р 52633.1-2009 [40], ГОСТ Р 52633.2-2010 [41].
Представление настраиваемой хэш-функции конечным автоматом
Один из способов защиты в случае, когда у злоумышленника имеется доступ к выходным параметрам НХФ и ее откликам, но нет доступа к результатам промежуточных вычислений, заключается в повторении хэширования для выходного кода. Схема такого хэширования показана на рисунке 2.26.
Код, получаемый с преобразователя биометрия-код, подвергается преобразованию с помощью хэш-функции (в частном случае - криптографической). В качестве дополнительных параметров хэширования могут использоваться любые коды, вычисленные ранее. Результат хэширования дополняется с помощью операции сложения по модулю два до требуемого выходного кода.
Формула (2.5) принимает вид: У = Н(ННХФ(Х))ЄСІ, где Н -хэш-функция, имеющая лучшее качество хэширования; (2.54) ННХФ - исходная настраиваемая хэш-функция; d - двоичное число-дополнение. Значение выходного кода генерируют во время настройки НХФ или как значение функции от выходного кода ННХФ(Х) = Н(у,...). Биты числа-дополнения вычисляют по формуле: d, = Х,ФН(ННХФ(Х))., (2.55)
Предложенная схема значительно усложняет задачу злоумышленнику, не имеющему прямого доступа к выходному коду исходной НХФ, поскольку отклонение даже в одном бите этого кода приводит к значительным искажениям результата и не позволяет сделать вывод о близости подобранного параметра к эталонному значению. Другим достоинством метода является возможность связывания результата НХФ с внешними кодами, вычисленными ранее, например, в процессе мультибиометрической аутентификации.
Защита НХФ от исследования может быть осуществлена и без дополнительных хэширующих функций. В этом случае выполняется связывание значений откликов нейронов с ранее вычисленными значениями.
В простейшем случае предлагается использовать операцию сложения по модулю два выхода і-го нейрона и і-1-го, вычисленного на і-l шаге преобразования, как это показано на рисунке 2.27. yo = 0,y1=f(W[Cl]-x1)ey,.1. (2.56) где уо - фиктивное начальное значение за пределами вектора у. При реализации предложенного алгоритма формула (2.5) на каждой итерации дополняется операцией сложения по модулю два с ранее вычисленным результатом, как это сделано в формуле (2.56). Таким образом, значение на выходе і-го нейрона оказывается связано со значениями, вычисленными ранее.
Подача параметров биометрического образа "Свой" не мешает получению правильного выходного кода. Однако, появление на выходе хотя бы одного нейрона значения, отличного от эталонного приводит к эффекту лавинообразного размножения ошибок, что затрудняет получение действительных значений выходного кода. Этот эффект проявляется при подаче биометрических параметров любого образа "Чужой" на вход настроенного НХФ.
Поскольку формула (2.56) отличается от исходной, следует учесть это во время обучения Для этого после обучения НХФ на выходном коде следует изменить знак всех весовых коэффициентов і-го нейрона путем умножения его на коэффициент s„ вычисляемый по формуле: s, = -2-(y,eyl.i)+l (2.57) Возможные модификации алгоритма включают в себя замену у,_і в формулах (2.56, 2.57) на значение обратимых или необратимых дискретных функций от ранее вычисленных откликов нейронов yi; ,.].
Обобщение предыдущего алгоритма является метод усиления хэширующих свойств НХФ путем регуляцию избыточности используемой информации входных параметров.
Для этого к к связям каждого нейрона настроенной НХФ добавляется кг (где кг к) новых связей с входными параметрами. Число добавляемых связей может быть фиксированным, а может выбираться случайным образом. Добавляемые связи размешаются в векторе С, в случайном порядке. Номера добавляемых связей не должны дублировать имеющиеся у нейрона связи и должны выбираться по общему алгоритму распределения номеров связей по нейронам. Абсолютные значения соответствующих весовых коэффициентов, W, должны быть приближены к значениям "действительных" коэффициентов, получаемых во время обучения ИНС. Знаки добавляемых весовых коэффициентов должны выбираться таким образом, чтобы обеспечивать равновероятную смену значения отклика нейрона. Установка меньшей вероятности смены значения отклика позволяет наблюдать эффект отложенного возникновения ошибки для заданного подмножества образов "все Чужие".
Функция преобразования биометрия-код модифицируется по одному из двух вариантов: - с использованием маски, скрывающей избыточные связи; - с использованием маски, минимизирующей влияние избыточных связей; Первый вариант предполагает использование битовой маски, Vl5 использования связей С, при выполнении преобразования. Значение маски для образа "Свой" должно содержать "1" в разрядах, соответствующих исходным весам, и "О" для добавленных весов. Для образа "Чужой" значение маски случайно. Во время преобразования маску V, вычисляют как функцию от предыдущих откликов нейронов:
Второй вариант реализации метода представлен на рисунке 2.29, и, в отличие от первого варианта, предполагает использование добавленных весовых коэффициентов во время каждого преобразования, взятых со знаком плюс или минус. Вектор знаков весовых коэффициентов S, вычисляется как во время выполнения преобразования, так и во время дообучения НХФ по формуле:
При этом во время настройки НХФ знаки "действительных" весовых коэффициентов изменяются таким образом, чтобы при их умножении на S, для эталонных откликов уі г ,.\ получались правильные значения весов. Добавленные веса изменяются таким образом, чтобы сумма их значений была близка к нулю, т.е. не влияла на ошибку отказа по образу "Свой".
Принципиальная схема метода усиления хэширующих свойств представлена на рисунке 2.30.
Предложенный метод усиления хэширующих свойств нейросетевой НХФ значительно усложняет задачу исследования выходного кода и подбора входных биометрических параметров злоумышленнику за счет того, что не дает информации о направлении движения по многомерному пространству выходных кодов в направлении кода «Свой». В то же время примеры «Чужой», которые для обычной НХФ дают на выходе код «Свой», после использования метода усиления, также будут давать код «Свой». Следовательно, метод усиления хеширующих свойств не влияет на вероятность ошибки второго рода при использовании полной базы биометрических образов злоумышленником. Цель применения метода - противодействие подбору биометрических параметров и проведению атак злоумышленником с использованием неполных или синтезированных баз биометрических образов, а также методов ускорения перебора входных параметров. Важно отметить, что, поскольку все примеры образа «Свой» позволяют сформировать правильный выходной код, применение метода усиления не изменяет значение вероятности ошибки первого рода, а, значит, и не снижает «дружественность» к пользователю. Ц. .И Ш 3
Автоматы преобразования биометрических и случайных параметров
Объединение нескольких биометрических технологий, по-другому, мультибиометрическое слияние (multi-biometric fusion), является следующим этапом повышения уровня безопасности процесса аутентификации, обеспечиваемого биометрическими технологиями. На это направлены ведущие силы мирового сообщества [56,57].
Достоинства мультибиометрического слияния хорошо известны: - усшение стойкости биометрической системы к атакам подбора. Разница в стойкости между различными биометрическими технологиями особенно сильно проявляется при сравнении статической и динамической биометрии. Отдельные биометрические образы не всегда могут обеспечить необходимое качество и число биометрических параметров. Так, использование отпечатка пальцев, в силу конечности числа особых точек и сложности рисунка, а также недостаточное качества изображения папиллярного рисунка, получаемого со сканера, в настоящее время не позволяет снизить вероятность ошибки второго рода до величины меньше 10"4-10 . Этого недостаточно для решения задачи ограничения доступа только по биометрическому образу. Объединение нескольких «относительно слабых» видов биометрии позволит снизить Рі] до требуемого уровня. - снижение рисков компрометации биометрии. Однократная компрометация биометрического образа исключает его из списка используемых. Эта проблема актуальна для всех видов статической биометрии: отпечатка пальца, рисунка руки или ладони, рисунка вен, радужной оболочки глаза, геометрии лица и т.д. Решением задачи может стать мультибиометрическое объединение статической биометрии с динамической, т.е. изменяемой но желанию донора биометрии. - поддержка вариантов аутентификации. - поддержка нескольких участников. Ряд протоколов аутентификации требует использование нескольких ключей, хранимых отдельно друг от друга. Связь составных частей ключа с отдельными биометрическими образами позволит использовать различные схемы мультибиометрического слияния. - поддержка схем разделения секрета. При необходимости с помощью биометрии может быть выполнено связывание с частями секретов, распределенных между несколькими участниками процесса биометрической аутентификации. - сохранение требований безопасности к мультибиометрическому преобразователю по сохранению тайны выходного кода и биометрических данных, требований по их уничтожению после завершения обучения, сложность организации атак с использованием хранимых параметров, обеспечивается выполнением требований пакета стандартов ГОСТ Р 52633.
Рассматривая стадии высоконадежной мультибиометрической аутентификации (рисунок 3.1) можно констатировать: мультибиометрическое слияние может быть выполнено на каждой стадии этого процесса. В зависимости от стадии выполнения мультибиометрического слияния предлагается выделить следующие виды высоконадежной биометрической аутентификации (ВБА): - мулътимодалъная биометрическая аутентификация. Выполняется с использованием нескольких биометрических технологий, связанными с разными устройствами ввода. Примером служит биометрическая аутентификация по рукописному образу и отпечатку пальцев, выполняемая с помощью графического планшета и сканера отпечатка пальца. - мулътиобразная биометрическая аутентификация. Выполняется с использованием несколько биометрических образов одной биометрической технологии. Примером служит биометрическая аутентификация с последовательным вводом нескольких рукописных слов-паролей или прикладыванием к одному сканеру нескольких пальцев правой и левой руки. - мулътисенсорная биометрическая аутентификация. Выполняется с помощью нескольких устройств, предназначенных для ввода биометрического образа. Примером может служить ввод голосовой фразы с использованием нескольких микрофонов, отслеживающих положение аутентифицируемого в пространстве. Другой пример - аутентификация по объемному изображению лица, построенному с использованием двух камер наблюдения. - мулътипримерная биометрическая аутентификация. Выполняется с помощью нескольких примеров одного биометрического образа. Используется в том случае, когда качество получаемых биометрических образов низкое и требуется их обогащение. Может выполняться незаметно для аутентифицируемого путем многократного съема биометрических данных (изображений частей тела, отпечатков пальцев) в течение некоторого промежутка времени и последующей их обработки. - мулътиалгоритмическая биометрическая аутентификация. По ней один биометрический образ обрабатывается несколькими разными алгоритмами с целью извлечения максимальной информации. - многопользовательская биометрическая аутентификация. Выполняется с участием нескольких доноров биометрических образов. Проводится в случае использования различных схем разбиения или разделения секрета. - многовариантная биометрическая аутентификация. Объединяет разные виды мультибиометрической аутентификации с помощью логической операции "или". Заметим, что перечисленные виды мультибиометрической аутентификации могут быть использоваться совместно {смешанная мультибиометрическая аутентификация). При объединении нескольких биометрических технологий встает ряд как технически, так и алгоритмически сложных проблем: - усложнение биометрического образа при увеличении длины кода доступа; - значительный рост сложности ввода и вероятности отказов своему; - длительность процесса аутентификации; - поддержка всех уровней мультибиометрического слияния; - единообразная обработка различных биометрических данных; - сохранение тайны связывания, т.е. без раскрытия тайны входных, выходных данных, а также хранимых параметров работы: - простота описания процесса мультибиометрического слияния;
Любой биометрический образ может быть представлен как совокупность биометрической (особенности интонации, почерка) и небиометрической составляющей (смысл фразы, значение написанного слова). Причем, при усложнении биометрического образа, информативность небиометрической составляющей растет, а биометрической, при достижении некоторого порога насыщения, изменяется значительно медленнее. В связи с этим необходимость повысить длину выходного кода доступа в два раза приводит к многократному увеличению длины биометрического образа. Решение может заключаться в разделении одного протяженного биометрического образа на несколько более коротких, с использованием разных биометрических технологий.
Другая проблема использования длинных биометрических образов или нескольких биометрических образов заключается в росте Pi из-за особенностей ввода биометрии (человеческий фактор). Увеличение числа ошибок при вводе делает его неудобным или невозможным в условиях, когда время аутентификации ограничено. Снижается также показатель удовлетворенности участника ВБА процессом. Для решения этой проблемы необходимо иметь способы определения качества введенных биометрических образов. При этом открытое или "неконтролируемое" сравнение показателей или характеристик вводимых образов недопустимо, поскольку приводит к его компрометации и не удовлетворяет требованиям стандартов по высоконадежной биометрии [43]. Следовательно, для решения этой задачи требуется разработка вариантов безопасных бескомпроматных индикаторов качества предъявленной биометрии [58], спецификация их поведения и размещения в схеме преобразования биометрия-код.