Поддержка ключей HASP в Wine — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(HASP SRM)
(HASP SRM)
Строка 31: Строка 31:
 
=== HASP SRM ===
 
=== HASP SRM ===
  
[[Изображение:hasp_srm.png|thumb|right|Схема взаимодействия HASP SRM]]
+
[[Изображение:hasp_srm.png|thumb|right|400px|Схема взаимодействия HASP SRM]]
 +
 
 
И в Windows, и в Linux на TCP/1947 работает веб-интерфейс. По умолчанию доступ к нему разрешён только с машины, на которой он запущен. В Linux защищённая программа взаимодействует с демоном hasplmd, в Windows - со службой hasplms (HASP License Manager). Работа и с сетевым, и с локальным ключами происходит через локальный демон или службу по TCP/1947. Сетевой ключ, установленный на Linux-машине, позволяет работать с защищёнными программами на Windows-машине, и наоборот. Взаимодействие между различными машинами по сети происходит по TCP/1947 и по UDP с использованием порта 1947 и ещё одного порта, номер которого меняется при перезапуске демона.
 
И в Windows, и в Linux на TCP/1947 работает веб-интерфейс. По умолчанию доступ к нему разрешён только с машины, на которой он запущен. В Linux защищённая программа взаимодействует с демоном hasplmd, в Windows - со службой hasplms (HASP License Manager). Работа и с сетевым, и с локальным ключами происходит через локальный демон или службу по TCP/1947. Сетевой ключ, установленный на Linux-машине, позволяет работать с защищёнными программами на Windows-машине, и наоборот. Взаимодействие между различными машинами по сети происходит по TCP/1947 и по UDP с использованием порта 1947 и ещё одного порта, номер которого меняется при перезапуске демона.
  

Версия 19:25, 5 марта 2009

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

  • HASP 3 (LPT) сетевые и локальные
  • HASP 4 (USB) сетевые и локальные
  • HASP HL (USB) сетевые и локальные

Поколение HASP SRM с интересующей нас точки зрения отличается только другими драйверами и менеджером лицензий, существенно переписанной схемой взаимодействия.

Ситуация по поколениям ключей

HASP HL

Файл:Hasp hl.png
Схема взаимодействия HASP HL

Поддержка платформы Linux у ключей HASP имеется давно и в полном объёме. Раньше ситуацию немного омрачали LPT-ключи, которым требовалось компилировать модуль ядра, сейчас такие ключи становятся менее актуальны, да и сборка модуля ядра максимально упрощена. Поддержка платформы Mac OS нас пока не интересует, а поддержка FreeBSD до сих пор так и не появилась, несмотря на многочисленные просьбы.

При запуске программ в Wine под Linux появляются проблемы с локальными ключами, связанные с тем, что драйверы устройств в него до недавнего времени нельзя было загрузить. В настоящий момент имеется частичная поддержка локальных ключей HASP USB, которая позволяет запускаться некоторым программам (например, программа "Цветок" для лечения амблиопии у детей).

С поддержкой сетевых ключей HASP 4/HL проблем не было никаких, поскольку имеется драйвер ключа и менеджер лицензий, запускаемый в Linux, слушающий порт UDP/475, к которому можно обратиться из Wine или Windows. Странным является только то, что в Windows менеджер лицензий слушает порт TCP/475. Зачем сделано отличие, не ясно, но оно неплохо вносит сумятицу.

Драйвер ключа под Linux - aksusbd, менеджер лицензий - hasplm.

WINEHASP. В 2005 году Etersoft совместно с LinuxCenter обратились в Аладдин с предложением наладить работу локальных ключей HASP. Решение планировалось универсальным, но по какой-то причине применяется только компанией 1С. В Windows-API HASP HL начиная с версии API 1.12 добавлена проверка на запущенность в Wine и обращение при этом производится на localhost по порту UDP/2790 (который слушает процесс winehasp).

HASP SRM

Файл:Hasp srm.png
Схема взаимодействия HASP SRM

И в Windows, и в Linux на TCP/1947 работает веб-интерфейс. По умолчанию доступ к нему разрешён только с машины, на которой он запущен. В Linux защищённая программа взаимодействует с демоном hasplmd, в Windows - со службой hasplms (HASP License Manager). Работа и с сетевым, и с локальным ключами происходит через локальный демон или службу по TCP/1947. Сетевой ключ, установленный на Linux-машине, позволяет работать с защищёнными программами на Windows-машине, и наоборот. Взаимодействие между различными машинами по сети происходит по TCP/1947 и по UDP с использованием порта 1947 и ещё одного порта, номер которого меняется при перезапуске демона.

В WINE защищённые программы не работают. По-видимому, это связано с тем, что Linux-программа и работающая в WINE Windows-программа сообщают различную информацию о машине, на которой они работают, то есть протоколы локального обмена разные для Windows / Linux.

Количество драйверов, необходимых для работы с ключом в Windows, увеличилось по сравнению с HASP HL, что не упрощает реализацию их поддержки в WINE@Etersoft. Для Linux поставляются aksusbd, winehasp под теми же именами, что и прежде, и они совместимы с программами, написанными для HASP HL. Менеджер лицензий называется теперь hasplmd, и совместимости с предыдущим не имеет.

Странно, что hasp_demo.exe из HASP-SRM-3-50/Windows/Installed/Samples/Runtime/C/win32/msc/dll/ не видит ключ, хотя в идущей рядом hasp_windows_demo.dll проверка на Wine и код обращения к winehasp имеется.

Ситуация по популярным программам

1С:Предприятие 7.7

Сетевые ключи работают без проблем. Поддержка локальных ключей находится в стадии тестирования.

1С:Предприятие 8.х

Для 1С:Предприятия 8.х работают как сетевые, так и локальные ключи. Локальные ключи работают через winehasp.

КОМПАС v.10

Используется HASP HL без поддержки Wine, из-за чего не работают локальные ключи. Сетевые ключи проверены, проблем нет.

КОМПАС v.11

Используется HASP SRM. На тестовых ключах возможность сетевой работы проверена, с КОМПАС ещё не проверялось.