Sentinel флешка что это
КОМПАС-3D начиная с версии V11 и КОМПЛЕКС решений АСКОН начиная с версии 2013 используют систему лицензирования Sentinel HASP от компании SafeNet Inc. Лицензии размещаются на программных и аппаратных ключах Sentinel.
Лицензии на ПО АСКОН поставляются на следующих носителях*:
- ознакомительные лицензии КОМПАС-3D и КОМПАС-3D Home (однократная локальная временная лицензия)
- полнофункциональная лицензия КОМПАС-3D V11 и выше, КОМПЛЕКС 2013 и выше (все типы лицензий - локальная/сетевая временная/постоянная)
Может включать одновременно все типы лицензий (локальная/сетевая временная/постоянная). Подробнее см. статью базы знаний 7001068.
Ключ можно прошить КОМПАС-3D v17 и выше, КОМПЛЕКС 2017 и выше.
- Sentinel HL Pro (фиолетового цвета)
- Sentinel HL Max (зеленого цвета)
- HASP HL Pro (фиолетового цвета)
- HASP HL Max (зеленого цвета)
- Sentinel HL Time (черного цвета)
- HASP HL Time (черного цвета)
- Sentinel HL Net (красного цвета)
- HASP HL Net (красного цвета)
- Sentinel HL NetTime (красного цвета)
- HASP HL NetTime (красного цвета)
Для того, чтобы начать работу с защищенным приложением, необходимо установить драйвер системы защиты Sentinel HASP (HASP SRM) и подключить носитель с лицензиями.
Для ПО АСКОН начиная с версий КОМПАС-3D v17 и КОМПЛЕКС 2017 установка драйвера должна быть выполнена на сервер лицензий, на рабочих местах, получающих лицензию по сети, установка драйвера не обязательна. Для более ранних версий ПО АСКОН драйвер системы защиты должен быть установлен на каждом рабочем месте, где используется защищенное приложение и на машине, где установлен сетевой ключ защиты. При использовании программных ключей с локальными лицензиями установка драйвера необходима для всех версий ПО АСКОН.
Драйвер системы защиты устанавливается автоматически при установке ПО АСКОН. Информацию о том, как установить/переустановить драйвер системы защиты, Вы можете найти в статье базы знаний 700456.
- получать информацию o доступных ключах и лицензиях
- отслеживать и получать статистику по использованию лицензий
- диагностировать проблемы в работе системы защиты
- управлять доступом к сетевым лицензиям
Более подробную информацию о возможностях утилиты Вы можете получить в документации к ПО АСКОН или в online-справке ACC (для открытия страницы Интернет-подключение не требуется).
* если Вашего носителя лицензий ПО АСКОН нет в этой таблице или он не отображается в Admin Control Center, см. статьи базы знаний 700507 и 700451.
С другой стороны, можно воспользоваться навесной защитой. Это потребует гораздо меньше времени на реализацию, квалификации разработчика может бть не столь высока (не нужны знание других языков программирования, владение CIL, …). Однако здесь тоже не всё безоблачно, полной автоматизации процесса установки защиты достичь трудно. Сначала мы подробно рассмотрим использование навесной защиты при обычном применении, после чего подумаем, как все это максимально автоматизировать. Предположим, что мы создаем изначально незащищенное приложение, не используя Sentinel LDK API, после чего обработаем сборку при помощи Envelope. Технологический цикл создания защищенного приложения в данном случае будет выглядеть так:
1) Построение незащищенной сборки в среде разработки, например в Visual Studio.
2) Защита построенной сборки в процессе интерактивной работы с Envelope.
Рассмотрим более подробно второй этап и разберемся, какие способы защиты может нам предоставить Envelope. Процесс защиты состоит из следующих операций:
1. Загрузив первый раз Envelope, мы увидим пустой проект. Сразу же укажем, с какой серией ключей будет работать наша защищенная сборка (см. рис. 1):
Рис. 1 – Выбор кода серии ключей
2. Установим общие параметры защиты, которые будут применяться ко всем входящим в проект сборкам, подлежащим защите (см. рис. 2):
Рис. 2 – Установка общих параметров защиты
3. Включим одну или несколько готовых сборок в проект утилиты Envelope (см. рис. 3).
Рис. 3 – Добавление целевых файлов в проект
4. Для каждой входящей в проект сборки задаем пути (откуда брать исходный файл и куда класть защищенный), с какими ключами и как работать, какую лицензию использовать (см. рис. 4):
Рис. 4 – Установка параметров сборки
5. При необходимости для каждой конкретной сборки можно установить свои параметры защиты, перекрывающие общие (см. рис. 5), и более тонко настроить работу защитных механизмов (см. рис. 6):
Рис. 5
Рис. 6
Параметры на рис. 5 уже рассматривались в п.2. Из представляющих интерес параметров (с точки зрения защиты) на рис. 6 можно отметить следующие:
• LOCKING_TYPE – определяет типы ключей, с которыми будет работать защита данной сборки. Возможные варианты:
где:
— HL – аппаратный ключ
— SL-UserMode – программный ключ, умеющий работать без драйвера
— SL-AdminMode – программный ключ, работающий совместно с драйвером
— SL – SL-UserMode + SL-AdminMode
• MIN_CODE_SIZE – минимальный размер CIL-кода метода в байтах, начиная с которого он будет защищаться Envelope в случае групповой операции, например, когда для защиты отмечается весь класс целиком.
6. Осталась самая трудоёмкая часть работы – определить классы и методы, подлежащие защите (рис. 7-1), и для каждого выбранного класса/метода задать параметры защитных механизмов (рис. 7-2):
Рис. 7 – Управление защитой методов и классов
Чтобы выбрать для защиты класс или метод, просто поставьте галочку напротив его имени в окне 1. При этом в окне 2 отобразятся текущие параметры защиты для выбранного объекта. Назначение параметров защиты:
• Feature ID – номер лицензии из ключа. Для разных классов/методов может различаться в случае их раздельного лицензирования.
• Frequency – как часто будет проверяться ключ для защищенного класса/метода. Возможные варианты:
где:
— Once per program – один раз за все время работы приложения
— Once per class instance – каждый раз при создании экземпляра класса
— Every time – при каждом проходе управления через защищенный код
• Symbol obfuscation – обфускация символьной информации, может быть применена к методу, даже если он не отмечен, как подлежащий защите, т.к. не связана с ключом. Возможные варианты:
где:
— Use global definition – используется текущее значение параметра Obfuscate Symbols, см. п. 2 и п. 5.
— Enabled – обфускация производится всегда, независимо от глобальных установок.
— Disabled – обфускация никогда не выполняется, независимо от глобальных установок.
• Code obfuscation – control_flow-обфускация CIL-кода, может быть применена к методу, даже если он не отмечен, как подлежащий защите, т.к. не связана с ключом. Так выглядит в IDA фрагмент кода функции после обфускации:
А это – граф передачи управления в функции после обфускации:
Чётко видно, что обфускация заключается в том, что код буквально разрывается по одной инструкции, и все они перемешиваются, а чтобы сохранился прежний порядок их выполнения, после каждой инструкции дополнительно вставляется инструкция перехода (опкод br) на нужный адрес. Очевидно, что скорость работы функции, защищенной таким образом, может сильно упасть, а код – значительно увеличиться в размерах. Поэтому, применять данный метод защиты следует с осторожностью.
• Code encryption – зашифрование CIL-кода выбранного метода через ключ, с использованием алгоритма AES. При этом способе защиты оригинальный CIL-код извлекается из тела метода, зашифровывается через ключ, и помещается в ресурсы сборки в зашифрованном виде. На его место вставляется короткий переходник, обеспечивающий загрузку, расшифрование, динамическую компиляцию и передачу управления на код защищенного метода. После окончания выполнения метода, его код удаляется из памяти. Вот так выглядит фрагмент тела защищенного метода в IDA:
Инструкция call class [mscorlib]System.Reflection.Emit.DynamicMethod определяет и представляет динамический метод, который будет скомпилирован в памяти, выполнен и впоследствии удален. Инструкция callvirt instance object [mscorlib]System.Reflection.MethodBase::Invoke осуществляет передачу управления на метод в случае его успешной компиляции. Данный способ защиты практически не влияет на быстродействие защищаемого кода, обеспечивая вполне приличную стойкость.
7. После того, как все необходимые классы/методы помечены как предназначенные к защите, осталось только сохранить результаты работы в виде файла проекта и нажать кнопку Protect. В результате мы получим защищенную сборку. Конец работы.
Будем использовать утилиту с ключом –p на этапе «событие после построения» в Visual Studio. Можно сделать, например, так:
Работу утилиты можно проверить по логу в окне вывода Visual Studio:
После окончания процесса создания сборки в среде Visual Studio, мы сразу получаем защищенное приложение без лишних телодвижений.
Вроде бы, все получилось неплохо, но как быть, если в исходный код приложения вносятся значительные изменения? Например, если появляются новые классы/методы, подлежащие защите, удаляются старые или планируется изменить способ защиты существующих классов/методов? При традиционном подходе придется открывать проект защиты в Envelope и вносить все накопившиеся изменения, как ранее описывалось в п. 6, что печально, поскольку это ставит крест на автоматизации процесса защиты при любых сколько-нибудь серьёзных изменениях в исходном коде приложения.
Однако, есть возможность автоматизировать актуализацию таких изменений в исходном коде. Сделать это можно посредством использования пользовательских атрибутов в исходном коде приложения. Объектом защиты при помощи пользовательских атрибутов может быть метод, класс или вся сборка — в зависимости от того, где размещается тот или иной набор атрибутов. Список доступных атрибутов для защиты объекта полностью повторяет набор параметров защиты для классов/методов, описанный в п. 6. Вот список доступных атрибутов:
• Protect — тип BOOL, возможные значения — TRUE/FALSE, указывает нужно ли защищать объект с использованием ключа.
• FeatureId — тип int, возможные значения — [0;65535], указывает номер лицензии (Feature ID), которая будет использована при защите объекта. Принимается к исполнению, только если Protect == TRUE.
• Encrypt — тип BOOL, возможные значения — TRUE/FALSE, указывает нужно ли зашифровывать CIL-код объекта. Принимается к исполнению, только если Protect == TRUE.
• CodeObfuscation — тип BOOL, возможные значения — TRUE/FALSE, указывает нужно ли выполнять control_flow-обфускацию CIL-кода объекта. Принимается к исполнению независимо от значения Protect. Данный метод защиты приводит к снижению скорости работы защищенного кода.
• Frequency — перечисляемый тип EnvelopeMethodProtectionFrequency, указывает, как часто будет проверяться лицензия для защищаемого объекта. Принимается к исполнению, только если Protect == TRUE. Возможные значения:
— CheckOncePerApplicaton — однократная проверка в процессе работы приложения.
— CheckOncePerInstance — однократная проверка для каждого экземпляра объекта.
— CheckEveryTime — проверка при каждом проходе управления через код объекта.
• SymbolObfuscation — перечисляемый тип EnvelopeSymbolObfuscation, указывает на метод обфускации символьной информации в защищаемом объекте. Принимается к исполнению независимо от значения Protect. Возможные значения:
— ObfuscateSkip — полный запрет на обфускацию всей символьной информации.
— ObfuscateForce — принудительное выполнение обфускации для всей символьной информации.
— ObfuscateDefault — выполнять обфускацию для всей символьной информации, кроме public-имен, а так же, объектов с модификаторами virtual и protected.
Для того, чтобы Envelope мог получить атрибуты из исходного кода, необходимо при помощи директивы using включить в него пространства имен Aladdin.HASP.Envelope и Aladdin.HASP.EnvelopeRuntime. Естественно, перед этим необходимо добавить файлы Aladdin.HASP.Envelope.DLL и Aladdin.HASP.EnvelopeRuntime.DLL в ссылки проекта Visual Studio. Распространять эти файлы с защищенным приложением не нужно, они требуются только на этапе установки защиты на сборку. Ниже приведен пример защиты из исходного кода с помощью пользовательских атрибутов:
Вообще говоря, все изменения, связанные с защитой сборки можно условно разделить на две категории:
1. Глобальные изменения, которые происходят довольно редко. Описаны в п. 1 – 5, управлять ими из исходного кода нельзя.
2. Изменения в исходном коде, связанные с появлением или удалением классов/методов, подлежащих защите, происходят значительно чаще. Описаны в п. 6. Теперь можно полностью актуализировать такие изменения из исходного кода, не занимаясь правкой проекта защиты в Envelope.
И вот теперь, подытожив все вышеизложенное, можно сказать, что разработчик полностью управляет защитой из исходного кода, также как и в случае использования Sentinel LDK API. Загружать проект защиты в Envelope и исправлять её параметры придется только в случае каких-либо глобальных изменений, например, смены серии ключей, изменения имени сборки или установки другой величины интервала фонового опроса ключа, что происходит несравнимо реже.
Ключ или защитный ключ, -это жизненно важное устройство, если вы хотите защитить критически важные файлы вашей компании, или любую специальную программу. Таким образом, в некоторых случаях необходимо предоставлять разные копии работникам или людям с полной уверенностью. Поэтому необходимо знать, как правильно сделать эту копию.
Это позволит различным пользователям проверять, имеют ли они доступ к рассматриваемому документу или программе, то есть, предоставляется разрешение, чтобы они могли вносить любые изменения или не замечать информацию, которая там хранится. Имейте в виду, что создание разных копий ключей является большим преимуществом, , поскольку в случае его утери или повреждения у вас будут разные ответы, чтобы заменить потерю и избавиться от забот.
В этом руководстве мы шаг за шагом объясним , что такое ключ безопасности Dongle или USB? Для чего они нужны и как создать полнофункциональную копию. Наконец, предупреждение , во время копирования USB-ключа вы должны выполнить его правильно, в противном случае устройство может быть повреждено.
Что такое ключ или ключевое устройство и для чего он нужен?
Это устройство, используемое в качестве ключа безопасности; тот же выполняет функцию небольшого адаптера, который подключается к другому устройству , выполняющего дополнительные функции, в данном случае обеспечивая проверку для пользователь.
Они работают следующим образом. Поместив ключ безопасности на компьютер, он может проверить фрагмент программы или программного обеспечения для его работы. В некоторых случаях программы работают только в ограниченном режиме, иначе они не могут быть выполнены , если пользователь не прошел проверку с помощью ключа.
Их также можно использовать для интеграции паролей, не позволяя пользователям вводить файлы и/или папки без этих паролей. Адаптеры или ключи безопасности могут быть типа USB или HDMI.
Действия по клонированию ключа USB или флэш-накопителя и пропуск защиты программы
Существуют разные методы для копирования или клонирования ключа, один из которых доступен только для компьютеров с операционными системами Windows, от Windows XP до Windows 10. Имейте в виду, что этот метод является его эмуляцией. Выполните каждый из описанных шагов в точности так, как они указаны, поскольку ошибка может привести к повреждению USB-устройств.
Требования к клонированию USB-ключа
Прежде чем начать процесс копирования ключа, вам необходимо выполнить ряд строго необходимых требований , чтобы правильно выполнить работу, для этого необходимо учитывать следующие моменты:
- Иметь компьютер с действующей операционной системой для программы (Windows XP/Vista).
- Узнать марку или модель Dongle , на который вы собираетесь сделать копию: это могут быть следующие; HASP или Sentinel.
- Узнав модель устройства Dongle, вы приступите к загрузке эмулятора по следующим ссылкам:
- Ссылка 1
- Ссылка 2
Процесс создания
Процессы создания расположены по порядку, вы должны сначала сбросить ключ с помощью соответствующей программы , а затем выполнить эмуляцию копирования. Всегда используйте правильные программы для каждого производителя.
Дамп ключа
Этот процесс является одним из самых сложных и может быть чем-то опасным. Вы должны принять во внимание перед началом процесса метку ключа , для которой вы собираетесь сделать резервную копию.
В этом случае процесс был выполнен с устройством Sentinel, и драйверы Sentinel были установлены. Если они не установлены, программа сообщит об ошибке.
В программе есть разные вкладки или параметры, которые вы можете выбрать в программе. На данный момент выбран Sentinel , потому что именно он интересует нас для данного урока. Но вы можете выбрать любой из других вариантов, если марка вашего устройства отличается. Параметр Keygen не следует выбирать, это потому, что он не выполняет никаких функций в том, что вам в данный момент необходимо сделать.
Если вы используете ноутбук, убедитесь, что он подключен к зарядному устройству и полностью заряжен, потому что процесс при его запуске имеет разные фазы и может занять много времени.
Первый этап
Вам нужно найти ключ, если устройство правильно подключено к USB-порту, вы можете просмотреть его. В случае ошибки измените устройство порта и Перезапустите программу, чтобы снова найти компонент.
Второй этап
Теперь программе придется обнаруживать алгоритмы и расшифровывать их. Процедура длится дольше времени, потому что это зависит от ключа, поэтому вы можете даже часы.
Третий этап
Вам нужно создать файл дампа, который будет «.dng». Этот файл будет тем, который мы будем использовать в эмуляторе после завершения процесса.
По завершении каждого этапа индикатор выполнения, обозначенный на изображении красной рамкой, будет постепенно увеличиваться.
Ошибки во время процесса
Каждый этап может иметь разные сбои, вызывая определенные ошибки. Они показаны в панели ошибок программы. В зависимости от типа может быть способ ее решения. Далее мы назовем наиболее распространенные ошибки.
- Ошибка «Не удается найти ключ» (Cannot find dongle) возникает, когда программа не может найти устройство Dongle.
- Также «Невозможно инициализировать сторожевой API» (ошибка инициализации Sentinel API) , это происходит при сбоях драйверов. Рекомендуется, чтобы во время установки они активировались как служба, которая запускает Windows при запуске.
- Когда процесс завершится, вы уже создали файл, который будет резервной копией ключа, полностью готов к эмуляции при необходимости.
Эмуляция .dng файла
Теперь вам придется использовать некоторые из эмуляторов, которые мы указали ранее, так как в этом руководстве используется программа Sentinel, мы будем использовать этот эмулятор. Не забудьте использовать тот, который соответствует модели вашего устройства.
Эта программа будет служить эмулятором для файла dng. Небольшим недостатком является то, что он может создавать синие экраны для несовместимости с некоторыми программами , если они выполняются одновременно с использованием эмулятора. Например, может произойти сбой, если Bluetooth включен . В этом случае перед использованием следует отключать только те приложения, которые генерируют сбои.
Вы можете увидеть 3 вкладки, каждая из которых имеет определенные функции:
- Эмулятор: . Здесь будет использоваться и эмулироваться ключ.
- Ключи: эта часть отвечает за загрузку файл дампа, описанный ранее.
- Драйвер: . Здесь вы установите драйвер для правильной работы программы.
Первый процесс, который вы выберете,-это вкладка «Драйвер» , чтобы программа работала таким образом. Правильный способ установки следующий:
- Нажмите «Установить драйвер».
- Параметры автоматического и ручного выполнения (автоматическая пометка/ручная пометка).
- Выберите «Ручное выполнение».
- Нажмите «Сохранить состояние» , чтобы сохранить.
- Лицензия . Это лицензия на программу.
- Лицензионные ключи . Здесь будет лицензия, которую вы хотите эмулировать.
- Идентификатор компьютера . Идентификатор используемого компьютера.
Вы нажмете кнопку accoun Start Servicie ”, чтобы начать процесс. Вы увидите, какой статус программы изменился. Теперь он скажет вам : «Служба уже запущена и работает». Вы можете увидеть это в «Статус Стража».
Загрузить файл .dng
Теперь вам просто нужно нажать на вкладку «Ключи» , чтобы загрузить файл дампа, в данном случае «Файл Dng», Вы ранее создали. Для этого вам нужно сделать следующее:
Как поделиться ключом через локальную сеть или Интернет?
Существует другой способ поделиться устройством Dongle без необходимости делать копию. Большим преимуществом этого варианта является то, что он работает для текущих операционных систем: Windows, MacOS, Linux, Android.
Для этого есть программа под названием: FlexiHub.
Это бесплатная версия , которую можно попробовать в течение 14 дней, и платная. Платная версия по подписке. Хотя у него также есть бессрочная лицензия, которая называется Сетевые ворота USB.
Первое, что можно сделать - это вернуть все измененные параметры машины обратно.
- регистрационный номер или номер ключа;
- какая машина используется: аппаратная или виртуальная;
- какие манипуляции были проведены с машиной ДО появления информации о клонировании ключа;
- скрин ACC страницы "Ключи Sentinel", "Компоненты" и "О программе";
- приложите полученный через утилиту лицензирования файл *.c2v.
2. Пропал ключ, установленный ранее на этой машине
В порядке, указанном ниже, выполните следующие действия:
- Убедитесь, что ключ действительно был ранее установлен на этой машине. Если ключа не было на этой машине, то данная ситуация является нормой.
- Убедитесь, что ключ не был перенесен с данной машины.
- Перезапустите службу hasplms. Перезапустить службу можно через Диспетчер задач. Зачастую после перезапуска службы ключ восстанавливается.
- Обновите драйвер Sentinel (https://thales-sentinel.ru/helpdesk/download-space/)
- Создайте обращение в Личном кабинете. В обращении укажите:
- регистрационный номер основной поставки или номер ключа;
- скрин ACC страницы "Ключи Sentinel", "Компоненты" и "О программе";
- опишите, какие действия были произведены с машиной ДО появления информации об отсутствии ключа.
3. После установки утилиты лицензирования “краш” в синий экран
Удалите установленную утилиту лицензирования; удалите, если был установлен, драйвер Sentinel.
4. Неверно выбранный файл переноса. Ошибка CloneDetected
Был создан файл для одной машины (подобрали на втором шаге не тот ID файл), а вы его пытаетесь применить на другой. Ошибка на скриншоте выше.
5. Формируете файл переноса при активных сессиях. Ошибка AlreadyLoggedIn
Если данный ключ используется, то файл переноса не будет создан. Ошибка на скриншоте выше.Читайте также: