Криптографические методы
Для защиты инсталлируемой программы от копирования при помощи криптографических методов инсталлятор программы должен выполнить следующие функции:
·
анализ аппаратно-программной среды компьютера, на котором должна будет выполняться инсталлируемая программа, и формирование на основе этого анализа эталонных характеристик среды выполнения программы;
· запись криптографически преобразованных эталонных характеристик аппаратно-программной среды компьютера на винчестер.
Преобразованные эталонные характеристики аппаратно-программной среды могут быть занесены в следующие области жесткого диска:
· в любые места области данных (в созданный для этого отдельный файл, в отдельные кластеры, которые должны помечаться затем в FAT как зарезервированные под операционную систему или дефектные);
· в зарезервированные сектора системной области винчестера;
· непосредственно в файлы размещения защищаемой программной системы, например, в файл настройки ее параметров функционирования.
Можно выделить два основных метода защиты от копирования с использованием криптографических приемов:
· с использованием односторонней функции;
· с использованием шифрования (которое также может использовать односторонние функции).
Односторонние функции это функции, для которых при любом x
из области определения легко вычислить f(x), однако почти для всех y из ее области значений, найти y=f(x) вычислительно трудно (см. приложение).
Если эталонные характеристики программно-аппаратной среды представить в виде аргумента односторонней функции x, то y - есть «образ» этих характеристик, который хранится на винчестере и по значению которого вычислительно невозможно получить сами характеристики. Примером такой односторонней функции может служить функция дискретного экспоненцирования, описанная ранее, с размерностью операндов не менее 512 битов.
При шифровании эталонные характеристики шифруются по ключу, совпадающему с этими текущими характеристиками, а текущие характеристики среды выполнения программы для сравнения с эталонными также зашифровываются, но по ключу, совпадающему с этими текущими характеристиками. Таким образом, при сравнении эталонные и текущие характеристики находятся в зашифрованном виде и будут совпадать только в том случае, если исходные эталонные характеристики совпадают с исходными текущими.