浅析计算机软件技术信息的商业秘密鉴定

摘要: 司法鉴定作为司法实践中一种重要的法定证据,其鉴定结果往往成为案件侦查或审理的关键所在,然而在知识产权司法鉴定中,与之相匹配的鉴定标准与规范迟迟无法完善,当前,建立统一的各类知识产权司法鉴定技术标准与规范备受业界关注。在笔者所服务的知识产权司法鉴定机构中,商业秘密案件居多,在每年受理的所有案件中占 50% 左右,其中计算机软件案件占比最大。本文拟从计算机软件商业秘密鉴定方法入手,结合计算机软件技术信息的特殊性,对其商业秘密鉴定涉及的若干问题进行探讨,以期抛砖引玉。

关键词 : 计算机软件 司法鉴定 商业秘密 技术信息

随着知识经济时代的到来和知识产权保护力度的不断加大,我国知识产权纠纷正进入一个高发期。在知识产权案件诉讼中,知识产权司法鉴定结论可作为被采信的证据形式,往往成为案件侦查或审理的关键所在 , 但与之相匹配的知识产权司法鉴定技术规范却至今无法完善。由于国内外均无现成的和完整的知识产权司法鉴定技术标准可循,因此,在知识产权司法鉴定过程中存在诸多问题值得我们探讨和研究。

商业秘密案件是众多知识产权案件中的一种,在笔者所服务的知识产权司法鉴定机构中,每年受理的商业秘密案件约占所有案件的 50% 左右,其中计算机软件案件占比最大。鉴于计算机软件本身的特殊性,可从版权、专利以及商业秘密多种途径进行保护,本文拟从商业秘密保护的层面,对计算机软件商业秘密鉴定涉及的若干问题及鉴定方法结合工作实践进行探讨。

一、商业秘密与技术秘密的关系

根据《反不正当竞争法》第十条的规定,商业秘密分为技术秘密和经营秘密,因此技术秘密包含在商业秘密内, 但是, 在法律上技术秘密是一个独立的概念,并不从属于商业秘密。商业秘密的保护对象除了技术性秘密事项外, 还包括非技术性秘密事项, 即经营秘密,包括 : ①客户名单、贸易关系、购销渠道 ; ②货源情报 ; ③未被合法公开的经营业绩的各种数据资料 ; ④招、投标资料 ; ⑤经营战略、经营活动中未被合法公开的重大事件; ⑥资信状况、经营活动中的重要资料;⑦资产购置计划、投资计划、未被合法公开的、重大投资活动 ; ⑧其他经营、管理信息。

二、构成技术秘密的法定条件

根据 《反不正当竞争法》 第十条第三款和新 《刑法》第二百一十九条第三款将商业秘密定义为“是指不为公众所知悉,能为权利人带来经济利益,具有实用性并经权利人采取保密措施的技术信息和经营信息” 。

综上,在我国构成技术秘密必须同时具备三个要素:①不为公众所知悉 ; ②具有实用性及价值性 ; ③保密性。 在实践中,由于技术信息涉及专利领域的技术,因此,司法机关等委托人寻求专业鉴定机构就涉案的技术信息是否构成技术秘密进行鉴定 , 而经营性信息是否构成商业秘密则由司法机关直接判定。本文仅围绕商业秘密中的技术秘密在司法鉴定中的有关问题进行探讨。

1. 不为公众所知悉

最高人民法院《关于审理不正当竞争民事案件应用法律若干问题的解释》第九条将不为公众所知悉解释为“有关信息不为其所属领域的相关人员普遍知悉和容易获得” 。这意味着不为公众所知悉应当同时具备不为普遍知悉和并非容易获得两个具体条件。首先 ,必须具备秘密性,然而,这里的秘密性不是要求绝对的秘密,而是要求相对的秘密,即只是在相关行业、相关领域内不为相关人员普通知悉即可,允许权利人在采取保密措施的情况下让有必要的人员知悉。其次,一项技术秘密之所以成为秘密,就是有区别于普通技术信息,相关行业或领域内的人不能从外部直接获取。例如,相关行业的技术人员不需要付出创造性劳动,仅仅通过想象就能获得的技术信息,就是容易获得的信息,不符合构成技术秘密的基本条件。

2. 实用性及价值性

实用性是指具体技术信息能运用于实际生产并产生经济效益。同时,实用性要求技术信息必须具有确定性,而不应是抽象的原理、概念或简单的创意、构思等。价值性是指能为权利人带来经济利益或竞争优势,具有商业价值。

由此可见,权利人所提出的秘密点主张不应是零散的、无法实现的技术信息。例如,委托人提交的鉴定材料是某计算机程序中的局部零散段落,鉴定人则无法从鉴定资料中得知其在整体程序中所起的作用,或无法判断权利人主张的技术秘密与所提交资料的关联性及实用价值,鉴定将无法进行。因此,在鉴定实践中,委托人所提供材料的完整性在鉴定活动中至关重要。

3. 保密性

保密性,即权利人对相关技术信息采取了保密措施。技术秘密是一种特殊的知识产权,与专利、商标、版权等权利不同,技术秘密的取得是基于权利人的合法劳动,无需任何部门审查批准,通过自己保密的方式产生的权利,因此,一项技术信息倘若当事人自己未采取保密措施 , 则该技术秘密是不受保护的。此外,权利人采取的保密措施必须是合理的、有效的。最高人民法院《关于审理不正当竞争民事案件应用法律若干问题的解释》 第十一条第一款将保密措施解释为 “权利人为防止信息泄漏所采取的与其商业价值等具体情况相适应的合理保护措施” 。由此可见,权利人所采取的保密措施应当达到合理的程度。

只有同时具备了以上三个要素的技术信息才能被认定为构成商业秘密中的技术秘密,这也是其获得法律保护的前提和基础。

三、计算机软件技术信息的具体表达方式

1. 计算机源程序

源程序是用计算机高级语言编写的程序,构成符号化指令序列或符号化语句序列,是计算机软件的核心内容和软件设计方案的具体表现。源程序作为一种技术信息,在具体的案件中,只要该源代码满足不为公众所知悉、价值性、实用性、保密性的要求,应属于技术秘密的范畴。

2. 计算机目标程序

目标程序是使用机器语言编制的体现为电脉冲序列的一串二进制数(0 和 1)指令编码,直接用于驱动计算机硬件工作。程序员编写源程序,然后,通过编译过程转变为可为计算机识别的目标程序来指挥硬件工作,以达到预定的目的。尽管目标代码不易被一般人所读懂,但专业工程人员是可以通过逆向工程对其进行破译,因此,在实践中,不乏企业为很好地保存技术秘密而将其固化到芯片中并通过保密措施封装起来。

3. 开发方法或开发环境

计算方法、软件工程原理是公知的,但建立适宜的开发过程标准,按照特定目的的组合而产生的区别于其他企业的开发方法,或企业特定的开发环境,也有可能成为企业的技术秘密。

4. 其他技术信息文件

计算机软件技术信息还包括软件在开发过程中用自然语言或形式化语言所编写的文字资料和图表,描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法,如程序设计说明书、流程图、用户手册等都是不为公众所知悉, 只限于有限人员(设计人员、程序的调试人员、测试人员)了解和掌握。

四、计算机软件技术秘密鉴定方法

在技术秘密的知识产权司法鉴定中,通常会涉及两种类型的鉴定 : 一是判断鉴定委托人主张的技术信息是否构成属于技术秘密的法定条件的鉴定, 简称“秘密性鉴定” ; 二是判断被诉方的技术信息是否与鉴定委托人构成技术秘密的技术信息相同或实质相似的鉴定,简称“相似性鉴定” 。

1. 秘密性鉴定

(1)不为公众所知悉

一是开源代码、第三方代码与自主代码的判断。现代软件的开发非常强调软件的复用和模块化开发,因此,很多软件在开发过程中,会引用开源代码和第三方代码。对此,鉴定组在鉴定过程中首先应要求鉴定委托人自己主动列出所引用的相关开源代码,并提供相应的第三方代码使用的授权文件。其次,鉴定组需对源代码进行阅读,根据代码中的版权注释、命名等信息找出公开代码; 对目标代码的动态库进行分析,找出公开引用的代码库。在找出所有的开源代码和第三方代码后,应对其在整体源代码中的所占比例进行初步判断。例如,鉴定委托人主张的源代码绝大多数是开源代码和第三方代码,需进一步判断对这些代码的使用是否简单整体引用; 反之,如大多数代码是鉴定委托人自主代码,则基本可认为代码的整体组合方式及逻辑不为公众知悉。

二是可逆性判断。部分软件目标代码具有可逆向的特点,普通技术人员可以直接采用对目标代码反编译来获得其源代码。如果这种软件是采用公开发售的方式,鉴定组需要判断其目标代码是否采用了加密手段,或要求客户签署相关的保密协议,并在鉴定报告中加以注明。

(2)实用性及价值性

一是完整性判断。当鉴定委托人主张的秘密点是源代码时,鉴定组应要求权利人说明相应的编译环境,并依据说明对源代码进行编译,记录详细编译过程,以判断源代码是否完整。

二是实用性判断。对编译后的目标代码或鉴定委托人直接提供的目标代码,鉴定组应尽可能使其在实际环境下运行,并记录运行界面,以判断其功能和用途是否与权利人的主张符合。如软件已对外销售,鉴定委托人可提供相应的发票或合同复印件,以说明软件的实用性。

2. 相似性鉴定

在技术秘密的纠纷中往往需要将鉴定委托人所主张的技术秘密信息与被诉方的技术信息进行比对,确认两者的技术信息是否相同或实质相同,即“相似性鉴定”。相似性鉴定是判断是否侵犯技术秘密的必要条件。

我们的观点是,鉴定组在进行相似性鉴定时可以遵循下述基础判定原则。

(1)用途比对

可尝试运行双方程序,以判断原诉方与被诉方的软件用途领域是否相同,如双方不属于同一应用领域,则相似可能性较小。

(2)源代码直接比对

源代码采用计算机语言编写,便于阅读和比较,如原诉方与被诉方均提供了源代码,则可采用此方法。

鉴定组可从开发环境、鉴定材料完整性、鉴定材料真实性、总体结构分析、代码分析、特殊信息说明等方面进行比对和评断。

正常情况下,不同的程序设计人员或同一程序设计人员在不同时期独立设计的源程序的程序内容(包括程序语句、变量名定义、变量的排列次序、注释、排版格式等)不可能出现完全相同的情况。

(3)目标代码直接比对

当双方的二进制目标代码完全相同或差异极小时,可采用二进制文件比较工具直接进行比对,以说明双方相同或相似。一般来说,源代码生成目标代码的过程会受到编译环境和参数的影响,同样一份源代码生成的目标代码可能会有较大的差异,因此,经常无法直接进行比较,而需要借助反汇编等手段。在目标代码没有加密的情况下,一些计算机语言编写的目标代码可以经反汇编得到全部或部分源代码,鉴定组可以将原诉方与被诉方双方反汇编后的源代码进行比对。

(4)目标代码与源代码的比对

当一方提供了目标代码,另一方提供了源代码时,可以尝试将目标代码反编译得到源代码,进行源代码级别的比对; 也可尝试将源代码编译成目标代码,进行二进制级别的比对。

除上述比对方法外,计算机软件的技术秘密相似性鉴定还可以使用数据库比对、文档比对等比对方法。

五、计算机软件技术秘密鉴定的难题

我们在进行计算机软件技术秘密鉴定的具体实践过程中,常常会遇到因为鉴定材料不完整或取证不全导致的鉴定困难等情况。

第一,在涉及计算机软件秘密性鉴定中,主要鉴定难点集中在开源代码及第三方代码引用判断方面,如前文所述: 由于现代软件的开发,非常强调软件的复用和模块化开发,因此,很多软件在开发过程中,会引用开源代码和第三方代码。一般情况下,鉴定组首先会要求鉴定委托人主动列出所引用的相关开源代码,并提供相应的第三方代码使用的授权文件。但在实践过程中,不乏一定数量的鉴定委托人刻意删除引用文件或隐瞒引用第三方代码的引用事实。为判断鉴定材料中的引用代码,鉴定人员将进行大量查找、比对工作,以确定其中的委托人自主开发的代码部分,这是一个复杂困难的工作。

第二,在相似性鉴定中,由于受各种因素的影响,某些时候司法机关在取证过程中无法取得被诉方完整的源代码,甚至仅获得被诉方的目标代码,鉴定人员需要对双方目标代码进行反编译进而得到汇编程序,再进行汇编程序的比对,由于反编译是一个复杂的过程 , 所以,越是高级语言,就越难于反编译,此外,获取的被诉方目标代码可能会进行加密处理, 导致无法反编译。为此,取得完整的原始材料至关重要。但在司法实践中,尤其涉及商业秘密案件, 鉴定委托人通过公证途径取得材料,常常会产生“打草惊蛇”的负面效果,有碍案件的正常调查,影响了权利人的合理维权。

面对司法鉴定过程中出现的各种主观、客观原因造成的难题,如何进一步规范知识产权司法鉴定行业,加速推动行业技术标准的制定,值得司法鉴定同行学者共同探讨。