You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Современные ключи Guardant, начиная с Guardant Sign, позволяют защищать приложения, запускаемые в ОС 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-режима). В комплект разработчика включен наборы правил для систем регистрации устройств и описание требований для случаев нетипичного конфигурирования (см. ниже раздел Имена и доступ к устройствам).

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

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

$ gcc [-I<путь_к_заголовочному_файлу_GrdAPI.h>] -c foobar.c -o foobar.o
$ gcc [-L<путь_к_библиотеке_libgrdapi.a>] foobar.o -o foobar -lpthread -lgrdapi

или

$ gcc [-I<путь_к_заголовочному_файлу_GrdAPI.h>][-L<путь_к_библиотеке_libgrdapi.a>] foobar.c -o foobar-lgrdapi -lpthread

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

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

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

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

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

 

$ tar xvf grdwine-0.5.4.tar.gz $ cd grdwine-0.5.4 $ ./configure -with-wineincs=/usr/include/wine-with-winedlls=/usr/lib/wine $ make#make install


Важная информация
Указанные в примере пути к заголовочным файлам и библиотекам Wine (/usr/ include/wine и /usr/lib/wine) могут меняться в зависимости от версии Wine, используемого дистрибутива или заданного префикса для установки (в случае, если Wine устанавливался из исходных кодов)
Подсоедините ключ Guardant к USB-порту компьютера, защищенное приложение готово к работе.

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

    $ cd grdwine-0.5.4
  2. make uninstall

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

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

    Обращение к ключу происходит через Linux USB Device Filesystem.
    Подробную информацию см. в linux/Documentation/usb/proc_usb_info.txt.
    Для успешной работы с ключом в системе нужно разрешить доступ на чтение/запись к файлу устройства.

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

    Обращение к ключу происходит через Linux USB HID Device Interface (драйвер usbhid). Подробную информацию см. в linux/ Documentation/usb/hiddev.txt.
    Для успешной работы с ключом в системе нужно изменить имена соответствующих устройств на /dev/grdhid[№] и разрешить доступ на чтение/запись к файлу устройства.

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

  3. cp etc/grdnt.usermap /etc/hotplug/usb/grdnt.usermap
  4. cp etc/grdnt /etc/hotplug/usb/grdnt

    Пример для udev

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

  5. Выполнить установку правила при помощи специального скрипта install.sh. Архив содержащий файл-правило 95-grdnt.rules и скрипт входят в состав установленного Guardant SDK (директория "по умолчанию" для 64-битной ОС Windows: %ProgramFiles(x86)%\Guardant\SDK7\Redistribute\Linux\).



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

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

GRD_IPC_NAME

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

USB_DEVFS_PATH

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

  • No labels