| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() |
MPKEY™ Введение Система защиты MPKey представляет собой систему защиты информации
и программных продуктов от несанкционированного использования. Основным ее
компонентом является небольшой аппаратный ключ, подключаемый к параллельному
порту IBM PC или полностью совместимого компьютера. После установки на компьютер
ключ MPKey становится неотъемлемой частью вашего программного пакета. Никаких
дополнительных действий конечному пользователю предпринимать не требуется. Преимущества микропроцессорных ключей семейства MPKey К достоинствам микропроцессорных ключей семейства MPKey можно отнести: Установка ключа на компьютер Для установки ключа MPKEY присоедините его к параллельному порту принтера
IBM PC или совместимого компьютера. Если компьютер расположен слишком близко
к стене или другому препятствию, вы можете подсоединить к порту переходной
кабель, а затем к этому кабелю подсоединить MPKEY. Используйте прямой 25-контактный
кабель типа "папа-мама". При вставке запросов в свое приложение вы сами задаете порт, который собираетесь
использовать. Ваши конечные пользователи должны устанавливать ключ на тот
порт, который вы указываете в этих запросах. Вы можете вставить в код приложения
проверку всех портов, тогда пользователи смогут сами выбрать тот порт, который
они хотят использовать.
Каскадирование Замечание: Каскадируемые ключи должны обязательно иметь различные идентификаторы.
Каждый МК имеет уникальный идентификатор, который используется прикладным
ПО при работе с ним. Такая "визитная карточка" позволяет использовать
несколько каскадно установленных на порт ключей, а приложениям - работать
с каждым из них независимо.
Персонализация ключа Перед продажей Вам партии ключей осуществляется запись в однократно программируемую
память специальной информации, как индивидуального характера, так и одинаковой
для всех ключей из приобретаемой Вами серии. В дальнейшем эта информация может
только читаться и использоваться ключом при выполнении функции. Аппаратный интерфейс параллельного порта В следующем далее описании аппаратного интерфейса параллельного порта
все ссылки относятся к сигналам соответствующих контактов разъема параллельного
порта, а не к состоянию программных регистров порта ввода-вывода. Подробнее
смотрите "Справочное руководство IBM" ("IBM Reference Manual")
или соответствующее руководство на Ваш компьютер. Обзор методов защиты программ и данных Существует несколько способов защиты программы и данных от несанкционированного использования. У всех их есть как сильные, так и слабые стороны.
Защита готового исполняемого модуля. Это наиболее простой способ и требует наименьших усилий со стороны разработчиков
по его реализации. Этим способом пользуются так же в тех случаях, когда невозможно
или нецелесообразно внести изменения в существующий исполняемый модуль. Защита данным способом часто называется "Защитной оболочкой"
(Shell). Суть этого метода сводится к тому, что исполняемый модуль кодируется
специальным образом с использованием ключа MPKey. В результате создается стартовый
модуль, который, используя MPKey, декодирует и запускает основной исполняемый
модуль.
Использование информации из ключа Суть этого метода сводится к опросу MPKey и выяснения наличия ключа и
чтения из него некоторой информации, записанной туда на стадии персонализации.
Более сложным способом определения наличия ключа является выполнение в ключе
некоторой функции и сравнения результата с заранее известным значением.
Перенос в ключ части кода приложения. Наиболее надежным способом защиты программы и данных от несанкционированного
использования является перенос части действий из персонального компьютера
в ключ. Можно, например, вместо сложения двух чисел в компьютере вызвать соответствующую
функцию MPKey и использовать ее результат в дальнейших вычислениях. Целостность
блока данных можно проверять путем вычисления контрольной суммы блока путем
применения секретных функций MPKey. Информацию можно Кодировать и декодировать
в ключе во время работы. И наконец, по просьбе клиента, в ключе может быть
реализован его собственный алгоритм преобразования блока информации.
Динамическое кодирование и декодирование кода программ и данных В программное обеспечение, поставляемое с MPKey, включены средства, которые
дают возможность кодировать и декодировать информационные блоки, как в данных
так и в теле программы. Кодирование и декодирование осуществляется на уровне
драйвера. Этот механизм дает возможность организовать программу таким образом,
чтобы некоторые функции и данные декодировались непосредственно перед их вызовом
или использованием, и кодировались сразу же по выходу из функции или после
использования данных. Программное обеспечение системы MPKey Программное обеспечение, входящее в состав комплекта разработчика, состоит
из трех логических частей: драйверов; библиотек для работы с различными средствами
программирования; служебных, тестовых, демонстрационных программ и примеров.
Драйверы Установка драйверов необходима для операционных систем Windows 95 и Windows
NT. Драйвер обеспечивает бесконфликтную коммуникацию между вашим приложением
и аппаратным ключом на фоне одновременного использования принтерного порта
другими приложениями. Драйвер должен устанавливаться на разрабатываемой вами
системе, а также на всех системах ваших конечных пользователей. Способ установки
драйвера зависит от используемой вами операционной системы. Программы драйверов,
средства и инструкции по их установке и удалению находятся на диске в директории
"\Bin".
Служебные, тестовые и демонстрационные программы Служебные программы, необходимые для проверки работоспособности ключа
и осуществления защиты готовых исполняемых модулей находятся в директории
\Bin. Для более полной информации читайте соответствующий ReadMe.txt файл.
Поддержка языков программирования Все необходимые для разработчика библиотеки взаимодействия с MPKey для "C" (mpkeyapi.c и mpkayapi.h) и "Delphi" (mpkeyapi.pas) находятся в директории \API. Для остальных средств программирования для взаимодействия с ключом могут использоваться динамически линкуемые библиотеки из поддиректории *.DLL, поставляемые в составе дистрибутивного диска в директории \Bin.
Примеры программирования В директории "\Example" находятся готовые проекты программ с примерами защиты программ и данных при помощи MPKey. Методология работы с ключом MPKEY подключается к параллельному порту компьютера, следовательно, для доступа
к информации и к функциям ключа, как и к любому физическому устройству, необходимо
работать с регистрами параллельного порта на аппаратном уровне. Однако, с
целью защиты от сбоев современные операционные системы не позволяют программе
работать с оборудованием напрямую, и поэтому, прямое обращение к параллельным
портам через инструкции in и out может привести к ошибке программы. И несмотря
на то, что иногда операционная система эмулирует вызовы этих ассемблерных
инструкции "на лету", часто возникают проблемы из-за конфликтов
драйвера принтера со стандартным обработчиком исключений, который в данный
момент старается исполнить ваш запрос. С другой стороны, каждое чтение или
запись информации ключа в реальности соответствует многократному обращению
к параллельному порту. И если ваша программа не является драйвером устройства,
то планировщик задач может прервать ее и передать управление другой задаче,
которая потенциально может "испортить" значения в используемом вами
порту. В результате это может привести к ошибкам в вашей программе и неправильной
печати на принтере. Рекомендации по защите программ с помощью MPKEY Почему так тяжело "взломать" программы,защищенные ключом MPKEY? Начнем с того, что выясним, что мы понимаем под словами "защитить программу".
Основная цель компаний, производящих программные продукты, это исключить возможность
их нелицензионного копирования и распространения. Защита может быть чисто
программной, когда ваша программа на этапе установки привязывется к индивидуальным
характеристикам компьютера. Она может быть и программно?аппаратной, когда
используется привязка программы к внешнему устройству (такой, как электронные
ключи). В идеальном случае, при отсутствии хакеров, программист проверит наличие
ключа и в случае его отсутствия или неверно введенного пароля прекратит работу
с программой. Однако, оговорка о хакерах, которая была сделана выше, очень
существенна. Дело в том, что высококвалифицированный программист, хорошо знающий
архитектуру машины и операционной системы, разбирающийся в системе команд
процессора, может с помощью отладочных средств трассировать (исполнять по
шагам) вашу программу, понять логику вашей защиты и как ее обойти. В дальнейшем
он введет нужные изменения в исходный код программы в исполнимом файле и вашу
программу можно будет свободно скопировать и распространять. Стоит отметить,
что несмотря на то, что нанять такого человека, коих не так уж много, стоит
достаточно дорого, некие компании, занимающиеся распространением пиратских
дисков с популярными программами могут пойти на "взлом" вашей программы.
|
|
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
|