Защита информации в системах дистанционного обучения с монопольным доступом
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: гражданское право реферат, реферат на тему человек
| Добавил(а) на сайт: Popyrin.
Предыдущая страница реферата | 15 16 17 18 19 20 21 22 23 24 25 | Следующая страница реферата
HRESULT GetAlgName(
[in] BSTR Strings,
[in] BSTR SearchName,
[out, retval] BSTR *ResultStr);
Функция GetAlgName, используя имя файла с данными, возвращает
соответствующий алгоритм шифрования или расшифрования. Поиск производится в
переданной строке. Формат строки эквивалентен формату, с которым работают и
другие функции. Например, EasyCreateConformityFile или ReadConformityFile.
Описание используемых параметров:
Strings – строка с информацией о соответствиях.
SearchName – имя файла с данными, для которого будет произведен поиск
соответствующего алгоритма.
ResultStr – возвращаемое имя файла с алгоритмом.
HRESULT GetDataName(
[in] BSTR Strings,
[in] BSTR SearchName,
[out, retval] BSTR *ResultStr);
Функция GetDataName, используя имя файла с алгоритмом, возвращает имя
соответствующего файла с данными. Поиск производится в переданной строке.
Формат строки эквивалентен формату, с которым работаю и другие функции.
Например EasyCreateConformityFile или ReadConformityFile.
Описание используемых параметров:
Strings – строка с информацией о соответствиях.
SearchName – имя файла с алгоритмом, для которого будет произведен
поиск соответствующего файла с данными.
ResultStr – возвращаемое имя файла с данными.
HRESULT GetAlgFromFile(
[in] BSTR FileName,
[in] BSTR uptFileNameForRead,
[in] BSTR SearchName,
[out, retval] BSTR *ResultStr);
Функция GetAlgFromFile, подобно функции GetAlgName, возвращает
соответствующий алгоритм шифрования или расшифрования по имени файла с
данными. В отличие от нее, на входе она получает не строку с информацией о
соответствиях, а имя с этой информацией и алгоритм для ее расшифрования.
Функция может быть более удобна в плане ее использования, но она менее
эффективна. Так, если требуется активно работать с таблицами соответствий, то для ускорения работы рекомендуется отказаться от использования функции
GetAlgFromFile. Эффективнее будет однократно прочитать информацию о
соответствиях, используя функцию ReadConformityFile, а затем использовать
функцию GetAlgName.
Описание используемых параметров:
FileName – имя файла с зашифрованной информацией о соответствиях.
uptFileNameForRead – файл с алгоритмом расшифрования.
SearchName – имя файла с данными, для которого будет произведен поиск
соответствующего алгоритма.
ResultStr – возвращаемое имя файла с алгоритмом.
HRESULT GetDataFromFile(
[in] BSTR FileName,
[in] BSTR uptFileNameForRead,
[in] BSTR SearchName,
[out, retval] BSTR *ResultStr);
Функция GetDataFromFile, подобно функции GetDataName, возвращает имя
соответствующего файла с данными, по имени файла с алгоритмом. В отличии от
нее, на входе она получает не строку с информацией о соответствиях, а имя с
этой информацией и алгоритм для ее расшифрования. Функция может быть более
удобна в плане ее использования, но она менее эффективна. Так, если
требуется активно работать с таблицами соответствий, то для ускорения
работы рекомендуется отказаться от использования функции GetDataFromFile.
Эффективнее будет однократно прочитать информацию о соответствиях, используя функцию ReadConformityFile, а затем использовать функцию
GetDataName.
Описание используемых параметров:
FileName – имя файла с зашифрованной информацией о соответствиях.
uptFileNameForRead – файл с алгоритмом расшифрования.
SearchName – имя файла с алгоритмом, для которого будет произведен
поиск соответствующего файла с данными.
ResultStr – возвращаемое имя файла с данными.
4.3. Руководство программиста по использованию программы ProtectEXE.exe
Программа ProtectEXE.EXE предназначена для защиты исполняемых файлов
от модификации. Под исполняемыми модулями понимаются EXE файлы в формате PE
(Portable Executables). Защита исполняемых модулей основана на их
шифровании. Особенностью утилиты ProtectEXE является то, что она шифрует
каждый исполняемый файл уникальным полиморфным алгоритмом. Это затрудняет
возможность использования программного взломщика, основанного на
модификации определенных кодов в программе. Поскольку каждый исполняемый
файл зашифрован своим методом, то и модифицировать их единым методом
невозможно. Утилита ProtectEXE.EXE не позволяет защититься от динамического
модифицирования в памяти. Это слишком сложно и не может быть достигнуто без
существенной переделки исходного текста самой защищаемой программы. Но в
рамках защиты дистанционных средств обучения такая защита должна быть
достаточно эффективна, так как создание взламывающей программы экономически
мало целесообразно, а следовательно и скорее всего не будет осуществлено.
Модуль ProtectEXE.EXE имеет два возможных режима запуска. Первый режим предназначен для генерации зашифрованного файла из указанного исполняемого модуля. Второй режим служит непосредственно для запуска защищенного модуля.
Опишем этап создания зашифрованного файла. Для создания зашифрованного файла необходимо запустить ProtectEXE.EXE, указав в качестве параметра имя шифруемого исполняемого файла. Можно указать не только имя, но и путь. В результате буду сгенерированы два файла. Если было указано только имя, то файлы будут располагаться в текущем каталоге. Если был указан путь к файлу, то сгенерированные файлы будут созданы в том же каталоге, где расположен и шифруемый файл. Первый файл будет иметь расширение upb. Он представляет собой непосредственно зашифрованный исполняемый файл. Второй файл будет иметь расширение upu. Он представляет собой ключ, необходимый для расшифровки исполняемого файла. При разработке ProtectEXE было принято решение хранить зашифрованный файл и ключ для его расшифровке не в едином файле, а раздельно. Это было сделано с целью большей гибкости. Если хранить все в одном файле, это будет означать, что его всегда будет возможно запустить. Раздельное хранение ключа позволяет создавать систему, где запуск определенных программ будет запрещен. Например, программа дистанционного обучения может позволять запускать набор определенных программ только тогда, когда будет выполнен ряд условий. Допустим, после сдачи определенного набора работ. Когда определенные работы будет сданы и защищены, АРМ преподавателя выдает студенту необходимые для дальнейшей работы ключевые файлы. Можно было бы, конечно, выдавать сразу расшифрованный бинарный файл, но программа может быть достаточно большой, и это просто нерационально. И, тем более, тогда нет никаких сложностей скопировать ее другому студенту, которому она еще не должна быть выдана.
Теперь опишем второй режим работы. Это непосредственно запуск зашифрованного модуля. Для его запуска необходимо запустить ProtectEXE, указав в качестве параметра путь и имя зашифрованного файла с расширением upb. Если будет найден ключевой файл с тем же именем, но с расширением upu, то программа будет запущена. При этом будет создан временный файл с расширением exe. Он будет располагаться в том же каталоге, где нахолодятся фалы с расширением upb и upu. Этот файл является временным и будет удален после завершения работы программы. Данный файл, хоть и носит расширение exe, не является исполняемым файлом. В чем можно убедиться, попытавшись запустить его. Результатом будет его зависание. Поэтому не следует бояться, что это расшифрованный файл, и студент сможет скопировать его, когда он будет создан.
4.4. Описание использования системы защиты на примерах
4.4.1. Подключение модуля защиты к программе на языке Visual C++
Распишем шаги, которые наобходимо проделать, чтобы подключить COM модуль Uniprot к программе, написанной на Visual C++.
1. Создайте новый или откройте уже существующий проект.
2. Создайте новую папку в каталоге с проекта или выберете уже существующую и скопируйте в нее необходимые для подключения библиотеки файлы. Это файлы: export.h, export.cpp, Uniprot.tlb.
3. Откройте MFC ClassWizard. Для этого выбирете в меню пункт
View->ClassWizard.
4. Нажмите на кнопку Add Class и выберете пункт "From a type library…".
5. Укажите путь к файлу Uniprot.tlb и откройте его.
6. В диалоге Confirm Classes вам скорее всего будет достаточно сразу нажать кнопку "Ok". Но если вы не согласны с продложенными установками по умолчанию, то можете внести в них соответсвующие изменения.
7. Закройте диалог MFC ClassWizard.
8. Включите в проект файлы export.h, export.cpp.
9. Добавить include "export.h" в те модуле, где вы планируете использовать библиотеку Uniprot.
10. Проверьте, что у вас инициализируется работа с COM. То есть вызывается функция CoInitialize.
11. Теперь вы можете работать с библиотекой COM например так.
IProtect ProtectObj;
IProtectFile ProtectFileObj;
ProtectObj.CreateDispatch(UniprotLibID);
ProtectFileObj.CreateDispatch(UniprotLibID);
LPDISPATCH pDisp = ProtectFileObj.m_lpDispatch;
HRESULT hr = pDisp ->QueryInterface(
IProtectFileIntarfaceID,
(void**)&ProtectFileObj.m_lpDispatch);
VERIFY(hr == S_OK);
4.4.2. Подключение модуля защиты к программе на языке Visual Basic
Распишем шаги, которые наобходимо проделать, чтобы подключить COM
модуль Uniprot к программе, написанной на Visual Basic.
12. Создайте новый или откройте уже существующий проект.
13. Создайте новую папку в каталоге с проекта или выберете уже существующую и скопируйте в нее необходимый для подключения библиотеки файл. Это файл: Uniprot.tlb.
14. Откройте диалог References. Для этого выбирете в меню пункт
Рекомендуем скачать другие рефераты по теме: ответы 5 класс, реферат теория.
Категории:
Предыдущая страница реферата | 15 16 17 18 19 20 21 22 23 24 25 | Следующая страница реферата