為什么開源軟件會存在許可證,許可證的起源與產生目的是為了解決什么問題?許可證的定義又是怎樣的?什么是Copyleft,與Copyright有何區別?開源軟件常見的許可證有哪些?這些許可證都有什么特點?接下來博主就逐一介紹。
1. 開源許可證的定義
開源許可證是一種法律協議,它規定了軟件代碼可以被如何使用、修改和分發。其中,著作權是指對于軟件代碼的創作者所擁有的法律權利,包括復制、發布、演繹等權利。分發是指分發指軟件作者向他人提供軟件源代碼或二進制代碼或二者的副本。
著作權法默認禁止共享,沒有許可證的軟件就不能免費地使用、修改、共享。
在開源許可證中,通常會涉及到著作權許可授權的問題。這些許可協議可以分為兩大類:強制性許可證和非強制性許可證。強制性許可證要求使用該軟件的用戶必須遵守特定的協議,否則將面臨訴訟風險。而非強制性許可證則允許用戶根據自己的需要使用、修改和分發軟件。
開源許可證存在的法律特性:合同性質和知識產權性質(著作權、專利權、商標權)
常見的開源許可證包括GNU通用公共許可證(GPL)、MIT許可證、Apache許可證等。每種許可證都有自己的特點和適用范圍,使用者需要根據自己的需求選擇合適的許可證。
2. 開源許可證的起源
開源許可證的起源可以追溯到20世紀90年代早期,當時自由軟件運動和Linux系統的興起促進了開源軟件的發展。1991年,GNU通用公共許可證(GPL)首次發布,這是第一個被廣泛采用的開源許可證之一。GPL被設計為保障軟件自由和開放性,它要求任何使用或修改受保護軟件的人必須在其發布時公開代碼,并且不得限制代碼的再分發。
1998年,開源軟件運動的領袖Eric Raymond和Bruce Perens共同創立了Open Source Initiative(OSI),以推廣和支持開源軟件的發展。OSI創建了一個開源定義(Open Source Definition),并認證了符合該定義的許可證。這些許可證包括GPL、BSD、MIT、Apache等。
在自由軟件運動之后,出現了大量優秀的開源軟件,而商業軟件開發商無情的竊取著革命的果實,商業軟件在開源軟件的基礎上開發新的軟件,實際上基于著作權法其開發的軟件屬于衍生作品,該作品依然為著作權法所保護,不同的是,商業軟件開發商所開發的衍生軟件一般不會再以開源軟件的形式出現。于是就產生了接下來的著佐權。
3. 著佐權(Copyleft)
著佐權是一個由自由軟件運動所發展的概念,是一種利用現有著作權體制來保護所有用戶和二次開發者的自由的授權方式。在自由軟件授權方式中增加著佐權條款之后,該自由軟件除了允許使用者自由使用、散布、修改之外,著佐權許可證更要求使用者修改后的衍生作品必須要以同等的授權方式釋出以回饋社會。
著佐權(Copyleft)機制與著作權(Copyright)相對應
著佐權,是彌補著作權(Copyright,復制傳播的權利)不足的版權授權。它的授權方式與常用的版權授權方式并不相同。另有譯為反版權”、版權屬左”、左版”、版權所無”、版權左派”,或版責”,這些譯名可能有其意義上的偏差,比較貼切的翻譯應該是版責”或者左版”,使用版責”(即:傳播的責任)因為 Copyleft 雖然與常見的著作權模式不同,但不反對著作權的基本體制。
4. 開源許可證兩大目的
- 保護開源軟件貢獻者: 規范受著作權保護的軟件的使用或者分發行為;
- 保護開源軟件使用者:使用者按照許可證條款使用開源軟件,避免因侵犯貢獻者的利益產生糾紛。
5. 開源許可證認證機構及分類
5.1. 認證機構
-
OSI: OSI(Open Source Initiative,開放源代碼促進會)是一個旨在推廣開源軟件的非營利組織,它制定了一套開源軟件的定義和準則,像BSD、MIT和Apache協議就被OSI收錄。
OSI根據OSD(開放源代碼定義)對開源許可證進行審核。
-
FSF:FSF(Free Software Foundation)也是一個非營利組織,致力于推廣自由軟件理念,并維護用戶權益;
FSF根據FSD(自由軟件定義)對開源許可證進行審核
-
SPDX:SPDX(Software Package Data Exchange)是一個旨在標準化軟件組件和許可證信息的組織。
5.2. 分類
-
著佐權型許可證:著佐權許可證更要求使用者修改后的衍生作品必須要以同等的授權方式(除非許可證或者版權聲明里面例外條款所規定的外)釋出以回饋社會。
- 強著佐權型許可證:GPL(General Public License)衍生作品也需要以GPL許可證發布,不允許修改后和衍生的代碼作為閉源商業軟件發布和銷售
- 弱著佐權型許可證:LGPL(Lesser General Public License)比GPL許可證寬松,允許商業軟件通過類庫引用方式使用LGPL類庫而不需要開源商業軟件的代碼,但是如果修改LGPL許可證的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL許可證。
一般將使用著佐權型許可證的開源軟件稱之為Copyleft軟件
-
寬松型許可證:寬松型許可證是一種保證使用、修改、再分發的自由,同時授權將衍生軟件專有化的許可證。
寬松型許可證限制較少,通常僅要求開源軟件使用者保留指定的聲明信息。Apache許可證和BSD許可證就是寬松型許可證,允許使用者在開源代碼基礎上進行二次開發并閉源銷售,對商業十分友好。
6. 八大主流開源許可證
6.1. 強著佐權型許可證 GPL 2.0(GNU General Public License 2.0)
- 分發GPLv2軟件或其衍生作品時,必須提供源代碼或者提供獲取源代碼的途徑;
- 任何基于GPLv2軟件的衍生作品必須在GPLv2下發布,確保衍生作品也保持開源;
- GPLv2具有較強的copyleft特性,與其他許可證的兼容性有限。例如,它與后來的GPLv3在某些條款上不兼容,除非明確指出“GPLv2或任何后來的版本”。
6.2. 強著佐權型許可證 GPL 3.0(GNU General Public License 3.0)
- 在分發GPLv3許可的軟件時,必須提供源代碼或者提供獲取源代碼的途徑;
- GPLv3明確禁止任何嘗試使用軟件專利來限制其他用戶運行和分發軟件的行為;
- GPLv3包含特定的條款來防止“數字版權管理”(DRM)技術限制GPLv3軟件的使用。要求分發有硬件限制的GPL軟件時,必須提供必要的“安裝信息”,以便用戶能夠運行軟件的修改版本。
6.3. 著佐權型許可證 AGPL 3.0(Affero General Public License 3.0)
- 為了Copyleft條款能應用于在網絡上運行的應用程式(如Web應用),從而避免有人以應用服務提供商方式逃避GNU通用公眾特許條款;
- 如果軟件通過網絡作為服務提供給用戶,服務提供者必須提供軟件的源代碼。
6.4. 弱著佐權型許可證 LGPL 3.0(Lesser General Public License LGPL 3.0)
- 是GNU為了得到更多的甚至是商用軟件開發商的支持而提出的;
- 允許商業軟件通過類庫引用方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作為類庫引用并發布和銷售;
- 但是如果修改LGPL下的軟件代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL許可證。
6.5. 弱著佐權型許可證 MPL(The Mozilla Public License)
Netscape公司認為GPL許可證沒有很好地平衡開發者對源代碼的需求和他們利用源代碼獲得的利益,于是申請了MPL許可證:
- MPL允許免費重發布、免費修改,但要求修改后的代碼著作權權歸軟件的創建者;
- 對于經MPL許可證發布的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共享源代碼。
6.6. 寬松型型許可證 Apache License
由Apache軟件基金會發布,主要特點如下:
- 復制或發布衍生作品時,需要提供許可證副本,修改聲明,先前作品的著作權、專利、商標的權屬聲明等文件。對修改過的文件進行聲明;
- 使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業產品發布/銷售。
6.7. 寬松型型許可證 BSD(Berkly Software Distribution)
- BSD由于允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟件發布和銷售;
- 二次發布時需要保留原來代碼的著作權聲明和許可證原文以及免責聲明;
- 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
6.8. 寬松型型許可證 MIT(Massachusetts Institute of Technology)
- 作者只想保留著作權,無其他任何限制。
- 必須在你的發行版里包含原許可證的聲明,無論你是以二進制發布的還是以源代碼發布的。
見到使用了 Apache、BSD、MIT協議類型的開源軟件,閉上眼選就對了!(哈哈,當然是開玩笑了:也要考慮下軟件的活躍度,以及有無公開高危漏洞因素)
7. 參考
[1] 邁向開源世界:如何正確看待開源軟件,避免六大誤區
[2] 最高人民法院知識產權法庭裁判要旨摘要(2023)
推薦閱讀:
- 邁向開源世界:如何正確看待開源軟件,避免六大誤區
- 供應鏈安全項目in-toto開源框架詳解
- 從SLSA看軟件供應鏈面臨哪些威脅及對應解決方案
- 解讀 | Synopsys發布2024年開源安全和風險分析報告OSSRA
- 剖析Google SLSA供應鏈完整性框架
- 「 網絡安全常用術語解讀 」軟件物料清單SBOM詳解
- 「 網絡安全常用術語解讀 」SBOM主流格式CycloneDX詳解
- 「 網絡安全常用術語解讀 」SBOM主流格式SPDX詳解
- 「 網絡安全常用術語解讀 」SBOM主流格式CycloneDX詳解
- 「 網絡安全常用術語解讀 」軟件物料清單SBOM詳解
- 「 網絡安全常用術語解讀 」軟件成分分析SCA詳解:從發展背景到技術原理再到業界常用檢測工具推薦