Защита исполняемых exe файлов с помощью навесной защиты HASP 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Защита исполняемых exe файлов с помощью навесной защиты HASP



МИНОБРНАУКИ РОССИИ

федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Санкт-Петербургский государственный технологический институт (технический университет)»

(СПбГТИ(ТУ))

 

___________________________________________________________

 

Кафедра системного анализа

 

 

И.В. Ананченко

 

ИСПОЛЬЗОВАНИЕ КЛЮЧЕЙ СЕРИИ HASP HL ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ. ЗАЩИТА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

 

Методические указания

 

 

Санкт- Петербург

УДК 681.3.657.1

 

Ананченко И.В. Использование ключей серии HASP HL для защиты информации. Защита программного обеспечения. - СПб.: изд. СПбГТИ (ТУ), 2012.-70 с.

 

В методических указаниях к трем лабораторным работам рассматриваются методы защиты программного обеспечения с использованием программно-аппаратных ключей HASP. Работы ориентированы на приобретение студентами навыков установки и эксплуатации защиты программных средств с использованием ключей серии HASP SRM. Методические указания соответствует содержанию дисциплин «Информационная безопасность и защита информации», «Программно-аппаратные средства защиты информации», «Защита информации» государственных образовательных стандартов. Позволяют формировать общепрофессиональные компетенции (ПК-2,4-7) по направлению подготовки 220100: способность применять перспективные методы системного анализа и принятия решений для исследования функциональных задач на основе мировых тенденций развития системного анализа, управления и информационных технологий.

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

 

Ии.49, библиогр. 8 назв. ПК-2,4-7.

 

 

Рецензент: И.А. Смирнов заместитель декана факультета Информационных технологий и управления СПбГТИ(ТУ), к.т.н., доцент кафедры систем автоматизированного проектирования и управления (САПРиУ)

 

Утверждено на заседании учебно-методической комиссии факультета информационных технологий и управления__.__.2012

 

 

Рекомендовано к изданию РИСо СПбГТИ (ТУ)

 

 


ВВЕДЕНИЕ

 

Программно-аппаратный комплекс HASP SRM предназначен для защиты от несанкционированного использования программного обеспечения. Sentinel HASP – решение, обеспечивающее аппаратную (USB-ключи HASP HL) и программную (HASP SL) защиту программного обеспечения. Более 75% разработчиков в мире [1] выбрали защиту программ Sentinel HASP благодаря простоте встраивания и надежности.

Преимущество HASP SRM перед другими решениями обеспечивается за счет повышенной надежности и гибкости. Два важных принципа лежат в основе HASP SRM:

• принцип разделения между бизнес-процессами и разработкой: Protect Once – Deliver Many;

• независимость от аппаратного обеспечения (Cross-Locking) – защищенное приложение может работать как с аппаратным ключом HASP HL, так и с программным аналогом HASP SL. Оба этих принципа являются взаимодополняющими.

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

Предлагаемая схема отличается повышенной гибкостью, предоставляя большую свободу в плане разработки новых стратегий продаж и моделей лицензирования. В HASP SRM поддерживается семь стандартных моделей лицензирования:

1. тестирование (оплата только после опробования);

2. аренда, прокат, лизинг;

3. оплата за отдельные модули;

4. оплата за отдельные функции;

5. сетевая лицензия;

6. оплата за фиксированный период с первого момента использования;

7. оплата по количеству запусков.

В комплект разработчика HASP SRM входит демонстрационная версия (HASP SRM Demo), которая может быть использована для выполнения лабораторных работ.

Предлагаемые практические работы могут выполняться учащимися под руководством преподавателя при изучении таких дисциплин как, например, «Информационная безопасность», «Защита информации», «Программно-аппаратные средства обеспечения информационной безопасности» или самостоятельно, желающими освоить технологию защиты программного обеспечения с использованием программных ключей HASP SL или аппаратных HASP HL.

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

При выполнении работ, учащиеся могу работать со стартовым комплектом с ключами той или иной серии, соответствующей конкретному разработчику, например, CRAXZ, OKZAI и пр. Альтернативный вариант проведения работ – использование комплекта разработчика DK Sentinel HASP и демонстрационного ключа Demo HASP HL Max, Time, Net10 или NetTime10.

Комплект разработчика Sentinel HASP (входит в стартовый комплект) включает в себя:

• все программное обеспечение Sentinel HASP;

• полную документацию Sentinel HASP на русском языке;

• примеры встраивания защиты;

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

• Бесплатное обновление ПО.

Комплект разработчика Sentinel HASP доступен для бесплатной загрузки с сайта производителя средств защиты. Там же можно купить демонстрационные и полнофункциональные ключи HASP HL, а так же Стартовые комплекты [2]. Покупка средств защиты HASP SRM возможна у вендоров, в том числе оформление заказов в интернет магазинах [3].

Для выполнения работ потребуется программное обеспечение комплект разработчика HASP, которое при необходимости можно бесплатно загрузить с сайта [6]. Ключи серии HASP предназначены, в первую очередь, для защиты программного обеспечения. Дополнительно могут решаться и другие задачи, например, использование защищенной памяти ключа HASP HL (весь модельный ряд, кроме HASP HL Basic) для хранения конфиденциальной информации, используемой для процедуры аутентификации [6-8] и пр.

 

Ключи HASP SRM

 

Распределение ролей для пользователей HASP SRM

 

Все функции и задачи в HASP SRM условно распределяются по ролям, назначаемым администратором HASP SRM. Рассмотрим их подробнее:

· пользователь с ролью Product Management (обычно эта роль сотрудника отдела продуктов) может определить компоненты и продукты;

· пользователи, обладающие ролью Development (разработка), имеют права по защите и лицензированию программного обеспечения, доступен просмотр и исполнение заказов;

· пользователь с назначенной ролью Customer Services может просматривать и редактировать сведения о клиентах, вручную активировать продукт;

· роль Order Management (отдел продаж) позволяет ее владельцу редактировать, обрабатывать и передавать заказы на исполнение;

· пользователи, владельцы роли Production (производство), имеют права на просмотр и исполнение заказов.

 

В пособии рассмотрены основные этапы установки программного обеспечения (ПО) HASP SRM Vendor Suite для работы с аппаратными ключами HASP HL и программными HASP SL; последовательность типовых действий установки и менеджмента защищаемого программного обеспечения с использованием технологии HASP SPM:

· Этап 1 – Подготовительный этап. С одержит инструкции по установке системы HASP SRM и запуску HASP SRM Vendor Suite.

· Этап 2 – Определение компонентов ПО. Перед установкой защиты определяем приложения, как отдельные компоненты.

· Этап 3 – Установка защиты. Выполняем установку защиты на приложения и компоненты, определенные на предыдущем этапе.

· Этап 4 – Формирование программного пакета. Создание готового программного пакета на базе имеющихся компонентов и приложений.

· Этап 5 – Создание условно-бесплатной версии. Создание в HASP SRM Business Studio условно-бесплатной версии для одного из компонентов программного продукта.

· Этап 6 – Оформление и обработка заказов. Оформление заказов на созданные продукты и внесение данных о поставщиках. Создаем обновления лицензий для установленных продуктов.

· Этап 7 – Работа с защищенным приложением на стороне пользователя. Изучение работы с приложениями, защищенными с помощью HASP SRM, на стороне пользователя.

Чтобы в полной мере оценить все преимущества технологии Protect Once – Deliver Many, необходимо последовательно изучить и выполнить на практике все этапы, начиная с первого.


Лабораторная работа 1

Цель работы

Приобретение практических навыков работы с HASP ключами и программным обеспечением HASP SRM Vendor Suite. Защита исполняемых exe файлов

 

Этап 1. Подготовительный

Задача Настроить компьютер и систему HASP SRM для выполнения практических работ
Используемые приложения · Установочный диск HASP SRM · HASP SRM Vendor Suite

 

Содержание этапа:

· установка программного пакета HASP SRM, в том числе HASP SRM Business Studio Server;

· запуск HASP SRM Vendor Suite.

Для установки программного пакета HASP SRM необходимо выполнить действия:

1. вставить диск с дистрибутивом HASP SRM в CD-привод;

2. выбрать в меню пункт Start the CD Setup (Установить с диска);

3. выполнить установку, руководствуясь инструкциями программы-мастера.

Запуск HASP SRM Vendor Suite. После установки программного пакета HASP SRM необходимо запустить HASP SRM Vendor Suite:

в меню Start (Пуск) выбрать Programs (Программы)àAladdin à HASP SRM à Vendor Suite. На экране появится приветственное окно HASP SRM Vendor Suite, которое открывает доступ почти ко всем приложениям из состава Vendor Suite.

Важно: нельзя подсоединять к USB порту компьютера ключ HASP SRM, до тех пор, пока полностью не установлен программный пакет HASP SRM.

 

Этап 2. Создание компонентов

Задача Освоить процессы, связанные с созданием программных компонентов
Роль Отдел продуктов
Используемые приложения HASP SRM Business Studio

 

Компоненты выделяются по их функциям и сами по себе могут являться предметом лицензирования. В HASP SRM под компонентом понимается отдельное приложение, его составные компоненты или отдельные функции, например, «Сохранить в файл», «Печать» и т.д.

На данном этапе человек, выполняющий работу, действует в роли менеджера по продуктам, его задача состоит в том, чтобы с помощью HASP SRM Business Studio определить два компонента, которые понадобятся для выполнения следующих этапов.

Для запуска HASP SRM Business Studio следует выполнить действия:

1. в меню Start (Пуск) выбрать Programs (Программы) à Aladdin à HASP SRM à Vendor Suite;

2. в списке приложений выбрать Business Studio. На экране появится окно авторизации;

3. в поле User Name (Имя пользователя) и в поле Password (Пароль) ввести HASP;

4. в поле Server Address ввести имя компьютера;

5. в поле Port (Порт) ввести 443;

6. Нажать OK. На экране появится главное окно HASP SRM Business Studio.

Главное окно HASP SRM Business Studio (рис. 1) условно делится на три части:

· панель функций. Необходимо выбрать те функции, которые нужно выполнить;

· основное окно. Представлены основные данные по выбранному разделу;

· панель задач. После того как выбрали тот или иной объект в основной части окна, можно производить над ним определенные действия.

Рисунок 1 – главное окно HASP SRM Business Studio

 

Рассмотрим выделение программы как отдельного компонента, выполняющей расчет по формуле A+B=C (написанной на языке Delphi).

Для определения компонента A+B=C выполним следующие действия:

1. На панели функций в окне Business Studio открываем раздел Licensing Plan (Лицензионный план) и выбираем в нем пункт Manage Features (Работа с компонентами). Основная часть окна отводится под перечень компонентов, справа представлены доступные действия;

2. В основной части окна выбрать поле Batch Code (Код серии), далее, из списка код серии, определенный преподавателем, если таких кодов несколько (или код вашей серии разработчика, например, CRAXZ). Далее для конкретизации везде используется код серии разработчика CRAXZ. При выполнении работы следует, выполняя предлагаемые действия, использовать код серии, с которой работаете. Для того чтобы появилась возможность выбрать Vendor Key с именем CRAXZ (рис. 2), необходимо на панели функций в окне Business Studio открыть раздел Setup (Установки) и выбрать в нем пункт Master Keys (Мастер ключи);

Рисунок 2 – раздел Setup

 

затем в панели задач выбрать Introduce Master (Ввести Мастер ключ), появится окно (рис. 3):

Рисунок 3 – Sentinel HASP Master HASP

 

Определить имя ключа (например, CRAXZ) и указать путь, куда будет сохранена информация из мастер ключа (рис. 3). После обработки информации о ключе, информация будет отображена в поле Batch Code.

3. В панели задач следует щелкнуть на New Feature (Создать компонент). Появится новое окно New Feature (Создание компонента);

4. в поле Feature Name (Название компонента) ввести название A+B=C;

5. Для дополнительных настроек, следует нажать кнопку Advanced (Дополнительно);

Рисунок 4 – API Settings

Рисунок 5 – окно New Feature (A+B=C)

 

6. Необходимо установить флажок в пункте Specify Feature ID (Номер компонента) и ввести число 50;

7. Затем нажать OK, после этого в главном окне можно увидеть в списке компонентов новый компонент с названием А+В=С.

 

Выделение приложения mspaint как отдельного компонента

Рассмотрим последовательность действий по созданию компонента mspaint. Для этого необходимо выполнить действия:

1. На панели функций в Business Studio открыть раздел Licensing Plan (Лицензионный план) и выбрать пункт Manage Features (Управление компонентами). Основная часть окна отводится для списка компонентов;

2. В основной части окна выбрать поле Batch Code (Код серии), выбрать из списка код серии CRAXZ;

3. В панели задач щелкнуть на New Feature (Создать компонент). Появится новое окно New Feature (Создание компонента);

4. В поле Feature Name ввести mspaint;

5. Установить флажок в пункте Specify Feature ID (Номер компонента) и ввести 10;

6. Нажать OK. В главном окне можно увидеть в списке компонентов новый компонент с названием mspaint (рис. 6);

Рисунок 6 – новый компонент с названием mspaint

7. Закрыть Business Studio.

Если пункт Specify Feature ID отсутствует в окне, необходимо нажать кнопку Advanced (Дополнительно); если на экране появляется окно с сообщением о том, что компонент с указанным номером (Feature ID) отсутствует, не нужно указывать другой номер. Следует закрыть окно New Feature (Создание компонента) и в окне Manage Features (Управление компонентами) найти компонент с номером 10 и посмотреть, какое название имеет этот компонент. Его необходимо будет указывать при выполнении следующих пунктов (вместо mspaint). Можно проверить, занят ли указанный номер (Feature ID), нажав на кнопку (ID Available), и если указанный номер (Feature ID) не занят, то можно будет увидеть следующее сообщение;

Этап 3. Установка защиты ПО.

Задача Освоить защиту приложений с использованием HASP SRM в автоматическом режиме
Роль Отдел разработки
Используемые приложения HASP SRM Envelope

 

Рассмотрим работу с приложением HASP SRM Envelope. Необходимо настроить защиту двух приложений, определенных на предыдущем этапе.

В HASP SRM Envelope используется новая технология защиты программных продуктов от незаконного или несанкционированного использования. При каждом запуске защищенное приложение обращается к определенному ключу HASP SRM и запрашивает с него необходимые данные. Если в этот момент ключ HASP SRM не подсоединен к компьютеру или запрашиваемые данные некорректны, приложение не запускается или перестает работать.

Установка защиты на приложение А+В=С

 

Необходимо запустить приложение HASP SRM Envelope, подсоединить ключ HASP, отредактировать сообщение, которое будет появляться при отсоединении ключа HASP HL и установить защиту на приложение А+В=С. Интерфейс HASP SRM Envelope:

· дерево функций: представлены все доступные функции;

· основная область: в этой части окна отображается информация, связанная с разделом, выбранным слева в дереве функций;

· журнал событий: здесь отображается информация о событиях HASP SRM Envelope.

 

Перед установкой защиты необходимо:

1. подсоединить ключ CRAXZ;

2. открыть меню Start (Пуск) и в нем выбрать пункт Programs (Программы) à Aladdin à HASP SRM à Vendor Suite;

3. в списке приложений выбрать Envelope. Появится окно авторизации;

4. нажать кнопку Work Offline (Работать автономно). Откроется главное окно HASP SRM Envelope;

Рисунок 7 – интерфейс HASP SRM Envelope

5. в дереве функций выбрать раздел Sentinel HASP Batch Code (Профиль HASP SRM);

6. в правой части окна выбрать пункт Use Vendor Code from file (Использовать файл с Кодом разработчика);

Рисунок 8 – раздел Sentinel HASP Batch Code

7. открыть папку, где хранится файл с кодом разработчика. По умолчанию он находится в: …\Documents and Settings\[имя текущего пользователя]\My Documents\Aladdin\HASP SRM [версия]\VendorCodes

8. затем необходимо выбрать файл CRAXZ.hvc и нажать кнопку Open (Открыть). Путь к файлу отобразится в поле Use Vendor Code from file (Использовать файл с Кодом разработчика).

 

Для установки защиты на приложение A+B=C необходимо:

1. В дереве функций выбрать раздел Programs (Программы);

2. Справа вверху нажать на кнопку Add Programs (Добавить программы). Появится окно Add Programs (Добавить программы), в котором будет представлено содержимое папки VendorSuite\samples;

3. Выбрать файл A+B=C.exe (файл может находиться в другой папке, в этом случае выяснить место нахождения файла у преподавателя) и нажать Open (Открыть). Теперь это приложение появится в списке приложений в ветви Programs (Программы);

Рисунок 9 – приложение А+В=С в ветви Programs (Программы).

 

4. В дереве функций выбрать раздел Programs (Программы) и затем А+В=С. В основной части окна отображаются параметры защиты;

Рисунок 10 – параметры защиты

5. В поле Feature ID (Номер компонента) необходимо указать значение 50 (значение было определено ранее на этапе 2);

6. В дереве функций выбрать раздел User Messages (Сообщения для пользователя);

В открывшемся окне можно ввести текст сообщений, которые будут отображаться на стороне пользователя.

8. В списке Message Code выбрать HASP_HASP_NOT_FOUND. Это сообщение будет отображаться, если необходимый ключ HASP SRM отсутствует;

Рисунок 11 – раздел User Messages

 

Рисунок 12 – сообщение HASP_HASP_NOT_FOUND

8. в поле Message (Сообщение) вместо HASP not found необходимо ввести текст сообщения об ошибке (например: Для запуска приложения А+В=С требуется ключ HASP SRM);

9. в дереве функций выбрать раздел Default Protection Settings (Настройки шаблона защиты) и в основной части окна выбрать Win32. После этого в основной части окна появятся параметры защиты для приложений Win32;.

10. параметр HASP key Periodic background checks определяет интервал времени между проверками на наличие ключа HASP SRM. Требуется установить значение поля «5». Защищенное приложение будет каждые пять секунд проверять наличие ключа HASP HL;

Рисунок 13 – раздел Default Protection Settings

 

Рисунок 14 – параметр HASP key Periodic background checks

 

11. в дереве функций выбрать раздел Programs (Программы) и выбрать A+B=C. Затем справа нажать кнопку Protect (Установить защиту). Перед началом установки защиты, появится сообщение об этом;

12. по завершению процесса появится сообщение о том, что на выбранное приложение установлена защита. Нажать OK. Путь к защищенному приложению таков: …\Documents and Settings\[имя текущего пользователя]\My Documents\Aladdin\HASP SRM [версия]\VendorCodes\ VendorSuite\Protected.

 

Установка защиты на приложение mspaint

Необходимо создать копию приложения mspaint (Paint) из стандартного пакета программ Windows, установить параметры защиты для ранее созданного компонента mspaint и установить защиту.

Для защиты приложения mspaint необходимо:

1. открыть папку с приложением mspaint (как правило, оно находится в …\Windows);

2. создать копию приложения mspaint;

3. необходимо убедиться в том, что ключ c кодом CRAXZ подсоединен к компьютеру;

4. запустить приложение HASP SRM Envelope, если оно было закрыто. В окне авторизации нажать кнопку Work Offline (Работать автономно). Появится главное окно HASP SRM Envelope;

5. в дереве функций выбрать раздел Programs (Программы);

6. справа вверху нажать на кнопку Add Programs (Добавить программы);

7. в открывшемся окне указать папку, где находится файл mspaint.exe. Выбрать файл и нажать кнопку Open (Открыть). В ветви Programs (Программы) появится приложение mspaint;

8. в дереве функций раскрыть ветвь Programs (Программы) и выбрать mspaint. В основной части окна указаны параметры защиты приложения;

9. в поле Feature ID (Идентификатор компонента) установить значение 10 (это значение было указано ранее на этапе 2);

Рисунок 15 – рrotection Details

 

10. в дереве функций выбрать раздел Default Protection Settings (Настройки шаблона защиты) и в основной части окна выбрать Win32. В основной части окна можно увидеть параметры защиты для приложений Win32;

11. в окне с настройками шаблона защиты переместить бегунок Encryption level (Уровень шифрования) в крайнее правое положение. Чем выше уровень шифрования, тем выше уровень защиты приложения, однако при этом скорость загрузки приложения может несколько увеличиться, так как для запуска потребуется больше времени на то, чтобы расшифровать файл;

 


Рисунок 16 – Default Protection Settings

12. исходя из этого, следует предусмотреть сообщение, которое будет сопровождать процесс загрузки приложения. Для этого в настройках защиты (Protection Details) необходимо поставить флажок в пункте Show waitbox on startup (Показывать сообщение о загрузке);

13. нажать кнопку Protect (Установить защиту);

14. по завершению процесса появится сообщение о том, что на выбранное приложение установлена защита. Нажать OK. Путь к защищенному приложению: …\Documents and Settings\[имя текущего пользователя]\My Documents\Aladdin\HASP SRM 2.10\ VendorCodes\VendorSuite\Protected;

15. закрыть приложение HASP SRM Envelope. Перед выходом будет предложено сохранить проект;

16. Нажать кнопку Save (Сохранить).

Этап 4. Формирование программного пакета

Задача Рассмотреть, что необходимо выполнить, чтобы создать пакет для последующего лицензирования
Роль Отдел продуктов
Используемые приложения HASP SRM Business Studio

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

На этом этапе рассмотрим процесс создания продуктов. В них будут входить компоненты А+В=С и mspaint, которые были созданы на этапе 2, и каждый из этих компонентов должен иметь свои лицензионные ограничения. Далее описан процесс, как обрабатывать заказы на созданные продукты.

В этом этапе рассмотрено создание трех разных продуктов:

· “A+B=C_Lite” – продукт для использования на условиях аренды, действие лицензии ограничивается тремя запусками приложения;

· “A+B=C_Full” – полнофункциональный продукт, который по условиям лицензии не имеет никаких ограничений на использование составляющих компонентов. В качестве основы для данного продукта будем использовать “A+B=C_Lite”;

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

 

Примечание: установка и запуск лицензионных продуктов рассмотрены на этапе 7.

 

Требования к содержанию отчета

Отчет выполняется на листах формата А4, которые должны быть скреплены перед сдачей отчета преподавателю. Первый лист отчета титульный – содержит информацию об учебном заведении, кафедре, названии дисциплины, теме выполненной работы. Приводится информация об учащемся, выполнившим работу. Приводится информация о преподавателе, проверяющем работу. В нижней части листа информация о месте (городе), где находится учебное заведение и год выполнения работы.

В содержательной части отчета о проделанной работе необходимо указать номер работы и тему работы. Затем описать ход выполнения работы. Желательно проиллюстрировать ход выполнения работы скриншотами (копиями экрана), полученными в процессе выполнения работы.

Если преподавателем были заданы вопросы по выполнению работы, на которые предложено ответить письменно, то приводятся вопросы и ответы на них.

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

Желательно привести в отчете список использованной литературы и интернет ресурсов (сайтов сети Интернет).

Лабораторная работа 2

Цель работы

 

Получить практические навыки работы с Sentinel HASP API, установить встроенную защиту в программу, созданную средствами языка Delphi. Выполнить чтение и запись данных на аппаратный ключ.

 

Требования к содержанию отчета

Отчет выполняется на листах формата А4, которые должны быть скреплены перед сдачей отчета преподавателю. Первый лист отчета титульный – содержит информацию об учебном заведении, кафедре, названии дисциплины, теме выполненной работы. Приводится информация об учащемся, выполнившим работу. Приводится информация о преподавателе, проверяющем работу. В нижней части листа информация о месте (городе), где находится учебное заведение и год выполнения работы.

В содержательной части отчета о проделанной работе необходимо указать номер работы и тему работы. Затем описать ход выполнения работы. Желательно проиллюстрировать ход выполнения работы скриншотами (копиями экрана), полученными в процессе выполнения работы.

Если преподавателем были заданы вопросы по выполнению работы, на которые предложено ответить письменно, то приводятся вопросы и ответы на них.

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

Желательно привести в отчете список использованной литературы и интернет ресурсов (сайтов сети Интернет).

Лабораторная работа 3

 

Цель работы

 

Разработать программу средствами Deplhi, использующую динамически подключаемую библиотеку DLL, защищенную с помощью Sentinel HASP.

 

Краткие сведения о DLL

DLL (англ. dynamic-link library — «библиотека динамической компоновки», «динамически подключаемая библиотека») — понятие операционных систем Microsoft Windows и IBM OS/2, динамическая библиотека, позволяющая многократное использование различными программными приложениями. K DLL относятся также элементы управления ActiveX и драйверы. Формат файлов DLL придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей.

Аналогично защите основного кода программы, Sentinel HASP API позволяет защитить и DLL библиотеку. Это подразумевает под собой внедрение функций HASP API в код динамических библиотек. При этом разработчик программного обеспечения имеет возможность пользоваться всеми доступными функциями (рассмотрены в работе 2).

1. Программа, как и в лабораторной работе 2, должна проверять доступность аппаратного ключа HASP и в случае успешной проверки вычислять определенный интеграл функции на заданном интервале. Различие состоит в том, что теперь функция вычисления интеграла вынесена в отдельную DLL библиотеку и будет импортирована из нее в процессе работы. Поскольку в эту библиотеку будет устанавливаться встроенная защита, то необходимо добавить в папку с проектом вспомогательные файлы, выполнив пункт 1 задания к лабораторной работе 2.

 

2. Далее необходимо запустить программу Borland Delphi и создать новый объект DLL Wizard, File->New->DLL Wizard, как показано на рисунке 49.

 

Рисунок 49 – создание DLL библиотеки

 

3. После сохранения проекта, следует приступить к добавлению в программный модуль необходимых функций. В данном случае это процедура integral, которая будет в дальнейшем будет вызываться из DLL библиотеки, и функция f. Исходный код программного модуля:

library Project1;

uses

SysUtils,

Classes,

hasp_unit;

{$R *.res}

{$I hasp_vcode.inc }

function f(x,m:real):real;

begin

f:=x*x;

end;

procedure integral(a,b,e:real; n:integer; var s:real; var status: hasp_status_t);

const

SCOPE_VIEW_MAXSIZE = (1024 * 128);

var

handle: hasp_handle_t;

handle2: hasp_handle_t;

fsize: hasp_size_t;

time: hasp_time_t;

info: pchar;

feature,i: integer;

day, month, year, hour, minute, second: cardinal;

scope: Array[0..SCOPE_VIEW_MAXSIZE-1] of char;

view: Array[0..SCOPE_VIEW_MAXSIZE-1] of char;

s1,d,m,raz:real;

begin

feature:= 50;

status:= hasp_login(feature, @vendor_code[1], handle);

if status = HASP_STATUS_OK then

begin

s1:=0;

s:=200;

raz:=100;

m:=b-1;

d:=(b-a)/n;

while raz>e do

begin

for i:=0 to n do

S1:=S1+d*(F(a + I*d, m) + F(a + (I+1)*d, m))/2;

raz:=abs(s-s1);

s:=s1;

s1:=0;

n:=n*2;

d:=(b-a)/n;

end;

end;

end;

exports integral;

begin

end.

4. Необходимо обратить внимание, что экспортируется только процедура integral. Также можно увидеть в коде DLL библиотеки вызов функции hasp_login, что позволит проверить наличие подлинного ключа защиты. Теперь необходимо сформировать DLL-библиотеку, выполнив действия Project->Build All Projects. В папке с проектом появится файл Project1.dll, который нужно скопировать в папку основной программы и переименовать в HASP_INT.dll.

5. Далее следует приступить к формированию основной программы. Интерфейс пользователя не изменился, он представлен на рисунке 48. Однако код программы теперь выглядит иначе, поскольку были вынесены необходимые математические функции в отдельную DLL-библиотеку. Содержание программного модуля unit1.pas:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, hasp_unit;

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Memo1: TMemo;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit4: TEdit;

Label4: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

AES_MIN_DATA_LEN = 16; { минимальная длина данных для AES шифрования }

MAX_MEMORY = 128; { Макс. размер памяти, который будет обрабатываться }

CUSTOM_FEATURE = 42;

DEMO_MEMBUFFER_SIZE = 8;

SCOPE_VIEW_MAXSIZE = (1024 * 128);

var

Form1: TForm1;

a,b,s,d,e:real;

n:integer;

status: hasp_status_t;

integral: procedure(a,b,e:real; n:integer; var s:real; var status: hasp_status_t);

LibHandle: THandle;

data: array[0..16] of byte =

($74, $65, $73, $74, $20, $73, $74, $72,

$69, $6e, $67, $20, $31, $32, $33, $34, 0);

membuffer: array [0..DEMO_MEMBUFFER_SIZE] of byte;

datalen: hasp_size_t;

implementation

{$R *.dfm}

{$I hasp_vcode.inc }

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Clear();

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

@integral:= nil;

LibHandle:= LoadLibrary('HASP_INT.dll');

if LibHandle >= 32 then begin

@integral:= GetProcAddress(LibHandle,'integral');

if @integral <> nil then

Memo1.Clear();

n:=100; a:=StrToFloat(Edit1.Text); b:=StrToFloat(Edit2.Text);

e:=StrToFloat(Edit4.Text); integral(a,b,e,n,s,status);

if status = HASP_STATUS_OK then begin

Memo1.Lines.Add(FloatToStr(s));

end

else if status = HASP_FEATURE_NOT_FOUND then

Showmessage('Невозможно подключиться к feature')

else if status = HASP_CONTAINER_NOT_FOUND then

Showmessage('HASP ключ с данным кодом не найден')

else if status = HASP_OLD_DRIVER then

Showmessage('Устаревшая версия драйвера аппаратного ключа защиты')

else if status = HASP_NO_DRIVER then

Showmessage('Драйвер ключа не установлен')

else if status = HASP_INV_VCODE then

Showmessage('Ошибка в коде ключа')

else

Showmessage('Подключение к feature закончилось неудачей');

end; FreeLibrary(LibHandle);

end;

end.

5. Важно обратить внимание на то, что в коде основной программы нет вызова функций Sentinel HASP API, а также присутствует механизм импорта функций из DLL библиотеки HASP_INT.dll

6. Теперь необходимо скомпилировать программу и проверить ее работоспособность при подключенном и отсутствующем ключе HASP HL. Результаты описать в выводе к отчету.

 

Контрольные вопросы

1. Объясните принцип работы DLL библиотек?

2. Какие преимущества дает использование DLL библиотек? Есть ли недостатки и если есть, то какие?

3. Опишите процесс создания динамически подключаемых библиотек в среде Borland Delphi?

4. Возможно ли использование нескольких DLL библиотек одной программой?

Требования к содержанию отчета

Отчет выполняется на листах формата А4, которые должны быть скреплены перед сдачей отчета преподавателю. Первый лист отчета титульный – содержит информацию об учебном заведении, кафедре, названии дисциплины, теме выполненной работы. Приводится информация об учащемся, выполнившим работу; информация о преподавателе, проверяющем работу. В нижней части листа информация о месте (городе), где находится учебное заведение и год выполнения работы.

В содержательной части отчета о проделанной работе необходимо указать номер работы и тему работы. Затем описать ход выполнения работы. Желательно проиллюстрировать ход выполнения работы скриншотами (копиями экрана), полученными в процессе выполнения работы.

Если преподавателем были заданы вопросы по выполнению работы, на которые предложено ответить письменно, то приводятся вопросы и ответы на них.

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

Желательно привести в отчете список использованной литературы и интернет ресурсов (сайтов сети Интернет).


ЛИТЕРАТУРА

 

1. http://www.aladdin-rd.ru/catalog/hasp/ Sentinel HASP — защита, лицензирование и распространение программного обеспечения

2. http://www.aladdin-rd.ru/buy/?pid=4981 Цены и заказ продуктов

3. http://www.softkey.ru/catalog/program.php?chsph=46998645&ID=46511 HASP SRM - защита, лицензирование и распространение программного обеспечения (купить)

4. http://protect-online.ru/ Сервис лицензирования и защиты ПО (Sentinel HASP SL)

5. http://www.aladdin-rd.ru/support/downloads/get?ID=27822 Скачать комплект разработчика HASP (образ диска 1.41 Гб) Версия 5.12 рус.

6. http://www.aladdin-rd.ru/support/training/authentication Учебное пособие "Аутентификация: от А до Я"

7. http://www.aladdin-rd.ru/upload/Authentication_Book.zip Загрузить главы книги "Аутентификация: теория и практика обеспечения безопасного доступа к информационным ресурсам",

8. Шелупанов А. Аутентификация. Теория и практика обеспечения безопасного доступа к информационным ресурсам. / А. Шелупанов, С. Груздев, Ю. Нахаев, 552 стр., Издательство: Горячая Линия – Телеком, ISBN 978-5-9912-0110-0; 2009 г.


Содержание

 

Введение…………………………………………………………………….  
1. Лабораторная работа 1. Защита исполняемых exe файлов с помощью навесной защиты HASP ……………………………………  
1.1 Подготовительный этап ………………………………………………  
1.2 Создание компонентов ……………………………………………….  
1.3 Установка защиты ПО………………………………………………..  
1.4 Формирование программного пакета ………………………………  
1.5 Создание условно-бесплатной версии ……………………………..  
1.6 Оформление и обработка заказов ………………………………….  
1.7 Работа с защищенным приложением на стороне пользователя …  
2. Лабораторная работа 2. Организация встроенной защиты программы, написанной на Deplhi с помощью SENTINEL HASP API ……………………………………………………………………..  
3. Лабораторная работа 3. Защита DLL библиотек с помощью Sentinel HASP …………………………………………………………  
Литература …………………………………………………………………  
   

 


Кафедра системного анализа



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 646; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.228.88 (0.306 с.)