LGPL и цифровая подпись
От: MuPoB  
Дата: 16.10.18 13:50
Оценка:
Есть продукт в составе которого сторонний компонент в виде dll, доступный по лицензии LGPL. Если эту dll подписать цифровой подписью, и проверять её при запуске, то получается, что пользователь не может изменить эту dll. Есть ли тут нарушение лицензии LGPL?
Re: LGPL и цифровая подпись
От: vsb Казахстан  
Дата: 16.10.18 13:59
Оценка: 9 (1)
Здравствуйте, MuPoB, Вы писали:

MPB>Есть продукт в составе которого сторонний компонент в виде dll, доступный по лицензии LGPL. Если эту dll подписать цифровой подписью, и проверять её при запуске, то получается, что пользователь не может изменить эту dll. Есть ли тут нарушение лицензии LGPL?


На мой взгляд это прямое нарушение.

“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.

An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.

A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.

You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications

Я думаю, что это легко обойти каким-нибудь флагом в реестре (документированном) или настройкой, которая отключит проверку цифровой подписи. Ещё вариант — проверять цифровую подпись согласно установленным у пользователя корневым сертификатам. В этом случае пользователь может сгенерировать свой ключ, установить его на своём компьютере и подписать им модифицированную копию библиотеки. Возможно у вас сейчас так и работает проверка.
Отредактировано 16.10.2018 14:00 vsb . Предыдущая версия .
Re: LGPL и цифровая подпись
От: LuciferSaratov Россия  
Дата: 16.10.18 14:00
Оценка:
Здравствуйте, MuPoB, Вы писали:

MPB>Есть продукт в составе которого сторонний компонент в виде dll, доступный по лицензии LGPL. Если эту dll подписать цифровой подписью, и проверять её при запуске, то получается, что пользователь не может изменить эту dll. Есть ли тут нарушение лицензии LGPL?


на вопрос у меня нет ответа, но своими соображениями поделюсь.
это выглядит похоже на тивоизацию (https://ru.wikipedia.org/wiki/Тивоизация), но тивоизация означает, что оборудование не позволяет запускать измененное ПО.
с другой стороны, что внутри этого оборудования? разумеется, другой программный код, который считает контрольную сумму/подпись.
Re: LGPL и цифровая подпись
От: Michael7 Россия  
Дата: 03.11.18 00:48
Оценка: +1
Здравствуйте, MuPoB, Вы писали:

MPB>Есть продукт в составе которого сторонний компонент в виде dll, доступный по лицензии LGPL. Если эту dll подписать цифровой подписью, и проверять её при запуске, то получается, что пользователь не может изменить эту dll. Есть ли тут нарушение лицензии LGPL?


Зависит от версии лицензии. В GPL и LGPL 2.0 — это допустимо, в 3.0 добавлены специальные оговорки, исключающие ситуацию, когда исходники есть, но на практике ими нельзя воспользоваться из-за невозможности исполнить код. Таким образом, в 3.0 (L)GPL пользователю должна быть предоставлена полная информация по запуску модифицированного ПО. То есть, подписывать можно (никаких ограничений на собственно код лицензия не накладывает), но надо тогда дать пользователю или закрытый ключ или возможность установить свой ключ в основное приложение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.