поиск по сайту
К вопросу защиты авторских прав
Счастный Д. Ю.

 

К вопросу защиты авторских прав

 

Сознательно сузим предметную область и ограничимся анализом защиты авторских прав в сфере программного обеспечения. Существует несколько юридически выверенных трактовок понятия <авторское право>, которые можно свести к следующему: авторские права - это не что иное, как права автора на собственное произведение. Следовательно, автор сам решает, кому, когда и как можно использовать творение его рук (в самом широком смысле). Такое решение автор должен принять заранее (до начала распространения продукта), зафиксировать в некотором документе (лицензии) и распространять вместе с программным продуктом. В случае согласия пользователя с ограничениями, зафиксированными в лицензии, <защита авторских прав> сведется к тому, чтобы не допустить использования произведения автора с нарушением лицензии.

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

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

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

Развитие средств и методов контроля выполнения лицензионных соглашений напоминает приснопамятное развитие брони и снаряда: на каждое усовершенствование защитных механизмов через некоторое время находится эффективный метод обхода создаваемых <преград>. Кто и зачем разрабатывает такие средства нападения на авторские права, здесь не так важно, как важно понять, почему они (средства) вообще могут возникать, каковы технологические, а не психологические предпосылки этого явления. Принципиальным моментом, сводящим на нет разработки в сфере защиты авторских прав, является то, что у нападающих есть возможность безнаказанно копировать и детально исследовать исходный код программ. Инструменты для исследования программ (различные дизассемблеры, отладчики и другие специализированные программные средства) позволяют понять логику защиты, и, следовательно, существует принципиальная возможность создания средств обхода защитных механизмов.

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

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

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

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

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

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

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

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

Возможно, со временем в реализации и этой схемы будут найдены изъяны, но на данный момент переход к специализированным устройствам с подобными свойствами представляется весьма перспективным.


ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них