Защита для тех, кто делает софт и не только

Загружаемый код

Электронный ключ для защиты ПО позволяет производить вычисления вне центрального процессора и оперативной памяти компьютера.

Традиционно электронные ключи «умели делать» две основные вещи:

  • Хранить какие-либо данные, критичные для работы защищаемого приложения;
  • Выполнять внутри ключа операции, преобразующие данные по неким алгоритмам.

Эти алгоритмы, как правило, представляли собой либо симметричные алгоритмы шифрования, либо однонаправленные функции с секретным ключом преобразования.

В связи с этим существовали проблемы, связанные с тем, что преобразованные аппаратным алгоритмом данные:

  • Во-первых, далеко не всегда можно использовать напрямую в приложении
  • Во-вторых, нужно очень постараться, чтобы поток этих данных был разнообразным на протяжении достаточно длительного времени.

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

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


Программы для экологов