【摘 要】 本文介紹了開源軟件在我國發(fā)展應(yīng)用的現(xiàn)狀,分析了開源軟件知識產(chǎn)權(quán)風(fēng)險領(lǐng)域現(xiàn)有檢測技術(shù)的不足,提出開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù)。通過對3類典型的基礎(chǔ)軟件開展檢測分析,總結(jié)常見的開源軟件不規(guī)范使用行為和知識產(chǎn)權(quán)風(fēng)險類型,并從國家層面、行業(yè)層面、企業(yè)層面出發(fā),提出風(fēng)險應(yīng)對建議。
【關(guān)鍵詞】 開源軟件 知識產(chǎn)權(quán) 風(fēng)險
1 引言
近年來,隨著網(wǎng)絡(luò)強國、數(shù)字中國戰(zhàn)略部署深入推進,國家層面持續(xù)加強開源領(lǐng)域頂層設(shè)計,高度重視開源軟件發(fā)展?!吨腥A人民共和國國民經(jīng)濟和社會發(fā)展第十四個五年規(guī)劃和2035年遠景目標(biāo)綱要》明確提出,“支持數(shù)字技術(shù)開源社區(qū)等創(chuàng)新聯(lián)合體發(fā)展,完善開源知識產(chǎn)權(quán)和法律體系,鼓勵企業(yè)開放軟件源代碼、硬件設(shè)計和應(yīng)用服務(wù)”。在國家政策的大力支持下,行業(yè)層面和企業(yè)層面也積極擁抱開源、使用開源。近年來,筆者參與了多款國內(nèi)軟件的檢測分析,范圍覆蓋操作系統(tǒng)、數(shù)據(jù)庫、瀏覽器、基本輸入輸出系統(tǒng)(BIOS)等產(chǎn)品類型。通過數(shù)據(jù)分析發(fā)現(xiàn),開源軟件已成為國內(nèi)軟件開發(fā)的重要技術(shù)路線。在操作系統(tǒng)、數(shù)據(jù)庫、瀏覽器3類基礎(chǔ)軟件產(chǎn)品中,采用開源技術(shù)路線的產(chǎn)品數(shù)量占被測產(chǎn)品總量的89%。
國內(nèi)軟件企業(yè)廣泛使用開源,也同步回饋開源,并致力于共建國內(nèi)外開源軟件生態(tài),已取得顯著成效。根據(jù)《2021 Github年度報告》顯示,Github平臺上我國開源開發(fā)者人數(shù)已達755萬人,成為僅次于美國的第二大開發(fā)者群體。國內(nèi)首個開源基金會開放原子基金會、最大的開源代碼托管平臺Gitee、首個獲得國際開放源代碼促進會(Open Source Initiative,OSI)認可的本土開源許可證木蘭許可證等應(yīng)運而生,并已得到廣泛應(yīng)用。目前,Gitee上的注冊用戶數(shù)已超過800萬人,代碼倉庫數(shù)量已超過2000萬個。OpenEuler、OpenHarmony、OpenGauss、OceanBase等國內(nèi)軟件開源項目及開放社區(qū)也呈現(xiàn)蓬勃發(fā)展態(tài)勢。
開源軟件的開放共享,促進了我國軟件產(chǎn)業(yè)的快速發(fā)展。但是,相較于國外成熟的開源軟件生態(tài),我國開源軟件生態(tài)建設(shè)起步相對較晚,生態(tài)規(guī)模、技術(shù)能力水平、國際化水平、關(guān)注度、成熟度等方面尚且存在一定的差距。特別是,部分軟件企業(yè)、開發(fā)人員欠缺開源合規(guī)及風(fēng)險防范意識,在對開源衍生產(chǎn)品進行商業(yè)化、代碼分發(fā)等的過程中,時常發(fā)生不規(guī)范使用開源代碼的行為,由此可能帶來知識產(chǎn)權(quán)中斷、糾紛、侵權(quán)等風(fēng)險和諸多挑戰(zhàn),影響產(chǎn)品演進和企業(yè)發(fā)展。
2 開源軟件典型知識產(chǎn)權(quán)權(quán)利要求形式
一般來說,開源軟件的生產(chǎn)模式是,開源貢獻者發(fā)起并完成初始開發(fā),將其貢獻至開源社區(qū)、捐贈至開源基金會或托管至開源平臺后,由多個開發(fā)者采用開放式、分布式的開發(fā)模式,參與實現(xiàn)軟件版本迭代演進。開源使用者可通過互聯(lián)網(wǎng)下載開源項目,在此基礎(chǔ)上研發(fā)軟件產(chǎn)品,如圖1所示。開源使用者開發(fā)某軟件版本V1.0中,使用了眾多開源貢獻者資源,包括原始開源貢獻者貢獻的初始版本V1.0,以及開源貢獻者A、B、C、D、E等貢獻的代碼。
圖1 開源軟件常見開發(fā)模式
從知識產(chǎn)權(quán)角度,開源代碼不等于免費代碼,它們與計算機軟件一樣,受版權(quán)、專利、商標(biāo)等知識產(chǎn)權(quán)法律保護。因此,開源使用者在應(yīng)用過程中,需要掌握開源軟件的使用權(quán)利和義務(wù),并嚴格遵守,否則,容易引發(fā)知識產(chǎn)權(quán)中斷、糾紛、訴訟等風(fēng)險。
一般來說,開源軟件從開源許可證要求、開源社區(qū)/開源基金會/代碼托管平臺管理及政策、法律法規(guī)規(guī)定等多個方面出發(fā),對其自身的使用、發(fā)布、復(fù)制和演繹等過程的知識產(chǎn)權(quán)使用權(quán)利要求進行規(guī)定。以開源Linux操作系統(tǒng)為例,該軟件典型的知識產(chǎn)權(quán)使用權(quán)利規(guī)定如下。
2.1 開源許可證要求
開源許可證是涉及版權(quán)、專利、商標(biāo)等一系列權(quán)利義務(wù)的格式合同,且自動生效。開源許可證將開源軟件的權(quán)利賦予開源使用者,同時也規(guī)定開源使用者使用開源軟件時必須遵守的約束,一般以文件形式存放在開源代碼中。筆者對基于Linux操作系統(tǒng)研發(fā)的某桌面操作系統(tǒng)代碼進行分析,其代碼中主要使用的開源許可證示例如圖2(縱坐標(biāo)代表文件個數(shù))所示。
圖2 某桌面操作系統(tǒng)代碼中開源許可證使用情況
通過研究分析許可證條款發(fā)現(xiàn),圖2中列舉的7種開源許可證賦予開源使用者不同的權(quán)利和義務(wù),如表1所示。
表1 開源許可證典型知識產(chǎn)權(quán)權(quán)利規(guī)定
按照知識產(chǎn)權(quán)權(quán)利規(guī)定要求,使用表1中開源許可證關(guān)聯(lián)的代碼文件時,需嚴格遵守相關(guān)要求。對于未明示知識產(chǎn)權(quán)許可的開源許可證,其賦予的知識產(chǎn)權(quán)權(quán)利和義務(wù)的解釋權(quán)、決定權(quán)在開源貢獻者一方。
2.2 社區(qū)及平臺級管理及政策要求
開源Linux操作系統(tǒng)目前主要由Linux基金會維護管理,Linux有上百種不同的發(fā)行版本,其中最具代表性的有Debian、RedHat、CentOS、Ubuntu、SUSE等,分別由各自的開源社區(qū)維護管理。同時,開源貢獻者也將相關(guān)代碼打包分發(fā)至其他開源社區(qū)或開源平臺,如Git、Github等。
一方面,開源軟件使用權(quán)利受開源平臺或社區(qū)注冊運維所在國政策要求影響。例如,Linux基金會及Github平臺注冊運維所在國為美國,Linux基金會聲明,涉及加密技術(shù)的開源模塊受美國出口管制限制,使用前需向美國工業(yè)與安全局(Bureau of Industry and Security,BIS)或國家安全局(National Security Agency,NSA)發(fā)送郵件,以示報備?!禛ithub和貿(mào)易管制》聲明,Github.com、Github Enterprise Server以及上傳到其平臺的任一產(chǎn)品的信息都需遵守貿(mào)易管制法規(guī),包括美國出口管制條例。其中,GitHub.com要求用戶必須按照相關(guān)法律對其訪問和使用,包括美國出口管制和制裁法律;GitHub Enterprise Server不得出售給、出口到或再出口到管制國家/地區(qū)。
另一方面,開源平臺或社區(qū)對開源項目知識產(chǎn)權(quán)權(quán)利也作出相關(guān)要求。例如,Linux基金會官網(wǎng)商標(biāo)使用指南顯示,Linux商標(biāo)權(quán)利人為Linux操作系統(tǒng)創(chuàng)始人林納斯托瓦茲(Linus Torvalds),在未獲得權(quán)利人授權(quán)的情況下,禁止使用Linux商標(biāo)。
2.3 知識產(chǎn)權(quán)類法律法規(guī)規(guī)定
近年來,國內(nèi)外開源法律訴訟案件顯示,開源軟件明確受知識產(chǎn)權(quán)法律法規(guī)保護,主要包括以下方面。
(1)認可開源許可證的法律效力,開源許可證作為國際主流開源行業(yè)內(nèi)共同認可和遵守的契約文本,具備合同特征,當(dāng)開源使用者對開源軟件進行使用、復(fù)制、修改或發(fā)布等時,默認合同生效,開源使用者違反開源許可證要求,將導(dǎo)致知識產(chǎn)權(quán)問題,如版權(quán)侵權(quán)等。
(2)計算機軟件屬于著作權(quán)法保護的對象,開源軟件作為一種發(fā)布在網(wǎng)絡(luò)平臺上、可供開源使用者訪問的軟件,開源貢獻者享受包括公開、署名、修改、復(fù)制、分發(fā)傳播等著作權(quán)。開源貢獻者作為開源軟件的作者,也是開源軟件的著作權(quán)人,可以依據(jù)著作權(quán)法保護自身合法權(quán)益,在權(quán)利受到侵犯時,要求侵權(quán)人承擔(dān)相關(guān)責(zé)任。
(3)開源軟件所涉的技術(shù)構(gòu)思、操作方法等屬于專利法保護的對象,開源軟件所涉及的專利權(quán)一般屬于開源貢獻者或第三方。
(4)按照商標(biāo)分類方法,開源軟件名稱可申請第9類計算機程序或第42類計算機程序開發(fā)服務(wù)等注冊商標(biāo),享有商標(biāo)專用權(quán)。在沒有特別聲明的情況下,開源使用者不得直接使用開源貢獻者的商標(biāo)、商號、服務(wù)標(biāo)記等進行產(chǎn)品宣傳。
3 開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù)
為了避免因使用開源軟件產(chǎn)生知識產(chǎn)權(quán)中斷、訴訟、侵權(quán)等風(fēng)險,業(yè)界研發(fā)推出多款檢測工具,如BlackDuck、FOSSID、FOSSA、FOSSology、LincenseFinder、WhiteSource等,此類工具能夠支持對常見編程語言軟件代碼開展如代碼同源性掃描、許可證探測、代碼質(zhì)量審核等工作,幫助開發(fā)者準確且高效實現(xiàn)代碼開源成分分析、許可證識別、代碼質(zhì)量控制。但是,此類工具主要針對被測軟件代碼本身開展代碼掃描、開源許可證的識別及合規(guī)檢查,較少考慮開源軟件知識產(chǎn)權(quán)權(quán)利要素,對于多種開源許可證知識產(chǎn)權(quán)權(quán)利要求沖突等問題尚未開展有效檢測,缺少更細粒度的開源軟件知識產(chǎn)權(quán)檢測及風(fēng)險識別手段。
如圖3所示,依賴開源項目開展研發(fā)的項目C為被測對象,其由C1及C2共同組成,C1與C2之間存在調(diào)用關(guān)系,項目C源代碼為閉源狀態(tài)。
圖3 開源軟件許可證使用情況
利用現(xiàn)有工具對項目C開展檢測,大多數(shù)工具輸出的檢測結(jié)果包括以下幾個方面:C1與開源項目A中的A1具有同源關(guān)系;C2與開源項目B中的B1具有同源關(guān)系;C1無開源許可證;C2無開源許可證;A1采用GPL2.0開源許可證;B1采用AGPL3.0開源許可證。
但是下列3類問題,大部分現(xiàn)有工具無法做到有效識別。
問題1:C1與A1具有同源關(guān)系,按照A1中GPL2.0許可證要求,C1應(yīng)與A1許可證一致,但C1顯示無開源許可證,存在刪除GPL2.0許可證的情況。同理,C2與B1具有同源關(guān)系,C2顯示無開源許可證,存在刪除AGPL3.0許可證的情況。大部分現(xiàn)有工具能識別C1與A1、C2與B1的同源關(guān)系,但不對C1、C2刪除許可證問題進行提示。
問題2:如果C1和C2嚴格按照文件A1和B1中的許可證要求,則由于GPL2.0許可證要求與AGPL3.0許可證要求存在不兼容問題,C1和C2共同組成C時,將產(chǎn)生許可證沖突問題。大部分現(xiàn)有工具未將許可證沖突納入檢測范圍,不對其進行提示。
問題3:如果C1和C2嚴格按照文件A1和B1中的許可證要求,則按照GPL2.0開源許可證要求和“傳染性”特性,在某些特定情況下,待測項目C將被視為衍生代碼且需要開源。大部分現(xiàn)有工具對使用開源但衍生產(chǎn)品閉源的情況不作風(fēng)險提示。
上述3類問題均由待測項目C的同源項目引入,實際工作中需要對項目C開展全面的溯源風(fēng)險分析,最大程度上定位其面臨的知識產(chǎn)權(quán)風(fēng)險。
基于此類情況,筆者研究提出開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù),對開源許可證要求、開源社區(qū)/開源基金會/代碼托管平臺管理及政策要求、法律法規(guī)規(guī)定提取信息,并進行信息規(guī)范化及標(biāo)準化,以此構(gòu)建開源軟件知識產(chǎn)權(quán)權(quán)利要求知識庫,通過代碼同源性比對分析,建立開源軟件溯源關(guān)系,檢測待測項目自身知識產(chǎn)權(quán)風(fēng)險,以及由同源項目傳遞至待測項目的知識產(chǎn)權(quán)風(fēng)險,檢測技術(shù)框架如圖4所示。
圖4 開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù)框架
基于開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù),對3類軟件(包括操作系統(tǒng)、數(shù)據(jù)庫、瀏覽器)開展了檢測,發(fā)現(xiàn)以下4類典型風(fēng)險。
一是直接刪除、修改開源許可證或版權(quán)要求,違反開源許可證要求;
二是違反開源許可證要求,將開源軟件衍生代碼閉源分發(fā)、商業(yè)化;
三是多個開源項目不規(guī)范組合,產(chǎn)生開源許可證沖突,如表2所示;
四是特定情況下,使用開源軟件可能侵犯開源貢獻者或第三方專利權(quán)。
表2 數(shù)據(jù)庫產(chǎn)品使用的開源項目許可證沖突
4 開源軟件風(fēng)險防范及應(yīng)對建議
通過以上風(fēng)險的發(fā)現(xiàn),驗證了開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù)的可用性及有效性,該技術(shù)解決了傳統(tǒng)分析技術(shù)無法有效開展細粒度知識產(chǎn)權(quán)檢測及風(fēng)險識別的問題。通過該技術(shù),發(fā)現(xiàn)開源軟件使用常見知識產(chǎn)權(quán)風(fēng)險以違規(guī)訴訟風(fēng)險為主,同時還存在因違規(guī)訴訟,導(dǎo)致開源使用者無法再使用開源軟件,產(chǎn)生授權(quán)中斷等風(fēng)險,對開源使用者更新迭代產(chǎn)品造成影響,嚴重情況下可能影響軟件企業(yè)發(fā)展。
建議從以下3個方面出發(fā),全面深入防范開源軟件知識產(chǎn)權(quán)風(fēng)險,引導(dǎo)我國軟件產(chǎn)業(yè)高質(zhì)量發(fā)展。
4.1 國家層面,實施開源激勵政策,建設(shè)本土開源生態(tài)
從國家層面,建議實施開源激勵政策,提高產(chǎn)學(xué)研用各方對我國開源生態(tài)的關(guān)注度和投入程度,提升開源領(lǐng)域的發(fā)展活力和動力,推動龍頭企業(yè)積極向國內(nèi)外開源平臺貢獻優(yōu)秀開源項目,帶動中小企業(yè)研發(fā)能力快速發(fā)展并反哺國內(nèi)開源社區(qū),以此形成我國開源生態(tài)的良性循環(huán),支撐我國軟件產(chǎn)業(yè)的技術(shù)發(fā)展統(tǒng)一和規(guī)模發(fā)展壯大,培養(yǎng)一批技術(shù)先進、具有國際競爭力的國產(chǎn)自主開源項目,在國際競爭中取得自主權(quán)、主動權(quán),有效應(yīng)對因使用國際開源項目可能帶來的知識產(chǎn)權(quán)風(fēng)險問題。
4.2 行業(yè)層面,高效協(xié)同形成合力,推動開源良性發(fā)展
從行業(yè)層面,建立高效協(xié)同的開源產(chǎn)業(yè)聯(lián)盟,科學(xué)統(tǒng)籌、集中力量、形成合力,共同打造統(tǒng)一、具有一定規(guī)模的本土開源社區(qū)、開源代碼托管平臺等開源基礎(chǔ)設(shè)施,解決傳統(tǒng)開源領(lǐng)域組織分散、各為一方、社區(qū)散亂弱小等問題。進一步豐富建設(shè)我國開源行業(yè)標(biāo)準和規(guī)范,繼續(xù)研究制定受國際認可、具有國際影響力的本土開源許可證,加強行業(yè)開源理念、法律法規(guī)、開源合規(guī)等的科普和培訓(xùn)宣貫,為我國開源生態(tài)提供有力的知識產(chǎn)權(quán)、法律支撐,引導(dǎo)中國軟件開發(fā)者正確使用開源軟件,有效防范開源軟件知識產(chǎn)權(quán)風(fēng)險,推動開源良性發(fā)展。
4.3 企業(yè)層面,加強自主研發(fā)能力,規(guī)范使用開源軟件
從企業(yè)層面,建議加強自主創(chuàng)新研發(fā)能力,積極開展關(guān)鍵核心技術(shù)攻關(guān),提升自身知識產(chǎn)權(quán)布局,增強知識產(chǎn)權(quán)市場競爭力,有效制衡外部知識產(chǎn)權(quán)侵權(quán)訴訟風(fēng)險。加快對開源技術(shù)的消化吸收,減少對外來技術(shù)的依賴,防范知識產(chǎn)權(quán)中斷風(fēng)險。加強企業(yè)內(nèi)部知識產(chǎn)權(quán)、法務(wù)、研發(fā)等各部門協(xié)同配合,提高開源軟件知識產(chǎn)權(quán)意識和風(fēng)險防范能力,建立開源軟件合規(guī)使用管理機制以及軟件全生命周期知識產(chǎn)權(quán)風(fēng)險排查機制,加強相關(guān)人員對開源政策、法律法規(guī)、開源許可證要求等的學(xué)習(xí)理解,嚴格按照相關(guān)要求規(guī)范使用開源軟件。
5 結(jié)語
本文通過筆者在實際業(yè)務(wù)工作中掌握的開源軟件應(yīng)用現(xiàn)狀,分析開源軟件典型知識產(chǎn)權(quán)權(quán)利要求,通過提出一種新型的開源軟件多層級知識產(chǎn)權(quán)風(fēng)險溯源檢測技術(shù),對開源軟件使用常見的知識產(chǎn)權(quán)風(fēng)險進行了分析總結(jié),并給出風(fēng)險防范和應(yīng)對建議。政產(chǎn)學(xué)研用各方應(yīng)該把握開源軟件發(fā)展趨勢,聚焦我國軟件產(chǎn)業(yè)在開源應(yīng)用過程中面臨的突出問題,加強頂層設(shè)計和統(tǒng)籌規(guī)劃,推動國產(chǎn)自主軟件開源生態(tài)建設(shè)及良性發(fā)展。
(原載于《保密科學(xué)技術(shù)》雜志2023年3月刊)