Навигация
Обмен ссылками

 

Защита программ в исходных текстах

автор: Art
Иногда коммерческое программное обеспечение распространяется в исходных текстах. И очевидно, что разработчика не устроит ситуация, когда легитимный пользователь сможет выложить исходные тексты купленных программ или модулей в свободный доступ, нанеся тем самым весьма ощутимый ущерб, и остаться при этом неузнанным. Но обычные методы закрития оказываются бессильны в подобных ситуациях. Ведь исходные тексты не выполняют никаких действий и не могут сами по себе известить производителя о нарушении лицензии или попросить пользователя ввести регистрационный код. На конференции ISDEF 2003 (Independent Software Developers Forum) представителем компании FastReport, Inc. был сделан доклад о разработанной и успешно применяемой системе защиты программ, распространяемых в исходных кодах, методами стеганографии.

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

По утверждению докладчика, для размещения идентификатора без изменения функциональности программы применяется более 10 различных приемов. Можно предположить, что эти приемы довольно сильно пересекаются со следующим списком:
• изменение регистра букв (для языков, не различающих прописные и строчные буквы, например Delphi);
• изменение локальных идентификаторов;
• изменение порядка следования функций;
• взаимная замена пробелов и символов табуляции;
• изменение стиля отступов для блоков кода (begin/end, {/});
• изменение стиля расстановки пробелов до и после скобок;
• вставка пробелов в конце строк;
• вставка пустых строк;
• изменение порядка операторов case внутри switch.
Представитель FastReport в своем докладе отметил, что после введения подобной защиты и лишения поддержки нескольких пользователей, уличенных в нарушении лицензии на использование исходных текстов, новые версии программ перестали поя&чяться в открытом доступе. Также было сказано, что переформатирование исходного текста не приводит к полному разрушению идентификатора, т. е. стеганографическая вставка обладает достаточно высокой живучестью. Идея защиты исходных текстов при помощи стеганографии кажется весьма привлекательной, но существует несколько возможных атак, против которых такая защита вряд ли устоит. Например, если в распоряжении противника окажется два и более набора исходных текстов, подготовленных для разных пользователей, ему будет довольно легко выявить большинство приемов, применяемых для внедрения идентификатора, а значит, и разработать методы нейтрализации этих приемов.

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


 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
Авторизация
Топ новостей