Oc-windows.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php menuid guardant register

Сервер Guardant Net

Сервер Guardant Net (файл GLDS.exe) обеспечивает связь между защищенным сетевым приложением и сетевым ключом Guardant.
Один сервер GLDS.exe может обслуживать запросы к нескольким сетевым электронным ключам Guardant.

Для работы сервера GLDS.exe требуются следующие файлы:

Имя файла

Описание

Файл настроек сервера, автоматически создаваемый при старте сервера

Журнал, в котором протоколируются события на сервере — создается автоматически после старта сервера

glds_state.xmlСлужебный файл состояния сервера — хранит сведения о лицензиях

Загрузка сервера

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

Важная информация

  1. Один сервер позволяет обслуживать несколько сетевых ключей Guardant.
  2. Запуск двух серверов GLDS.exe (сервера и сервиса, двух сервисов) на одном компьютере невозможен!
  3. Запуск старого сервера grdsrv.exe (версии 5.х) и нового GLDS.exe на одном компьютере невозможен!
  4. Запуск сервера GLDS.exe, с настройками «по умолчанию», невозможен на компьютере где нет активного сетевого интерфейса (например, сетевой адаптер не подключен или не установлен его драйвер) — в файле grdsrv.ini нужно изменить значение параметра ADDRESS= на 127.0.0.1 !

При необходимости разделить и сбалансировать нагрузку (работа с несколькими ключами) в пределах локальной сети можно запускать несколько серверов Guardant Net GLDS.exe. Они должны находиться на разных компьютерах.

Работа сервера как службы

Основным режимом функционирования сервера GLDS.exe теперь является работа в качестве сервиса (службы) Windows 10 / 8 / 7 / 2008 / Vista / 2003 / XP.
Преимущество сервиса состоит в том, что он автоматически запускается во время загрузки операционной системы, для его запуска не нужно выполнять процедуру регистрации на компьютере, и пользователю доступны специальные средства Windows по управлению сервисом.

Установка и запуск сервиса

Запуск GLDS.exe без параметров командной строки приводит к инсталляции сервера, как сервиса Windows, и запуску этого сервиса.
Это действие нужно произвести только один раз. После того как сервис Guardant Net будет успешно запущен, защищенные приложения получат доступ к сетевым ключам Guardant. Сервис будет запускаться автоматически при каждом старте ОС.
После запуска сервис GLDS.exe появляется в списке системных служб Windows.
См. Пуск | Настройка | Панель управления | Администрирование | Службы | Guardant Dongle Licensing Service:
Запуск GLDS.exe без параметров или с параметром –r (из командной строки ([путь]GLDS.exe –r), если сервис не был запущен, сначала инсталлирует сервис, а затем запустит его.

Остановка сервиса

Работу сервиса Guardant Net можно временно приостановить. Это действие можно выполнить как из командной строки ([путь]GLDS.exe -s), так и средствами операционной системы (см. ниже).
Перейдите в Пуск|Панель управления|Администрирование|Службы и щелкните правой кнопкой мыши на строке Guardant dongle license service. В появившемся контекстном меню выберите Остановить.
Сервис останется инсталлированным в систему, однако перестанет обрабатывать запросы к сетевым ключам.
Для возобновления его работы нужно выполнить старт сервиса из панели Службы или командой GLDS.exe -r

Важная информация

Остановка сервиса не предполагает его выгрузки из списка сервисов, т. е. при перезагрузке компьютера сервис Guardant Net будет снова загружен.

Удаление сервиса из системы

Для удаления сервиса Guardant Net запустите его из командной строки с опцией -u: [путь]GLDS.exe -u

Опции командной строки

Сервис Guardant Net поддерживает следующие опции командной строки:

Читать еще:  Php ведущие нули

Безопасный метод авторизации на PHP

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

Модель авторизации:

Клиент
    Регистрация:
  • логин (a-z0-9)
  • пароль
    Вход:
  • логин
  • пароль
    Cookie:
  • уникальный идентификатор юзера
  • хэш
Сервер MySQL

При регистрации в базу данных записывается логин пользователя и пароль(в двойном md5 шифровании)

При авторизация, сравниваеться логин и пароль, если они верны, то генерируеться случайная строка, которая хешируеться и добавляеться в БД в строку user_hash. Также записываеться IP адрес пользователя(но это у нас будет опциональным, так как кто-то сидит через Proxy, а у кого-то IP динамический. тут уже пользователь сам будет выбирать безопасность или удобство). В куки пользователя мы записываем его уникальный индетификатор и сгенерированный hash.

Почему надо хранить в куках хеш случайно сгенерированной строки, а не хеш пароля?
1. Из-за невнимательности программиста, во всей системе могут быть дырки, воспользовавшийсь этими дырками, злоумышленик может вытащить хеш пароля из БД и подставить его в свои куки, тем самым получить доступ к закрытым данным. В нашем же случае, двойной хеш пароля не чем не сможет помочь хакеру, так как расшифровать он его не сможет(теоретически это возможно, но на это он потратит не один месяц, а может быть и год) а воспользоваться этим хешем ему негде, ведь у нас при авторизации свой уникальный хеш прикрепленный к IP пользователя.
2. Если злоумышленик вытащит трояном у пользователя уникальный хеш, воспользовать им он также не сможет(разве если только, пользователь решил принебречь своей безопастностью и выключил привязку к IP при авторизации).

Реализация

Структура таблицы `users` в базе данных ‘testtable’

register.php

login.php

check.php

logout.php

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

Автор: http://jiexaspb.habrahabr.ru/. Адаптация под PHP 5.5 и MySQL 5.7 KDG.

Куки с флагом HttpOnly не видны браузерному javascript-коду, а отправляются только на сервер. На практике у вас никогда нет необходимости получать их содержимое в javascript. А вот злоумышленнику, нашедшему XSS — а XSS так или иначе когда-нибудь где-нибудь найдется — отсутствие HttpOnly на авторизационных куках доставит много радости.

Простой способ обнаружения эмуляторов ключа Guardant

При работе с ключом защиты Guardant (не важно какой модели) разработчик использует соответствующие API, при этом от него скрыт сам механизм работы с устройством, не говоря уже о протоколе обмена. Он не имеет на руках валидного хэндла устройства, пользуясь только адресом шлюза (т.н. GuardantHandle) через который идет вся работа. В случае если в системе присутствует эмулятор ключа (особенно актуально для моделей до Guardant Stealth II включительно) используя данный шлюз разработчик не сможет определить, работает ли он с реальным физическим ключом, или его эмуляцией.

Задавшись в свое время вопросом: «как определить наличие физического ключа?», мне пришлось немного поштудировать великолепно поданный материал за авторством Павла Агурова в книге «Интерфейс USB. Практика использования и программирования». После чего потратить время на анализ вызовов API функций из трехмегабайтного объектника, линкуемого к приложению, в котором собственно и сокрыта вся «магия» работы с ключом.

Читать еще:  Php artisan key generate

В итоге появилось достаточно простое решение данной проблемы не требующее использования оригинальных Guardant API.
Единственный минус — все это жутко недокументированно и техническая поддержка компании Актив даже не будет рассматривать ваши вопросы, связанные с таким использованием ключей Guardant.
Ну и конечно, в какой-то момент весь данный код может попросту перестать работать из-за изменений в драйверах Guardant.
Но пока что, на 27 апреля 2013 года, весь данный материал актуален и его работоспособность проверена на драйверах от версии 5.31.78, до текущей актуальной 6.00.101.

Порядок действий будет примерно таким:

  1. Через SetupDiGetClassDevsA() получим список всех присутствующих устройств.
  2. Проверим, имеет ли устройство отношение к ключам Guardant через проверку GUID устройства. (У Guardant данный параметр равен )
  3. Получим символьную ссылку на каждое устройство вызовом SetupDiGetDeviceRegistryPropertyA() с параметром SPDRP_PHYSICAL_DEVICE_OBJECT_NAME.
  4. Откроем устройство при помощи ZwOpenFile() (CreateFile() тут уже к сожалению не подойдет, т.к. будут затруднения при работе с символьными ссылками).

Теперь, имея на руках реальный хэндл ключа, вместо псевдохэндла (шлюза) предоставляемого Guardant API, мы можем получить описание его параметров, послав соответствующий IOCTL запрос. Правда, тут есть небольшой нюанс.

Начиная с Guardant Stealth III и выше, изменился протокол работы с ключом, как следствие поменялись константы IOCTL запросов и содержимое входящего и исходящего буфера. Для нормальной работы алгоритма желательно поддерживать возможности как старых, так и новых ключей, поэтому опишу различия:

Для начала константы IOCTL выглядят так:

Первая для ключей от Guardant Stealth I/II
Вторая для Guardant Stealth III и выше (Sign/Time/Flash/Code)

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

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

Здесь уже возвращается блок в 512 байт содержащий более подробную информацию о ключе. К сожалению по некоторым причинам я не могу вам дать полное описание данной структуры, но необходимые для данной статьи поля я в ней оставил.

Общий код получения данных о установленных ключах выглядит так:

Данная процедура перебирает все ключи и заносит информацию о них в массив структур TDongleQueryRecord, после чего вы можете вывести эти данные пользователю, ну или использовать их каким либо образом непосредственно в вашем приложении.

Как видите все достаточно просто, но в объектных модулях Guardant API данный код помещен под достаточно серьезную стековую виртуальную машину и практически не доступен для анализа обычному разработчику. В принципе здесь нет ничего секретного, как видите при вызовах не используется даже шифрование передаваемых и получаемых буферов, но почему-то разработчики Guardant SDK не сочли нужным опубликовать данную информацию (правда я все-же смог получить разрешение на публикацию данного кода, т.к. в итоге тут не затронуты какие-то критические аспекты протокола обмена с ключом).

Но не будем отвлекаться, вы вероятно заметили в вышеприведенной процедуре вызов функции GetPnP_ParentPath(). Данная функция возвращает полный путь к устройству от рута. Выглядит ее реализация следующим образом:

Собственно (вы будете смеяться) детектирование эмулятора будет происходить именно на базе данной строки.
Обычно путь устройства выглядит следующим образом:

Соответственно на базе данной информации можно реализовать простую функцию:

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

Утилита диагностики Guardant (Архив)

Утилита диагностики Guardant — утилита, предназначенная для тестирования ключей защиты на предмет наличия и работоспособности. С помощью утилиты диагностики можно также узнать некоторые подробности о любом ключе защиты. В одном комплекте с утилитой даигностики поставляются также монитор Guardant, сервер Guardant и утилита удаленной прошивки ключа Guardant.

Содержание

Расположение утилиты

Утилита диагностики Guardant располагается в папке, в которой находятся другие утилиты, связанные с ключом. По умолчанию эта папка располагается в директории Такси-Мастер, путь по умолчанию — « C:Program FilesTaxi-MasterGuardantNet3 » . Имя файла утилиты диагностики Guardant — « grddiag.exe » .

Работа с утилитой

Чтобы начать работу с утилитой диагностики Guardant, запустите ее. При запуске утилита произведет автоматический поиск всех доступных ключей, к которым можно получить доступ через сервер Guardant (при этом он должен быть запущен). При завершении сканирования утилита отобразит в таблице список доступных ключей.

Проверка ключа

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

Подробная информация о ключе

Часто требуется выяснить подробную информацию о ключе. Чтобы вывести эту информацию, выберите в списке ключ и нажмите кнопку « Подробная информация » . Откроется окно браузера, в котором будет отражена информация о ключе (по умолчанию открывается Internet Explorer).

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

Помимо всего прочего, подробная информация о ключе позволяет узнать количество лицензий для тех или иных компонентов Такси-Мастер. Информация об этом присутствует в строке « Ресурсы таблицы лицензий » . Она может быть, например, такой:

Через запятую перечислены следующие данные:

  1. « 10 » — порог лицензий ключа NET III (эта информация написана на корпусе ключа).
  2. « 4 » — количество лицензий для Такси-Мастер.
  3. « 1 » — количество лицензий для СМС-сервера (чаще всего либо 0, если нет; либо 1, если есть).
  4. « 1 » — количество лицензий для сервера связи с водителями (чаще всего либо 9, если нет; либо 1, если есть).

Устранение проблем с ключом

Устранение проблем с ключом происходит в режиме мастера. Чтобы начать работу мастера, нажмите кнопку « Устранение проблем » и следуйте инструкциям мастера.

Ссылка на основную публикацию
Adblock
detector