Защита программ в исходных текстах.
Иногда коммерческое программное обеспечение распространяется в
исходных текстах. И очевидно, что разработчика не устроит
ситуация, когда легитимный пользователь сможет выложить исходные
тексты купленных программ или модулей в свободный доступ, нанеся
тем самым весьма ощутимый ущерб, и остаться при этом неузнанным.
Но обычные методы защиты оказываются бессильны в подобных
ситуациях. Ведь исходные тексты не выполняют никаких действий и
не могут сами по себе известить производителя о нарушении
лицензии или попросить пользователя ввести регистрационный код.
Основная идея
защиты заключается в том, что каждому покупателю передается
уникальный набор исходных текстов, но скомпилированные из любого
такого набора программы работают совершенно одинаково.
Технически детали реализации в докладе не раскрывались, но
очевидно, что в качестве криптографического контейнера выступают
сами файлы с текстами программ. Скорее всего, защита выполняется
следующим образом. Перед отправкой исходных текстов покупателю в
них с помощью специального стеганографического алгоритма
добавляется некоторый идентификатор, связанный с личностью
пользователя. Если один из файлов окажется в свободном доступе в
Интернете, то с помощью обратного алгоритма разработчики смогут
извлечь идентификатор пользователя, а значит, определить
виновного.
Для размещения идентификатора без изменения функциональности
программы применяется более 10 различных приемов. Эти приемы
пересекаются со следующим списком:
изменение регистра букв (для языков, не различающих прописные и
строчные буквы, например Delphi);
изменение локальных идентификаторов;
изменение порядка следования функций;
взаимная замена пробелов и символов табуляции;
изменение стиля отступов для блоков кода (begin/end, {/});
изменение стиля расстановки пробелов до и после скобок;
вставка пробелов в конце строк;
вставка пустых строк;
изменение порядка операторов case внутри switch.
Переформатирование исходного текста не приводит к полному
разрушению идентификатора, то есть, стеганографическая вставка
обладает достаточно высокой живучестью. Идея защиты исходных
текстов при помощи стеганографии кажется весьма привлекательной,
но существует несколько возможных атак, против которых такая
защита вряд ли устоит. Если в распоряжении противника окажется
два и более набора исходных текстов, подготовленных для разных
пользователей, ему будет довольно легко выявить большинство
приемов, применяемых для внедрения идентификатора, а значит, и
разработать методы нейтрализации этих приемов.
И, разумеется,
если противник получит доступ к самой системе, отвечающей за
вставку и извлечение идентификаторов, он сможет не только
разобраться во всех деталях реализации но и, возможно, научиться
использовать ее в своих целях. Например, для того чтобы создать
и выложить в Интернете набор исходных файлов, якобы выданный
другому лицу, тем самым спровоцировав разработчиков на жесткие
ответные меры. Следовательно, доступ к средствам защиты должен
быть максимально ограничен, но это создает серьезные препятствия
на пути использования данной технологии.
(продолжение)
Блог или веб-сайт? |