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