Контрольная работа: Аппаратные средства защиты информации
· Особо следует остановиться на угрозах, которым могут подвергаться компьютерные сети. Основная особенность любой компьютерной сети состоит в том, что ее компоненты распределены в пространстве. Связь между узлами сети осуществляется физически с помощью сетевых линий и программно с помощью механизма сообщений. При этом управляющие сообщения и данные, пересылаемые между узлами сети, передаются в виде пакетов обмена. Компьютерные сети характерны тем, что против них предпринимают так называемые удаленные атаки. Нарушитель может находиться за тысячи километров от атакуемого объекта, при этом нападению может подвергаться не только конкретный компьютер, но и информация, передающаяся по сетевым каналам связи.
· Обеспечение информационной безопасности
Формирование режима информационной безопасности - проблема комплексная. Меры по ее решению можно подразделить на пять уровней:
- законодательный (законы, нормативные акты, стандарты и т.п.);
- морально-этический (всевозможные нормы поведения, несоблюдение которых ведет к падению престижа конкретного человека или целой организации);
- административный (действия общего характера, предпринимаемые руководством организации);
- физический (механические, электро- и электронно-механические препятствия на возможных путях проникновения потенциальных нарушителей);
- аппаратно-программный (электронные устройства и специальные программы защиты информации).
Единая совокупность всех этих мер, направленных на противодействие угрозам безопасности с целью сведения к минимуму возможности ущерба, образуют систему защиты.
Надежная система защиты должна соответствовать следующим принципам:[3]
- Стоимость средств защиты должна быть меньше, чем размеры возможного ущерба.
- Каждый пользователь должен иметь минимальный набор привилегий, необходимый для работы.
- Защита тем более эффективна, чем проще пользователю с ней работать.
- Возможность отключения в экстренных случаях.
- Специалисты, имеющие отношение к системе защиты должны полностью представлять себе принципы ее функционирования и в случае возникновения затруднительных ситуаций адекватно на них реагировать.
- Под защитой должна находиться вся система обработки информации.
- Разработчики системы защиты, не должны быть в числе тех, кого эта система будет контролировать.
- Система защиты должна предоставлять доказательства корректности своей работы.
- Лица, занимающиеся обеспечением информационной безопасности, должны нести личную ответственность.
- Объекты защиты целесообразно разделять на группы так, чтобы нарушение защиты в одной из групп не влияло на безопасность других.
- Надежная система защиты должна быть полностью протестирована и согласована.
- Защита становится более эффективной и гибкой, если она допускает изменение своих параметров со стороны администратора.
- Система защиты должна разрабатываться, исходя из предположения, что пользователи будут совершать серьезные ошибки и, вообще, имеют наихудшие намерения.
- Наиболее важные и критические решения должны приниматься человеком.
- Существование механизмов защиты должно быть по возможности скрыто от пользователей, работа которых находится под контролем.
2. Аппаратные средства защиты информации
К аппаратным средствам защиты относятся различные электронные, электронно-механические, электронно-оптические устройства. К настоящему времени разработано значительное число аппаратных средств различного назначения, однако наибольшее распространение получают следующие:
- специальные регистры для хранения реквизитов защиты: паролей, идентифицирующих кодов, грифов или уровней секретности;
- устройства измерения индивидуальных характеристик человека (голоса, отпечатков) с целью его идентификации;
- устройства для шифрования информации (криптографические методы).
2.1. Аппаратные ключи защиты
Уже много лет на рынке средств защиты программ от несанкционированного тиражирования присутствуют так называемые аппаратные ключи защиты (Dongles). Разумеется, компании, продающие такие устройства, представляют их если не как панацею, то уж как надежное средство противодействия компьютерному пиратству. Но насколько серьезным препятствием могут служить аппаратные ключи?Аппаратные ключи защиты можно пытаться классифицировать по нескольким признакам.
Если рассматривать возможные типы подключения, то бывают, например, ключи на порт принтера (LPT), последовательный порт (СОМ), USB-порт и ключи, подключаемые к специальной плате, вставляемой внутрь компьютера.
Можно при сравнении ключей анализировать удобство и функциональность сопутствующего программного обеспечения. Например, для некоторых семейств аппаратных ключей разработаны автоматические протекторы, позволяющие защитить программу "за один клик", а для некоторых такие протекторы отсутствуют. Определенный интерес представляет список языков программирования, для которых разработчик ключей предоставил библиотеки и примеры. Поддержка языков (доступ к API ключа из определенной среды) нужна для того, чтобы программист смог более эффективно использовать ключ для защиты разрабатываемой программы. Важен также список аппаратных платформ и операционных систем, для которых поддерживается интерфейс с ключом. Некоторых может заинтересовать применимость ключа для сетевого лицензирования программного обеспечения.[4]
Однако все сказанное о ключах относится скорее к маркетингу, чем к защите информации. Для защиты не важно, какого цвета корпус у ключа и на каком языке можно читать документацию. А по-настоящему важно только то, что в ключе является секретным и неповторимым и способно ли это "нечто" обеспечить необходимым уровень защиты.
Поэтому в дальнейшем ключи рассматриваются исключительно как аппаратные устройства, работающие в определенных условиях и имеющие некоторую функциональность. Полезными признаются только те функции, которые невозможно реализовать чисто программными средствами и для которых не существует эффективной атаки.
Будем исходить из предположения, что у противника есть физический доступ к ключу, а основная задача заключается в том, чтобы за разумное время получить копию программы, функционирующую в отсутствие ключа точно так же, как при его наличии.
Рассматривать атаки на систему, в которой не хватает некоторых узлов необходимых для работы, особого смысла нет - если зашифровать программу и не сообщить противнику ключ шифрования, легко получить высокую стойкость и без применения аппаратных ключей. Только это уже нельзя называть защитой от копирования.
Модификация кода и эмуляция
Для того чтобы заставить программу работать так, как она работала бы с ключом, можно или внести исправления в программу, или эмулировать наличие ключа. Модификация программы, как правило, возможна лишь в тех случаях, когда ответы, полученные от ключа, просто проверяются, но не являются математически необходимыми для обеспечения работоспособности программы. Но это значит, что ключ, по большому счету, не требуется для достижения полной функциональности. Такое случается, когда программа не использует всех возможностей ключа или когда возможности ключа очень ограничены.
При эмуляции никакого воздействия на программу не происходит, т.е., например, не нарушается контрольная сумма исполняемых модулей. И полный эмулятор, если его удается построить, просто повторяет все поведение реального ключа.
Не вдаваясь очень глубоко в технические подробности, будем исходить из предположения, что у противника есть следующие возможности:
• Перехватывать все обращения к ключу;
• Протоколировать и анализировать эти обращения;
• Посылать запросы к ключу;
• Получать ответы от ключа;
• Протоколировать и анализировать эти ответы;
• Посылать ответы от имени ключа.
Такие широкие возможности противника можно объяснить тем, что в его распоряжении есть вся та информация, какая есть и у программиста, защищающего программу с помощью аппаратного ключа. То есть противник имеет доступ ко всем открытым интерфейсам, документации, драйверам и может их анализировать на практике с привлечением любых средств. Следовательно, можно предположить, что противник со временем научится полностью контролировать протокол, по которому происходит обмен информацией между прикладной программой и ключом. Контроль может осуществляться на любом уровне, но чаще всего запросы перехватываются при передаче данных между программой и драйвером ключа.
Однако стоит учитывать, что возможность эмуляции еще не означает, что противник способен вычислять правильные ответы на любые запросы, которые посылает ключу программа.
Ключи с памятью.Это, наверное, самый простой тип ключей. Ключи с памятью имеют определенное число ячеек, из которых разрешено считывание. В некоторые из этих ячеек также может производиться запись. Обычно в ячейках, недоступных для записи, хранится уникальный идентификатор ключа.
Когда-то давно существовали ключи, в которых перезаписываемой памяти не было вообще, а программисту для считывания был доступен только идентификатор ключа. Но очевидно, что на ключах с такой функциональностью построить серьезную защиту просто невозможно.
Правда, и ключи с памятью не способны противостоять эмуляции. Достаточно один раз прочитать всю память и сохранить ее в эмуляторе. После этого правильно эмулировать ответы на все запросы к ключу не составит большого труда.
Таким образом, аппаратные ключи с памятью в заданных условиях не способны дать никаких преимуществ по сравнению с чисто программными системами.
Ключи с неизвестным алгоритмом.Многие современные аппаратные ключи содержат секретную функцию преобразования данных, на которой и основывается секретность ключа. Иногда программисту предоставляется возможность выбрать константы, являющиеся параметрами преобразования, но сам алгоритм остается неизвестным.
Проверка наличия ключа должна выполняться следующим образом. При разработке защиты программист делает несколько запросов к алгоритму и запоминает полученные ответы. Эти ответы в какой-то форме кодируются в программе. Во время выполнения программа повторяет те же запросы и сравнивает полученные ответы с сохраненными значениями. Если обнаруживается несовпадение, значит, программа получает ответ не от оригинального ключа.
Эта схема имеет один существенный недостаток. Так как защищенная программа имеет конечный размер, то количество правильных ответов, которые она может хранить, также является конечным. А это значит, что существует возможность построения табличного эмулятора, который будет знать правильные ответы на все запросы, результат которых может проверить программа.[5]
В рекомендациях по защите программ с помощью аппаратных ключей даются советы, как сделать фиктивные запросы со случайными данными так, чтобы затруднить построение эмулятора. Однако если программа при запуске делает 100 запросов, результат которых может быть проверен, и 100 случайных запросов, результат которых не проверяется, то, запустив программу 10 раз, очень легко выделить действительные запросы, повторившиеся 10 раз, и отсечь все фиктивные, встретившиеся по 1-2 раза.
Конечно, не стоит всегда проверять наличие ключа выполнением одной и той же серии запросов с проверкой. Лучше выполнять проверки в разных частях программы и в разное время. Это может значительно усложнить сбор статистики для отсечения фиктивных запросов.
Но не стоит забывать, что противник может проанализировать программу и попытаться в дизассемблере найти все обращения к ключу. Это поможет ему выяснить, ответы на какие из запросов проверяются, и построить компактную таблицу для эмуляции. Так что ключи с неизвестным алгоритмом могут затруднить, но не могут предотвратить построение эмулятора для конкретной версии конкретной программы. Зато при переходе к новой версии, если перечень проверки программой ответов на запросы будет изменен, противнику придется заново выполнять сбор статистики или анализ программы.
Атрибуты алгоритмов.В некоторых ключах алгоритму могут сопутствовать дополнительные атрибуты. Так, например, в ключах Sentinel SuperPro алгоритм может быть защищен паролем и начинает работать только после того, как будет выполнена активация, в ходе которой правильный пароль должен быть передан ключу.
Активация позволяет разработчику предусмотреть возможность изменения функциональности ключа на стороне пользователя. То есть программа может иметь несколько версий (например базовую, расширенную и профессиональную), и в ключе изначально активированы только те алгоритмы, которые необходимы для функционирования базовой версии. Если пользователь решит перейти к более полной версии, разработчик пришлет ему инструкции по активации алгоритмов, соответствующих расширенной или профессиональной версии.
Однако все достоинства алгоритмов, активируемых по паролю, опираются на секретность пароля, а не на свойствах аппаратного ключа. Следовательно, аналогичная защита может быть реализована чисто программными средствами. Другой тип атрибутов алгоритмов, поддерживаемых ключами Sentinel SuperPro, - это счетчики. С активным алгоритмом может быть связан счетчик, изначально имеющий ненулевое значение. Программа при каждом запуске (или выполнении определенной операции, например при экспорте данных) вызывает специальную функцию API-ключа, уменьшающую значение счетчика на единицу. Как только счетчик принимает нулевое значение, алгоритм деактивируется и перестает работать.
Однако данная схема не способна помешать применению эмулятора. Противник может перехватывать и предотвращать все попытки уменьшения значения счетчика. Следовательно, алгоритм никогда не будет деактивирован, и в распоряжении противника будет неограниченное время для сбора данных, необходимых для табличной эмуляции.
Противостоять эмуляции может счетчик, значения которого уменьшается при каждом обращении к алгоритму. Но в этом случае возникает опасность, что из-за сбоев в работе программы или операционной системы иногда значение счетчика будет уменьшаться без совершения программой полезных действий. Причина проблемы в том, что обращение к алгоритму должно производиться до того, как программа совершит полезную работу, а счетчик должен уменьшаться только в том случае, если работа выполнена успешно. Но автоматическое уменьшение счетчика при обращении к алгоритму такую функциональность не обеспечивает - количество оставшихся попыток уменьшается независимо от успеха выполнения операции.
Ключи с таймером.Некоторые производители аппаратных ключей предлагают модели, имеющие встроенный таймер. Но для того, чтобы таймер мог работать в то время, когда ключ не подключен к компьютеру, необходим встроенный источник питания. Среднее время жизни батареи, питающей таймер, составляет 4 года, и после ее разрядки ключ перестанет правильно функционировать. Возможно, именно из-за сравнительно короткого времени жизни ключи с таймером применяются довольно редко. Но как таймер может помочь усилить защищенность?
Ключи HASP Time предоставляют возможность узнавать текущее время, установленное на встроенных в ключ часах. И защищенная программа может использовать ключ для того, чтобы отследить окончание тестового периода. Но очевидно, что эмулятор позволяет возвращать любые показания таймера, т. е. аппаратная часть никак не повышает стойкость защиты. Хорошей комбинацией является алгоритм, связанный с таймером. Если алгоритм может быть деактивирован в определенный день и час, очень легко будет реализовывать демонстрационные версии программ, ограниченные по времени.
Но, к сожалению, ни один из двух самых популярных в России разработчиков аппаратных ключей не предоставляет такой возможности. Ключи HASP, производимые компанией Aladdin, не поддерживают активацию и деактивацию алгоритмов. А ключи Sentinel SuperPro, разработанные в Rainbow Technologies, не содержат таймера.
Ключи с известным алгоритмом.В некоторых ключах программисту, реализующему защиту, предоставляется возможность выбрать из множества возможных преобразований данных, реализуемых ключом, одно конкретное преобразование. Причем подразумевается, что программист знает все детали выбранного преобразования и может повторить обратное преобразование в чисто программной системе. Например, аппаратный ключ реализует симметричный алгоритм шифрования, а программист имеет возможность выбирать используемый ключ шифрования. Разумеется, ни у кого не должно быть возможности прочитать значение ключа шифрования из аппаратного ключа.
В такой схеме программа может передавать данные на вход аппаратного ключа и получать в ответ результат шифрования на выбранном ключе Но тут возникает дилемма. Если в программе отсутствует ключ шифрования, то возвращаемые данные можно проверять только табличным способом, а значит, в ограниченном объеме. Фактически имеем аппаратный ключ с неизвестным программе алгоритмом. Если же ключ шифрования известен программе, то можно проверить правильность обработки любого объема данных, но при этом существует возможность извлечения ключа шифрования и построения эмулятора. А если такая возможность существует, противник обязательно попытается ею воспользоваться.
Так что аппаратное выполнение симметричного алгоритма шифрования с известным ключом не дает ничего нового с точки зрения защиты. Но есть еще и асимметричные алгоритмы.[6]
Когда ключ реализует асимметричный алгоритм шифрования, программисту не обязательно знать используемый секретный ключ. Даже можно сказать, что отсутствие возможности создать программную копию аппаратного асимметричного шифрующего устройства не сужает, а расширяет область возможных применений, т.к. сокращается перечень возможных способов компрометации секретного ключа. В любом случае, для проверки того, что аппаратный ключ присутствует и правильно выполняет вычисления, достаточно знать открытый ключ.
Эта схема не может быть обойдена только эмуляцией, т. к. для построения полного эмулятора требуется по открытому ключу шифрования вычислить секретный ключ. А это математически сложная задача, не имеющая эффективного решения.
Но у противника остается возможность подмены открытого ключа в программе, и если такая подмена пройдет незамеченной, построить программный эмулятор не составит труда. Так что асимметричные алгоритмы, реализованные на аппаратном уровне, способны обеспечить некопируемость защищенной программы, но только в том случае, если удастся предотвратить подмену открытого ключа шифрования.
Ключи с программируемым алгоритмом.Очень интересным решением с точки зрения стойкости защиты являются аппаратные ключи, в которых может быть реализован произвольный алгоритм. Сложность алгоритма ограничивается только объемом памяти и системой команд ключа.
В этом случае для защиты программы важная часть вычислений переносится в ключ, и у противника не будет возможности запротоколировать правильные ответы на все запросы или восстановить алгоритм по функции проверки. Ведь проверка, как таковая, может вообще не выполняться - результаты, возвращаемые ключом, являются промежуточными величинами в вычислении какой-то сложной функции, а подаваемые на вход значения зависят не от программы, а от обрабатываемых данных.
Главное - это реализовать в ключе такую функцию, чтобы противник не смог по контексту догадаться, какие именно операции производятся в ключе.
2.2. Биометрические средства защиты.
Биометрика – это научная дисциплина, изучающая способы измерения различных параметров человека с целью установления сходства или различий между людьми и выделения одного конкретного человека из множества других людей, или, другими словами, – наука, изучающая методики распознавания конкретного человека по его индивидуальным параметрам.
Современные биометрические технологии могут применяться и применяются не только в серьезных режимных учреждениях, но и в повседневной жизни. Зачем нужны смарт-карты, ключи, пароли и другие подобные вещи, если они могут быть украдены, потеряны, забыты? Новое информационное общество требует от нас запоминания множества пин-кодов, паролей, номеров для электронной почты, доступа в Интернет, к сайту, к телефону… Список можно продолжать практически бесконечно. На помощь, пожалуй, сможет прийти только ваш уникальный личный биометрический пропуск – палец, рука или глаз. А во многих странах – и идентификатор личности, т. е. чип с вашими индивидуальными биометрическими параметрами, уже зашитый в документах, удостоверяющих личность.[7]
Биометрическая система, независимо от того, на какой из технологий она построена, работает по следующему принципу: сначала записывается образец биометрической характеристики человека, для большей точности часто делается несколько образцов. Собранные данные обрабатываются, переводятся в цифровой код.
При идентификации и верификации в систему вводятся характеристики проверяемого человека . Далее они оцифровываются, а затем сравниваются с сохраненными образцами. По некоторому алгоритму система выявляет, совпадают они или нет, и выносит решение о том, удалось ли идентифицировать человека по предъявленным данным или нет.
Биометрические технологии
В биометрических системах могут быть использованы физиологические или поведенческие характеристики. К физиологическим относятся отпечатки пальцев, форма кисти руки, характеристики лица, рисунок радужной оболочки глаза. К поведенческим характеристикам можно отнести особенности или характерные черты поведения человека, приобретенные или появившиеся со временем, это могут быть динамика подписи, тембр голоса, динамика нажатия на клавиши и даже походка человека. Биометрические системы оценивают по двум основным параметрам: ошибкам первого рода — вероятность допуска «чужого» и второго рода – вероятность в отказе «своему». Современные системы могут обеспечивать вероятность ошибки первого рода в районе 0,001%, второго – около 1-5%.
Одним из важнейших критериев наряду с точностью идентификации и верификации при разработке систем является «дружелюбность» каждой из технологий. Процесс должен быть быстрым и простым: например, встать перед видеокамерой, сказать несколько слов в микрофон или дотронуться до сканера отпечатков пальцев. Основным преимуществом биометрических технологий является быстрая и простая идентификация без причинения особых неудобств человеку.
Идентификация по отпечаткам пальцев – наиболее распространенная и развитая биометрическая технология. До 60% биометрических приборов используют именно ее. Плюсы здесь очевидны: отпечатки пальцев каждого человека уникальны по своему рисунку, даже у близнецов они не совпадают. Сканеры последних поколений стали надежны, компактны и весьма доступны по цене. Для снятия отпечатка и дальнейшего распознавания образца используются три основные технологии: оптическая, полупроводниковая и ультразвуковая.[8]
Оптические сканеры
В основе их работы лежат оптические методы получения изображения.
- FTIR-сканеры (Frustrated Total Internal Reflection) используют эффект нарушенного полного внутреннего отражения. При этом палец просвечивается, а для приема световой картинки используется специальная камера.
- Оптоволоконные сканеры (Fiber Optic Scanners) представляют оптоволоконную матрицу, каждое волокно которой снабжено фотоэлементом. Принцип получения рисунка - фиксация остаточного света, проходящего через палец к поверхности сканера.
- Электрооптические сканеры (Electro-Optical Scanners). Специальный электрооптический полимер с помощью светоизлучающего слоя высвечивает отпечаток пальца, который фиксируется с помощью специальной камеры.
- Бесконтактные сканеры (Touchless Scanners). Палец прикладывается к специальному отверстию в сканере, несколько источников света его подсвечивают снизу. Отраженный свет через собирательную линзу проецируется на камеру. Контакта с поверхностью считывающего устройства не происходит.
- Роликовые сканеры (Roller-Style Scanners). При сканировании пользователь пальцем прокатывает небольшой прозрачный цилиндр. Внутри него размещены статический источник света, линза и камера. Во время движения пальца производится серия снимков папиллярного узора, соприкасающегося с поверхностью.
Полупроводниковые сканеры
В основе их действия лежит использование свойств полупроводников, изменяющихся в местах контакта с гребнями папиллярного узора. Во всех полупроводниковых сканерах применяется матрица чувствительных микроэлементов.
- Емкостные сканеры (Сapacitive scanners) построены на эффекте изменения емкости pn-перехода полупроводникового прибора при контакте гребня папиллярного узора и элемента полупроводниковой матрицы.
- Чувствительные к давлению сканеры (pressure scanners). При прикладывании пальца к сканирующей поверхности выступы папиллярного узора оказывают давление на ряд сенсоров матрицы из пьезоэлементов, соответственно впадины никакого давления не оказывают. Матрица полученных напряжений преобразуется в изображение поверхности пальца.
- Термо-сканеры (thermal scanners) — используются сенсоры, состоящие из пироэлектрических элементов, позволяющих фиксировать разницу температуры и преобразовывать ее в напряжение. При прикладывании пальца к сенсору по разнице температуры выступов папиллярного узора и температуры воздуха, находящегося во впадинах, строится температурная карта поверхности пальца, которая преобразуется в цифровое изображение.
- Радиочастотные сканеры (RF-Field scanners) — используется матрица чувствительных элементов, каждый из которых работает как маленькая антенна. Слабый радиосигнал направляется на сканируемую поверхность пальца, каждый из чувствительных элементов матрицы принимает отраженный от папиллярного узора сигнал. Величина наведенной в каждой микроантенне ЭДС зависит от наличия или отсутствия вблизи нее гребня папиллярного узора. Полученная таким образом матрица напряжений преобразуется в цифровое изображение отпечатка пальца.[9]