摘要:在非法获取计算机信息系统数据罪的框架下,网络爬虫是否构成犯罪的关键在于判断突破反爬虫措施的行为是否属于《刑法》第285条规定的“侵入”或者“采用其他技术手段”。侵入的本质是未经授权访问计算机信息系统,其核心特征“未经授权”具体指采用技术手段规避身份验证机制进而获得非法访问权限。而反爬虫措施并不涉及访问权限,其作用只是限制访问的方式,故规避反爬虫措施的行为并不能评价为刑法意义上的侵入。另外,非法获取计算机信息系统数据罪中的“采用其他技术手段”本身是一个较为模糊的开放式概念,故突破反爬虫措施是否属于“其他技术手段”的问题,已经超出了构成要件符合性判断的范畴,或者说其根本无法为构成要件符合性的判断提供明确标准,其实质是应否处罚的价值判断。综合法益保护、预测可能性、网络竞争环境与网络经济发展、大数据与人工智能技术前景以及网络的开放性本质等方面的考量,也不应将突破反爬虫措施强行爬取数据的行为评价为“采用其他技术手段”。
一、问题的提出
在大数据时代,数据象征着互联网企业的核心竞争力,坐拥庞大用户群体的企业天然地享有数据资源上的优势,而没有数据生产能力的企业则需要利用网络爬虫技术采集数据。为了捍卫或者获取数据优势地位,互联网企业之间展开了激烈的技术对抗:一方面,数据的占有者和管理者通过设置各种技术障碍防止其他企业获取数据;另一方面,一些新兴互联网企业努力突破技术限制来获取相关数据以支持自己的网络业务。国内民间专业从事网络空间政策和产业研究的重要智库——赛博研究院2019年11月发布的《数据爬取治理报告》指出,2018年全球流量中机器人流量总共占比37.9%,数据爬取已经成为部分行业中数据获取和流通的主要方式,未来可能会成为互联网时代平台和企业获取量级网络数据的基础手段。因此,正确处理爬虫与反爬虫的对抗、合理规制数据爬取行为具有重要意义。
几年前,两个刑事判决打破了爬虫与反爬虫纯粹技术博弈的状态,为反爬虫措施提供了刑法保护的“背书”。2017年武汉元光公司为了提升其App“车来了”的信息查询准确度,指使员工利用网络爬虫爬取深圳谷米公司以及其他竞争对手的公交行驶信息、到站时间等实时数据,并为了顺利获取数据而采用了“变化IP地址”“破解加密系统”等手段,后深圳市南山区人民法院认定元光公司构成非法获取计算机信息系统数据罪(以下简称元光案)。同年,上海晟品有限责任公司破解北京字节跳动网络技术有限公司的防抓取措施(“伪造device id绕过服务器验证的身份验证”“使用伪造的UA”及“绕过服务器的访问频率限制”),抓取北京字节跳动网络技术有限公司今日头条服务器中的视频列表、分类视频列表以及相关视频评论等数据,北京市海淀区人民法院同样认定晟品公司构成非法获取计算机信息系统数据罪(以下简称晟品案)。这两起案件的判决反映了司法机关关于爬虫与反爬虫对抗的态度:利用技术手段突破反爬虫措施采集公开数据的行为构成犯罪,即构成非法获取计算机信息系统数据罪。
司法机关的定性得到很多学者的支持。有学者评价,晟品案中突破反爬虫措施的行为侵害了计算机信息系统安全法益,对其进行惩罚不仅具有必要性,也具有可行性。有学者认为:“强行突破反爬技术,侵入‘国家事务、国防建设、尖端科学技术领域’之外的计算机信息系统,并采用爬虫技术获取系统内的数据,其行为根据我国《刑法》第285条第2款的规定,构成非法获取计算机信息系统数据罪”。对于突破反爬虫措施行为的性质,存在两种相近的观点,都认为突破反爬虫措施具有刑事违法性:一是认为“晟品公司案中法官突破性地将‘反爬虫’机制认定为与用户身份信息认证机制同态的计算机信息系统安全措施,并将常见的对抗‘反爬虫’措施的技术行为认定为‘侵入’计算机信息系统行为,这实际上等于创设数据流转领域新的规则,为规范数据流转行为起到了一定的积极意义”。二是认为反爬虫措施与身份验证机制同属于计算机技术屏障,网络爬虫规避或者绕开技术屏障时就构成刑法意义上的侵入计算机信息系统。两种观点的区别在于:前者认为将“反爬虫规避”解释为“侵入”是一种解释上的创新,后者则认为反爬虫规避本身就是典型的侵入行为。
虽然司法实践以及许多刑法学者认为突破反爬虫措施采集数据构成非法获取计算机信息系统数据罪,但是仍然存在一些值得注意的不同意见。有技术人员认为晟品案中的修改UA、修改Device id、绕开网站访问频率限制等手段本是编写爬虫程序的基本设置,但反而成了获罪的依据。同时,专注互联网和爬虫领域的律师认为,晟品案的合议庭没有准确理解反爬虫措施的性质,反爬虫措施并不属于身份校验机制,而且突破反爬机制也不会获得系统权限,所以更不会构成非法获取计算机信息系统数据罪。此外,也有学者指出:“反爬措施在技术层面上也并不具有排除特定主体访问计算机信息系统的效果,而只是针对某种访问进行了限制。在这种情况下,将反爬措施与其他传统意义上的安全措施相提并论,恐与立法者原意不符”。
由此可见,就利用网络爬虫技术强行采集公开数据行为的定性而言,目前的争论主要围绕是否构成非法获取计算机信息系统数据罪展开,而争论的焦点在于突破反爬虫措施是否属于刑法意义上的“侵入”,或者说,反爬虫措施是否属于计算机信息系统中的安全保护措施。尽管对此存在诸多观点,但缺少深入的分析与论证,如并未解读网络爬虫与反爬措施的技术原理、刑法中“侵入”的判断标准,也没有对强行爬取公开数据的行为是否构成侵入的判断进行具体说明。故笔者以为,如果要推进关于强行爬取公开数据行为定性的研究,有必要进一步解决以下两个问题。其一,充分理解网络爬虫、反爬虫措施以及相应规避措施的基本原理和技术流程。虽然司法机关以及学者在论证网络爬虫构成犯罪时提及了多种反爬虫规避手段,但缺乏对基本技术原理的阐释。试想,在这种情况下如何能准确判断反爬虫规避手段的性质——如果不理解网站如何利用User-Agent限制网络爬虫,又怎么可能理解规避该措施的效果和性质。其二,明确非法获取计算机信息系统数据罪的适用标准。目前,主流观点认为强行爬取公开数据构成非法获取计算机信息系统数据罪,但这一罪名本身就因明确性问题而饱受诟病。有学者专门针对该罪名的适用展开了实证研究,发现作为犯罪对象的数据范围极广,该罪名已经成为名副其实的“口袋罪”。笔者以为,导致这一罪名成为“口袋罪”的原因在于其构成要件中的前置性限制条件(“侵入计算机信息系统”或者“采用其他技术手段”)过于模糊。究竟什么是“侵入计算机信息系统”,刑法和司法解释都没有明确规定;而“采用其他技术手段”的标准则更为模糊。在前述的两起爬虫案件中,法院对于反爬虫规避行为的定性并不一致:元光案中法院认为反爬虫规避行为属于“采用其他技术手段”,而晟品案中法院则认为反爬虫规避行为构成侵入计算机信息系统。由此可见,明确刑法中的判断标准,是对网络爬虫准确定性的前提条件。
当面对新的技术问题时,法学定性变得尤为艰难。一方面是因为技术行为具有独特的复杂性,法学从业者在缺乏专业知识的情况下无法充分理解行为的性质;另一方面是由于刑法规范无法及时对新的技术行为作出回应,不能提供明确、科学的判断标准。国内外的裁判经验表明,司法机关对于具有风险的新兴技术往往倾向于入罪而非出罪,然后再逐渐调整、细化评价标准并对个别行为予以保护。这种滞后的处理不仅会给互联网企业毁灭性的打击,而且会导致具有创新意义的技术被遏制,严重阻碍网络经济的发展。所以,针对强行爬取公开数据的定性问题,本文将在剖析爬虫与反爬虫技术原理、明确非法获取计算机信息系统数据罪适用标准的基础上,进行分析判断。
二、被忽视的技术细节——网络爬虫与反爬虫的技术博弈
在非法获取计算机信息系统数据罪的框架下,强行爬取公开数据行为的刑事违法性争议在于如何认定反爬虫规避措施的性质。易言之,其争议在于规避反爬虫措施的技术手段是否构成我国《刑法》第285条规定的“侵入”或者“采用其他技术手段”。在此框架下,网络爬虫技术并不具有其他的违法性连接点。然而,一些学者却认为网络爬虫具有“窃取”数据或者信息的技术特征。这实际上是对爬虫技术的误解。如果深入分析网络爬虫的工作原理,就可以发现“窃取”数据或信息的功能超出了其技术范畴。
(一)网络爬虫的工作原理
网络爬虫是可以向网络服务器请求数据的自动化程序,其核心功能在于数据采集。在技术原理方面,网络爬虫与浏览器软件并无本质区别,两者都是依照信息传输机制向服务器请求数据,网络爬虫所采集的数据也可以通过浏览器来访问。相反,如果某些内容无法通过浏览器访问(例如密码保护内容),在相同条件下也无法通过爬虫获取。
以使用浏览器为例,当访问特定网站内容(URL)时,经历了浏览器向网页服务器发送请求,网页服务器根据请求向浏览器返回响应数据的过程,其间许多软件和硬件在各自岗位上相互配合完成了一系列工作。具体来看,网络控制软件(TCP/IP)将浏览器的请求信息打包并补充目的地等控制信息后转交给网卡(负责网络通信的硬件),网卡则进一步将信息包转换为电信号发送到网络中。当网络包到达网页服务器时会被还原为原始的请求信息。最后,网页服务器根据接收到的请求向客户端返回响应数据,浏览器解析接收到的服务器数据并以用户可以识别的方式显示在浏览器页面中。而利用网络爬虫采集数据时,则是由编写好的程序直接向网页服务器请求数据,然后再由爬虫程序接收服务器返回的数据,并进一步解析提取重要信息。由此可见,网络爬虫就像是一个定制版的浏览器,不同之处在于网络爬虫能够大规模、有针对性地获取数据。
(二)常见的反爬虫措施及规避方法
网站防止网络爬虫采集数据的基本前提是区分普通用户的访问和爬虫程序的数据请求,从而在保证用户可以正常访问的情况下阻止爬虫程序获取数据或者增加其获取数据的难度。对此,网络爬虫的应对方案就是使自己的请求更像正常用户,进而顺利获得服务器的响应。目前常见的反爬虫策略包括请求头设置、登陆限制、流量限制、AJAX动态加载数据、Cookie限制、验证码限制等。由于当前几起刑事案件所涉及的反爬虫措施仅涉及请求头限制、流量限制以及验证码限制,而且反爬虫措施的性质比较类似(拒绝来自爬虫的请求或者增加爬虫获取数据的难度),故本文对此不做过多介绍。
“请求头设置”是根据向网络服务器发送的请求中所包含的属性信息来判断该请求是否来自爬虫程序并阻止请求的反爬虫策略。使用浏览器访问网站内容时,浏览器会在请求信息中附加用户使用浏览器的名称及版本信息,以便服务器返回的数据可以在浏览器中正常显示。该信息的参数名称为User-agent,以使用windows系统的IE浏览器为例,其Use-agent信息为“Mozilla/5.0”,而网络爬虫程序默认的User-agent信息为编程软件的名称和版本(例如“Python-urllib/3.4”)。网站管理员凭此就可以区分来自普通用户和网络爬虫的请求。修改请求头并无技术上的难度,编写爬虫时可以直接定义请求头的属性,这种操作类似发布微博时修改使用手机的型号。
“流量限制”是指通过数据请求的速率来辨别网络爬虫并限制访问的反爬虫策略。通常情况下,用户浏览网页的速度并不会非常快,如果用比普通人快很多的速率从网站请求数据,则会被网站认定为爬虫程序进而被封杀。具体而言,网站判断的方法有两种,即从IP地址或者device id出发,观察是否有同一网络地址(IP)或者同一设备(device id)在短时间内频繁访问网站并拒绝其请求。就IP封锁而言,爬虫程序所采取的应对方案是“构建IP代理池”。简言之,就是在向服务器发送请求时不断更换IP地址。同理,对于封杀device id的策略,爬虫程序也可以在发送请求时不断变更device id。
“验证码”限制的全称为“全自动区分计算机和人类的图灵测试(Completely Automated Public Turing Test to Tell Computers and Humans apart,CAPTCHA)”,这一测试的初衷在于通过智能测试区分人与计算机程序,进而阻止程序的自动性操作。常见的验证码类型分类包括滑块验证码、文本验证码、图像验证码、拼图验证码等。起初爬虫程序并不具有识别验证码的功能,但随着爬虫与反爬虫的博弈以及人工智能技术的发展,许多网络爬虫也可以突破验证码的限制请求数据。在操作上,爬虫程序向服务器请求数据的同时,也发送一个验证码识别的请求,然后再利用相关技术解决验证码识别的问题。相关研究表明,目前网络爬虫基本已经可以模拟人的操作,完成一些类型的验证码识别测试。
三、需明确的刑法规定——如何理解和认定“侵入计算机信息系统”
判断强行爬取数据是否构成非法获取计算机信息系统数据罪的核心在于判断反爬虫规避措施是否构成《刑法》第285条意义上的“侵入”,只有以此为基础才能决定是否将后续接收响应数据的行为评价为“非法获取计算机信息系统数据”。“侵入”是危害计算机信息系统安全类犯罪的核心概念,但刑法和司法解释都没有明确对其进行界定和解释。对此,我国司法实践和理论研究分别探索出不同的解决方案。最高人民检察院第36号指导性案例对“侵入”作出了界定,“非法获取计算机信息系统数据罪中的‘侵入’,是指违背被害人意愿、非法进入计算机信息系统的行为。其表现形式既包括采用技术手段破坏系统防护进入计算机信息系统,也包括未取得被害人授权擅自进入计算机信息系统,还包括超出被害人授权范围进入计算机信息系统”。此外也有学者引入美国数据专家Kerr教授的“代码理论”,认为代码理论与我国数据犯罪立法和司法解释存在一定程度的契合,并主张将“侵入”的判断标准限缩为规避、绕过、突破计算机技术屏障。至于两种观点是否合理,有待于进一步剖析侵入的定义和判断标准。
(一)非法侵入的定义
虽然我国刑法规范并没有明确规定何为“侵入计算机信息系统”,但相关司法解释对定义“侵入”提供了一些思路。《关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》(以下简称《危害信息系统安全解释》)第2条分别对“侵入”和“控制”计算机信息系统的程序、工具作出了界定。其中与侵入功能相对应的描述是“具有避开或者突破计算机信息系统安全保护措施,未经授权或者超越授权获取计算机信息系统数据的功能”。显然,此处将“侵入”行为的本质解释为“获取数据”是不准确的,因为从法条语境来看,获取数据是侵入之外的独立行为。这种不准确的概括或许是司法解释难以定义侵入行为而采取的一种妥协做法,但其至少勾勒了侵入行为的重要特征,即“避开或者突破计算机信息系统安全”以及“未经授权或者超越授权”。“未经授权”和“超越授权”是域外计算机犯罪立法的经典表述。由此可见,我国司法解释在对“侵入”进行解释时借鉴了国外的立法表述。那么,在侵入定义不明确的情况下,有必要尽可能地还原司法解释所借鉴立法语言的完整语境和背景。
通过梳理国外立法资料可以发现,“未经授权(without authorization)”和“超越授权(exceeding authorization)”两个术语源于美国1986年制定的《计算机欺诈与滥用法》(Computer Fraud and Abuse Act,CFAA)。该法的前身为1984年《仿冒访问设备和计算机欺诈与滥用法案》(Counterfeit Access Device and Computer Fraud and Abuse Act),其立法目的在于应对计算机和网络快速发展所带来的犯罪风险,法案的立法报告指出,由于大多数系统使用的密码类身份验证较为简单,而个人计算机的出现使得这些密码更容易被突破——个人可以利用计算机强大的计算能力来进行暴力破解。对此,仅仅从技术角度无法保障用户访问安全,还需要通过威慑和惩罚来控制外部的违法者。该法案设立了三种计算机犯罪,即非法获取国家机密信息、非法获取金融记录信息、侵入政府计算机。其中侵入政府计算机是指故意未经授权访问计算机或者虽经授权访问计算机但超越授权的目的使用访问提供的机会,凭借上述行为故意使用、更改、破坏或者泄露计算机中的信息,或者阻碍这些计算机的其他授权使用。后1986年的《计算机欺诈与滥用法》对侵入犯罪作出了两方面重大调整:一是为了消除司法部以及其他部门的疑虑,明确新的条款是单纯的侵入犯罪,不要求行为人进一步实施其他的使用、修改、破坏信息等行为,即适用于仅仅未经授权访问联邦计算机的情形;二是基于平衡联邦员工、其他授权使用者权益和保护联邦政府计算机免受外来者滥用法律需求的考虑,删除了“超越授权访问”这一要件,进而避免政府工作人员以及其他授权者因为技术上的操作失误而面临刑事起诉。在先后经历8次修订后,美国侵入犯罪立法所规定的行为方式已经定型为“未经授权”+“访问”。
美国立法初步设定侵入犯罪的行为样态后,许多国家和地区都借鉴了这种定义模式,“未经授权访问计算机信息系统”基本已经成为侵入行为的经典定义。英国与新加坡先后分别于1990年和1993年制定了《计算机滥用法》,并且都设立了未经授权访问计算机资料罪(unauthorized access to computer material)。前者强调获取的访问通道(access)是未经授权的(unauthorized),而后者则使用了没有权限(without authority)获取访问通道的表述。日本于1999年制定的《不正访问行为禁止法》(不正アクセス行為の禁止等に関する法律),更是直接使用了英文“access”的谐音“アクセス”,并且将侵入行为直接概括为“未经授权的计算机访问行为”。新西兰于2003年通过的《刑法修正案》第252条增设了未经授权访问计算机系统(Accessing Computer System without Authorization)罪,简单地将这一行为描述为“未经授权直接或间接故意访问任何计算机系统”。此外,为了明确排除超越授权要件,其第2款规定该法不适用于授权访问者基于授权范围外目的访问计算机的情形。2003年欧盟制定的《网络犯罪公约》针对计算机侵入行为设立了非法访问条款,其将侵入行为描述为“没有权利(without right)访问部分或者全部计算机信息系统”。
鉴于我国司法解释已经借鉴了“未经授权”和“超越授权”的表述,可以在此基础上进一步明确、完善侵入行为的定义。首先需要明确的是,侵入行为的本质是“访问”计算机信息系统,而非是《危害信息系统安全解释》所指的“获取数据”。其次,侵入行为的核心特征应限于“未经授权”,并不包括“超越授权”,这种概念上的限缩更有利于界定其行为特征。所以,结合危害计算机信息系统安全类犯罪的体系结构和司法解释中的现有规定,可以将侵入解释为未经授权访问计算机信息系统的行为。
(二)非法侵入的判断标准
尽管“未经授权+访问”的定义模式基本为多数国家所采纳,但实际上“未经授权”这一核心特征也没能很好地帮助判断行为是否构成侵入。有学者在研究相关判决书时发现,我国法院对“未经授权”概念存在一定程度的“集体性失语”,绝大多数法院并没对“未经授权”进行合理定义或者精细解读。美国学者Kerr教授也指出,“未经授权访问的含义是极其模糊的,法院和学者就什么样的行为构成侵入以及刑法规范应该采用何种授权原则等问题存在巨大分歧”。在美国早期的司法实践中,法院倾向于对“未经授权”作扩大性解释,进而导致了过度的犯罪化;与此相对,学者则主张对“未经授权”进行限制性解释。经过多年的讨论,从技术角度对“未经授权”进行限制性解释已经成为主流观点,在这一进程中大致存在三类观点,即偏向字面含义的解释、形式的技术性解释以及实质的技术性解释。
最初,美国法院倾向于从字面含义来解读未经授权,即从“谁有权力授权”以及“通过什么方式授权”的角度来分析访问行为是否属于未经授权。这一类解释思路包括代理人方法(Agency Approach)、合同方法(Contract Approach)。代理人方法源于Shurgard Storage Center,Inc v. Safeguard Storage,Inc案,后因波斯纳法官在International Airport Center,L.L.C. v. Citrin.案中采纳此方法而产生较大影响,其将未经授权的判断置于雇主与雇员关系的背景下——由于雇员负有对雇主的忠诚义务,其需要完全根据雇主的利益行事,那么只要遵循追求雇主利益的原则就享有“授权”,而一旦违背雇主利益行事则代理关系和“授权”同时终止。合同方法从合同双方约定的权利义务角度来界定未经授权,其原理在于计算机系统所有者有权利限制他人的访问或者为访问设定条件。根据这一方法,网站的使用条款(terms of use)、雇佣合同中的规定以及其他合约性协议中的条款都可以用来界定合同中一方访问信息系统的范围。此外,我国最高检指导性案例以被害人意志为标准的判断方法在本质上与代理人方法、合同方法相同,也属于偏向字面含义的解释。尽管这些方法提供了明确的判断思路,但却受到诸多批判。其一,上述解释方法最早产生于民事争议案件而非刑事案件(CFAA同时包括民事条款和刑事条款),这使得法院更加倾向于对法律作出较为宽泛的解释,将民事案件中对未经授权的解释沿用到刑事案件中,可能会导致过度的犯罪化。例如用户通常并不关心网站“使用条款”的内容,所以也不会知道什么样的行为是被禁止的,以此为标准会导致大量网络用户在不知情的情况下构成刑法意义上的未经授权访问计算机系统。其二,这些解释方法完全偏离了计算机犯罪的立法背景,会导致不合理的结论,例如在将雇主利益作为标准的情况中,“追求雇主利益”与“侵入计算机信息系统”本身就是两个毫不相关的概念,即使是最敬业的员工在使用公司计算机时也无法完全遵循这一原则——查收个人邮件、阅读新闻、浏览购物网站等行为即便不恰当也不应评价为犯罪。
面对法院所采取的宽泛性解释,美国学者意识到对于未经授权的解读必须回归到计算机犯罪立法的框架之下,从技术角度对其进行限制。对此Kerr教授提出了较有影响力的“代码规制理论(Regulation by code)”,即计算机系统中的授权是以代码规制的形式实现的,具体表现为计算机系统的所有者或者代理人通过编写计算机软件来设定用户在系统中的特权。根据这一理论,未经授权表现为用户规避代码规制而获得了更多的特权,未经授权的判断在于是否突破了代码性限制(Code-based restriction)。此外,Kerr教授构想了两种未经授权的行为方式:(1)进行虚假的认证并伪装成为其他享有更多特权的用户;(2)利用程序代码中的漏洞致使程序功能失常进而获得更多的使用特权。对于这一理论存在不同看法,有学者认为,通过要求计算机系统所有者利用密码性访问将重要信息分离开来并同时聚焦于访问者所使用的代码突破技术,既可以避免惩罚无害的计算机使用行为,又可以保护有价值的机密信息和商业信息。但也有学者指出,仅仅关注代码性障碍并将其作为定义未经授权的唯一方式会导致规制不足的问题,例如没有设置安全措施的系统所有者将不再受到保护。其实从司法实践的现实需求来看,对未经授权进行限制才是第一要务,而技术角度的限制是最佳的选择,至于规制上的漏洞可以通过新立法另行解决。一些国家和地区的立法转变也表明,技术性限制方案得到了广泛的支持。例如2003年欧盟《网络犯罪公约》第3条规定,成员国可以要求非法访问(侵入)的成立以侵犯“安全措施(Security Measure)”为条件;其2013年《关于攻击计算机信息系统框架协议》的第3条则直接规定,构成刑事犯罪的非法访问需要以侵犯“安全措施”为条件。我国2011年的《危害信息系统安全解释》,也在定义侵入功能时引入了“计算机信息系统安全保护措施”要件。
Kerr教授的“代码理论”虽然提出从技术角度来对“未经授权”概念进行限制,但其最大的缺陷在于没有明确何为代码性限制。计算机信息系统是由具有不同功能的代码所构成的集合,那么究竟承担哪些功能的代码可以作为判断未经授权的标准以及这些代码具有何种特征,代码理论并没有从根本上回答这些问题,因此笔者将这一理论称为形式的技术性解释。如果采用形式的技术性解释,将数据权利人设置的所有技术性障碍都视为安全保护措施,同样会存在判断标准模糊以及过度处罚的问题。例如采取技术手段屏蔽网页中过多的弹窗广告以优化浏览效果的行为,尽管也克服了网站设置的技术障碍,但对此并不应评价为侵入。针对“代码理论”的不足,有学者根据计算机科学的基本原理进一步对代码理论进行拓展,主张根据计算机安全模式中的“访问控制列表(Access Control Lists)”机制来解读授权。简单来说,访问控制机制可以概括为以下三点:(1)用户可以以不同的方式访问计算机信息系统(读、写、执行);(2)访问控制列表与系统中的文件相对应,对于不同文件用户的权限不同;(3)计算机安全模式中的访问控制列表以用户身份(identity)为基础,系统已经根据用户身份分配好相应的权限。据此,当行为人规避用于验证用户身份的代码机制访问信息系统就属于未经授权。Kerr教授在近期的论文中也表明,其之前提出的代码性限制公式是模糊的,并进一步指出,“未经授权以绕开身份验证为要件”才是对标准更为准确的描述——此处的关键并不在于某些代码被规避,而是计算机所有者根据对用户进行身份验证来决定是否允许访问,且特定的访问并没有经过身份验证。与代码理论相比,以身份验证机制为核心的解释方法延续了限制性解释的思路,又进一步与计算机技术相结合且提供了更为明确、科学的判断标准,故笔者称其为实质的技术性解释。
毋庸置疑,从偏向字面含义的解释、形式的技术性解释至实质的技术性解释,解释的明确性、合理性以及科学性都有所提升,相比较而言,实质的技术性解释是现有选择范围内的最佳方案。而且,实质的技术性解释思路也在一些国家的立法中直接有所体现。如日本《不正访问法禁止法》明确将未经授权的计算机访问行为定义为需要突破信息系统“访问控制功能”的行为。目前德国刑法还没有设立侵入犯罪,而是直接规定了数据窥探罪,其将“克服访问安全措施(überwindung der Zugangssicherung)”要件直接规定在行为构成中。特别值得注意的是,在U.S. v. Swartz案产生恶劣影响后,美国议员Lofgren于2013年提交了《亚伦法案(Aaron’s Law Act)》,该法案提议明确《计算机欺诈与滥用法》中“未经授权访问”的含义,主张增加“规避用于排除未授权者获取信息的技术或者物理措施”的限制条件。据此,不论是最高检指导性案例所采用的“被害人意愿说”(偏向字面含义的解释),还是引入“代码理论”来解释“侵入”的主张(形式的技术性解释),都不是最优的选择。笔者主张采用实质的技术性解释来对我国刑法中的“侵入”概念进行限制和解读。鉴于我国司法解释已经使用了“计算机信息系统安全保护措施”的表述,则可以将未经授权的本质理解为避开或者突破安全保护措施访问计算机信息系统,并在此基础上进一步将安全保护措施具体化为访问控制机制,即通过判断访问者的身份来决定其是否具有获取数据或者控制信息系统的权限(我国《刑法》第285条规定了与侵入对应的两种行为方式,获取数据和控制)。
四、网络爬虫罪与非罪的初判——规避反爬措施是否突破或者避开计算机信息安全保护措施
如前文所述,根据我国刑法和司法解释关于侵入计算机信息系统的规定以及域外相关立法的情况,可以将侵入的概念补全为未经授权访问计算机信息系统。同时,笔者主张采取实质的技术性解释来解读未经授权:一方面,将其与司法解释中的“计算机信息系统安全保护措施”概念相联系,突破或者绕开计算机信息系统安全保护措施是未经授权的具体表现;另一方面,在实质的技术性解释思路下进一步具体化计算机信息系统安全保护措施,其实质在于对用户的身份进行验证并以此为基础判断用户是否具有相应的权限(如获取数据、控制计算机系统)。据此,网络爬虫是否构成犯罪的关键在于规避反爬虫措施的行为是否突破或者避开核心功能为访问控制的计算机信息系统安全保护措施。那么首先可以明确的是,计算机信息系统所有者公示的用户协议或者系统中设置的robot.txt并不能作为判断侵入的标准,其明显不属于安全保护措施,而是一种约定性的文字表述。争议较大的是User-agent、device id、IP地址以及验证码方面的限制是否属于计算机信息系统安全保护措施。从形式上看,这些限制无疑属于技术性措施,而且确实也会在一定程度上限制用户访问信息系统,但无法据此便将上述措施等同于安全保护措施。根据实质的技术性解释,信息系统安全保护措施的核心特征在于访问控制,即通过对用户的身份进行认证来判断用户是否具有访问数据的权限。
User-agent是关于浏览器版本的参数,其不涉及身份认证,也无法作为安全保护措施。就网络传输原理来看,服务器并不会因为用户没有使用浏览器而拒绝其访问,浏览器只是为了方便用户使用而开发的软件且互联网初期用户都是通过直接向服务器发送指令来请求数据。此外,出于系统安全的考虑,信息系统所有者也不会采用User-agent参数作为安全保护措施,因为该措施完全不具备安全防范功能——任何用户都可以通过浏览器访问数据。实际上,利用User-agent参数限制网络爬虫获取数据就像是商场安保人员根据着装限制外卖员入内。着装本身的功能并不在于表征行为人是否具有进入商场购物的权利,即便是外卖员通过换装的方式进入商场,也不应将这种行为等同于秘密潜入商场,两者具有质的差异。
IP地址和Device id可以作为用户身份认证的标志,但两者在反爬虫情景中并不发挥身份认证的作用。不可否认,的确有信息系统根据IP地址或Device id来判断用户是否拥有访问权限,例如中国知网系统根据访问者的IP地址判断用户是否具有下载数据库文献的权限,通常而言,从中国知网下载论文需要支付相关费用,但学生可以通过校园网访问并直接下载文献,这是由于学校购买了知网服务,而知网系统根据访问者的IP地址判断其是否属于学校用户。此外,也有信息系统根据用户所使用的设备(device id)来核实其身份并判断是否具有访问权限,如微信、网络银行的软件系统就采用“账号密码+device id”的双重验证模式,用户不仅需要用账号和密码进行验证身份,还需要使用相同设备进一步强化身份验证。若用户更换新手机致使device id发生变化,软件系统则要求用户通过其他信息重新进行验证。尽管反爬措施也是根据IP地址和Device id来阻止爬虫的访问,但其与访问控制机制存在本质上的区别。因为不论是知网的数据资源,还是微信账户或者网银账户中的重要信息,都针对一般人处于封闭状态,即只有通过验证才能访问(无权限者绝对无法访问)。而反爬措施背后的数据,是对社会公众普遍开放的,并不涉及权限问题。即便是个别IP地址或Device id受到了限制,也可以通过更换上网地址或者接入设备后访问并获取数据。对此有学者指出,“基于技术现实,绕开IP地址的限制并不会比被他人暂时遮挡视线时低头环顾四周具有更多的可责性”。
验证码本质上是一种能力测试而非身份认证,其作用是排除由自动性程序发起的访问,而不在于判断用户是否具有访问权限。换言之,验证码的作用在于验证用户是“人类”还是“机器人(即自动性程序)”。从反爬措施的角度来看,这种验证的目的在于避免用户通过利用程序大量获取信息。在形式上,验证码可以发挥类似于访问控制的功能——如阻止爬虫的数据请求,但其与访问控制功能的侧重点有所不同。如果说游乐场的检票措施属于访问控制机制,那么安检措施就类似验证码的限制性机制,两者效果相似但功能不同。就收费游乐场而言,其对社会公众呈封闭状态,只有购票者有权利进入,所以检票措施才是从根本上处理谁有权利进入的访问控制机制。而安检措施解决的问题是游客应以什么样的状态进入游乐场,如禁止携带危险物品、食物等要求。即便游客私下携带违禁物品进入游乐场,也不应将这种行为视为逃票。同理,验证码并不决定谁可以访问信息系统,即便用户不能使用自动程序,也可以采用人工操作的方式进行访问。
综上所述,不难发现上述反爬措施并不属于安全保护措施,反爬虫措施的作用是对访问信息系统的方式进行限制,IP地址、device id用于防止用户在短时间内多次访问信息系统,user-agent和验证码的作用在于防止用户利用自动性程序访问信息系统,其根本目的也是为了限制访问的速率;而安全保护措施的作用在于判断用户是否具有访问计算机的权利并排除无权限者的访问。归根结底,安全保护措施总是与权限相对应,只有当特定网络或者系统资源处于封闭状态且存在访问权限时,才有安全保护措施存在的空间。如学者指出,“侵入的后果是取得操作权限”。而反爬虫措施并不涉及权限问题,突破反爬虫措施只是在具有访问权限的前提下对获取数据的方式产生影响。由于反爬虫措施与访问控制机制存在本质区别,那么将反爬虫机制视为与用户身份信息认证机制同态的计算机信息系统安全措施的观点则属于类推解释,由此得出的强行爬取数据构成侵入的结论也无法成立。
五、网络爬虫罪与非罪的追问——规避反爬虫措施是否属于“采用其他技术手段”
如果说规避反爬虫措施的行为并不构成刑法意义上的“侵入”,那么是否可以将其评价为非法获取计算机信息系统数据罪中的“采用其他技术手段”?对此需要考虑两方面的基本情况。首先,“采用其他技术手段”是一个较为模糊的开放性要件,无法为构成要件符合性判断提供一个明确的标准,如何判断何为与侵入行为在严重程度和危害性质上相近的其他技术手段较为困难。所以,此时问题的实质更多是价值判断而非构成要件符合性判断,即是否应该对规避反爬虫措施的行为进行处罚。易言之,正是由于标准的模糊性,才需要引入其他的价值标准,以尽可能保证判断结论的合理性。其次,规避反爬虫措施强行爬取数据是处于灰色地带的风险行为,被爬取的数据既能用于开发新的网络应用和商业模式,也可能被用于违法犯罪活动。故在判断规避反爬虫措施是否属于“采用其他技术手段”时,不仅要根据刑法一般原理进行构成要件符合性的判断,更需要考虑多方面的权益平衡,综合性地分析数据爬取行为的正当性。可以说,数据爬取行为所包含的积极利益,也会在一定程度上影响其行为本身的正当性。
如果以法益保护作为解释的出发点,则不应将规避反爬虫措施的行为认定为“采用其他技术手段”。目前普遍认为狭义的计算机类刑法规范所保护的法益是计算机信息系统的完整性、机密性以及可靠性。德国学者进一步指出,刑法中非法获取系统数据的规定是对“数据机密”(Datengeheimnisse)的保护,其所涉及的是“依据自己的意志决定谁可以获取数据的内容并根据此范围设置正式秘密区域的权利”。根据主流观点,该刑法规范所保护的法益是决定谁可以访问数据的“正式使用支配权”,其本质是一种“数据支配权”,即不受数据载体所有权影响的、关于数据思想内容的权利效力。由此也可以看出,适用该刑法规范所默认的前提是数据对象所包含的思想内容处于保密状态。面对我国刑法中非法获取计算机信息系统数据罪存在司法适用困难的情况,也有学者主张通过数据安全法益进行限制性解释,以数据的保密性特点为核心来界定构成要件行为。如果从法益保护的角度进行限制,则构成要件中的“其他技术手段”至少需要对处于保密状态的数据产生影响。显然,规避反爬措施的技术手段并不属于这一范畴,因为反爬措施并不决定数据是否处于保密状态,如元光案中的公交实时信息和晟品案中的视频列表等数据都是面对公众开放的。
从国民的预测可能性来看,不宜将规避反爬虫措施的技术手段认定为刑法所禁止的行为。一般而言,普通的网络用户并不真正了解何为网络爬虫,更不了解反爬虫措施以及规避手段,相关问题的讨论更多集中在技术人员群体以及互联网行业,所以应将行业人员的认知作为对反爬虫规避措施性质的一般性理解。在知名技术社区CSDN一篇浏览量较高的帖子中,某位技术人员分析了爬虫技术的刑事风险,其中涉及了对晟品公司爬取数据案中规避反爬虫措施行为的评价:“从文书的描述来看,修改UA、修改device id、绕开网站访问频率控制是写爬虫的基本,这些技术手法反而成了获罪的依据”。值得注意的是,这并不只是个别技术人员的极端观点,而是客观事实。查看关于网络爬虫教程的书籍不难发现,几乎绝大部分都会涉及到反爬虫措施及应对方法;在中国知网中搜索“反爬虫”,也不乏关于规避反爬虫的研究。这些事实表明,至少在技术及科研领域规避反爬虫措施的行为并不被认为具有刑事违法性。而且甚至可以推测,在互联网行业中爬虫与反爬虫的对抗大多是一种心照不宣的技术博弈。如果打破这种平衡将规避反爬虫措施的行为认定为犯罪行为并进行处罚,则可能使大量的行业人员成为潜在的犯罪行为人。
从维护互联网竞争环境与促进网络经济发展的角度,也不宜将规避反爬虫措施的行为认定犯罪行为。目前,互联网巨头在网络经济中具有重要的影响力,已有相关的评论担心这些公司收集数据以及控制谁可以访问数据的能力会威胁到数据经济的健康竞争环境。另一方面,数据是网络经济的核心,收集数据可以帮助互联网公司了解用户需求以进行有效营销、不断提高完善自身技术等。而许多互联网企业,特别是新兴的企业,正是依靠网络爬虫抓取没有密码保护的公开数据来实现自身的数据收集。有美国学者指出,指控竞争对手“违法”爬取网络数据的计算机犯罪案件已经不是什么新鲜事。“最近(美国)这些案件背后的公司所追求实现的仅仅是——将《计算机诈骗与滥用法》转化为强大的计算机滥用法规——以便他们能够在这种法律色彩下开展反竞争活动。”在这种情况下,如果将规避反爬虫措施的行为解读为“采用其他技术手段”,则意味从刑法的层面进一步强化了数据占有者限制他人获取数据的能力,网站所有者采取的限制性措施具有了类似刑法的效力。网络爬虫与反爬虫间的博弈也将从技术性对抗转化为法律层面的斗争,数据的占有者很可能会利用刑法来维护自己对数据的掌控,甚至可能利用刑法来打击竞争对手。这种解读也严重背离了立法的目的,毕竟规范所针对的对象是侵入他人计算机的行为,而不是赋予互联网企业决定谁可以访问公开数据的权力。
从人工智能和大数据的发展前景来看,至少不应绝对地处罚所有规避反爬虫措施抓取公开数据的行为。众所周知,大数据是驱动各个行业实现创新的重要动力,也是人工智能技术的基础。而网络爬虫是最重要的数据收集方法,对于大数据和人工智能技术具有重要意义。但如果认为所有规避反爬虫措施抓取数据的行为都属于犯罪,则会过度扩大处罚范围——致使许多具有积极意义的数据抓取行为受到刑罚的威胁。例如从其他来源抓取数据并且对数据进行转化性使用的行为,一个典型的应用场景是价格聚合,即爬取不同网站的商品价格进行比较,最终向消费者提供最优选择。国外的一些判例也表明,对于抓取他人公开数据并对数据进行转化性使用的互联网企业,法院在追究责任时表现出了犹豫的态度。对此,美国学者提供了给予网络爬虫法律保护的思路,即当数据抓取行为满足以下四方面条件时,则属于应受保护的“善意爬虫”:(1)不会过多占用目标网站资源导致网站负载过高;(2)抓取的信息本是可以公开访问且没有密码认证机制保护的;(3)所抓取的信息在性质上的真实的且获取行为本身没有侵犯其他权利——包括著作权;(4)抓取的信息被用来制作一种转化的产品并且没有通过引诱用户或者制作潜在的类似产品来窃取目标网站的市场份额。从这个角度来看,仅仅根据规避反爬虫措施来否定网络爬虫或许存在片面性,不应轻易将规避反爬虫措施认定为类似非法侵入意义上的“采用其他技术手段”。
最后,鉴于网络空间的开放性特征,即使是通过克服反爬虫限制获取公开数据的行为,也不应被视为刑法意义上的犯罪行为。网络具有开放性本质,当计算机所有者搭建服务器使其文件置于网络空间时,其默认原则是公众可以随意访问这些内容。诚然,并不是所有网络都面向社会公众开放,但在网络与社会生活融合过程中至少出现一些可以等同于“公共场所”的网络空间(例如社交网络)。与此同时也演化出一种具有时代特色的权利形式——网络空间的言论自由转化为信息自由,具体包括发布信息和获取信息的权利。而从公开网络获取信息的权利成为网络时代公民的基本权利之一,具有重要的意义。如果将规避反爬虫措施解释为“采取其他技术方法”,则意味着网站所有者作为私人实体可以利用刑罚的力量来对网络中公开信息的访问施加影响。在HiQ Labs v. Linkedin Corp案中,法院正是出于公共利益的考虑,支持HiQ公司的请求而允许其继续获取Linkedin网络中的公开用户信息(即使Linkedin针对HiQ公司设置了技术上的限制措施)。针对该案,法院指出:“赋予类似Linkedin这样的私人实体,由CFAA(《计算机诈骗与滥用法》)惩罚支持的、阻止用户访问其网络中公开信息的完全权力,会对网络所承诺的公共言论和信息的自由流动产生不利的威胁”。的确,网站设置的访问限制很可能具有肆意性,正如法院所指出:“例如网站的所有者能够根据种族或者性别歧视来禁止个人或者群体的访问;竞选团队能够禁止特定的媒体、候选对手的支持者访问其网站……”所以,为了保障网络空间的开放性以及公民的信息自由,不应对于网络所有者的私人意志给予刑法上的支持,突破根据私人意志而设立的技术限制也不应评价为违反刑法的行为。
结语
网络爬虫属于较新的计算机和网络应用技术,而新技术的使用通常总是伴随着法律定性方面的难题,尤其是在当前计算机犯罪立法适用标准不明确的情况下,司法机关将面对如何准确对网络爬虫进行刑法评价的挑战。美国学者围绕网络爬虫是否构成“未经授权”或者“超越授权”访问计算机的问题,在整理近20年关于网络爬虫诉讼案件(这些诉讼共产生了61个意见)的基础上分析了法院观点的变化情况:在最早面对网络爬虫问题时,美国法院倾向对计算机犯罪立法作出扩张性解释,几乎使所有网络爬虫都存在被追责的危险,而此后经历了向限制性解释转变以及反复的过程,最后直至2017年法院又重新采用了限制性解释的立场,全面认可了抓取公开数据行为的合法性(HiQ v. LinkedIn案)。而不久前,利用网络爬虫获取公开数据的行为在我国首次进入刑法评价的视野,对此我们应该避免因对计算机犯罪规范的激进解读而导致处罚范围不当扩大的情况,以至对网络爬虫技术的应用和发展产生长期的不利影响。
通过前文分析可以发现,利用网络爬虫获取公开数据的行为至少不会构成我国刑法中的非法侵入计算机信息系统罪和非法获取计算机信息系统数据罪。首先,在界定我国计算机犯罪立法中的“侵入”概念后,笔者认为克服反爬虫措施抓取网络中的公开数据并不构成刑法意义上的“侵入”计算机信息系统。因为计算机信息系统安全保护措施本质上是基于身份验证的访问权限分配机制,其主要目的在于保护数据的机密性。而反爬虫措施是在公开性的网络环境中针对个别访问者设置的妨碍性措施而不会绝对地禁止访问者获取数据,其既不涉及身份验证和访问权限,也不涉及保密性数据。所以,将反爬虫机制等同与身份验证机制并不是一种“突破性”的解读,而是违反罪刑法定原则的类推解释。其次,非法获取计算机信息系统数据罪还存在另外一种成立方式,即采用侵入以外的“其他技术手段”获取计算机信息系统数据。“其他技术手段”是一个更为模糊的开放性兜底规定,依据立法目的、国民预测可能以及网络公共政策方面的分析,笔者认为不应将规避反爬虫措施的行为评价为非法获取计算机信息系统数据罪中的“采用其他技术手段”。排除对强行爬取公开数据的行为适用非法侵入计算机信息系统罪和非法获取计算机信息系统数据罪的意义在于避免刑法过度干涉数据爬取技术的应用,平衡数据爬取治理中的安全利益与发展利益。对于存在风险的技术行为而言,即便无法确定其处罚的标准,而只是排除其可罚性,也具有重要意义。
而且,将利用网络爬虫强行爬取公开数据的行为排除在上述犯罪之外,并不意味着完全放弃对网络爬虫的规制。不可否认,目前的确存在滥用爬虫技术获取数据的情况,这对数据保护和个人隐私产生了很大威胁。但面对新型技术所带来的风险,刑法的解释和适用要坚守底线而不应过于激进。针对网络爬虫规制问题,仍然可以考虑从其他方面着手。第一,虽然无法给予反爬虫措施刑法上的支持,但是法律并不禁止网站所有者通过设置技术障碍来限制他人爬取信息,爬虫和反爬虫的对抗可以在技术层面持续。第二,如果收集网络中公开数据的行为是被允许的,那么可以将规制的重心转移到数据使用行为上,实际上很多案例也是对违法使用数据的行为进行处罚。第三,如果爬取数据的技术行为对计算机信息系统的正常运行产生了严重影响(如数据请求频率过高导致服务器崩溃),可以考虑通过破坏计算机信息系统罪来进行规制。第四,若确实有必要对收集某种公开数据的行为进行处罚,那么则需要进行立法上的完善,明确规定禁止收集的数据类型或者采用的技术方法,避免毫无区分地将所有爬取公开数据的行为置于刑罚的危险之中。
作者:孙禹,中国社会科学院法学研究所博士后。
来源:《国家检察官学院学报》2021年第6期。
会员登录关闭
注册会员关闭