HASP 4 для разработчиков

HASP 4 для разработчиков


Инструкция по миграции c HASP4 на Sentinel LDK

Для перехода на систему защиты Sentinel LDK требуется следующее:
  1. Купить синий Sentinel HL Master ключ под вашу серию разработчика.
  2. Cкачать комплект разработчика для современной системы защиты
  3. Cкачать драйвер для работы ключей c современной системой защиты
  4. Также можно ознакомиться с обучающими видео-уроками по защите приложений с использованием Sentinel LDK
Для работы с современной системой защиты необходимо перезащитить своё приложение с помощью средств из комплекта разработчика Sentinel LDK (посредством утилиты Sentinel LDK Envelope или используя Sentinel LDK Licensing API). Защищать необходимо незащищённое приложение.

Ключи с маркировкой HASP HL или Sentinel будут работать с системой защиты Sentinel LDK. Возможно, потребуется обновить прошивку ключа, однако данная операция выполняется автоматически, как только ключ подсоединяется к компьютеру с установленным на нём свежим драйвером и работающим Интернетом. Ключи с маркировкой HASP4 работать не будут, так что их придётся заменить. Кроме того, в зависимости от вашей схемы лицензирования, может потребоваться удалённо обновить ключи клиентам, записав туда все необходимые для работы защищённого ПО лицензии. Делается это с помощью стандартного функционала удалённого обновления (подробнее см. Видео урок 4).

Работа приложений, защищенных при помощи электронных ключей HASP4, HASP HL и Sentinel HL в рамках системы защиты HASP4 под Windows Vista


Для работы приложения, защищенного при помощи электронных ключей HASP4, HASP HL и Sentinel HL в рамках системы защиты HASP4 под Windows Vista должны выполняться следующие требования:
  • Версия установленного драйвера ключа защиты не ниже 4.102
  • Версия HASP4 API, использованного при защите программы, не ниже 8.01.
  • Версия HASP4 Envelope (instw32.exe), использованного при защите, не ниже 12.10.

Работа приложений, защищенных при помощи электронных ключей HASP4, HASP HL и Sentinel HL в рамках системы защиты HASP4 под Windows 7 и новее


Приложения, защищенные при помощи электронных ключей HASP4, HASP HL и Sentinel HL, под Windows 7 и более свежими ОС работать не будет, так как данная система защиты официально не поддерживает данные ОС.

Чтобы приложение работало на современных ОС, необходимо использовать современную систему защиты – Sentinel LDK (SRM). Как перейти на современную систему защиты, см. "Инструкция по миграции c HASP4 на Sentinel LDK (SRM)".

Работа ключа на удаленной машине – настройка файла "nethasp.ini"

Для того, чтобы защищенное приложение нормально работало на удаленной рабочей станции, необходимо обеспечить беспрепятственный проход UDP- и TCP-пакетов по порту 475 в обе стороны. Также должны проходить и broadcast-пакеты. Если последнее требование не выполняется, необходима настройка приложения через файл "nethasp.ini" (должен находиться в одной директории с защищенным приложением) с целью отключения broadcast-механизма поиска ключа и явного указания IP-адреса машины, обслуживающей ключ.

Пример "nethasp.ini":


[NH_COMMON]

NH_TCPIP = Enabled

...

[NH_TCPIP]

NH_SERVER_ADDR = 168.192.1.41 //IP-адрес компьютера, где расположен менеджер лицензий.

NH_TCPIP_METHOD = TCP

NH_USE_BROADCAST = Disabled


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


Ошибка: «No authorization to run this program (130), Feature not found (Error 31), (H0031)»


Возникновение данной ошибки возможно в следующих случаях:

  • В память ключа защиты программного обеспечения Sentinel (HASP) не прошита лицензия на используемый Program Number / Feature ID. Если вы являетесь пользователем защищенного приложения, необходимо обратиться к разработчику данного ПО для замены или обновления ключа. Если вы являетесь разработчиком, следует прошить лицензию в память ключа с помощью утилиты HASPEdit.
  • На компьютере установлено 2 ключа защиты ПО HASP одной серии. Виден только один из них – тот, на котором не прописана данная лицензия. Попробуйте подключить ключи поочередно и проверить, запускается ли приложение.
  • Если ключ HASP, с помощью которого защищена программа, сетевой, возможна ситуация, когда в сети работает несколько менеджеров лицензий, обслуживающих ключи защиты ПО одной серии с разным набором лицензий. В таком случае если защищенное приложение находит первым ключ HASP, не содержащий искомой лицензии, выдается данная ошибка. Необходимо произвести настройку менеджеров лицензий – см. "Два и более менеджеров лицензий (HASP License Manager) в сети".

Ошибка: «Error 1009: Cannot open Hasp HL Drivers»


Возникновение данной ошибки возможно в следующих случаях:

  1. Не установлен драйвер ключа HASP. https://thales-sentinel.ru/helpdesk/download-space/#tabs-4
  2. Приложение запускается раньше, чем драйвер закончит инициализацию.

Ошибка «Hasp not found (0)»


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


Ошибка «HASP not found (-4), (Error 4), (H0004), Too many open Features»


Возникновение данной ошибки возможно в следующих случаях.

  1. Количество сессий (пользователей) с ключом защиты превысило допустимое ограничение. В данном случае необходимо либо ограничить число пользователей, использующих защищенное приложение, либо обратиться к поставщику защищенного ПО для покупки/обновления ключа HASP до большего количества лицензий.
  2. Ключ защиты, с помощью которого защищена программа – сетевой, и в сети работает несколько менеджеров лицензий, обслуживающих ключи защиты ПО одной серии. В таком случае если защищенное приложение находит первым ключ HASP, с которым уже установлено максимальное количество сессий, выдается данная ошибка. Необходимо произвести настройку менеджеров лицензий – см. "Два и более менеджеров лицензий (HASP License Manager) в сети".
  3. После завершения приложения остается активной сессия с ключом HASP. Из-за этого сокращается реальное количество возможных подключений к ключу защиты HASP и выдается данная ошибка. Необходимо перезапустить менеджер лицензий (только для систем защиты HASP4 и HASP HL).


Отсутствует LPT (USB) порт на компьютере. Порт LPT установлен в виде платы расширения


В случае, если необходимо установить LPT-ключ HASP4 на компьютере, где отсутствует LPT-порт, можно установить PCI-плату расширения с портом LPT, позволяющую установить базовый адрес порта в значение 0x378, 0x3BC или 0х278 . При установке PCI-платы с LPT-портом необходимо учитывать, что базовый адрес LPT-порта, установленного на PCI-шине, отличается от общепринятых значений для интегрированных портов (это 378h, 3BCh и 278h). Поэтому для установки драйвера следует использовать утилиту установки с интерфейсом командной строки. Данная утилита позволяет задать любой базовый адрес порта при установке драйвера. Синтаксис данной утилиты:

"hinstall -i -lpt1=x", где x - базовый адрес порта. Посмотреть его значение можно в менеджере устройств.

Пример для данных адресов:

"hinstall -i -lpt1=0x378" или "hinstall –i -lpt1=0x3BC"

К сожалению, ключи не работают на переходниках PCMCIA-LPT или USB-LPT. Это связано с особенностями работы драйвера ключа. Также технически возможна замена LPT-ключа на аналогичный USB-ключ, однако этот вопрос необходимо решать с компанией-разработчиком защищенного ПО. В случае отсутствия портов USB их можно добавить с помощью плат расширения PCI или PCMCIA.




Менеджер лицензий (HASP License Manager) «грузит» одно из ядер процессора на 100%. Массовые сетевые ошибки "receive problem error 10038" и "receive problem error 10054", неконтролируемый рост потребления оперативной памяти процессом


Причина сбоев в работе менеджера лицензий – «битые» пакеты, приходящие по UDP. Поскольку обмен при помощи UDP-дэйтаграмм не предусматривает контроля успешной доставки пакета, данный протокол надежно работает только в сетях, построенных на высококачественном оборудовании. Если же на какой-нибудь рабочей станции, где запускается защищенное приложение, установлена карта, которая не корректно работает с FlowControl, то это приводит к вышеописанной ситуации. Единственный способ разрешить эту проблему, не учитывая замену оборудования на более качественное, – это переход на обмен посредством TCP-пакетов. В этом случае контролируется успешная доставка каждого пакета и работа с ключом становится более надежной.

Для того, чтобы настроить защищенное приложение на работу через TCP-пакеты, необходимо сконфигурировать файл "nethasp.ini" следующим образом:


"nethasp.ini"

[NH_COMMON]

NH_TCPIP = Enabled

...

[NH_TCPIP]

NH_SERVER_ADDR = 168.192.1.41

NH_TCPIP_METHOD = TCP

...


Адрес дан для примера, следует указывать реальный IP-адрес машины, где установлен менеджер лицензий. Далее (важно!) следует отключить в менеджере лицензий прослушивание UDP-протокола, оставив только TCP:


"nhsrv.ini"

...

[NHS_IP]

NHS_USE_UDP = disabled

NHS_USE_TCP = enabled

...


Если этого не сделать, то при получении "битых" UDP-пакетов менеджером ошибка может возникнуть вновь.

Некоторые приложения не работают по TCP, только по UDP (например, 1С 8.х). Однако можно заставить их использовать TCP неявно. Для этого помимо того, что описано выше, необходимо разрешить в свойствах протокола TCP/IP (Properties - Advanced - WINS) поддержку NetBios over TCP/IP на рабочих станциях, где работает защищенное приложение, и на машине, где установлен ключ. Конфигурационные файлы приложения необходимо настроить следующим образом:


"nethasp.ini"

[NH_COMMON]

NH_TCPIP = Disabled

NH_NETBIOS = Enabled

...

[NH_NETBIOS]

...

NH_USELANANUM = ...


Значение параметра Num можно взять из лога менеджера лицензий, там указывается, какие каналы менеджер слушает по NetBios. Если номеров несколько, переберите их по очереди, пока 1С не запустится. При такой настройке 1С в качестве транспорта по-прежнему будет использовать TCP/IP, но работать с ним будет через интерфейс NetBios. Причем при передаче пакетов будет использоваться именно TCP-механизм в силу особенностей реализации NetBios через TCP/IP.



Два и более менеджеров лицензий (HASP License Manager) в сети


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

Основная идея настройки в данном случае – назначить каждому менеджеру свое имя и сообщить каждой копии ПО эти имена. Задать имя менеджеру можно через файл "nhsrv.ini", он должен находиться в одном каталоге с менеджером лицензий (по умолчанию - C:\Program Files\Aladdin\HASP LM). Если менеджер лицензий установлен как сервис, то данный файл необходимо скопировать в каталог Windows\System32 (для 64-разрядных ОС – Windows\SysWOW64). Имя должно состоять из алфавитно-цифровых символов (можно использовать только латиницу) и не должно быть длиннее 7 символов.

Пример настройки:


"nhsrv.ini" #1

[NHS_SERVER]

NHS_SERVERNAMES = LM1



"nhsrv.ini" #2

[NHS_SERVER]

NHS_SERVERNAMES = LM2


Сообщить защищенному приложению имена менеджеров можно через файл "nethasp.ini", он должен находиться в одном каталоге с защищенным приложением или в каталоге, который указал разработчик (для 1С – каталог Bin\Conf от корня установки 1С):


"nethasp.ini"

[NH_COMMON]

NH_TCPIP = Enabled

[NH_TCPIP]

NH_SERVER_ADDR = 168.192.1.41, 168.192.1.11

NH_SERVER_NAME = LM1, LM2


Параметры "адрес" и "имя" должны соответствовать друг другу, т.е. на машине с адресом 168.192.1.41 должен быть запущен менеджер с именем LM1. Адреса даны для примера, следует указывать реальные IP-адреса машин, где установлены соответствующие менеджеры лицензий.



Aladdin Monitor не показывает ключ HASP


Сам по себе монитор может показать только наличие менеджера лицензий на том или ином адресе. Ключ он сможет увидеть только после того, как защищенное приложение успешно откроет хотя бы одну сессию с ключом. Кроме того, следует учитывать, что Aladdin Monitor работает только по протоколу UDP, порт 475. Таким образом, отсутствие данных о ключе в мониторе еще не означает, что ключ недоступен для приложения.


Инструкция по эксплуатации программных продуктов «1C» и ключей защиты HASP

Уважаемые клиенты! Рекомендуем вам ознакомиться с инструкцией по эксплуатации программных продуктов «1C» и ключей защиты HASP.

HASP4 и "зависшие" сессии

Система защиты HASP4 устарела и была снята с поддержки в 2006 году, с тех пор для неё ничего не дорабатывалось. В менеджере лицензий 8.32 периодически возможно "зависание части лицензий", происходящее из-за некорректного завершения сессии с ключом.

Решение возможно путём перезагрузки службы менеджера лицензий (ручной или автоматической по расписанию), в ходе которой будут завершены все сессии с ключом, в том числе и зависшие, либо по истечению таймаута равного 24 часам.



Почему в Sentinel Admin Сontrol Center не видно ключ HASP4? Подходит ли драйвер от Sentinel LDK (SRM) для HASP4?


Sentinel Admin Сontrol Center – это web-интерфейс менеджера лицензий, встроенного в драйвер от системы защиты Sentinel LDK (SRM), ключи Sentinel (HASP) не работают с ним в рамках системы защиты HASP4.

Для работы ключей по сети в рамках системы защиты HASP4 существует менеджер лицензий – HASP License Manager 8.32, который устанавливается отдельно.

Драйвер от системы защиты Sentinel LDK (SRM) обеспечивает работу ключа Sentinel (HASP) как устройства на ПК, а для работы ключа с защищённым ПО по сети (в рамках системы защиты HASP4) нужен ещё и менеджер лицензий 8.32, Sentinel Admin Сontrol Center при этом никак не задействуется и на отображение /не отображение в нём ключей внимание обращать не стоит.