Автор работы: Пользователь скрыл имя, 01 Февраля 2014 в 16:00, дипломная работа
С конца 80-ых, начала 90-ых годов проблемы связанные с защитой информации беспокоят как специалистов в области компьютерной безопасности, так и многочисленных пользователей персональных компьютеров. Это связано с глубокими изменениями, вносимыми компьютерной технологией в нашу жизнь. Изменился сам подход к понятию «информация». Этот термин сейчас больше используется для обозначения специального товара, который можно купить, продать, обменять на что-то другое и т.д. При этом стоимость информации часто превосходит стоимость самой вычислительной системы, в рамках которой она хранится, в десятки, а то и в сотни раз.
Атака по сторонним каналам (англ. Side Channel Attack) - класс атак на криптосистему, которые, в отличие от теоретического криптоанализа, пытаются получить информацию о ключе или исходном тексте не на основании исследования теоретического описания криптографического алгоритма, а на основании данных, полученных в результате наблюдения за физическим процессом работы устройства, реализующего криптографический алгоритм. Хотя подобные атаки были хорошо известны уже в 1980-х годах, они получили широкое распространение после публикации результатов Пола Кохера в 1996 году.
Примеры:
Криптографический примитив можно рассматривать с двух разных точек зрения: с одной стороны, это абстрактный математический объект (алгоритм, возможно параметризованный ключом, переводящий некоторый входной текст в выходной текст); с другой стороны, этот примитив в конечном счете должен быть реализован в программе, исполняемой на определенном процессоре, на определенном оборудовании, таким образом, он будет обладать определенной спецификой, присущей именно этой реализации.
«Классический» криптоанализ рассматривает криптографические примитивы с первой точки зрения. Второй подход используется в side-channel («обходной путь») криптоанализе. Side-channel криптоанализ использует особенности реализации, чтобы узнать секретные параметры, используемые в вычислениях. Следовательно, он обладает меньшей общностью — он работает только для заданной реализации, однако, при этом он зачастую значительно более мощный, чем «классический» аналог.
Side-channel атаки, обычно классифицируют по двум признакам:
Для инвазивных атак нужен прямой доступ к компьютеру или его компонентам(жучок). Неинвазивные атаки пользуются только информацией доступной извне компьютера (нежелательное, непредусмотренное излучение).
Активные атаки пытаются мешать должному функционированию оборудования (fault-induction attacks пытаются внести ошибки в вычисления). Пассивные атаки, напротив, просто наблюдают за работой устройства, не нарушая его.
Следует заметить, что компьютеры обычно оборудуются защитными механизмами, защищающими от проникновения (инвазивных атак). Неинвазивные же атаки заметить и предотвратить практически невозможно (например, нет способа определенно сказать прослушивает ли кто-то clock компьютера или нет). С экономический точки зрения, инвазивные атаки обычно более дорогие, поскольку один жучок может наблюдать только за одним компьютером.
К программным средствам защиты относятся специальные программы, которые предназначены для выполнения функций защиты и включаются в состав программного обеспечения систем обработки данных. Программная защита является наиболее распространенным видом защиты, чему способствуют такие положительные свойства данного средства, как универсальность, гибкость, простота реализации, практически неограниченные возможности изменения и развития и т.п.
Эффективной и надежной является та система, "взлом" которой достаточно долог и трудоемок. Основным параметром, определяющим эффективность средства защиты, является время, необходимое на снятие защиты.
Один из вариантов защиты - это использование «серийного номера», то есть сформированного по определенному алгоритму числа, которое указывается при установке программы. Программа установки (или сама прикладная программа) проверяет введенное значение на соответствие известному ей алгоритму, и в случае успеха - продолжает работать в штатном режиме. Таким образом, защищаются, например, операционные системы Windows, программные пакеты Corel Draw, Adobe PhotoShop и многие другие. Вариант очень удобен для конечного пользователя: можно сделать сколько угодно резервных копий, можно установить программу на любое количество компьютеров. Но именно это и не устраивает разработчиков ПО: действительно, имея один “правильный” ключ, можно создать сколько угодно “пиратских” копий, за которые платить совсем не обязательно.
Метод с использованием «ключ запроса - ключ ответа». Существует несколько вариаций, как правило это либо привязка к «имени владельца», либо к уникальному номеру привязанному к конфигурации компьютера. В данном случае в «ключе ответа» может содержатся информации о дате окончания лицензии, внутренний номер, информация о включенных модулях и их ограничениях.
Модифицированный метод «ключ запроса – файл ответа». В данном методе чаще всего «ключ запроса» является уникальным идентификационным запросом полученным на основании конфигурации компьютера, «файл ответа» может содержать в себе как ту же информацию, что и «ключ ответа», так и ключ для расшифровки части исполняемого кода внутри программы или вычислительные константы, или даже фрагменты исполняемого кода.
Наиболее распространенные методы скрытия исходного текста программы от стандартных средств дизассемблирования - шифрование и архивация. Непосредственное дизассемблирование защищенных таким способом программ, как правило, не дает нужных результатов. Но так как зашифрованная или архивированная программа чаще всего выполняет обратную операцию (дешифрацию или разархивирование) в первых же командах, на которые передается управление сразу после запуска программы, то для снятия такой защиты необходимо определить лишь момент дешифрации или разархивирования, а затем программными средствами можно "снять" в файл дамп памяти, занимаемой преобразованной программой, и прогнать этот файл через какой-нибудь дизассемблер.
Для усложнения процесса снятия такой защиты можно использовать поэтапную дешифрацию программы. В этом случае программа будет дешифрироваться не сразу в полном объеме, а отдельными участками в несколько этапов, разнесенных по ходу работы программы.
Отладка - этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится:
Существуют две взаимодополняющие технологии отладки.
Бороться с дизассемблерами и отладчиками можно подсчетом и проверкой контрольных сумм определенных участков программы, что позволяет определить, не установлены ли в теле проверяемого участка точки останова. Для установки точки останова отладчик заменяет код байта программы по указанному адресу (предварительно сохранив его) на код вызова прерывания, чем, конечно же, изменяет контрольную сумму программы. Этот факт и использует метод подсчета и проверки контрольных сумм.
Ещё один способ защиты - это запутывание - искусственное усложнение кода, с целью затруднить его читабельность и отладку (перемешивание кода, внедрение ложных процедур, передача лишних параметров в процедуры и т.п.)
Один из способов затруднения работы "взломщика" при анализе работы программы – это метод использования так называемых "пустышек". В качестве их выделяются участки программы достаточно большого объема, производящие некоторые значительные вычисления, но не имеющие никакого отношения к работе программы. В "пустышки" необходимо включать какие-либо фрагменты, которые могли бы заинтересовать "взломщика". Например, это могут быть вызовы таких прерываний, как 13Н, 21Н, 25Н, 26Н, их перехват и т. п.
Также существуют и другие программные методы защиты.
На мировом рынке
Среди средств ААА важное место
занимают аппаратно-программные инструме
Рис.1. УВИП и электронный замок
Доступ к информационным ресурсам компьютера пользователь получает после успешного выполнения процедур идентификации и аутентификации. Идентификация заключается в распознавании пользователя по присущему или присвоенному ему идентификационному признаку. Проверка принадлежности предъявленного им идентификатора (подтверждение подлинности) проводится в процессе аутентификации.
В аппаратно-программных средствах контроля доступа к компьютерам идентификация и аутентификация, а также ряд других важных защитных функций, которые описываются ниже, осуществляются с помощью электронного замка и УВИП до загрузки ОС.
Устройства ввода
В состав аппаратных средств УВИП входят идентификаторы и считывающие устройства (иногда считыватели могут отсутствовать). Современные УВИП принято классифицировать по виду идентификационных признаков и по способу их считывания (рис. 2).
Рис.2. Классификация УВИП
По способу считывания они подразделяются на контактные, дистанционные (бесконтактные) и комбинированные.
Контактное считывание
идентификационных признаков
Бесконтактный (дистанционный) способ считывания не требует четкого позиционирования идентификатора и считывателя. Для чтения данных нужно либо на определенное расстояние поднести идентификатор к считывателю (радиочастотный метод), либо оказаться с ним в поле сканирования считывающего устройства (инфракрасный метод).
Комбинированный способ подразумевает
сочетание обоих методов
По виду используемых идентификационных признаков УВИП могут быть электронными, биометрическими и комбинированными.
В электронных УВИП идентификационные
признаки представляются в виде кода,
записанного в электронную
В биометрических устройствах идентификационными признаками являются индивидуальные физические признаки человека (отпечатки пальцев, геометрия ладони, рисунок сетчатки глаза, голос, динамика подписи и т. д.).
В комбинированных УВИП
для идентификации используется
несколько идентификационных
На российском рынке
компьютерной безопасности предлагаются
разнообразные УВИП. К сожалению,
изделия отечественной
iButton
Разработанное компанией Dallas Semiconductor устройство ввода идентификационных признаков на базе идентификатора iButton относится к классу электронных контактных УВИП.
Модельный ряд идентификаторов iButton довольно широк и разнообразен (более 20 моделей). В общем виде iButton представляет собой микросхему, вмонтированную в герметичный стальной корпус (рис. 3). Корпус отдаленно напоминает батарейку для наручных часов и имеет диаметр 17,35 мм при высоте 5,89 мм (корпус F5) или 3,1 мм (корпус F3). Он защищает и обеспечивает высокую степень защищенности идентификатора от воздействия агрессивных сред, пыли, влаги, внешних электромагнитных полей, механических ударов и т. п. Идентификатор легко крепится на носителе (карточке, брелоке).
Рис.3. Идентификатор iButton
Обмен информацией идентификатором и компьютером происходит в соответствии с протоколом 1-Wire с помощью разнообразных считывающих устройств (адаптеров последовательного, параллельного и USB-портов, контактных устройств Touch Probe). Для записи и считывания данных из идентификатора нужно, чтобы корпус iButton соприкоснулся со считывающим устройством. Время контакта - не более 5 мс, гарантированное количество контактов составляет несколько миллионов. Интерфейс 1-Wire обеспечивает обмен информацией на скоростях 16 кбит/с или 142 кбит/с (ускоренный режим).