Вырви глаз! Александр Гайша Хакер, номер #107, стр. 107-072-1 Все о биометрических системах контроля доступаЗдравствуй, дорогой друг! Сегодня мы немного поговорим о биометрии. Для этого предположим, что ты, попивая пивко на любимой проселочной дорожке, решил посетить святая святых, в народе - биотуалет. Подходя поближе, ты замечаешь, что старая знакомая бабка-контролер, расположившись неподалеку с подносом семечек, ностальгически посматривает на входную дверь туалета, в которую люди теперь могут входить совершенно беспрепятственно. В голове проносится шальная мысль о возможном изменении статуса уборной и ее переименовании в бесплатный туалет типа Макдоналдс, но нет! На заветной двери – табличка: «Пятку прислонять сюда», а рядом - замысловатое отверстие, куда каждый возжелавший должен прислонить часть себя. Итак, век биометрических технологий наступил... Немного о технологиях контроля доступаКак ты понял еще, наверное, в раннем детстве, в нашем суровом мире все хорошее и нужное почему-то закрыто от всеобщего обозрения и пользования. В общем-то, доступ в большинство заветных мест легко можно получить с помощью банальных денежных знаков, но, во-первых, это не всегда так (за какие такие средства тебя подпустили бы, скажем, к ядерному сараю Пентагона?), а во-вторых, нас с тобой сейчас не интересует получение доступа куда-то там путем нехилых ухищрений. Нам главное, что вообще принципиально существуют места, куда доступ нужно закрывать, ограничивать. Итак, в современном мире вовсю, так сказать, стоит задача ограничения доступа. В литературе штуки, которые призваны справляться с подобной задачей, называются системами контроля доступа, или сокращенно СКД (реже употребляется СКУД, где добавлено слово «управление»). Итак, как же можно контролировать доступ к какому-либо важному объекту, или, другими словами, какие бывают СКД? Вообще говоря, человека пропускают на желаемый объект тогда, когда у него есть то, что требуют от него решающие, пропускать его или нет (ну предположим, абонемент на посещение вышеобозначенной уборной). Поэтому, в зависимости от того, что именно у него должно быть, принято различать несколько типов СКД: парольные, атрибутные, биометрические, ну и, естественно, комбинированные. Парольная система требует от пользователя, чтоб у него был пароль. Ну, например, как теперь модно делать во все тех же туалетах крупных сетей быстрого питания: на чеке - код, читай: пароль, и, чтобы попасть куда надо или очень надо, опять-таки надо ввести этот код-пароль. Нормальному человеку ломать тут особо нечего – пароль можно друг другу передать, что делается во все тех же забегаловках с установленным кодом на доступ в «Мэ» и «Жо». Если же ты хакер, то спросить код доступа у соседа или, что еще хуже, получить его легально – просто несолидно. Все настоящие хакеры пароли ломают! Атрибутная система для допуска к вожделенному объекту требует наличия какой-нибудь финтифлюшки: раньше это была банальная корочка-пропуск, ну а в наши дни это обычно карточка типа кредитки, хотя это и необязательно – атрибут, в общем-то, может быть любым. Атрибуты бывают контактными (такие обычно показывают в крутых фильмах, когда главный герой, проходя в подземный бункер ЦРУ, эффектно проводит своей персональной карточкой в известной щели) и бесконтактными. Контактные атрибуты наиболее распространены в виде магнитных пластиковых карт (к банковским разновидностям которых многие из нас так стремятся). Возьмем хотя бы телефонные карты со встроенным чипом – чем не контактный атрибут? Из контактных можно еще упомянуть:
Что же касается бесконтактных карточек, то они, конечно, удобнее (не надо ничего доставать из карманов – обмен идет по радиоканалу) и надежнее, но при этом значительно дороже, поэтому не очень распространены. В качестве примера таких карт можно назвать карты Proximity. Тут подделка также маловероятна, так как чип, встроенный в карту, и считыватель общаются по защищенному криптографическому протоколу. В целом атрибуты, как ты понимаешь, намного надежнее паролей – ведь их нельзя так просто размножить. Однако и поменять атрибут легальному пользователю сложнее, нежели пароль. А если разобраться, то кто мешает передать атрибут стороннему субъекту? Как же ограничить доступ, подпуская к защищаемому объекту только избранных? Биометрия – ключ к спасениюВот мы и подошли к теме статьи. Итак, классно было бы проверять право доступа по самому человеку, при «входе» контролировать какие-то его личные характеристики (биометрические характеристики, то есть те, по которым можно измерить свойства живого субъекта). Некоторые характеристики у всех людей более-менее похожи (например, количество пальцев на левой ноге). Другие, наоборот, практически уникальны у каждого человека. Так, в криминалистике уже давно успешно применяется система опознавания личности по рисунку папиллярных линий на его пальцах (проще говоря, по отпечаткам пальцев). Вероятность совпадения рисунка у двух разных людей составляет не более одной миллионной (иногда называются еще меньшие цифры). В наш век суперкомпьютерных технологий появилась возможность контролировать все, что ты хочешь (а не только «пальчики»), то есть выбирать. А выбирать надо такие системы, которые не очень напрягают пользователя (то есть человека, который авторизуется). К примеру, психологически не очень комфортно каждый раз при приходе на работу «сдавать» отпечатки пальцев. Еще хуже куда-то прислонять глаз (вот лично у меня почему-то все время возникает мысль, что оттуда что-то вылезет и как стукнет прям по глазу!). Короче удобство – это первое, а второе (в действительности самое главное) – надежность распознавания пользователя (о показателях надежности читай во врезке). Для рассмотрения конкретных биометрических систем надо сказать пару слов об их классификации. Наиболее распространено разделение на аппаратные и программные системы, а также на статические и динамические. С первым разделением, в общем-то, все понятно, а вот второй способ надо рассмотреть подробнее. Статические системы еще называют физиологическими (это даже более распространенное название), а динамические системы – поведенческими. Первые проверяют какие-нибудь характеристики тела человека (отсюда название «физиологические»), которые не изменяются в течение достаточно длительных периодов его жизни (следовательно, «статические»). Это, например, те же самые отпечатки пальцев. Что же касается динамических (поведенческих) систем, то тут контролю подлежит не тело человека, а его привычки, поведение. Способ, особенности выполнения и конечный результат каких-либо заданных действий. Это, например, также распространенный в быту способ верификации документов подписью. Итак, пришло время рассмотреть некоторые конкретные биометрические системы. Физиологические биометрические системыЭтот класс систем наиболее надежен и обычно реализуется аппаратно (и поэтому это дорого). Рассмотрим некоторые примеры. Система распознавания отпечатков пальцев, на первый взгляд, достаточно сложна в реализации, но на самом деле это совершенно не так! Если в твоем железном друге есть сканер, то организовать такую СКД ты можешь и сам. Для этого тебе придется изучить технику работы с TWAIN-драйвером сканера и основы внедрения в механизм авторизации при входе в ОС Windows (ищем инфу по процессу Winlogon и библиотеке GINA), то есть вопросы чисто технические. Несколько сложнее организовать распознавание отпечатка и сравнение его с эталоном: тут придется поднапрячь мозги (использовать нейронные сети, что есть круто, либо какие-нибудь меры, характеризующие разницу двух изображений, что не так надежно и не круто) или взять какое-нибудь стороннее ПО. Что касается обмана систем распознавания отпечатков пальца, то практически все системы, которые могут встретиться нам в быту, легко обходятся простым подсовыванием фотографии нужного (отнюдь не 21-го) пальца. Другое дело – аппараты для доступа в серьезные учреждения. Эти системы помимо распознавания рисунка на пальце контролируют и другие его характеристики. Во-первых, датчики могут быть расположены пространственно, а не в одной плоскости, что сразу отсекает все попытки использования плоских изображений (зато можно подсунуть гипсовый макет пальца). Далее, система может контролировать температуру в некоторых характерных точках пальца. Ты, конечно, можешь сказать, что такой способ будет не очень надежным - сейчас я пришел с мороза, а вчера был в теплых перчатках. Что я могу на это ответить? Только то, что такие системы действительно существуют, и, значит, как-то они все-таки все это реализуют. Кроме того, можно измерять сопротивление некоторых участков кожи пальца и связанное с этой величиной значение электростатического потенциала. Как выясняется, сопротивление кожи зависит от ее толщины в этот месте, расположения кровеносных сосудов, распределения жира под ней и еще туевой хучи уникальных для каждого человека (и даже пальца!) параметров. А тут уже недалеко и до эффекта Кирлиана, на основании которого некоторые шарлатаны выстраивают картины человеческой ауры. Согласно их утверждениям, получается, что биометрическая система, контролирующая потенциалы на пальце, будет распознавать человека по его ауре! Не правда ли, надежный способ? :) Да что это мы все про отпечатки... Ведь есть еще уйма параметров тела человека, подходящих для надежного контроля его личности. Существуют системы, которые контролируют такие параметры:
В общем, все перечисленные системы делаются аппаратными, и стоимость их составляет 100 – 10 000 у.е., что не очень-то и мало при их серийной установке (например, на дверях в охраняемые помещения). Поведенческие биометрические системыЭтот класс СКД менее надежен, так как оценивает поведение человека, которое в принципе может меняться. Отсюда низкая точность работы этих систем. Но зато большинство из них могут быть программными, то есть не требующими специального аппаратного обеспечения. Кроме того, их работа может быть прозрачной для пользователя и непрерывной во времени, а значит, психологически удобной и не отвлекающей от привычной жизнедеятельности. Итак, аутентификация может проводиться по следующим аспектам:
И вот еще в чем привлекательность поведенческих систем: сделать такую СКД ты можешь легко и сам! Для этого подойдет любой язык программирования, который поддерживает создание приложений под Windows. Если ты выберешь более легкий путь, то достаточно один раз при старте Винды (или, может, при старте твоей защищенной программы) попросить пользователя ввести указанный ему текст. Поскольку при этом работа будет происходить исключительно в твоей собственной программе, то париться особо не нужно - замерить промежутки между нажатиями можно хотя бы по времени прихода сообщений WM_KEYDOWN. Затем эти интервалы нужно сравнить с эталонными значениями, которые были получены при наборе этой же фразы ранее. Сравнивать можно опять же двумя способами: с помощью какой-нибудь меры (Хемминга, Евклида – освежи матпознания на досуге) или с помощью распознающей нейронной сети (если ты еще не знаешь, что это такое, прочти обязательно где-нибудь в инете – это очень здоровское средство для распознавания любых образов). Однако так мы получим систему, работающую только один раз. А потом выйдешь ты на пару минуток, а какой-нибудь гад подойдет к твоему компьютеру и давай с него секретную инфу сливать – авторизацию-то ты уже прошел, она была однократной! Другое дело, если система будет непрерывной, то есть постоянно (и тихо) следящей за поведением пользователя. Тут уже надо продумать какой-то механизм получения глобальной информации о его действиях (ведь фокус ввода не все время будет в твоей программе). По мнению автора, наиболее оптимальным для указанных целей является использование крючьев (хуков или механизма фильтрации сообщений) ОС Windows. Надо сказать, что установленный глобальный хук позволяет нашей программе (а точнее, библиотеке) перехватывать сообщения, отправленные всем работающим программам, а значит, пока пользователь набирает очередную белиберду в Word’е, наша программа непрерывно контроллит его личность (кстати, сюда же можно и кейлоггер простой встроить). В общем, дерзай! Ты должен сделать нечто похожее, но круче! А что? Давай бабахай низкоуровневый драйвер клавиатуры, чтобы его вообще никак нельзя было обмануть, и чтобы еще туда можно было что-нибудь полезное впихнуть, и чтобы никто не догадался! На этом радостном призыве заканчиваю свое повествование и надеюсь, что кому-нибудь оно таки поможет в повышении своего образовательного уровня, а также в деле общего просвещения молодежи. Пару слов о надежности биометрических системВсе подобные системы характеризуются тремя показателями:
Немного о терминологииНадеюсь, ты часто слышишь слова «идентификация», «аутентификация» и прочая «ция». Я сам лично постоянно путаю их друг с другом и употребляю невпопад. Поэтому разберемся:
На диске ты найдешь исходник простейшей программулины, которую я написал специально для этой статьи. При желании с помощью нее ты сможешь изучать особенности биометрических систем. Единственным контролируемым параметром является время удержания каждой отдельно взятой клавиши. У программы есть два режима работы. В режиме «Обучение» она думает, что с ней работает законный пользователь, и считает среднее время удержания клавиш, которые записываются в файл ethalon.dat. Потом программу можно запустить в режиме «Контроль», и по набору того же самого (или другого) текста программа будет отслеживать время удержания клавиш текущего пользователя. Когда пользователь наберет достаточное количество букв (определяется константой NumSymb), произойдет сравнение имеющихся значений среднего времени с эталонным. Конечно, при этом даже у законного пользователя возникнет определенная погрешность (помним, что это все-таки поведенческая система, которой принципиально присущи погрешности). Так вот результат сравнения (кстати, он высчитывается с помощью меры Евклида) сравнивается с так называемой стандартной непохожестью, определяемой константой MaxNepoh (кстати, Nepoh возникло от слова «непохожесть», а не от того, о чем ты подумал). Таким образом, систему можно настраивать: сделаешь больше NumSymb - работа станет точнее, но авторизация будет происходить дольше; сделаешь меньше MaxNepoh - уменьшится FAR, но и возрастет FRR. Короче говоря, настройки, как обычно, в твоих руках. Ах да, забыл сказать: исходный текст моей программы можешь использовать, как тебе заблагорассудится, я тебе его дарю! WWW
DVDНа диске ты найдешь две программы, реализующие биометрическую проверку по нажатым клавишам. Одна из них моя :). |