WINE@Etersoft/Использование аппаратных ключей защиты в Linux

Материал из Русский WINE
Перейти к: навигация, поиск

Использование аппаратных ключей защиты в Linux

HASP (от англ. Hardware Against Software Piracy) — это мультиплатформенная аппаратно-программная система защиты программ и данных от нелегального использования и несанкционированного распространения.

Менеджеры лицензий и необходимые драйверы для поддержки ключей защиты в Linux поставляются в пакетах haspd и haspd-modules (модули ядра могут дополнительно поставляться в пакете dkms-*, если система поддерживает DKMS).

Драйверов для прочих систем (MacOS, FreeBSD, Solaris) не имеется, и в этих системах предоставляется только режим работы с сетевыми ключами (когда ключ подключен к другой машине с системой GNU/Linux или Windows.

При использовании локального ключа в программе winecfg на вкладке Ключи защиты нужно отметить соответствующий ключ загружаемым (см. winecfg).

Если необходимо обеспечить загрузку драйверов локальных ключей без ручной настройки, в соответствующий файл /etc/wine/reg.d (например, для HASP это будет /etc/wine/reg.d/usb_hasp.reg) нужно добавить строку Start =dword: 00000003 перед каждой строкой Type = в файле.

Для некоторых драйверов (Hardlock и Sentinel) в Start должно быть не 00000003, а 00000002.

Ключи защиты HASP 4/HL (Aladdin — Sentinel)

Ключи HASP бывают как локальные (однопользовательские), так и сетевые (многопользовательские). По способу подключения ключи также бывают двух типов: подключаемые к порту LPT (параллельный порт) и к шине USB. Для ОС GNU/Linux имеются драйверы USB- и LPT-ключей защиты для ядра версии 2.4 и 2.6. Рекомендуется использовать USB-ключ защиты, так как его подключение и настройка вызывает меньше проблем. Возможно, потребуется обратиться к поставщику программы и попросить о замене ключа.

Начиная с Win32 HASP HL API версии 1.12 поддерживаются локальные ключи HASP при работе из WINE@Etersoft. Примером такой программы является 1С:Предприятие 8.0 и выше. Также поддерживается платформа 1С:Предприятие 7.7, начиная с релиза 27 (за исключением локальных ключей для конфигурации Торговля и Склад).

Note: К сожалению, другие программы (не 1С), или конфигурации к 1С могут быть защищены ключами HASP способом, не поддерживаемым в WINE@Etersoft. Мы ведём работы по исправлению ситуации.

Подключение ключей HASP 4/HL

При эксплуатации программ, защищённых ключом защиты HASP (например, 1С:Предприятие 7.7), необходим драйвер ключа, установленный на компьютере с подключённым ключом. Для сетевого ключа в дополнение к драйверу потребуется также работающий сетевой менеджер лицензий. Сетевой ключ может располагаться на любом узле сети, работающем под управлением Linux или Windows.

Различение ключей:

  • локальные LPT-ключи -- белого цвета;
  • сетевые LPT-ключи -- красного цвета;
  • локальные USB-ключи фиолетового цвета (H4 M1 ORGL8);
  • однопользовательский USB-ключ синего цвета (H4 B1 ORGL8);
  • сетевые USB-ключи -- красного цвета (H4 NET5 ORGL8- после слова NET указано количество лицензий);
  • USB-ключ 32-битного сервера 1С:Предприятия 8 является локальным и имеет фиолетовый цвет (надпись H4M1 ENSR8).
  • USB-ключ 64-битного сервера 1С:Предприятия 8 является локальным и имеет фиолетовый цвет (надпись H4P1 ENSR8).
  • USB-ключ 64-битного сервера 1С:Предприятия 8 является локальным и имеет зелёный цвет (надпись H4 M4 EN8SA).


Note: ВАЖНО! Обратите внимание, что НЕЛЬЗЯ подключать к одному компьютеру ключи с лицензиями на одну и ту же программу, поскольку программа увидит только один из них. Это относится и к сетевым, и к локальным ключам.


Если ключ не работает, и при этом мигает, возможно, он неисправен. См. подробнее здесь.

Установка драйвера ключа HASP 4/HL

Все компоненты драйвера HASP, включая сетевой менеджер лицензий, находятся в пакете haspd. Достаточно обычным способом установить этот пакет (из каталога для вашей версии дистрибутива GNU/Linux) на тот компьютер, к которому подсоединён ключ (вне зависимости от типа ключа).

Проверить, что все компоненты драйвера запущены и работают правильно, можно командой:

[root@test root]# service haspd status
Aladdin HASP 4/HL driver status:
       kernel module aksparlnx is loaded
       aksusbd is running
       winehasp is running
       hasplm is running

Для тех систем, где отсутствует команда service, следует использовать команду /etc/init.d/haspd status.

Если в выводе service haspd status появляется предупреждение о том, что не загружен модуль ядра (kernel module aksparlnx is not loaded), это свидетельствует о том, что у вас установлено ядро, для которого не удалось автоматически подобрать драйвер, и требуется сборка модуля ядра (см. ниже). Это потребуется только в случае использования LPT-ключа.

Проверить, какие порты прослушивает менеджер лицензий HASP, можно командой:

[root@test root]# netstat -ap | grep hasp
udp 0 0 *:475 *:* 1535/hasplm
udp 0 0 localhost.localdom:2790 *:* 1169/winehasp

Мы видим, что на порту 475 по протоколу UDP ожидает подключения с любых адресов менеджер лицензий, а на локальном порту 2790 по протоколу UDP слушает winehasp соединения с этой же машины.

Настройка приложения, использующего сетевой ключ

Если приложение использует сетевой ключ, то ему требуется знать информацию о расположении ключа защиты (сетевого менеджера лицензий) и способа обращения к нему. Эти данные указываются в файле NETHASP.INI в каталоге с исполняемыми файлами защищённого приложения. Этот файл может выглядеть, например, так:

[NH_COMMON]
NH_TCPIP = Enabled ; Используем только IP-протокол

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.1 ; IP-адрес (или имя) машины с менеджером лицензий
NH_TCPIP_METHOD = UDP ; UDP для Linux-сервера и TCP для Windows-сервера
NH_USE_BROADCAST = Disabled ; Отключить поиск ключа по всей сети
Note: Обратите внимание, что концы строк в файле должны соответствовать принятым в DOS/Windows (CR LF), поэтому редактировать файл лучше в notepad, входящем в состав WINE.

Если этого файла нет, или настройки в нём не выполнены, будет выполняться широковещательный запрос по локальной сети. Результат может быть нестабилен. В случае наличия нескольких сетевых интерфейсов на машине ключ может быть не найден.

Для упрощения настройки можно воспользоваться командой setnethasp IP-адрес, которая создаст конфигурационный файл nethasp.ini, настроенный на указанный сервер. Если менеджер лицензий расположен на Windows-машине, настройка осуществляется командой setnethasp --win IP-адрес.

Обращение к сетевому менеджеру лицензий, запущенному под Linux, возможно только по протоколу UDP/IP. Если вы используете менеджер лицензий, запущенный под Windows, то удостоверьтесь что в нём включен протокол TCP/IP.

Note: Обратите внимание, что при использовании Linux-драйвера HASP (haspd) вам не требуется как-либо запускать и настраивать hinstall.exe из поставки Win-приложения.
Note: Обратите внимание, что при использовании сетевого ключа устанавливать пакет haspd нужно только на машине с ключом.


При использования менеджера лицензий под Windows может задействоваться файл nhsrv.ini, в котором указывается в том числе протокол работы (TCP/UDP).

[NHS_IP]

NHS_USE_UDP      = enabled   ; enabled or disabled (default: enabled)
NHS_USE_TCP      = enabled   ; enabled or disabled (default: enabled)
NHS_IP_portnum   = 475       ; IP port number (default: 475 (IANA registered))

Проверка доступности ключа

Если всё правильно настроено, но приложение не видит ключ, следует для проверки отключить межсетевой экран (firewall) командой service iptables stop или iptables -F

Далее можно попробовать обратиться к менеджеру лицензий с помощью тестовой программы.

# eterkeytest --hasp
USB:

HASP:
Needed registry section for local HASP key is present

HASP API VERSION: 8.0

HASP Local:
        LPT HASP4 M4 (HASP3 is connected, key is HASP4 Net 5)
        1C:Accountancy v7.7 (simple and network)

HASP Net (press Ctrl-C to break):
.....   -- active logins:  1
        -- max logins:     5
        -- key type:       HASP4 Net 5
        -- activations:    65535
        1C:Accountancy v7.7 (simple and network)

Для проверки сетевого ключа eterkeytest пользуется файлом nethasp.ini для получения информации о доступе к ключу (регистр букв важен).

Надпись Needed registry section for local HASP key is present показывает, что необходимые для работы 1С 8.x с локальным ключом записи в реестр внесены.

Для Windows существует программа АКС Монитор, позволяющая увидеть тип ключа и количество лицензий в нём: ftp://ftp.aladdin.com/pub/hasp/new_releases/utility/monitor/Monitor_Setup.zip

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

Компоненты драйвера HASP в GNU/Linux

Драйвер ключей защиты HASP для GNU/Linux состоит из нескольких взаимодействующих компонент:

  • aksparlnx (версия 1.6) -- модуль ядра, обеспечивающий низкоуровневый доступ к LPT-ключу;
  • askusbd (версия 1.8.1) -- универсальный драйвер для USB- и LPT-ключей (системная служба);
  • winehasp (версия 1.00) -- часть драйвера, предоставляющая доступ к ключу HASP win-приложениям, исполняющимся в среде WINE (системная служба);
  • hasplm (версия 8.30) -- сетевой менеджер лицензий (системная служба).


Сборка модулей ядра для HASP

Если используется LPT-ключ, вам потребуется запустить сборку модуля для вашего ядра командой service haspd build. На системах, где нет команды service, запускайте /etc/init.d/haspd build.

О том, что модуль ещё не собран, можно узнать из вывода service haspd status: Aladdin HASP 4/HL driver status:

kernel module aksparlnx is not loaded (WARNING: HASP LPT keys support is disabled!)

Для сборки потребуется установить заголовочные файлы ядра или исходники ядра (зависит от системы) именно той версии, под которую вы планируете сборку.

  • Для систем ALT Linux это пакет kernel-headers-*.
  • Для систем RHEL, Fedora, ASP Linux, LinuxXP это пакет kernel-devel-*.
  • Для систем Debian, Ubuntu это пакет linux-headers-*.
  • Для систем SUSE, Slackware, MOPSLinux это пакет kernel-source-*.
  • Для систем Mandriva это пакет kernel-source-stripped-*.


Если заголовочные файлы находятся в нестандартном месте, путь можно указать через переменную окружения KERNSRC: KERNSRC=/путь/к/исходникам/ядра service haspd build

Если требуется просто собрать модуль не для текущего загруженного ядра, версию ядра можно указать через переменную окружения KERNELVERSION: KERNELVERSION=2.6.26-wks-smp-alt1 service haspd build

Note: В настоящий момент поддержка HASP на платформах FreeBSD и Solaris не реализована.


Часто задаваемые вопросы по HASP с сайта Aladdin Форум по поддержке HASP на сайте Aladdin

Ключи HASP SRM

Подробности про защиту HASP SRM можно прочитать на странице http://kb.etersoft.ru/Поддержка_ключей_HASP_в_Wine

Ключи Smartkey 3 (EUTRON)

Сетевые ключи

Сетевыми ключами Smartkey 3 USB/LPT защищаются, например, конфигурации 1С: Рарус 7.7. Драйвер для ключей входит в пакет haspd (/usr/sbin/keyd) и запускается в сервисе haspd. Конфигурационный файл драйвера находится в /etc/skeyd.conf, там можно настроить адрес и порт, на котором находится ключ. По умолчанию драйвер слушает на адресе 127.0.0.1 порт 13527/tcp.

export USB_DEVFS_PATH=/dev/bus/usb

В защищаемой программе параметры доступа указываются в файле Server.ini (должен находиться в каталоге с конфигурацией).

MODE=NET SERVER=localhost IP=127.0.0.1 PORT=13527 PING=0

Дополнительно можно посмотреть здесь: http://www.forum.mista.ru/topic.php?id=242981&forum=it&order=answers

Ключи Smartkey 2 требуют использования модуля ядра и не поддерживаются.

Сайт производителя

Локальные ключи

WINE@Etersoft, начиная с версии 1.0.9 поддерживает библиотеки ключа skeydrv.dll или skeylink.dll и драйвер ключа eusk3usb.sys, необходимый для работы ключей Eutron из WINE.

Локальный USB-ключ Smartkey 3 используется, например, для защиты СБИС++.

Note: Обратите внимание, что поддержки установки драйверов в WINE пока нет, и драйвер не будет установлен при установке программы. Но это и не нужно, так как он поставляется в составе WINE@Etersoft.


Возможны проблемы с правами доступа к файлу устройства /dev/usb/*, отвечающего за вставленный ключ. Для автоматической установки прав с помощью сервиса udev поставляется файл /etc/udev/rules.d/90-winkeys.rules.

Проверить доступность ключа можно командой eterkeytest --list, которая выведет список имеющихся ключей и сообщит об ошибке (denied) доступа или о том, что ключ теоретически поддерживается (supported).

Note: LPT-ключи, как правило, не поддерживаются.

Ключи SuperPro, UltraPro, SHK (Sentinel)

Сетевые ключи

Данные ключи используются для защиты таких программ, как Инфо-Бухгалтер, БЭСТ. Сетевой драйвер для ключей и менеджер лицензий входит в пакет haspd и запускается в сервисе haspd, если соответствующий ключ подключен в USB. По умолчанию используется порт 6001 по протоколу UDP и TCP. На порту 6002 должен работать веб-интерфейс по проверке лицензий.

Настройки сервера (например/usr/lib/sentinel/sntlconfigsrvr.xml

Пример конфигурационного файла клиента поставляется в /usr/share/doc/haspd-3.1/sntlconfig.xml

Сайт производителя - устарел

Сайт производителя - текущий

Локальные ключи

WINE@Etersoft поддерживает загрузку драйвера SNTNLUSB.SYS, необходимого для работы ключей из Wine. Сам драйвер поставляется в закрытой части WINE@Etersoft, начиная со сборки 1.0.9-eter8, и находится в каталоге system32/drivers.

Возможны проблемы с правами доступа к файлу устройства /dev/usb/*, отвечающего за вставленный ключ. Для автоматической установки прав с помощью сервиса udev поставляется файл /etc/udev/rules.d/90-winkeys.rules.

Проверить доступность ключа можно командой eterkeytest --list, которая выведет список имеющихся ключей и сообщит об ошибке (denied) доступа или о том, что ключ поддерживается (supported):

$ eterkeytest --list
USB:
Vendor:Product: 04b9:0300 Rainbow Sentinel SuperPro/UlraPro (supported):  SafeNet Inc., USB UltraPro

Проверить ключ для программы Инфо-Бухгалтер можно через программу chkey32w.exe из каталога с установленной программой.

Ключи Катран

Данные ключи применяются, например, в составе решения по защите конфигураций 1С. Драйверы ключа поставляются вместе с WINE@Etersoft.

Полный список проверенных конфигураций

Для проверки ключа используется программа PSTest.exe.

Ключи GUARDANT (Актив)

К версии WINE@Etersoft 1.0.10 для платформы GNU/Linux совместно со специалистами компании Актив была разработана полная поддержка всех USB-ключей Guardant, а именно:

  • Guardant Sign/Time/HID/USB
  • Guardant Stealth III/Net III USB
  • Guardant Stealth II/Net II USB


Также выполнена поддержка сервера лицензий Guardant Net, что позволяет использовать сетевые ключи. Программы, защищённые сетевым ключом, могут быть запущены с использованием сервера ключей, запущенного на Windows или в WINE@Etersoft.

Все необходимые драйверы уже поставляются в составе WINE@Etersoft и загружаются при наличии ключа. Специальных действий предпринимать не требуется. При возникновении затруднений обращайтесь в службу поддержки mailto:support@etersoft.ru.

Note: Поддержки LPT-ключей нет, в связи с большой технической сложностью и их моральным устарением.


Сайт производителя

eToken (Aladdin)

Поддержка брелоков eToken сама по себе бессмысленна, а необходимое Microsoft CryptoAPI и PKCS#11 ещё не реализовано в нужном объёме.

Note: Ведётся разработка.

Ключи SenseLock (SecuLab)

Новые электронные ключи SenseLock на основе смарт-карты имеют поддержку операционных систем Windows, Linux, Mac OS, а также имеют поддержку WINE.

Использование прочих ключей защиты

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

  • ключи по возможности должны быть USB;
  • ключи должны быть сетевыми (точнее, программа должна обращаться к драйверу ключа (менеджеру лицензий) по сетевому протоколу TCP/IP, иначе без специальной поддержки со стороны производителя программа работать не будет;
  • для сетевого ключа должен иметься драйвер ключа и менеджер лицензий под Linux, написанные производителем;
  • компанией Этерсофт может быть выполнена поддержка загрузки необходимого Windows-драйвера ключа.


В случае затруднений или при встрече с неподдерживаемым ключом обращайтесь с описанием проблемы по адресу mailto:hasp@etersoft.ru.


Wine
Search.png
Программы работающие в WineСкачатьШкольный Wine
WINE@Etersoft Общие сведенияУстановка на 64-битные ОСОсобенности разработкиПатчи для WINE@EtersoftАдминистративная установкаДополнительные компонентыКак получить WINE@Etersoft?Лицензия на документациюГлоссарийИспользование аппаратных ключей защиты в LinuxДополнительная информация • [ Совместная работа | по CIFSпо NFS ] • Изменение системных ограниченийРегистрация продуктаПошаговая инструкция по установке rpm-пакетовОбращение в службу поддержкиТерминальные решенияУстановка WINE@EtersoftПодписка на обновленияНастройка WINE@EtersoftРазработчикуEnterpriseЧто такое WINE@Etersoft SQLВозможностиСреда для запуска приложений WindowsИспользование WINE@EtersoftFAQ по использованию WINE@EtersoftОсновные командыWINE@Etersoft/LocalЧто такое WINE@Etersoft Local
Программы Запуск БЭСТ 4+Запуск Консультант+ (сетевой версии)ГарантF1Инфо-Бухгалтер 8.xНалогоплательщик ЮЛ
1C Отличия от обычного WineМестоположение базы 1С1C: Предприятие 7.7 в WINEНастройка 1С 7.7 для работы с SQL-серверомУстановка 1С: Предприятия 8.1Установка 1С: Предприятия 8.1 в трёхзвенном режиме
Пользователю
Помощь Использование WinecfgИспользование Regedit
Легальность DCOM95IE5DCOMMSXML
Утилиты для работы с Wine WinetricksWineToolsQ4WinePlayOnLinuxIEs4LinuxWine-DoorsSwine
Разработчику
Компоненты WindowsЗапрет отключения защиты программыУправление обработчиком исключенийStraceNTИзмерение скорости функций WinAPIGLУстройство чтения смарт-картПрофилированиеТесты для проверки интерфейсовНаписание тестов в системе WineАутентификация в домене ADРепозитории
Помощь Создание патчейНаписание приложения под wineОтправка патчейСборка eterhackСборка wine-public
Отладка Способы отладкиWINEDEBUGWinedbg
Разработка WINE
1CODBCWinHelpКомпасМетодикаТестирование доступаЦветаФайловый диалогТестированиеЛитератураИзображенияWin32ШрифтыФайловые блокировкиСсылкиКлючи защитыRPMWineGeckoListViewУпаковка Wine
Производителю
Родственные проекты
LUKReactOSARWINSSCrossOver
Прочее
PageSetupDlgFreeBSDWwr