Информационная безопасность

       

Шифрование программного кода.


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

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

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

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

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

Электронный ключ представляет собой небольшое устройство, которое подсоединяется к одному из портов компьютера (COM,LPT,USB).

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

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

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



Содержание раздела