Реферат: Основы организации систем защиты программного обеспечения




Тема3. Основы организации систем защиты программного обеспечения.

Занятие3. Практическая реализация систем защиты программного обеспечения.


1. Основные показатели эффективности систем защиты
2. СПЗО с электронными ключами 3. СЗПО HASP


Основная часть:
1.Основные показатели эффективности систем защиты
Необходимо отметить, что пользователи явно ощущают лишь отрицательные стороны систем защит. А производители ПО рассматривают только относящиеся к ним «плюсы» и «минусы» систем защиты и практически не рассматривают факторы, относящиеся к конечному потребителю. По результатам исследований был разработан набор показателей применимости и критериев оценки СЗПО.

Показатели применимости:

Технические – соответствие СЗПО функциональным требованиям производителя ПО и требованиям по стойкости, системные требования ПО и системные требования СЗПО, объём ПО и объём СЗПО, функциональная направленность ПО, наличие и тип СЗ у аналогов ПО - конкурентов.

Экономические – соотношение потерь от пиратства и общего объёма прибыли, соотношение потерь от пиратства и стоимости СЗПО и её внедрения, соотношение стоимости ПО и стоимости СЗПО, соответствие стоимости СЗПО и её внедрения поставленным целям.

Организационные – распространённость и популярность ПО, условия распространения и использования ПО, уникальность ПО, наличие угроз, вероятность превращения пользователя в злоумышленника, роль документации и поддержки при использовании ПО.

Критерии оценки:

Защита как таковая – затруднение нелегального копирования и доступа, защита от мониторинга, отсутствие логических брешей и ошибок в реализации системы.

^ Стойкость к исследованию/взлому – применение стандартных механизмов, новые/нестандартные механизмы.

Отказоустойчивость (надёжность) – вероятность отказа защиты (НСД), время наработки на отказ, вероятность отказа программы защиты (крах), время наработки на отказ, частота ложных срабатываний.

^ Независимость от конкретных реализаций ОС – использование недокументированных возможностей, «вирусных» технологий и «дыр» ОС.

Совместимость – отсутствие конфликтов с системным и прикладным ПО, отсутствие конфликтов с существующим АО, максимальная совместимость с разрабатываемым АО и ПО.

^ Неудобства для конечного пользователя ПО – необходимость и сложность дополнительной настройки системы защиты, доступность документации, доступность информации об обновлении модулей системы защиты из-за ошибок/несовместимости/нестойкости, доступность сервисных пакетов, безопасность сетевой передачи пароля/ключа, задержка из-за физической передачи пароля/ключа, нарушения прав потребителя.

Побочные эффекты – перегрузка трафика, отказ в обслуживании, замедление работы защищаемого ПО и ОС, захват системных ресурсов, перегрузка ОЗУ, нарушение стабильности ОС.

Стоимость – стоимость/эффективность, стоимость/цена защищаемого ПО, стоимость/ликвидированные убытки.

Доброкачественность – доступность результатов независимой экспертизы, доступность информации о побочных эффектах, полная информация о СЗ для конечного пользователя.

Общая картина взаимодействия агентов рынка программного обеспечения представлена на схеме на рисунке 1.1. Из четырёх указанных выше видов среды взаимодействия защищающейся стороне подконтрольны (или частично подконтрольны) три вида - организационная, техническая и экономическая среда. Важнейшей средой взаимодействия является несомненно экономическая среда, так как экономическое взаимодействие, в данном случае, является первопричиной и целью всего взаимодействия.





При разработке и анализе защиты программного обеспечения необходимо учитывать существующую законодательную базу, при этом нужно проводить подробный экономический анализ ситуации, применяя различные критерии оценки, а затем создавать стратегию защиты, включающую применение технических и организационных мер защиты программного обеспечения. Подробно рассмотреть самостоятельно [ 12,13].
^ 2. СПЗО с электронными ключами Что такое электронный ключ?
Как правило, ключ представляет собой небольшое микроэлектронное устройство размером со спичечный коробок.

Ключ имеет два разъема, одним, он подключается к параллельному или последовательному порту компьютера, другой служит для подключения принтера, модема или других устройств. При этом, ключ не влияет на работу порта и полностью "прозрачен" для подключаемых через него устройств и не мешает их нормальной работе.

Существуют ключи для различных портов и в различном исполнении (внутренние, внешние, в виде брелка, в виде смарткарты).

Ключи могут работать каскадно, т.е. к одному порту может быть одновременно подключено несколько ключей, в т.ч. разных типов.

Протокол обмена ключа с портом динамически изменяется, кодируется и "зашумляется" для защиты от эмуляции.

Многие типы ключей имеют электрически программируемую энергонезависимую память, доступную для чтения-записи. Обычно ключ не имеет встроенных источников питания, полностью пассивен и сохраняет записанную в него информацию при отключении от компьютера.

Некоторые производители выпускают ключи со встроенными часами и автономной батареей питания, что позволяет строить различные модели продажи, аренды, лизинга и лицензирования защищенного программного обеспечения (например TimeHASP).

Новые ключи выпускаются в виде брелков для подключения к USB-портам.
^ Сердце ключа
Интеллектуальные и физические возможности ключа во многом определяются той базой, на основе которой изготовлен ключ.
Многообразие видов ключей
Современные ключи собирают на базе:

микросхем энергонезависимой электрически перепрограммируемой памяти (так называемой EEPROM-памяти);

заказных ASIC (Application Specific Integrated Circuit) – чипов с памятью или без памяти;

на базе микропроцессоров (микроконтроллеров).
Ключи:
для Macintosh;

для notebook-ов (PCMCIA);

внутренние в виде платы;

в виде брелка для USB-шины;

в виде смарткарты.
^ Ключи для компьютеров Macintosh
Ключи для Macintosh выпускаются в двух вариантах:

для подключения к SCSI-порту;

к ADB-порту.

Считается, что ключи, подключаемые к ADB-порту, работают надежнее и не создают проблем ни при каскадном соединении, ни при подключении других устройств.

Ключ MacHASP собран на микроконтроллере, имеет изменяемый алгоритм обращения и шифрованный протокол обмена между ключом и компьютером. Ключ рассчитан для работы на семействе компьютеров Macintosh, включая Quadra, Powerbook, PowerMac. Подключается к стандартному ADB-порту, имеет сертификат Apple. Ключи могут работать каскадно до 15 шт.

Сетевой вариант ключа Net-MacHASP служит для ограничения числа пользователей защищенного приложения. Предназначен для работы в сетях AppleTalk, выпускается с лимитом на 5, 10, 20, 50, 100 одновременно работающих пользователей и без ограничения числа пользователей.

Для новых компьютеров iMac может использоваться ключ, подключаемый к USB-порту (USB MacHASP).
^ Ключи в стандарте PC-Card
Ключи, выпускаемые для пользователей портативных компьютеров, производятся, как правило, в стандарте PCMCIA Type I или Type II и имеют размеры обычной кредитной карточки и толщину: HASP - 3.3 мм и HArdlock - 5 мм.

Питание ключа осуществляется напряжением 5 вольт, которое берется из PCMCIA-слота. Параметры таких ключей обычно соответствуют параметрам "обычных" ключей, подключаемых к параллельному порту компьютера.
^ Ключи в виде платы
Для многих применений часто бывает удобно (или просто необходимо), чтобы электронный ключ находился внутри компьютера и не занимал портов. При этом одновременно решается сразу несколько проблем:

проблема воровства ключей, подключенных к компьютеру снаружи, сотрудниками компании или посетителями (конкурентами), которые знают, что пропажа ключа остановит деятельность компании на какое-то время;

проблема надежной работы и уверенность в том, что кто-то не заденет ключ и не нарушит контакт с разъемом компьютера;

проблема возможной неисправности порта и/или конфликт устройств, “сидящих” на одних адресах LPT и/или IRQ с портом, к которому подключен ключ;

проблема “защищенного” или промышленного исполнения ключа для работы в агрессивных средах или в расширенном диапазоне температур.

Примеры:

Hardlock Internal – этот ключ предназначен для подключения к ISA-шине (PC) одной своей стороной, а другой - к MCA-шине (Micro Channel) компьютеров PS/2.

AladdinCard – специальная плата расширения для подключения внешних ключей. Она вставляется в стандартный слот компьютера и функционирует как обычный параллельный порт, сконфигурированный на соответствующие LPTx и IRQx.

К AladdinCard (внутри компьютера) может быть подключено несколько ключей HASP или ключей других производителей.

При установке подобных плат пользователь получает дополнительный параллельный порт.
^ Ключи для шины USB
USB-ключи очень компактны, выполнены в виде брелка и легко размещаются на связке ключей. А поскольку многие USB-устройства (мониторы, клавиатуры, принтеры, компьютеры) имеет дополнительные порты в легкодоступных местах, то USB-ключи очень удобно использовать и для функций контроля и разграничения доступа к информационным ресурсам.

На компьютере должна быть установлена ОС, поддерживающая работу с шиной USB: Windows 95 OSR2.1, Windows 98. Поддержка USB также будет встроена в Windows NT5 и в Windows CE.

PC и Apple теперь будут использовать единую технологию подключения периферийных устройств. Новый iMac теперь вместо оригинального ADB-порта будет содержать два USB-порта, так что производителям периферии теперь могут выпускать свои изделия одновременно сразу для двух платформ – PC и Mac.
^ Ключи в виде смарткарты
С появлением новых схем продвижения программных продуктов через Internet, платного доступа к различным базам данных, новых моделей лицензирования (т.е. формы оплаты и контроля за несанкционированным использованием и нелегальным распространением), появились и новые ключи в виде смарткарты.

Первой и пока единственной разработкой для этого перспективного рынка стал новый ключ компании ALADDIN – SmartHASP.

SmartHASP полностью совместим с другими ключами семейства HASP и может работать в Win32 – Операционных системах с любым карт-ридером любого производителя, соответствующим стандарту PC/SC, например, с ASEDrive. Его размеры - с обычную визитку и он легко может пересылаться в обычном конверте. В нем нет дорогостоящих механических разъемов, поэтому он легче, удобнее и надежнее своих собратьев.
^ 3. СЗПО HASP Что входит в систему защиты HASP
HASP (Hardware Against Software Piracy) – это аппаратно-программная инструментальная система для защиты программ и данных от нелегального использования и пиратского тиражирования. Она включает в себя:

электронный ключ HASP;

специальное программное обеспечение, обеспечивающее защиту программных модулей и “привязку” к электронному ключу;

схемы и методы защиты программ, обнаружения и борьбы с отладчиками, трассировщиками, эмуляторами, контроля целостности, защиты от реинженеринга.

Одним из наиболее распространенных в России сегодня защитных устройств является устройство HASP (Hardware Against Software Piracy) от компании Aladdin, по сути ставшее стандартом де-факто. Aladdin Software Security R.D. — это российская компания, представитель мирового лидера в области разработки и производства систем аутентификации, защиты информации при работе с Интернетом и защиты программного обеспечения от несанкционированного использования Aladdin Knowledge Systems Ltd (http://www.aladdin.ru/).

В первых версиях это небольшое устройство подключалось к параллельному порту компьютера. Позднее появились USB-HASP-устройства. Иметь маленький USB-ключ значительно удобнее, чем большой 25-штырьковый сквозной разъем, часто возникающие проблемы с совместимостью ключей и устройств, работающих через параллельный порт, типа принтеров и ZIP-дисководов изрядно утомляли пользователей. С USB-устройствами работает автоматическое подключение (рlug-and-рlay), порты USB выносятся на переднюю панель, встраиваются в клавиатуру или монитор. В комплекте с этими ключами часто продают удлинители.

Основой ключей HASP является специализированная заказная микросхема — ASIC (Application Specific Integrated Circuit), имеющая уникальный для каждого ключа алгоритм работы. Принцип защиты состоит в том, что в процессе выполнения защищенная программа опрашивает подключенный к компьютеру ключ HASP. Если HASP возвращает правильный ответ и работает по требуемому алгоритму, то программа выполняется нормально. В противном случае, по усмотрению разработчика программы, она может завершаться, переключаться в демонстрационный режим или блокировать доступ к каким-либо функциям программы.


Используя память ключа, разработчик может:

управлять доступом к различным программным модулям и пакетам программ;

назначать каждому пользователю защищенных программ уникальный номер;

сдавать программы в аренду и распространять их демо-версии с ограничением количества запусков;

хранить в ключе пароли, фрагменты кода программы, значения переменных и другую важную информацию.


У каждого ключа HASP с памятью имеется уникальный опознавательный номер, или идентификатор (ID-number), доступный для считывания защищенными программами и позволяющий различать пользователей. Идентификатор присваивается электронному ключу в процессе изготовления, что делает невозможным его замену, но гарантирует надежную защиту от повтора. С использованием идентификатора можно шифровать содержимое памяти и использовать возможность ее дистанционного перепрограммирования.


В комплект разработчика входит набор утилит и инструментов для быстрого и легкого использования системы защиты HASP.

Мастер установки защиты (HASP Wizard) всего за несколько шагов поможет быстро установить защиту на Ваше приложение, в том числе и в том случае, когда Вам не доступны исходные тексты.

Система Remote Update System позволяет производителю программного обеспечения дистанционно перепрограммировать память ключа HASP, посылая пользователю необходимую информацию по телефону или по факсу.

Защитить файлы данных можно с помощью Envelope и с использованием системы Professional ToolKit.
Универсальность
Ключи HASP предназначены для работы на всех стандартных платформах:

IBM PC и PC-совместимых;

PS/2;

на рабочих станциях и серверах типа IBM RS6000, DEC Alpha, Silicon Graphics, Sun, HP-9000 и др.;

Macintosh, PowerMac, Quadra, Powerbook;

Japanise NEC и Fujitsu;

IMac.

Для подключения ключей HASP может использоваться:

параллельный порт Centronics (normal, ECP, EPP);

последовательный порт RS-232 (только Open HASP);

PC-Card (PCMCIA) слот;

USB-порт (PC, iMac);

специальная плата, вставляемая в ISA-слот PC;

карт-ридер для работы со смарткартами (PC/SC-совместимый);

ADB-порт (для Macintosh);

разъем в принтере (14/36-pin) для подключения к компьютеру.
Электроника:
мощный “заказной” ASIC-чип;

до 496 байт EEPROM-памяти, доступной на чтение-запись.

Возможно до 100,000 циклов перезаписи каждой ячейки памяти.

Срок хранения данных не менее 10 лет.

ASIC-чип ключа, разработанный инженерами компании ALADDIN, производится по 1,5-микронной E2-технологии и содержит более 2500 вентилей на кристалле. Новый чип обеспечивает высокий уровень защиты и обеспечивает повышенную совместимость и прозрачность. Это стало возможным благодаря микропотреблению нового ASIC-чипа (Uпит.менее 1.8 V, Iпот. менее 18 мкА).
Возможности:
возможность генерации уникальной серии кодов y=f(x);

используется кодированный, динамически меняющийся (“плавающий”) протокол обмена ключа с портом;

внедрён неизменяемый уникальный код разработчика и серийный номер ключа;

обеспечена прозрачность ключа для принтеров и других устройств;

возможность простого каскадирования более 10 штук;

отсутствие элементов питания;

присвоен международный сертификат качества и безопасности;

отсутствует "проблема 2000 года".
Надежность
Ключ HASP является одним из самых надежных средств защиты программного обеспечения из представленных на рынке. Надежность ключей HASP составляет 99.86%. Вся продукция компании ALADDIN имеет сертификат качества ISO 9002.
^ Уникальная серия
Каждый производитель программ получает ключи разных серий. HASP позволяет использовать функцию Y=F(X), где X - посылаемое в ключ число, а Y - возвращаемые ключом четыре целых числа. Внутри одной серии все ключи одинаковы.
Математика
Система HASP предоставляет широчайший выбор различных методов защиты:

с использованием защитного "конверта" (Envelope) для DOS- и WINDOWS-приложений (Win 16/32);

с использованием функций обращения к ключу API - для 200 языков, компиляторов и систем программирования;

с использованием структурного кода PCS(Pattern Code Security);

с использованием резидентного TSR-драйвера для DLL.
^ Поддерживаемые системы
DOS, DOS Extenders;

Windows 3.xx, Win 32s;

Windows/NT;

WINDOWS’95/98/xp;

OS/2;

SCO Unix, Xenix;

Interactive Unix;

AIX, Linux;

SunOS, IRIX;

MacOS;

локальные сети с протоколами IPX, NetBIOS и TCP/IP;

По результатам тестирования Национальной Тестовой Лаборатории США (NSTL) ключ HASP был назван лучшим. Комплект разработчика HASP Developer's Kit служит для знакомства с возможностями системы защиты HASP и создания самой защиты программ.

В HASP Developer's Kit входит:

документация на русском и английском языках, включающая рекомендации по методам защиты программ;

электронный ключ HASP требуемой модели (демонстрационный);

программное обеспечение HASP, включающее:

все необходимые утилиты для программирования ключа;

утилиты для автоматической защиты DOS/WINDOWS-программ и данных (без изменения исходного кода);

утилиты для дистанционного перепрограммирования памяти ключа (remote update), например, находящегося у пользователя в другом городе;

библиотеки функций обращения к ключу (HASP API) для 200 языков и систем программирования;

тестовые примеры обращения к ключу для каждого языка и компилятора;

модули DLL;

сетевые драйверы (для протоколов IPX, NetBIOS, TCP/IP);

монитор для сетевого администратора;

мастера установки защиты;

рекомендации по методам защиты программ;

система дистанционного программирования памяти ключей;

драйверы для всех ОС.

бланк технической поддержки;

бланк заказа.

Программное обеспечение поставляется на CD-ROM.
^ Концепция защиты HASP
Основой ключей HASP является специализированная заказная микросхема - ASIC (Application Specific Integrated Circuit), имеющая уникальный для каждого ключа алгоритм работы. Принцип защиты состоит в том, что в процессе выполнения защищённая программа опрашивает подключённый к компьютеру ключ HASP. Если HASP возвращает правильный ответ и работает по требуемому алгоритму, программа выполняется нормально. В противном случае, по Вашему усмотрению, она может завершаться, переключаться в демонстрационный режим или блокировать доступ к каким-либо функциям программы.

Несмотря на простоту использования HASP, уровень обеспечиваемой им защиты весьма высок.
^ Способы защиты
Система HASP позволяет защищать программное обеспечение двумя различными способами:

Автоматически – с использованием утилиты HASP Envelope (оболочка).

Вручную – с помощью HASP API (Application Programming Interface – программный интерфейс).

Защищённые программы общаются с ключом HASP через драйвер устройства HASP.
^ Автоматическая защита (Envelope)
Защита с использованием конверта (Еnvelope) предназначена для защиты уже готовых программ (DOS- или WINDOWS-приложений) без вмешательства в исходный код программы. Вся процедура установки защиты занимает всего несколько минут. Таким способом могут быть защищены COM, EXE и DLL -файлы, в том числе и содержащие внутренние оверлеи. При защите тело программы шифруется и в нее добавляется специальный модуль, который при запуске защищенной программы перехватывает управление на себя. Защитный “конверт” содержит специальные антиотладочные и антитрассировочные средства.
^ Защита с использованием функций API
Использование функций API - это очень мощный механизм защиты. Программа может осуществлять вызовы функции обращения к ключу из многих мест, и результаты могут быть разбросаны по всему телу программы или DLL и хорошо замаскированы. С помощью API можно в любой момент проверять наличие ключа и предпринимать определённые шаги при отсутствии ключа. Кроме того, можно считывать из памяти ключа ранее сохранённую там информацию, которая необходима для работы Вашей программы.

Встраивание в программу вызовов API требует некоторых усилий при программировании и модернизации программы. Чем лучше разработчик хочет защитить свою программу, тем больше усилий и времени ему придется затратить. Главное назначение API - предоставление всего комплекса гибких технологий маркетинга программ. Наилучший результат дает совместное использование двух методов защиты: внутренней защиты с использованием API и внешней пристыковочной (Envelope), обеспечивающую защиту от изучения логики работы, трассировку и модификацию защищенной программы.

Чтобы максимально защитить свою программу, применяйте совместно оболочку и API:

включите вызовы функций HASP API в исходные тексты программы;

скомпилируйте и скомпонуйте её с объектными файлами или DLL HASP;

обработайте получившийся выполняемый файл утилитой HASP Envelope.

После защиты программы, с ней смогут работать только законные пользователи при наличии ключа HASP.
^ Простота и технологичность
Лёгкость в освоении и единый программный интерфейс (API) всех типов ключей дают возможность легко и быстро внедрить функции HASP в Ваши программы.

В комплекте программного обеспечения для ключей HASP имеется поддержка практически для всех известных языков программирования и компиляторов.

Для IBM PC совместимых компьютеров имеется программная поддержка всех основных языков и компиляторов, что позволяет создавать защищённые программы на всех основных платформах, для локальных и глобальных сетей.

Кроме того, программное обеспечение HASP постоянно обновляется, дополняется и является свободно доступным.
^ Код разработчика
Каждый производитель программ получает ключи разных серий. Внутри одной серии все ключи одинаковы и имеют единый код разработчика. Код разработчика - это уникальный код, который “зашивается” в ASIC-чип при изготовлении ключа и не поддается изменению, обеспечивая, таким образом, полную защиту от подделки. Код представляет собой комбинацию из 5 - 7 букв и цифр, напечатанных на этикетке каждого ключа. При заказе дополнительных ключей HASP Вам потребуется знание Вашего кода разработчика.
Пароли
С кодом разработчика однозначно связаны пароли. Пароли представляют два целых числа, которые сообщаются каждому разработчику при поставке первой партии ключей. Пароли необходимы для доступа к ключу с заданным кодом разработчика и для использования входящих в комплект утилит.
^ Входные и ответные коды
Входной код - это целое число в диапазоне от 0 до 65535, посылаемое программой ключу HASP. Ответный код - целое число, посылаемое ключом обратно в защищённую программу. HASP возвращает четыре ответных кода на каждый входной код, полученный от защищённой программы. Значения ответных кодов определяются кодом разработчика данного ключа и входным кодом.

Посылая определённые входные коды и проверяя правильность ответных кодов, Вы можете убедиться в наличии “своего” ключа или использовать полученные данные в дальнейших расчетах.
^ Ключи с памятью
Большинство моделей ключей HASP имеют энергонезависимую программно перезаписываемую память (EEPROM).


Модель ключа (для PC) Размер памяти

HASP-3, HASP36, USB-HASP-3 нет

MemoHASP-1, MemoHASP36-1, USB-MemoHASP-1 112 байт

MemoHASP-4, MemoHASP36-4, USB-MemoHASP-4 496 байт

TimeHASP 16 байт

TimeHASP-4 512 байт

NetHASP, NetHASP36, USB-NetHASP 496 байт

PC-Card HASP 496 байт

SmartHASP 496 байт

Используя память HASP, Вы можете:

управлять доступом к различным программным модулям и пакетам программ;

назначить каждому пользователю Ваших программ уникальный номер;

сдавать программы в аренду и распространять их демо-версии с ограничением количества запусков;

хранить в ключе пароли, фрагменты кода программы, значения переменных и другую важную информацию.
^ Идентификатор HASP
У каждого ключа HASP с памятью имеется уникальный опознавательный номер, или идентификатор (ID-number), доступный для считывания защищёнными программами. Идентификаторы позволяют различать пользователей программы. Проверяя в программе идентификатор HASP, Вы можете предпринимать те или иные действия в зависимости от наличия конкретного ключа.

С использованием идентификатора можно шифровать содержимое памяти и использовать возможность ее дистанционного перепрограммирования.

Вы не можете заказывать ключи HASP с заранее заданными идентификаторами. Они назначаются в процессе изготовления ключей, при этом гарантируется защита от повтора.
^ Защита и лицензирование в сетях
Для работы в сети предназначен специальный "сетевой" ключ NetHASP. Он позволяет эффективно лицензировать программы путём ограничения числа одновременно работающих копий. Подключив один-единственный ключ NetHASP к любому компьютеру в сети, Вы сможете защитить свою программу от пиратского копирования, и в то же время следить и ограничивать количество рабочих станций, на которых она используется одновременно.
^ Встроенные часы TimeHASP
С использованием ключей TimeHASP, содержащих встроенные часы с автономным питанием, можно построить достаточно сложную схему маркетинга программ. Это может быть продажа программ в рассрочку (лизинг), сдача в аренду, ограничение по времени использования и т.д. Например, если пользователь не готов платить крупную сумму за программу, в полезности которой он сомневается или стеснен в средствах - ему можно предложить лизинг. Вместо единовременной оплаты - плата частями через определенные промежутки времени. Если до заданного срока пользователь не оплатил за использование такой программы, то она автоматически переходит в демонстрационный режим или просто перестает работать. Вопрос о продлении срока или снятии такого ограничения может решаться по телефону.
^ Как работает PCS
PCS - это механизм скрытого вызова функций HASP_API, при котором параметры и результаты функции HASP не передаются через стек (как при вызовах обычных процедур). При этом снятия протокола ПРОГРАММА? HASP_API и "подпихивания" его через точку входа HASP_API оказывается недостаточно.

В программе определяются статические структуры фиксированного вида:

typedef struct pattern

{
byte Signature[SIGNATURE_LEN]; // “$HASP$PCS$”
byte NotUsed[2];
int Service;
int SeedCode;
int InCode1, InCode2, InCode3, InCode4;
int RetCode1, RetCode2, RetCode3, RetCode4;
};

Каждая структура начинается с сигнатуры "$HASP$PCS$", количество структур в одном модуле – до 25.

После компиляции собранная программа обрабатывается утилитой установки конверта с опцией "защита PCS". При этом установка защиты конверта не обязательна.

При обработке программы в ее теле ищутся сигнатуры "$HASP$PCS".

Найденные сигнатуры затираются, а их адреса (смещения) запоминаются в HASP_API.

При любом вызове функции hasp( ) производится столько дополнительных обращений к ключу, сколько структур PCS определено. При этом параметры функции и результат передаются через поля структур.

В процессе работы программы данные в структурах (например hasp-сервис) могут быть многократно переопределены. При каждом явном вызове ключа HASP производится обновление информации во всех структурах.

Если при работе приложения (EXE или DLL) производится динамическое связывание, все структуры и код HASP_API должны находиться в одном модуле.

Если для обновления данных в PCS использовать функцию ISHasp не указывая паролей или указав неверный пароль, то функция отработает нормально, а в структуры PCS будут записаны нулевые значения либо мусор.

^ Механизм PCS реализован* для:

DOS Clipper 5

Clipper Fall 86

Clipper – Summer 87

Lattice C

MS Basic

MS Macro Assembler

MS C, Visual C++, Quick C

MS Pascal

Turbo Basic, C, Pascal V3+

Win16

Win32

* - Для всех компиляторов, позволяющих определять статические переменные и прилинковывать объектный файл hasp_api.

Использование PCS эффективно как против битового хака (усложнение анализа), так и против программных эмуляторов ("подпихивания" протокола в точку входа недостаточно, т.к. эмулятором не будут отслеживаться скрытые вызовы HASP).


Hardlock


Нardlock — это электронный ключ компании Aladdin, предназначенный для защиты приложений и связанных с ними файлов данных, позволяющий программировать ключи защиты и лицензировать авторское программное обеспечение. Механизм работы ключей Hardlock базируется на заказном ASIC-чипе со встроенной EEPROM-памятью.


Чип имеет сложную внутреннюю организацию и нетривиальные алгоритмы работы. Логику работы чипа практически невозможно реализовать с помощью стандартных наборов микросхем, его очень сложно воспроизвести, а содержащийся в его памяти микрокод — считать, расшифровать или эмулировать.


Такие ключи могут устойчиво работает во всех компьютерах (включая ноутбуки), на различных портах, в самых разных режимах, позволяя подключать через них практически любые устройства — принтеры, сканеры, модемы и т.п. А малый ток потребления позволяет каскадировать любое количество ключей.


Hardlock осуществляет защиту 16- и 32-разрядных приложений и связанных с ними файлов данных в прозрачном режиме. При чтении данные автоматически расшифровываются, при записи — зашифровываются с использованием заданного аппаратно-реализованного алгоритма. Эта возможность может использоваться также для хранения и безопасной передачи информации в сети Интернет.


eToken


Как уже говорилось, наилучшим решением сегодня в области защиты информации являются смарт-карты, но для их использования необходимы специальные устройства считывания (карт-ридеры). Эту проблему снимают устройства типа eToken — электронные смарт-ключи производства той же компании Aladdin, подключаемые напрямую к USB-порту.


eToken — это полнофункциональный аналог смарт-карты, выполненный в виде брелока. Он напрямую подключается к компьютеру через USB-порт и не требует наличия дорогостоящих карт-ридеров и других дополнительных устройств. Основное назначение eToken — аутентификация пользователя при доступе к защищенным ресурсам сети и безопасное хранение цифровых сертификатов, ключей шифрования, а также любой другой секретной информации.


Каждому брелоку eToken можно присвоить уникальное имя, например имя его владельца. Чтобы узнать имя владельца eToken, достаточно подключить брелок к USB-порту и открыть окно «Свойства». Однако получить доступ к защищенной памяти eToken и воспользоваться этим брелоком без знания специального PIN-кода нельзя.


Кроме того, eToken выполнен в прочном водонепроницаемом корпусе и защищен от воздействия окружающей среды. Он имеет защищенную энергонезависимую память (модели PRO и RIC снабжены микропроцессором). Небольшой размер позволяет носить его на связке с ключами.


Если нужно подключить к компьютеру несколько ключей одновременно, а USB-портов не хватает, то можно воспользоваться концентратором (USB-HUB). Для удобства применения eToken поставляется вместе с удлинителем для USB-порта.


Таким образом, eToken может стать универсальным ключом, легко интегрируемым в различные системы для обеспечения надежной аутентификации. С его помощью можно осуществлять безопасный доступ к защищенным Web-страницам, к сетям, отдельным приложениям и т.д. Универсальность применения, легкость в использовании, удобство для пользователей и администраторов, гарантированное качество делают его прекрасным средством при необходимости использовать цифровые сертификаты и защищенный доступ.


Secret Disk


В случае если объем конфиденциальной информации довольно значителен, можно воспользоваться устройством Secret Disk, выполненным с применением технологии eToken. Secret Disk — это разработка компании Aladdin Software Security R.D., предназначенная для защиты конфиденциальной информации на персональном компьютере с ОС Windows 2000/XP.


Принцип защиты данных при помощи системы Secret Disk заключается в создании на компьютере пользователя защищенного ресурса — секретных дисков, предназначенных для безопасного хранения конфиденциальной информации. Доступ к этой информации осуществляется посредством электронного ключа eToken, подсоединяемого к USB-порту компьютера. Доступ к информации, защищенной системой Secret Disk, получают только непосредственный владелец информации и авторизованные им доверенные лица, имеющие электронный ключ eToken и знающие его PIN-код. Для других пользователей защищенный ресурс будет невидим и недоступен. Более того, они даже не догадаются о его наличии.


Устанавливая на компьютере систему Secret Disk, пользователь может быть уверен в сохранности защищаемых данных. Конфиденциальная информация не может быть просмотрена, скопирована, уничтожена или повреждена другими пользователями. Она не может быть использована посторонними при ремонте или краже компьютера, а также при утере съемного зашифрованного диска.


Для защиты корпоративных серверов используется специальная версия — Secret Disk Server. Особенностью системы Secret Disk Server также является отсутствие следов закрытого «контейнера с информацией» в файловой системе. Таким образом, если злоумышленники снимут диск с вашего сервера, то они не только не смогут расшифровать данные — они даже не увидят, где именно находится
еще рефераты
Еще работы по разное