⌨ Labor omnia vincit ☮

License violation

Posted in License by anaumov on 17.06.2010

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

Да, друзья мои, к сожаленью происходит это достаточно часто. Разработчики проприетарного программиного обеспечения непрочь позаимствовать чужой код, чужие идеи, чужой труд… “Но разве информация не должна быть свободна?”, – возразите вы. Абсолютно верно! В этом-то и дело, что воровство в данном случае заключатеся в том, что из свободной информации, которая доступна каждому и каждой из нас, получается… совсем не свободная😦 Закрывается доступ к коду и мы можем лишь использовать это программое обеспечение. Мы не можем изменять его или изучать принцип его работы. Плюс ко всему нас еще могут заставить платить за него. Это тоже не самый приятный момент, но это далеко и не самое важное.

Да, не стоит путать эти понятия. Свободное программное обеспечение может быть платным, оно совесем не обязанно быть бесплатным. Ее свобода заключается не в цене, а в открытости исходных кодов. Покупая к примеру Audi, я могу заглянуть ей под копот и разобраться в принципах ее работы. Почему же я не должен иметь такой же возможности покупая программиное обеспечение? Лицензия на свободное программное обеспечение защищает ваши права получать исходные коды и изучать их.

Анализ программного обеспечения

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

Однако востанавливать исходный код в данном случае совсем не обязательно. Достаточно провести так называемый “string analyse”. Смысл этого метода заключается в анализе бинарного файла, а именно поиск имен используемых библиотек и некоторую другую полезную информацию. Мы открываем бинарный файл в любимом текстовом редакторе и, протерев глаза, начинаем всматириваться и искать некоторые комбинации символов. Как я уже сказал

> objdump -d _file_name_ | less

делать не стоит, однако нам могут помочь самые обычные

> file _file_name_
vi _file_name_

Команда file может рассказать о библиотеках, а так же о методе линковки с ними. Есть два типа линковки программы с библиотекой – статический и динамический. Динамический способ подразумевает связывание лишь в процессе выполнения программы. Статическая линковка подразумевает связывание программы и библиотеки в процессе сборки программы. Почему это так важно с точки зрения лицензии? Проприерарному ПО можно динамически быть связанно с библиотеками, распространяемыми по свободной лицензии, но ему ни в коем случае нельзя быть слинкованным с ней статически.

Вывод команды file так же покажет архитекруру и формат исполняемого файла (ELF?). Единственное доказательство правообладателя авторских прав на свой продукт это содержание обоих бинарных файлов. Естественно ни о каком сходстве не может быть и речи, если программы будут собранны на разных архитекрурах и с помощью разных компиляторов. Название компилятора и его версию можно найти в бинарном файле. Там же можно найти некоторые внутренние структуры, имена некоторых переменных, а так же, к примеру, формат некоторых функий, для вывода информации в stdout или записи ее в файл. Естественно сходство до символа в разных проектах, разрабатываемых совершенно разными людьми, маловероятно.

Используя лишь структуру данных внутри бинарного файла можно доказать копирования кода. Так например, если вы разрабатываете какой-нить свободный продукт, и его исходные коды доступны всем, в том числе и вашим конкурентам, то небольшое изменение в коде вашего продукта естественно отразиться и на их версиях. “Бессмысленное” незначительное изменение исходного кода, маловлияющее на работу программы, но при этом хорошо отслеживаемое в бинаром файле, будет неплохим доказательством копирования. Так же воспроизведение багов, о которых вам естественно известно, в чужом закрытом ПО может означать лишь две вещи – либо вы один из разработчиков этого проекта, либо первоклассный взломщик😉

Доказать факт копирования?

Ок, факт копирования вами найден. Что теперь? Идти в суд? Копании-разработчики проприетарного программного обеспечения, такие например как Apple, Adobe или Microsoft, имеют “слишком хороших” адвокатов, чтобы вам одному или даже с группой программистов доказать в суде факт копирования кода и нарушения лицензии. Как правило, автор проекта начинает “мирные” переговоры с такими компаниями. Это намного разумней, чем упершись пытаться вынудить компанию признать факт воровства.

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

Cisco нарушает нормы лицензии GPL
Microsoft lifts GPL code, uses in Microsoft Store tool
Microsoft Found to be a GPL Violator, Again?
GPL upheld against D-Link in German court
Skype responds to Euro GPL rebuke
На Skype подали в суд за нарушение GPL
Французскую компанию засудили за нарушение GPL
Правовой статус GPL в России

Естественно ситуация выглядит иначе, если скандал разгарается между двумя крупными компаниями. Однако и тут этот скандал разгарается уже после ряда переговоров.

Harald “LaForge” Welte

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

Автор проекта gpl-violations.org, который был создан в начале 2004 с целью защиты свободного ПО. За работу над этим проектом в 2007 был удостоен Free Software Award – ежегодной награды FSF за за вклад в развитие свободного программного обеспечения, вручаемой на FOSDEM.

Вместе с Дитером Шпарем (Dieter Spaar) в 2009 представил на конференции Chaos Communication Congress доклад о создании обособленной GSM-сети на основе свободного программного обеспечения. Тут надо отметить проект OpenBSC , представляющий собой программную реализацию минимального набора архитектурных элементов GSM сетей.

В настоящий момент работает в VIA и сильно влияет на политику компании, а именно ее расположенность к идеям свободного программного обеспечения.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: