Проект 'ПОтребитель'
Главная | Новости | Информация | Статьи | Программы
Законы | Ссылки | О проекте | Off topic


Что такое NOVEX Key... и что такое NOVEX Key.

v1.0 (f)2k Michael 'Mihal' Orehov


Что такое Novex Key (Guardant Aptus)?

Novex Key, он же Guardant Aptus - это устройство размером со спичечный коробок, выполненное в виде переходника между компьютером и кабелем принтера и предназначенное для защиты программ DOS- и Windows-формата от компьютерного пиратства и выпускаемое компанией "Актив".

http://www.novex.ru
http://www.guardant.ru

Свои первые электронные ключи NOVEX Key компания Актив выпустила в конце 1994 года. По утверждениям компании "Актив" электронные ключи Novex Key (Guardant Aptus) стали первыми электронными ключами такого класса, разработанными и произведенными в России и завоевали большую популярность как в России, так и за рубежом. Хотя специалисты, знакомые с системой защиты CodeSafe Copy Protection System, которая производилась фирмой EliaShim microcomputers, LTD. и до 1994 года (т.н. ключи CSPlug/MemoPlug) и могут усомниться в некоторых положениях этого утверждения :)

По утверждению компании "Актив" NOVEX Key (Guardant Aptus) - это:

Электронный ключ Guardant Aptus имеет 232 байта энергонезависимой памяти, не требующей источника питания и сохраняющей записанную в нее информацию в течение порядка 100 лет. Поставляемое программное обеспечение позволяет хранить в памяти ключа:

Ключам, продаваемым каждому пользователю компанией "Актив" присваиваются Личный и Общий коды, "прошиваемые" в каждый ключ на этапе производства. При этом уникальный Общий код служит для идентификации ключей, а Личный, хранимый в секрете, является паролем, без знания которого невозможен доступ к ключу. Таким образом, программировать купленные пользователем ключи сможет только он и никто другой. "Личный Код" (Private Code) не может быть просмотрен никакими программными средствами.
Компанией "Актив" предлагается ПО, предназначенное для автоматической защиты программ, которое позволяет:

Кроме того, разработчик защиты может использовать не только утилиты автоматической защиты, но и внедрить обращения к ключу на этапе разработки программы. Для работы с ключом используются две процедуры. Высокоуровневая NovexKey (NovexLanKey) и низкоуровневая nvOperatePlug (в последних версиях API названия процедур отличаются... но только названия :). На "низком" уровне можно использовать следующий набор функций для работы с ключом:

pcCheck        equ  1  ;Пpовеpить наличие ключа
pcCheckAndDec  equ  2  ;Пpовеpить наличие ключа и вычесть GP
pcReadByte     equ  3  ;Пpочитать байт
pcWriteByte    equ  4  ;Записать байт
pcReadBlock    equ  5  ;Пpочитать блок байт
pcWriteBlock   equ  6  ;Записать блок байт
pcGetID        equ  7  ;Чтение серийного кода (уникальный ID ключа)
pcGetResult    equ  8  ;Получить результат функции
pcCheckStart   equ  9  ;Пpовеpить наличие ключа и уменьшить ресурс
pcCheckEnd     equ 10  ;Пpовеpить наличие ключа и увеличить ресурс

Уже по этому набору функций видно, что несмотря на все кажущиеся навороты NOVEX Key довольно прост, и представляет из себя...


Что же такое в действительности Novex Key (Guardant Aptus)?



NOVEX Key - это память, только память и ничего кроме памяти. Если конкретно - это две микросхемы, одна из которых - мультиплексор, (нечто из серии 74153) благодаря которому можно подключать каскадно до трех NOVEX'ов друг в друга. А вот вторая микросхема - это микросхема Serial EEPROM типа MicroChip'овской 93C56. Это 256 байт энергонезависимой памяти с возможностью защиты областей от перезаписи (см. например www.fairchildsemi.com/ds/NM/NM93CS46.pdf) причем в NOVEX Key эта возможность используется. В NOVEX Key защищена область в которой записана служебная информация, такая как:

Защищенная область занимает 20 байт, а в оставшихся 236 байтах, размещается "логический" ключ (называю его так, чтоб различать физический ключ NOVEX и логические ключи, имеющие определенную структуру и прописаные в памяти NOVEX Key) или даже несколько ключей.

Таким образом, единственное, что, в принципе, можно делать с ключом NOVEX Key - это записывать в него байты и считывать байты. Все же остальные "навороты" вроде ограничения времени работы, количества запусков программы, шифрования фафйлов и так далее - суть навороты программные так как NOVEX Key не содержит никаких микропроцессоров и микроконтролеров реализуюших некие "секретные функции" или встроеных таймеров, ограничивающих время работы ключа. Ну а чтение и запись байт - элементарная операция, которую достаточно легко эмулировать, если есть возможность "вклиниться" в вызовы процедур работы с ключом.

Последнее утверждение подтверждено наличием довольно большого и, главное, разнообразного набора программных эмуляторов ключа NOVEX Key. Есть эмуляторы реализованные как "встраиваемые" в тело программы (т.н. "микрокернел"), есть реализованые в виде .DLL-библиотеки подменяющей стандартную .DLL используемую при работе с ключом и эмулирующие вызовы высокоуровневой процедуры Novex(Lan)Key. Самое же большое число эмуляторов, вероятно в силу простоты реализации выполнено в виде .VXD-драйвера, устанавливаемого в систему (Win95/98) вместо стандартных драйверов ключа NOVEX Key. Такие эмуляторы реализуют либо ограниченный набор функций API NOVEX Key, либо полный набор функций (универсальные). В последнем случае все, что нужно для эмуляции конкретного ключа - это считать с помощью соответствующей утилиты (например NKEdit) т.н. "дамп ключа" (память ключа NOVEX Key) и "зарядить" этим дампом универсальный эмулятор. Дело пяти минут :)

Эмуляция не единственный способ, позволяющий запускать программы защищенные ключом NOVEX Key без самого ключа. Из вышеприведенного списка функций "низкоуровневого" API NOVEX Key видно, что функции достаточно просты и зачастую исправление в исполняемом файле программы всего нескольких байт (т.н. "патч") приводит к тому, что программа становится вполне работоспособной без наличия ключа.

Для предотвращения "патчей" производителями ключа предлагается использовать стандартные "навесные" средства защиты (т.н. "конверт"), предотвращающие отладку и дизассемблирование программы хакером/кракером. Использование "навесной" защиты, как и обычно в таких случаях, приводит к тому, что защищенная программа становится более требовательной с ресурсам системы и менее устойчивой в работе (см. ниже "Почему надо использовать ключи...") что признают и сами разработчики ключей. И это при том, что как средство защиты от хакеров/кракеров "навесная" защита вовсе не так эффективна, как может показаться. Так, для win32-программ навесная защита довольно легко снимается с исполняемого файла с использованием универального win32-распаковщика ProcDump (http://protools.cjb.net), а для DOS-программ и вовсе существуют программы автоматического снятия "конверта" ключа NOVEX. Кроме всего прочего, легкость создания программного эмулятора NOVEX Key практически сводит на нет защитный эффект от использования "конверта"...

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

Данный аналог вполне работоспособен на большинстве компьютеров, и его схема неоднократно публиковалась, по крайней мере в эхоконференциях сети FIDONet определенной направлености :) Создание полного аналога ключа, при наличии желания, так-же не представляет из себя большой проблемы. Две типовых микросхемы (см. выше), несколько резисторов и конденсаторов, диоды... и аналог готов.

Еще одним интересным моментом в ключах данного типа является то, что в памяти физического ключа можно разместить несколько "логических" ключей для разных программ, то есть несколько ключей с разными PRIVATE и PUBLIC кодами открывающими доступ к конкретному ключу. Главное чтоб суммарный размер "логических" ключей не превышал размера физической памяти (256 байт минус служебная информация) Как следствие этого, иногда можно [несанкционировано] разместить в имеющемся ключе второй ключ, для еще одной программы, либо "урезав" имеющийся "логический" ключ разместить на его месте ключ для другой программы.


Заключение. В некотором роде :)

В целом ключ NOVEX, впрочем как и многие другие ключи, не выглядит таким уж надежным средством защиты программного обеспечения и не справляется в полной мере с возложенными на него задачами, но обходится разработчикам программ, а следовательно и покупателям программ в дополнительные деньги. То есть мало того, что покупатель программы оплачивает защиту программы ОТ САМОГО СЕБЯ (то есть разработчик программы изначально подозревает своих покупателей в нечестности, в стремлении купив одну копию программу использовать ее в десятке мест и тому подобное), то покупатель еще и оплачивает заведомо СЛАБУЮ защиту. Более того, покупатель защищенной программы платит не только за нее и за совершенно ему ненужный ключ. Он платит еще и за потенциальные "глюки" защиты и за проблемы с совместимостью как програмных, так и аппаратных средств с защитой и электронным ключом.

Вряд ли подобную покупку можно назвать удачной, вряд-ли многим нравится подобная практика, но она существует :(


Приложение.


Почему надо использовать электронные ключи для защиты программ.

В этом приложении я попытался, вкратце, описать преимущества использования электронных ключей для защиты программ. Чтобы не сочинять ничего самому, я просто выдрал "с мясом" (и с сохранением синтаксических ошибок ;), цитаты из замечательной книги "Система программно-аппаратной защиты NOVEX Key. Руководство пользователя. Издание четвертое. АО 'Актив', 1997". То есть в данном случае описываются преимущества использования для защиты именно ключа NOVEX (APTUS) Key, но, полагаю, многие из этих преимуществ присущи и другим ключам.

Мои комментарии (а их немного) помечены "!!!". Итак, приступим:

"В процессе загрузки и работы защищенная программа DOS-формата требует дополнительно не менее 14К оперативной памяти. Объем дополнительной оперативной памяти, требуемой для работы программы Windows-формата, зависит от особенностей строения этой программы."

"Приложения, защищенные с опцией /CED, не работают в Windows 95, а некоторые нестандартные приложения - и в других типах Windows."

"В сети ни в коем случае не должно существовать двух условно одинаковых ключей, т.е. ключей, у которых совпадают коды, серийные номера и версии. ...если такая ситуация все же возникнет, реакция серверов NOVEX LANKey на запросы может быть неоднозначна."

"IN и OUT. Время выполнения этих команд не должно быть меньше 1.1 мкс! В противном случае возможны проблемы..."

"Для надежной работы защищенных DOS- и Windows-приложений, а также утилит, работающих с электронными ключами, в Windows 95 рекомендуется наличие специального драйвера... Его использование позволяет сделать надежным обращение к электронному ключу в некоторых особых случаях (например, когда ключ и принтер подсоединены к одному и тому же компьютеру)."

!!! ничего себе "особый" случай - в LPT воткнут принтер ;)))

"Обычно утилита NWKEY.EXE удаляет из защищаемой программы данные, не входящие в состав ее сегментов. ... Однако в некоторых случаях - например, для Windows-приложений, написанных на FoxPro - подобное очищение программ негативно сказывается на их дальнейшей работе..."

"Нежелательно чтение блоков данных длиной более 50 байт из ключа NOVEX LANKey! Это с большой вероятностью может привести к сбою в момент чтения в сети. По той же причине нежелательна запись..."

"...возможны проблемы отсутствия совместимости между невыделенным сервером NOVEX LANKey и другими резидентными и нерезидентными программами."

"Невыделенный сервер NOVEX LANKey может обеспечивать нормальную работу только в небольших сетях (порядка 10 рабочих станций)."

"...программа, запущенная на том же компьютере, захватит его ресурсы. При этом возможна потеря посланных пакетов и как следствие - сбои в работе ПО."

"...в случае "зависания" станции, на которой загружен невыделенный сервер NOVEX LANKey (как DOS-, так и Windows-формата), будет нарушена работа всех защищенных программ в сети, работающих с этим сервером NOVEX LANKey."

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

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

"Ниже перечислены компьютеры, у которых интерфейсы параллельных портов не подходят для использования с электронными ключами NOVEX Key: ..."

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

" ЖЕЛАЕМ ВАМ УСПЕХОВ В РАБОТЕ! "


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



Ваши вопросы, предложения и комментарии направляйте по адресу:

E-mail:



Наверх На главную Письмо Web-мастеру