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

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



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

Для перехода на систему защиты Sentinel LDK потребуется следующее:
  1. Купить синий Sentinel HL Master ключ под вашу серию разработчика.
  2. Cкачать комплект разработчика для современной системы защиты
  3. Cкачать драйвер для работы ключей c современной системой защиты
  4. Также вы можете ознакомиться с обучающими видео-уроками по защите приложений с использованием системы защиты Sentinel LDK: https://thales-sentinel.ru/demo-zone/
Для работы с современной системой защиты необходимо перезащитить своё приложение с помощью средств из комплекта разработчика Sentinel LDK (используя утилиту Sentinel LDK Envelope или с помощью Sentinel LDK Licensing API). Защищать необходимо незащищённое приложение.
Ключи с маркировкой HASP HL или Sentinel будут работать с системой защиты Sentinel LDK. Возможно, потребуется обновить прошивку ключа, однако данная операция выполняется автоматически, как только ключ подсоединяется к компьютеру с установленным на нём свежим драйвером и работающим Интернетом. Ключи с маркировкой HASP4 работать не будут, так что их придётся заменить. Кроме того, в зависимости от вашей схемы лицензирования может потребоваться удалённо обновить ключи клиентам, записав туда все необходимые для работы защищённого ПО лицензии. Делается это с помощью стандартного функционала удалённого обновления (подробнее см. Видео урок 4).

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


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


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


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

Чтобы приложение работало на современных ОС, необходимо использовать современную систему защиты – Sentinel LDK. Как перейти на современную систему защиты, см. "Инструкция по миграции с HASP HL на 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

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



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


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

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


Менеджер лицензий (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 over TCP/IP.


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


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

Основная идея настройки в данном случае – назначить каждому менеджеру свое имя и сообщить каждой копии 1С эти имена. Задать имя менеджеру можно через файл "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. Таким образом, отсутствие данных о ключе в мониторе еще не означает, что ключ недоступен для приложения.


Работа ключа на удаленной машине – настройка "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

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



Почему в Sentinel Admin Сontrol Center не видно лицензий и сессий HASP HL? Подходит ли драйвер от Sentinel LDK (SRM) для HASP HL?



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

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

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