Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Современные ключи Guardant , начиная с Guardant SignSign/Time и Guardant Code, позволяют защищать приложения, запускаемые в ОС GNU/Linux на аппаратных платформах i386 и x86_64. Для этого в комплект разработчика включены статические (ELF) libgrdapi.a) и динамические библиотеки (libgrdapi.so соответствующей ) соответствующей разрядности, которые реализуют Guardant API.
Кроме того, поддерживается запуск защищенных Windows приложений с использованием Wine (www.winehq.org) - свободной реализации Windows API. Для этого в комплект разработчика включен проект динамической библиотеки для Wine — GrdWine, распространяемый под свободной лицензией GNU Lesser General Public License version 2.1 (поставляется в виде пакета с исходными кодами – grdwine-0.5.4.tar.gz).
Ключи работают в OC GNU/Linux (в том числе, в HID-режиме) без установки дополнительных драйверов и демонов, требуя лишь обеспечить имя и разрешение доступа к файлу устройства. Для обращения к ключу используются соответственно Linux USB Device Filesystem или Linux USB HID Device Interface (в случае HID-режима). В комплект разработчика включен наборы правил для систем регистрации устройств и описание требований для случаев нетипичного конфигурирования (см. ниже раздел Имена и доступ к устройствам).функционал Guardant API.

Anchor
_Toc260939211
_Toc260939211
Anchor
_Toc326167606
_Toc326167606
Защита Native-приложений GNU/Linux

Для сборки защищаемого приложения, необходимо скомпоновать ( слинковать ) защищаемое приложение с библиотекой Guardant API.
Рекомендуется использовать компилятор GCC 4-ой версии, однако, возможно использовать и более ранние версии GCC, и другие компиляторы, например, Intel C++ Compiler (ICC).
Для компиляции с библиотекой Guardant API необходимо выполнить следующее (на примере файла с исходным текстом программы — foobar.c):

...

Обратите внимание, что библиотека Guardant API использует библиотеку pthread - POSIX Threads, поэтому для компоновки сборки приложений необходимо использовать соответствующую библиотеку.
Подсоедините ключ Guardant к USB-порту компьютера, защищенное приложение готово к работе.

...

 

Excerpt

Установка ключей Guardant в операционных системах GNU/Linux

Ключи Guardant работают в OC GNU/Linux (в том числе и в HID-режиме) без установки дополнительных драйверов и демонов, требуя лишь обеспечить имя и разрешение доступа к файлу устройства. Для обращения к ключу используются соответственно Linux USB Device Filesystem или Linux USB HID Device Interface (в случае HID-режима).

Для работы с ключами в ОС GNU/Linux необходимо добавить правило для штатного средства обработки HotPlugging. На большинстве современных дистрибутивов, таким средством является udev (https://ru.wikipedia.org/wiki/Udev). В комплект разработчика включен набор правил для udev (архив udev-rules.tar.gz ). Указанные правила предписывает udev установить права на чтение и запись для файла устройства, представляющего электронный ключ Guardant в системе. Это позволяет обращаться к ключу с привилегиями любого пользователя системы.

UI Text Box
typeinfo

Внимание!

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

Anchor
udev
udev

Установка правил для udev

Для ключей как в драйверном, так и в HID-режиме, и в случае использования файлов-устройств USB Device Filesystem.

Скачать архив udev-rules.tar.gz , распаковать и выполнить установку правил:

Библиотека grdwine.dll.so, реализующая работу с ключами Guardant для защищенных Windows-приложений под Wine, поставляется в виде исходных кодов (см. grdwine-0.5.4.tar.gz). Это, в принципе, позволяет ее использовать с любой версией Wine, достаточно просто собрать библиотеку из исходных кодов.

Info

Важно
Рекомендуемая к использованию версия Wine — 1.x.x. Корректная работа с более ранними версиями Wine не гарантируется. Загрузить последнюю версию Wine можно по адресу: https://www.winehq.org/download

Компиляция библиотеки

...


No Format
$ tar -xvf 
grdwine-0.5.4
udev-rules.tar.gz
$
cd
 
grdwine-0
.
5.4 $ ./configure -with-wineincs=
/
usr/include/wine-with-winedlls=/usr/lib/wine $ make # make install
Info
Важно
Указанные в примере пути к заголовочным файлам и библиотекам Wine (/usr/ include/wine и /usr/lib/wine) могут меняться в зависимости от версии Wine, используемого дистрибутива или заданного префикса для установки (в случае, если Wine устанавливался из исходных кодов)

...

Удаление библиотеки из системы

install.sh

После успешной установки правил нужно отсоединить электронный ключ от USB-порта и подсоединить повторно.

Ключ готов к работе с защищенным Linux-приложением.

Anchor
devices
devices

No Format
$ cd grdwine-0.5.4 # make uninstall

Имена и доступ к устройствам

Expand

Для ключей, работающих в драйверном режиме

Обращение к ключу происходит через Linux USB Device Filesystem.

...

Подробную информацию см. в файле linux/Documentation/usb/proc_usb_info.

...

txt из документации к Linux.

...

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

Для ключей, работающих в HID-режиме

Обращение к ключу происходит через Linux USB HID Device Interface (

...

драйвер usbhid). Подробную информацию см. в файле linux/Documentation/usb/hiddev.

...

txt из документации к Linux.

...

Для успешной работы с ключом в системе нужно изменить имена соответствующих устройств

...

на /dev/

...

grdhidN и разрешить доступ на чтение/запись к файлу устройства

...

Пример для hotplug или hotplug-ng

 

No Format
# cp etc/grdnt.usermap /etc/hotplug/usb/grdnt.usermap
# cp etc/grdnt /etc/hotplug/usb/grdnt 

Пример для udev

Для ключей как в драйверном, так и в HID-режиме, и в случае использования файлов-устройств USB Device Filesystem

...

.

...

Anchor
_Toc260939214
_Toc260939214
Anchor
_Toc326167609
_Toc326167609
Переменные окружения

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

GRD_IPC_NAME

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

USB_DEVFS_PATH

директория LinuxUSBDeviceFilesystem (точка монтирования или директория, содержащая дерево соответствующих устройств).
Если переменная не задана, будет использоваться /dev/bus/usb (если существует), иначе – /proc/bus/usb


Anchor
_Toc260939212
_Toc260939212
Anchor
_Toc326167607
_Toc326167607
Запуск защищенных Windows-приложений в среде Wine

Для работы приложений Windows, защищённых ключами Guardant Sign/Time и Guardant Code под Wine (www.winehq.org), необходима библиотека grdwine.dll.so. Для этого в комплект разработчика включен проект библиотеки для Wine — grdwine, распространяемый под свободной лицензией GNU Lesser General Public License version 2.1 (поставляется в двух вариантах - в виде скомпилированных библиотек grdwine-0.5.7-bin.tar.gz и в виде пакета с исходными текстами – grdwine-0.5.7.tar.gz).

UI Text Box
typewarning

Важно!
Рекомендуемая к использованию версия Wine — 1.x.x. Корректная работа с более ранними версиями Wine не гарантируется. Загрузить последнюю версию Wine можно по адресу: https://www.winehq.org/download

UI Text Box
typewarning

Важно!
Библиотека предназначена только для работы с современными моделями ключей Guardant. C моделями линейки Stealth II и Stealth III эта библиотека не может быть использована.

Имеется два варианта установки библиотеки grdwine.dll.so под Wine: установка скомпилированных библиотек из grdwine-0.5.7-bin.tar.gz и компиляция библиотек из исходных текстов и их последующая установка из grdwine-0.5.7.tar.gz.

Установка скомпилированных библиотек

UI Text Box
typewarning

Важно!
Для установки скомпилированных библиотек требуется наличие заранее установленного wine.

1. Cкачать архив с бинарными файлами библиотек grdwine-0.5.7-bin.tar.gz

2. Распаковать архив grdwine-0.5.7-bin.tar.gz и перейти в распакованную директорию

No Format
Пример:
$ tar -xvf grdwine-0.5.7-bin.tar.gz
$ cd grdwine-0.5.7-bin

3. Перейти в распакованную директорию и запустить скрипт install.sh c правами администратора

После того как библиотека grdwine.dll.so распакована, необходимо перенести ее версию нужной разрядности в директорию с защищенным приложением ("x86" необходима для работы 32-битных windows-приложений, а "x86_64" - для работы 64-битных windows-приложений соответственно).
Затем файл библиотеки необходимо переименовать изменив расширение с grdwine.dll.so на grdwine.dll.

No Format
Пример:
$ cp ./grdwine-0.5.7-bin/x86/grdwine.dll.so /home/user/samples/
/home/user/samples/ - путь к директории с защищенным приложением
$ mv /home/user/samples/grdwine.dll.so /home/user/samples/grdwine.dll


Компиляция библиотек из исходных текстов и их последующая установка

1. Установка зависимостей на примере Ubuntu

Для сборки библиотеки на Ubuntu 16.04 требуется предварительно установить пакеты:

No Format
$ sudo apt-get install autoconf
$ sudo apt-get install wine
$ sudo apt-get install wine-dev
$ sudo apt-get install libc6-dev-i386 (если требуется сборка 32-разрядной версии библиотеки)

Для Ubuntu 17.10 и 18.04 дополнительно установить:

No Format
$ sudo apt-get install wine64-tools (если требуется сборка 64-разрядной версии библиотеки, не совместим с wine32-tools)
$ sudo apt-get install wine32-tools (если требуется сборка 32-разрядной версии библиотеки, не совместим с wine64-tools)


2. Последовательность сборки библиотеки grdwine.dll.so (для 64-bit систем)

Скачать и распаковать пакет с исходными текстами grdwine-0.5.7.tar.gz :

No Format
$ tar -xvf grdwine-0.5.7.tar.gz
$ cd grdwine-0.5.7

Запустить ./bootstrap.sh

No Format
$ ./bootstrap.sh

Для компиляции и установки 32-разрядной библиотеки выполнить:

No Format
$ ./configure --with-wineincs=/usr/include --with-winedlls=/usr/lib/i386-linux-gnu/wine
$ make
# sudo make install

Для компиляции и установки 64-разрядной библиотеки выполнить:

No Format
$ ./configure --enable-win64 --with-wineincs=/usr/include --with-winedlls=/usr/lib/x86_64-linux-gnu/wine
$ make
# sudo make install
UI Text Box
typewarning

Важно!
Указанные в примере пути к заголовочным файлам и библиотекам Wine (опции --with-wineincs и --with-winedlls) могут меняться в зависимости от версии Wine, используемого дистрибутива Linux или
заданного префикса для установки (в случае, если Wine устанавливался из исходных кодов)

UI Text Box
typewarning

Важно!
Для запуска 32-разрядных приложений Windows в дистрибутивах Linux архитектуры x86_64 достаточно собрать только 32-разрядную библиотеку. Сборка 64-разрядной библиотеки требуется для запуска
64-разрядных приложений Windows.

UI Text Box
typewarning

Важно!

Если правила для udev не были установлены ранее, то их необходимо установить. Подсоедините ключ Guardant к USB-порту компьютера, защищенное приложение готово к работе.