...
С помощью ключей с часами реального времени можно реализовывать различные лицензионные политики, влияющие на время работы защищенного приложения:
- Приложение сможет работать только после активации алгоритма, которая произойдет по наступлению указанной даты
- Приложение перестанет работать после деактивации алгоритма, которая произойдет по наступлению указанной даты
- Срок работы приложения ограничен заданным периодом работоспособности, т. н. «временем жизни», алгоритма. Алгоритм активируется при первом запуске приложения и деактивируется по истечению «времени жизни»
Установка временной зависимости алгоритма
UI Stepsexpand | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Важно!
2.
Элементы управления диалога «Временные зависимости»:
| ||||||||||||||||||||||||||||||||||||||||||
Expand | ||||||||||||||||||||||||||||||||||||||||||
FlipTime. Изменение ответов алгоритма через указанный период времени
В ключах с RTC реализована технология FlipTime, позволяющая автоматически изменять значения, возвращаемые алгоритмом ключа по наступлению заданного временного значения.
UI Text Box | ||||
---|---|---|---|---|
| ||||
Технология FlipTime неприменима к ячейкам типа «Загружаемый код» в ключах Guardant Code Time! |
FlipTime – это механизм, модифицирующий часть определителя алгоритма по достижению указанной при программировании ключа даты. Причем это изменение не однократное, определитель будет продолжать изменяться через заданный промежуток времени (в днях). Соответственно, всякий раз после изменения определителя, алгоритм будет возвращать другие значения в ответ на запросы.
Чтобы использовать механизм FlipTime, разработчик должен знать, какие ответы вернет алгоритм в каждом случае. Для решения этой задачи в комплект разработчика включена консольная утилита FlipTime.exe, генерирующая массивы вопросов-ответов алгоритму для каждого факта изменения определителя.
Чтобы активировать механизм FlipTime:
...
- Выделите в маске ключа c RTC нужный алгоритм, выполните команду меню
...
- Образ ключа | (Поле) Свойства поля
...
- и перейдите на вкладку Временные зависимости.
...
- Установите флаг Алгоритм изменяется каждые… и в появившемся поле задайте период (в днях) изменения алгоритма.
...
- С помощью комбинированного поля/календаря определите дату, по достижении которой механизм FlipTime будет задействован.
...
- Сохраните маску и запишите ее в ключ (команда меню Ключ |
...
- (Операции с ключом) Записать образ в ключ).
...
- Запустите утилиту FlipTime.exe и, следуя ее указаниям, получите массивы вопросов-ответов алгоритма после каждого факта изменения определителя.
...
- Используйте полученные массивы в приложении согласно заданным временным зависимостям.
UI Text Box | ||
---|---|---|
| ||
Важно! 1.
|
Технология FlipTime дает разработчику возможность реализовать изощренную стратегию защиты, при которой защитные механизмы будут видоизменяться через заданное время без дополнительного перепрограммирования ключа.
Установка запрета на изменение времени
В ключах Guardant Time/ Time Net/ Code Time можно задавать новое значение для встроенного таймера при помощи специальной функции Guardant API (см. описание GrdSetTime).
Однако если такая необходимость и возникает, то, как правило, на этапе программирования ключа (например, при реализации утилиты прошивки ключа, альтернативной GrdUtil.exe).
И, наоборот, для защиты приложения это несет угрозу, потому что при некоторых обстоятельствах (к примеру, компрометации кодов доступа), станет возможным перепрограммирование таймера ключа и незаконное продление лицензии.
Поэтому в ключах с таймером предусмотрена возможность блокировать на низком уровне вызов функции GrdSetTime.
UI Text Box | ||
---|---|---|
| ||
Важно! Категорически не рекомендуется менять умолчательное значение без особой необходимости. |
Чтобы проверить, блокирована ли возможность изменения времени в ключе, выполните его диагностику (см. предыдущий пункт или описание утилиты диагностики). Глобальный флаг ProtectTime должен быть установлен:
В случае отсутствия блокировки изменения времени в ключе загрузите в Редактор нужный образ RTC-ключа, проверьте состояние флага Запретить изменение времени, и если он не установлен, выполните команду меню Ключ | (Режимы) Запретить изменение времени в ключе. После этого запишите образ в ключ.
В результате в ключе будет выставлен глобальный флаг GrdGF_Pro-tectTime (см. описание GrdProtect), и изменение состояния таймера станет невозможным без инициализации памяти ключа.