LINUX.ORG.RU

Защита уникальных компонентов в OpenSource


0

1

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

В связи с этим вопрос. Как защитить такой ключ от попадания в другие продукты?

★★★★★

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

Legioner ★★★★★
()

Ключ как то нужно вставлять при сборке или во время работы приложения из environment или home

vertexua ★★★★★
()

А в виде closed source это ключ, значит, можно распространять? Тогда, может быть, если требовать от пользователя самостоятельно получить ключ — не вариант, может быть, сделать какое-то ограничение в лицензии, что ключ распространять имеет право только автор, а кто хочет сделать форк, пусть сам получает ключ?

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Когда это кого-то останавливало? Особенно наших. )))

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

hibou ★★★★★
() автор топика
Последнее исправление: hibou (всего исправлений: 2)
Ответ на: комментарий от hibou

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

hibou ★★★★★
() автор топика
Ответ на: комментарий от hibou

Когда это кого-то останавливало? Особенно наших. )))

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

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

proud_anon ★★★★★
()

как то ты неправ ну зачем закрытый код пихать в Открытом проекте

enep ★★★★★
()
Ответ на: комментарий от hibou

Если ты единственный правообладатель, то тебе ничего не мешает сделать двойное лицензирование: проприетарная программа с вкомпиленным ключем и часть сорцов под GPL (НЕ эквивалентных проприетарной программе, т.к. не включающих в себя модуль с ключем).

В этом случае люди смогут как делать форки под GPL, так и пользовать твоей проприетарной программой.

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

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от hibou

Пожалуй да, единственно верное решение. Жаль, что лицензия тогда будет LGPL.

Из проприетарщины можно с GPL-кодом не линковаться, а общаться с ним по пайпу. Тогда можно без LGPL обойтись.

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

Manhunt ★★★★★
()
Ответ на: комментарий от geekless

Если ты единственный правообладатель, то тебе ничего не мешает сделать двойное лицензирование: проприетарная программа с вкомпиленным ключем и часть сорцов под GPL (НЕ эквивалентных проприетарной программе, т.к. не включающих в себя модуль с ключем).

Грабли в том, что ты не сможешь просто так принять в свою программу чужие GPL-патчи. Нужно будет оформлять передачу авторских прав, и прочий гемор.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от hibou

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

Может, к ключу конкатенировать md5 от файла argv[0]?

Manhunt ★★★★★
()

Не давать никому свой ключ? Пусть сами генерируют... (как у того же гугла с ихними API)

invy ★★★★★
()
Ответ на: комментарий от hibou

Пожалуй да, единственно верное решение.

И когда отсутствие исходного кода кого-то останавливало? Единственно верное решение это не распространять ключ.

Eshkin_kot ★★
()
Последнее исправление: Eshkin_kot (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.