Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по защите информации(1).DOC
Скачиваний:
145
Добавлен:
02.05.2014
Размер:
465.92 Кб
Скачать

58.Семейство ключей hardlock.

Предназначен для защиты ПО и БД от НСК и НСИ. Базируется на 3-х компонентах: 1) ЭКHARDLOCK 2) криптокартаCRYPTO PROGRAMMER CARD для программирования ключей3) ПО HARDLOCK BISTRO, обеспечивает реализацию надежной системы защиты. Ключ использует специальную заказную МСASIC-чип и имеет перепрограммируемую память, что обеспечивает защиту от НС воспроизведения ключей и возможность использования сложных алгоритмов преобразования данных. При работе с ключами осуществляется шифрование данных. При шифровании используется временный сеансовый ключ, который зашифровывается на ключе шифрования и хранится в самом ЭК. Шифрование данных производится внутри ключа блоками по 64 бита. За одно обращение к ключу может обрабатываться до 64 килобайт. Длина ключа шифрования - 64 бита, а длина сеансового ключа – 48 бит. Скорость шифрования на процессореPentium 166MMX3,5 мегабита в секунду. Ключ программируется с помощью специальной платы. Каждый экземпляр платы является уникальным и позволяет задавать до 43680 различных вариантов работы алгоритма шифрования, кроме того, любая карта при изготовлении получает уникальный базовый код, что обеспечивает уникальность набора из 43680 вариантов для любой карты. Все модели ключей совместимы между собой. Напряжение программирования ключа 18В. Плата вставляется вISA-слот, адресное пространство 2-го или 3-го параллельного порта. Плата выполнена на базе заказной МС, что обеспечивает (ASIC) безопасное хранение ключевой информации, возможность настройки алгоритма шифрования, а также запись данных на программное ЗУ. Ключи можно программировать многократно. Программирование с помощью криптоплаты обеспечивает высокий уровень защиты. Ключ может работать вDOS, Windows и других ОС (OS/2, различные клоныUNIX). Имеется традиционный набор ключей: 1)обычный –HARDLOCK-EYE к параллельному порту 2) HARDLOCK – EYE MEMORY имеет дополнительные 128 байт энергонезависимой памяти из которой 96 программируются только с использованием криптоплаты программирования, а остальные доступны для защ. приложений как по чтению так и по записи. Содержимое памяти ключа аппаратно шифруется и подписывается, что обеспечивает невозможность их несанкционированного перепрограммирования. 3)HARDLOCK TWINможно подключать как к параллельному, так и к последовательному портам (два варианта – обычный и сMEMORY). 4)HARDLOCK INTERNAL – реализован в виде внутренней платы, вставляемой вISA слот компьютера. По своим возможностям напоминаетHARDLOCK – EYE MEMORY. Достоинства а) не занимает последовательный и параллельный порт б) защита не бросается в глаза в) трудно спиздить. Для USB для программирования необходимо специальное устройство -USB CRYPTO KEY. ПО ключей HARDLOCK: 1) espresso 2) espresso wizard 3) capuccino 4) latteccino. Назначение систем то же самое.О компонентах: 1) позволяетменять опции защиты, а именно режимы шифрования файлов, количество пользователей в сети, количество запусков или ограничение по времени, меняет параметры антиотладочных процедур и параметров фоновой проверки ключа2) обеспечиваетбыстрое создание автоматической защиты по методу защищающих конвертов3) предназначендля программирования и тестирования ключей. Берет параметры программирования из подсистемыespresso или из проектного файла. Позволяет просмотреть, как ключ был запрограммирован ранее и при необходимости перепрограммировать его. А также позволяет изменять параметры криптоплаты программирования.4) Представляетсобой интерактивное руководство по встраиванию функцийAPI в защищаемое приложение. Есть несколько вспомогательных средств –HARDLOCK DIAG – позволяет быстро определить и устранить возникшие проблемы с ключами, как на индивидуальном компьютере, так и в сети. Она сканирует установленное оборудование, настройки ОС, установленные драйверы, позволяет формировать подробный отчет, позволяет обнаружить причину неисправности.HARDLOCK SERVER – обращение к сетевому ключу. Поддерживает протоколыTCP/IP, IPX/SPX, NETBIOS. HARDLOCK SERVER ADMINISTRATOR позволяет управлять работойHARDLOCK SERVERа с любойPC. HARDLOCK WEB обеспечивает защитуWEB страниц от неавторизованного доступа методом прозрачного шифрования. Для расшифровки содержимого страницы необходим ключHARLOCK. Перед размещением на сайтеHTML страницы, она шифруется специальной утилитой, после чего размещается наWEB – сервере, а со стороны клиента в браузер добавляется встраиваемая компонента, получеющая из ключа параметры шифровки. При обращении к зашифрованной странице, при наличии правильного ключа производится ее автоматическая расшифровка.60.МЕТОДЫ ИССЛЕДОВАНИЯ ПО.

Краеугольным камнем проектирования систем защиты является разработка средств, препятствующих изучению алгоритма работы системы. При отсутствии таких средств квалифицированный программист легко сможет разобраться в логике работы программы и удалить систему защиты. В настоящее время МИПО используется не только хакерами, но и с целью обнаружения закладок. Например, вирусологами с целью обнаружения вредного ПО. При этом необходимо построить сам алгоритм на языке удобном для последующего анализа, а затем выполнить анализ полученного алгоритма. СИПО делятся на 2 класса:1) Статические2) Динамические.1) Оперируютс исполняемым кодом программы как с данными и строят алгоритм без ее выполнения2) изучаютпрограмму интерпретируя ее в реальной или виртуальной вычислительной среде.1) Являютсяболее универсальными так как теоретически можно получить алгоритм всей программы в т. ч. и тех блоков которые редко или вообще не получают управления2) можностроить этот алгоритм только на основании конкретной трассы программы полученных при определенных входных данных. Задача получения полного алгоритма программы в этом случае эквивалентна построению исчерпывающего набора тестов для подтверждения правильности программы, что обычно малореально. Поэтому при динамическом исследовании обычно можно получит лишь часть алгоритма к числу (2) относятся отладчики, а к (1) – дизассемблеры. Отладчик обычно используется для отладки собственных программ, дизассемблеры изначально создавались для получения ассемблерного текста неизвестного алгоритма. Также используются контрольные точки (прерываниеINT 3). Имеются (в 386+) специальные отладочные регистры, куда записываются адреса останова. Также могут использоваться дискомпиляторы генерирующие из исполняемого кода программу на языке высокого уровня. Трассировщики запоминают каждую инструкцию, выполняемую процессором, а затем переводят данный набор в форму удобную для статического исследования, автоматически выделяя циклы, подпрограммы и т.д. Следящие системы - запоминающие и анализирующие трассу уже не инструкций, а других характеристик, например вызванный программой прерываний.

62.МЕТОДЫ ЗАЩИТЫ ПО ОТ ИССЛЕДОВАНИЯ. Цель: предотвратить анализ алгоритмов программ, входящих в состав системы защиты от исследования и копирования и самих программ, защищенных данной системой. Можно выделить следующие приемы ЗПОИ: 1) от дизассемблеров и дискомпиляторов- модификация кода программы приводит к тому, что дизассемблер не может достоверно распознать инструкции, команды и/или данные. Могут использоваться ряд приемов: а) зашифровка критичного кода и расшифровка иго самой системой защиты после размещения в памяти либо перед передачей управления на него, причем для усиления защитного эффекта дешифрацию программы желательно выполнить поэтапно в разных местах программы и в разные моменты ее работы б) как модификация шифрования может выступать архивирование с использованием саморазархивирующихся методов. Это обеспечивает уменьшение размера защищаемой программы и скрытие кода от дизассемблеров в) модификация кода непосредственно самой программой, т.е. например команд полученных с помощью сложения или вычитания 2) Скрытие команд передачи управления приводит к тому, что дизассемблер не может построить граф передачи управления. Приемы: а) косвенная передача управления б) модификация адреса перехода в коде программы в) использование нестандартных способов передачи управления, например использование вместо командыJMP команду возврата из подпрограммыRET.[JMP M] => [MOV AX, OFFSET M; PUSH AX; RET]. В стек заносится адрес метки перехода и переход черезRET. Осуществление командRET иCALL через командуJMP. Пример скрытого вызова подпрограммы (CALL) [CALL SUBR]=>[MOV AX,OFFSET M; PUSH AX; JMP SUBR; M: ]. В стек заносится адрес возврата, а командой JMP SUBR осуществляется переход на подпрограмму. M: - для возврата из SUBR. Скрытый RET: [POP BX;JMP BX] берет из стека адрес возврата и переходит на него. Скрытое прерывание: [INT 13H] => [PUSHF; PUSH CS;MOV AX,offset M,PUSH AX; XOR AX,AX; MOV ES, AX; JMP DWORD PTR ES:[13h*4];M:]. В первых двух командах в стек заносятся флаги и содержимое CS. В 3-й и 4-й в стек заносится точка возврата, а последующие команды обеспечивают переход на выполнение прерывания. г) включение в тело программы, если ее размер не велик, модулей с большим числом команд, не имеющих никакого отношения к программе, но так чтобы эта ненужность не была очевидной. Эти участки программы достаточно большого объема могут производить сложные вычисления. Они могут содержать вызов INT 13h, INT 21h и т.д. для привлечения внимания. 3) Изменение начала защищенной программы таким образом, чтобы стандартный дизассемблер не мог ее правильно дизассемблировать.

61.Методы защиты от отладчиков1) выявленияизменения операционной среды, чтобы привести к тому чтобы программа отказалась нормально работать (в случае изменений). Способы: а) проверка количества свободной памяти и сравнение ее с объемом, к которому задача привыкла с целью выявления слежки за программой с помощью резидентных модулей. б) проверка векторов прерываний, т.е. сравнение 1-ых команд ОС, обрабатывающих эти прерывания с теми командами, которые там должны быть и принудительное восстановление векторов прерываний, что позволяет избавиться от большинства присутствующих в памяти резидентных программ. в) Проверка временных характеристик программы, что позволяет выявить точки останова, включенные в программу. Тут возникает проблема учета быстродействия разных процессоров2) Подавлениеизменений операционной среды. Программа либо сама еще раз перенастраивает среду, либо вообще не может работать в возмущенной среде.Методы: а) расшифровкакодов в зависимости от эталонного состояния средыб) использованиеотладочных прерываний INT 1 и INT 3 для собственных нужд.в) использованиеабсолютной адресацииг) назначениестека программы в область используемого кода, что приводит к затиранию команд при работе со стеком.3) противодействиеустановке контрольных точек. отладчик или не может установить контрольную точку или программа распознает ееа) подсчетконтр. суммы участков кода программы, применяется для определения в теле программы контрольных точекб) чередованиекоманд запрета и разрешения прерываний, что затрудняет установку отладчиком контрольных точек.4) Нарушениеинтерфейса пользователя – приводит к тому, что пользователь не сможет пронаблюдать за ходом выполнения программы во время отработки защищенного механизмаа) можетблокироваться клавиатураб) блокируетсяили производятся специальные искажения во время работы защищенногомеханизма 5) Использованиеспецифических особенностей работы микропроцессора, например у intel процессоров происходит нарушения при работе отладчика конвейерной работы микропроцессора, а также происходит потеря одного трассировочного прерывания после команд, связанных с пересылкой сегментных регистров.6) Использованиеспецифических особенностей работы отладчиков позволяющих идентифицировать их работу.3. Защита от систем, следящих за прерываниями 1) Использованиеаппаратуры напрямую (по портам без использования прерываний)2) вызовнужных функций через прерывания более низкого уровня3) использованиянестандартных прерываний или точек входа в них.4) можетпроизводится перестановка векторов прерываний на свободные. Для того, чтобы слежение за известными векторами не дало результата. 4. Для защиты от семантического анализаторамогут использоваться функции внешне похожие на критичные но совершенно бесполезные на самом деле.МЕТОДЫ БОРЬБЫ СО СРЕДСТВАМИ ЗАЩИТЫ ОТ ИССЛЕДОВАНИЯ. 1. Еслипрограмма защищена только от средств статического анализа, она может быть легко изучена с помощью средств динамического анализа и наоборот.2. Методизменения одного байта – в момент, когда система защиты сравнивает контрольную информацию с эталонной, простым изменением команды перехода вы направляете ее по нужному пути. 3. Результатработы функции возвращающей текущую контрольную информацию может быть подменен на эталонное значение, например с помощью перехвата соответствующего прерывания.4. Когдасистема защиты расшифровала критичный код, он может быть скопирован в другое место памяти или на диск в момент или вскоре после передачи управления на него. Для борьбы с профессиональной защитой можно использовать следующее:1) интерпретацияпрограммы в полностью виртуальной среде, где эмулируются процессы, память, внешние устройства, операционная среда. При этом большинство методов противодействия становятся неэффективными. Проблемы в необходимости обеспечения точной эмуляции временных характеристик аппаратуры и недокументированных прерываний.2) Объединениетрассировщика и дизассемблера в единое статическо-динамическое средство исследования. Трассировщик в динамике проходит программу до того момента, когда нужно применить статическое исследование, попутно запоминая все команды переходов и строя граф передачи управления, после прохождения по определенному пути графа, можно вернуться к ближайшему узлу, сэмулировать ситуацию, при которой возможно прохождение по другой ветви, и пойти по ней, при этом проблем с перебором входных данных будет значительно меньше.МЕТОДЫ ИЗОЩРЕННОГО ПРОГРАММИРОВАНИЯ. Для борьбы с предыдущими:1. Внесениенеопределенностей в программный продукт путем динамической перестройки при разных запусках в последовательности выполнения независимых программ, или выполнение при разных запусках разных версий одной и той же подпрограммы. Причем выбор алгоритма из множества равнозначных для текущего состояния может выполняться случайным образом2. Полное изменениеисполняемого кода может быть достигнуто за счет наличия в системе взаимозаменяемых команд или их последовательности. И при очередном выполнении можно с определенной вероятностью производить замену той или иной команды на эквивалентную, что будет изменять программу при каждом ее запуске.

Соседние файлы в предмете Защита информации