Защита программного обеспечения с помощью электронных ключей

Донгл (от англ. dongle) — аппаратное средство, электронный ключ, предназначенный для защиты от нелицензионного использования и распространения программного обеспечения.

В этой  статье мы рассмотрим основные принципы защиты программного обеспечения электронными ключами и попытаемся проанализировать эффективность такой защиты.

Электронный ключ представляет собой компактное устройство, подсоединяющееся к персональному компьютеру или мобильному устройству посредством портов ввода-вывода (порты USB, LPT, COM, BLUETOOTH, слоты PCMCIA, ISA,PCI).

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

Функциями микроконтроллера являются:

- обеспечение выполнения программы, заложенной в память ключа (прошивки);

- работа с памятью ключа:

- выполнение внутреннего контроля состояния ключа;

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

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

Какие же методы защиты предлагают нам разработчики электронных ключей?

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

2.      Ограничение работы защищенных приложений..по времени, количеству запускови т.п.

3.      Криптографические функции:

-         разработанные непосредственно производителями ключа (ASIC или собственные алгоритмы)

-         публичные алгоритмы AES (Rijndael),DES, GOST, ECC, PGP, и прочие.

4.      Функции контроля  и предотвращения атак на защищенные приложения.

5.      Сетевые функции лицензирования

6.      Функции защищенного обновления памяти ключа (как локально, так иудаленно).

7.      Средства выполнения кода защищаемого приложения внутри микроконтроллераключа.

В закладки: постоянная ссылка.