作者:何國銘律師 (專于商標犯罪與商業(yè)秘密犯罪案件控告及辯護)
計算機軟件包括程序與文檔,計算機程序是指為了得到某種結(jié)果而可以由計算機等具有信息處理能力的裝置執(zhí)行的代碼化指令序列,或可被自動轉(zhuǎn)換成代碼化指令序列的符號化指令序列或者符號化語句序列。文檔,是指用來描述程序的內(nèi)容、組成、設計、功能規(guī)格、開發(fā)情況、測試結(jié)果及使用方法的文字資料和圖表等,如程序設計說明書、流程圖、用戶手冊等。
計算機文檔與程序中的技術(shù)信息均能被認定為商業(yè)秘密,但與文檔相比,計算機軟件編程中的源代碼與目標代碼是常被進行司法鑒定的主要檢材。
源代碼與目標代碼是不一樣的概念,程序員在編程中所編寫出來的文本是源代碼,是按照某種特定語言的慣例和規(guī)則編寫的,對人類來說,這些代碼是可讀的,程序員能對源程序進行交流,但計算機不能直接理解這種以英文或者其他人類語言編寫的指令。因此,只要將這些人類可讀的源代碼編譯成機器可執(zhí)行的代碼,才能在計算機運行。這些被編譯后的代碼表現(xiàn)為一串二進制數(shù)(由“0”和“1”組成)指令編碼,我們將之成為目標代碼。盡管目標代碼已經(jīng)是機器指令,但還不能獨立運行,還需解決函數(shù)調(diào)用問題,將目標代碼與庫函數(shù)(函數(shù)庫、動態(tài)鏈接庫)鏈接,才能形成完整的可執(zhí)行程序。
就計算機軟件程序而言,其可成為著作權(quán)和商業(yè)秘密的保護對象,但由于保護目的與法律規(guī)制的不同,軟件程序作為著作權(quán)保護與作為商業(yè)秘密保護存在差異。基于對軟件著作權(quán)的保護不延及開發(fā)軟件所用的思想、處理過程、操作方法或者數(shù)學概念等,故對軟件的鑒定主要是外在表達方式進行鑒定,如對源代碼及目標代碼進行鑒定。而商業(yè)秘密所保護的計算機程序及文本中所蘊含的技術(shù)信息秘密,其中也包括程序和文檔中開發(fā)軟件的“思想、處理過程、操作方法或者數(shù)學概念等,商業(yè)秘密可涵蓋的范圍要比著作權(quán)大,但以侵犯商業(yè)秘密案件處理,需進行非公知性鑒定與同一性鑒定。
某一軟件獲得商業(yè)秘密保護的法定條件與其獲得著作權(quán)法保護的法定條件不同,有些案件即使能獲取著作權(quán)保護,但不一定能以商業(yè)秘密來保護。軟件著作權(quán)之鑒定,重點在于權(quán)利軟件與侵權(quán)軟件之相似性鑒定,而商業(yè)秘密案中除判斷技術(shù)信息是否相同或?qū)嵸|(zhì)性相同外,還需在此之前進行非公知鑒定。爾后司法人員結(jié)合涉案軟件是否具有價值性,權(quán)利人是否采用合理的保密措施等,辨析涉訴的技術(shù)信息是否能構(gòu)成商業(yè)秘密。一般而言,若是權(quán)利人曾向國家版權(quán)局進行著作權(quán)登記,則以著作權(quán)尋求救濟會簡單得多,以已登記的軟件源代碼作為樣本,與侵權(quán)產(chǎn)品使用的源代碼作相似性鑒定即可。
計算機軟件以商業(yè)秘密的形式獲取保護時,其在非公知性鑒定與同一性鑒定中均有難點。“非公知性”鑒定,即鑒定權(quán)利人所主張的技術(shù)信息不為公眾所知悉。需判斷其是否符合非普遍知悉與非容易獲取的條件,如被追訴人所使用的源代碼是否為開源代碼,是否為公開、公用代碼,或是否為第三方代碼。在開發(fā)過程中,被追訴人是否使用反編譯的方式獲取權(quán)利人的源代碼,被追訴人是否使用反向工程。權(quán)利人主張的源代碼是否在公開的報告會、展覽等方式公開,或該代碼是否在專業(yè)的期刊雜志中發(fā)表,又是否僅從網(wǎng)站頁面上即可搜索獲知源代碼的。此公開信息,或無需付出一定的代價即可容易獲得的技術(shù)信息,不應構(gòu)成商業(yè)秘密。
此外,在非公知性鑒定中,權(quán)利人需要對軟件的源代碼梳理,整理出其自主編寫的屬于秘點的技術(shù)信息,但現(xiàn)實中往往是軟件權(quán)人在開發(fā)軟件時,一般會使用到開源代碼、第三方代碼與自主代碼,經(jīng)開源的公共代碼自然具有公知性,故應排除在商業(yè)秘密的范疇。對使用了第三方代碼的,需權(quán)利人出示第三方代碼的授權(quán)文件,但常有權(quán)利人刪除和隱瞞相關(guān)引用的事實證據(jù),由此致使鑒定難度增大。
在同一性鑒定中,由于偵查人員無法查獲被追訴人所使用的完整源代碼,因此,鑒定人對被追訴人軟件的目標代碼進行反編譯,在得到匯編程序后,再進行比對。此做法的難點在于軟件源代碼的反編譯是一個復雜的過程,由 C、C++、VB 等語言編寫的軟件程序不容易被反編譯;由JAVA、NET 平臺下的編程語言(如C#、VB. NET、C++. NET、F# NET)編寫的軟件程序容易被反編譯;由 Delphi設計的軟件程序中窗體代碼容易被反編譯,而邏輯執(zhí)行部分代碼不容易被反編譯。此外,代碼中通常是經(jīng)過多層加密,從目標代碼到源代碼的反編譯的過程,不亞于反向工程,工作量是非常巨大。有人主張,在源代碼無法獲取的情況下,則可對目標代碼進行鑒定,將權(quán)利人編譯后的目標程序與被告人目標程序進行比較。
此外,在進行鑒定前,鑒定人員需做一些核對工作,鑒定人會將權(quán)利人所遞交的源代碼與其軟件產(chǎn)品中的目標代碼進行比較,以確認所遞交的源代碼真實。具體操作為將源代碼通過編譯的方式獲取目標代碼,再將編譯完成的目標代碼與產(chǎn)品中的目標代碼進行比較。另,鑒定人也需對從被追訴人處查獲扣押的軟件源代碼與侵權(quán)產(chǎn)品的目標代碼進行比對,其確定所查獲的源代碼是真實的,此舉之目的在于核實源代碼的真實性。實踐中,有些被追訴人會將侵權(quán)源代碼放置于較為隱蔽的地方,偵查機關(guān)難以查獲,或出于迷惑辦案人員,躲避偵查之動機,案發(fā)前偽造一份虛假的源代碼。因此,鑒定人在鑒定前,需要將該源代碼與目標代碼進行比較,以確定查獲的是真實的源代碼,而非偽造的源代碼。
鑒定機構(gòu)接受商業(yè)秘密鑒定委托后,會委托專業(yè)檢索機構(gòu)進行技術(shù)查新,爾后鑒定人再補充檢索。常見的查新網(wǎng)站,除了谷歌、百度等搜索網(wǎng)站外,查新人員會通過開源軟件的方式查新,常見的源代碼搜索網(wǎng)站如Searchcode、Github及Krugle等都是主流的開源軟件網(wǎng)站。此外,檢索人員會通過軟件專利的方式進行查新,查證權(quán)利人所主張的代碼是否已被他人申請專利。
鑒定人在作同一性鑒定中,使用的鑒定方式一般有以下四種。一是逐句對照法。這是一種傳統(tǒng)的參照文字作品的鑒定方案,即將軟件作品進行逐字逐句的對照。二是“全部觀念及感覺”對照法。從整體感官出發(fā),判斷檢材與樣本的相似度,這種方法操作簡單,但缺乏一個客觀的評判標準,給予了鑒定人較多的主觀性與自由性。三是“結(jié)構(gòu)、順序與組織”方法,又稱SSO規(guī)則。結(jié)構(gòu)是一個程序中的各個組成部分,如指令、語句、程序段、子程序和數(shù)據(jù)結(jié)構(gòu)等;順序是讓計算機先執(zhí)行哪些結(jié)構(gòu),后執(zhí)行哪些結(jié)構(gòu)的前后次序,即程序中的處理流程;組織是指這些結(jié)構(gòu)之間、流程之間以及結(jié)構(gòu)和流程之間的相互關(guān)系(如層次嵌套關(guān)系、調(diào)用從屬關(guān)系、串行并行關(guān)系等)的總體安排。四是抽象—過濾—比較三步判斷法,又稱AFC規(guī)則。首先要對程序抽象為代碼、子程序、模塊等層次,然后再進行逐級抽象,將屬于公共領域的表達部分過濾,將剩下的“表達”進行比較。
結(jié)語:計算機軟件應用廣泛,在生產(chǎn)經(jīng)營中起著十分重要的作用。近年來,全球及我國計算機軟件行業(yè)高速發(fā)展,涉計算機軟件的知識產(chǎn)權(quán)犯罪案件逐年增加。在此類案件中,司法鑒定意見是重要的定罪量刑證據(jù),然而,因司法鑒定存在諸多不規(guī)范的情形,導致在認定案件事實上陷入困境。對此,作為辯護律師,我們更應了解計算機軟件司法鑒定的過程,以期尋找有效辯護要點,依法合理辯護,為當事人爭取最大利益。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.