社会问题法律化 法律问题专业化
专业问题技术化 技术问题细节化
近年来,秒杀脚本应用越来越广,从最初的秒杀打折商品,秒杀抢茅台,抢九价门票,抢演唱会门票,抢景点预约等等,使用场景不同,但基本原理都是一样的。实践中因使用秒杀脚本而被以非法获取计算机信息系统数据罪和破坏计算机信息系统罪追究刑事责任的案件越来越多,笔者将以自己亲办的一系列秒杀脚本无罪辩护案例为基础,解读秒杀脚本抢票原理,阐述在秒杀脚本的刑法规制中面临的法律适用问题。
主要内容:
原理分析
一、秒杀脚本抢票的基本原理和技术细节
二、秒杀脚本抢票的多维度深度分析
法律适用
一、秒杀脚本抢票不构成计算机犯罪
二、秒杀脚本抢票的社会危害性分析
三、司法实践中以计算机罪名进行刑法规制存在较大争议
结语
法律人要用司法机关听得懂的语言为技术辩护
原理分析
一、秒杀脚本抢票的基本原理和技术细节。
如果仅凭直观感觉,使用秒杀脚本抢票看似是以神秘的计算机手段对预约平台进行了一番黑客攻击,能够较容易地帮助他人预约到本来比较难预约的门票,扰乱了门票预约的正常秩序和公平,同时又因为涉及计算机技术和计算机信息系统,所以很容易想到以计算机犯罪的罪名来规制,这其实是目前司法实践中办理涉及计算机犯罪最普遍的一个问题:简单地将线下办理传统型案件的规则照搬到计算机网络的世界中。脚本抢票的方法其实是一种利用脚本发送请求的技术,是否构成计算机犯罪,应当结合个案分析,主要是要分析研究“放票机制”和“抢票原理”。目前大部分的预约平台都是采取定时放票,即使在一个固定的时间点放出预约名额,大家需要在这个时间点开始竟可能快的点击预约按钮,但是由于人手点按预约按钮本身就有一个时间差,所以很难非常准确的接近这个放票时间,脚本抢票做的就是用一段计算机代码(脚本)来自动操作,代替人来完成这个点按预约的动作,这样就会比一般人动作更快,也能相对更大概率抢到票。另外,在有的脚本或软件中会根据预约平台的规则,用到多线程或者反复提交数据的方法来增加成功率,如果要同时为多人抢票,批量操作,还需要用到代理IP技术。
不管哪种方法,从技术原理上讲,脚本抢票借助计算机代码实现的仅仅是代替人手的点击预约按钮操作。所有的操作过程都是发生在用户电脑端,完全没有触及预约平台的计算机信息系统,不可能构成侵入,同时,由于预约的方法是同一时间一个人只能使用一个实名制账号预约,对于系统而言和正常的一个普通用户的预约是一样的,不会对预约平台的系统功能和带宽等造成任何影响,也不能构成破坏计算机信息系统罪。
为了实现用脚本代码代替人工预约,需要通过一些技术细节来实现,现就主要的技术细节进行合法性分析。
1.首先需要获得预约用户的授权
预约平台一般是需要预约人用实名制的手机或微信进行登录来预约。秒杀脚本要替用户预约,技术人员就需要在自己电脑上登录用户的微信号,需要提前将电脑微信二维码发给用户,用户扫码授权登录。这个过程和我们去打印店打印照片时扫码登录打印店电脑版微信是一样的。
2.将用户登录的授权Token或者Cookies配置到脚本代码里实现自动登录预约的操作
Token的原理:在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,为了避免重复请求比对,减轻服务器负担,便有了Token的应用。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
Cookies信息就是用户登录网站的账号密码等用户验证信息,我们平时登录网站后,本地网站默认的会保存我们的Cookies信息,这样我们就不用每次都输入一遍账号密码了,这个Cookies信息信息记录在浏览器中,属于用户隐私,保存在用户的本地浏览器,网站和平台的服务端未经授权是不能非法获取和使用。脚本程序要代替用户预约,需要以用户的身份登录预约平台(预约平台也是一个网站),所以需要用户扫码授权登录,技术人员使用这个Cookies信息或者Token令牌登录预约平台也是基于用户的授权,所以其读取和使用这个Cookies信息或者Token令牌的内容是有用户授权的合法的行为,不构成非法获取。
3.秒杀脚本实现原理本质上是通过反向合规实现的批量操作
秒杀脚本实现原理通俗的理解就是先发送一个数据,通过抓包分析发送数据的内容,解析其通信协议,相当于是获得发送数据的格式,然后将需要发送的数据按照这个服务器接受的格式标准,通过多任务多IP等实现批量发送。本质上是一种反向合规,目的就是为了实现单一手机用户无法实现的批量发送和多次发送。一定程度上破坏了规则,影响了公平,但是技术上不构成侵入和破坏。
二、秒杀脚本抢票的多维度深度分析。
1.从计算机信息系统的权利边界分析。
计算机信息系统的权利边界是计算机犯罪中需要研究的一个重要概念,也是最容易被忽略的概念。在司法实践中,鉴定机构对涉案软件鉴定后得出:该软件“具有未经授权获取系统信息的功能”、具有“对计算机信息系统进行控制的功能”的鉴定意见,而忽略了分析软件运行环境的权利边界。比如笔者代理的一起刷脸外挂案中使用的XX视频软件被鉴定为能够修改系统文件,而实际上,修改的是用户自己的手机操作系统中前端摄像头的路径,用户修改的是自己的计算机信息系统数据,不是服务器的;再比如,滴滴司机抢单外挂被鉴定为具有非法获取系统数据的功能,而实际上,获取的是用户手机客户端显示的来单图标。类似的低级错误还有很多,不一一列举。
我们经常讲计算机信息系统包括服务端、客户端和传输的数据,服务端、客户端和传输的数据都属于该信息系统所有人,其实这里讲的是软件著作权等知识产权概念,比如微信的客户端软件所有权属于腾讯公司,任何人不能随意修改、复制、发行,否则会侵犯其软件著作权。但是从网络安全的角度讲,用户自己本地运行的客户端是属于用户自己的计算机信息系统,用户对自己的计算机信息系统中的数据进行获取、修改等行为,只要不涉及服务端则不构成侵入,只要对服务端的功能没有造成干扰破坏,也不构成破坏计算机信息系统罪。这个很好理解,就好像你把自己的手机微信安装目录下的系统文件删除一些,导致微信不能运行,或者卸载微信,如果说客户端也是腾讯的计算机信息系统,那卸载微信就是破坏计算机信息系统了。所以说,用户本地计算机运行的软件在网络安全上属于用户自己的权利边界范围。
该类案件中,技术人员在自己的浏览器登录预约平台,获取的是本地自己浏览器保存的Cookies信息,其预约行为操作控制的也是自己的计算机信息系统。技术人员作为预约平台用户,这些都是自己合法的权利边界。他的行为对预约平台服务端来说与普通的预约用户并无任何不同,也没有造成任何的侵入和破坏。
2.从计算机犯罪的法益分析。
本罪规定在《刑法分则》第六章第一节扰乱公共秩序罪,保护的是计算机信息系统的网络安全。非法获取计算机信息系统数据、非法控制计算机信息系统罪主要着眼于对网络安全背景下的数据安全和网络运行秩序的保护,打击的是具有危害性的侵入和破坏行为。反之,若获取数据的行为未对网络安全和秩序造成干扰或损害,则不属于本罪规制的范围,理解本罪的行为本质,亦应当着眼于此。
同时,根据《网络安全法》第10条的规定,计算机信息系统的数据安全是维护“网络数据”的完整性、保密性和可用性。技术人员从预约服务器等获取的数据,均是公开的,未对相关信息进行增加、修改、删除等操作,该部分数据仍能够正常使用,并未破坏原有数据的完整性和可用性,技术人员的行为未破坏计算机信息系统的数据安全,并未侵害该罪所保护的法益。
另外,该类案件中技术人员的行为从实际效果上看是扰乱了预约的正常秩序和公平性,具有一定不法性的,但是这个公平性不是计算机犯罪保护的法益。同时,虽然这个行为在原理和效果上和众多抢票外挂一样,但是我们却不能以倒卖车票罪和非法经营罪等罪名来规制。但是,司法实践中,我们不能简单的拿计算机犯罪来兜底,而置刑法法益保护原则于不顾。
3.技术人员的行为不属于刑法上的“侵入”。
从文义解释和体系解释的角度观察。从字面意义上理解,“侵入”通常意味着突破了某些防护措施强行进入。而根据法条对本罪罪状的表述,侵入系和其他技术手段并列,从体系解释的角度“侵入”和“其他技术手段”在行为属性上应当具有一致性,“其他技术手段”应当是一种补充性质的描述,本罪中的“侵入”行为亦应具备技术性。故结合上述两点,“侵入”应当指的是通过技术手段强行进入计算机信息系统的行为。
从相关司法解释的表述来看。《关于办理危害计算机信息系统安全刑事案件应用若干问题的解释》中,虽然没有对本罪的“侵入”进行界定,但在第二条对提供侵入、非法控制计算机信息系统的程序、工具罪中的“专门用于侵入、非法控制计算机信息系统的程序、工具”作了描述,其中“具有避开或者突破计算机信息系统安全保护措施”和“未经授权或者超越授权”是对获取计算机信息系统数据的两个前提条件限定,而且这两个条件是表述为递进式的,其本质是要求获取数据的这个未经授权或者超越授权的行为是具有“具有避开或者突破计算机信息系统安全保护措施”的技术性功能的,从逻辑上,“避开或者突破计算机信息系统安全保护措施”后一般而言即会产生“未经授权或者超越授权获取计算机信息系统数据和非法控制计算机信息系统”的结果。
从该类案件中技术人员预约的整个过程可以看出,其行为不属于“侵入”或者“其他技术手段”。在脚本的功能实现上,不论是针对https加密的协议还是一般app使用的加入随机参数后用base64编码再用MD5加密的自定义简单加密协议,其加密技术手段都是针对第三人的,不是针对客户端用户的,目的是防止服务端和客户端之间的通信数据被用户以外的其他人非法获取。用户通过数据抓包获取自己客户端和服务端之间的通信协议的行为,属于自己获取自己的数据,加密是针对用户以外的第三人,这个关系是要注意区分的。比如,通过从运营商处非法获取其他用户cookie操纵公民社交账户强行加粉或关注的行为就属于非法获取计算机信息系统数据罪的行为。
在评价是否构成计算机犯罪时,除了对功能的干扰(例如非接触式的DDOS等)以外,永远只有一个标准,那就是要以侵入为前提。你服务器推送到我电脑终端的数据,不能因为一般人不会看,而我会看。我就是非法获取,就是犯罪。也不能因为我增加、删除、修改了我自己计算机信息系统中的数据就构成破坏,想象一下,我们的手机和电脑上存放着一些正常使用软件所产生的数据,这些数据你不去管他没事,一旦你看到了,你就是非法获取,这合理吗,这里的非法获取数据,非法性体现在哪里?他就在那里,我不看就没事,看了就是非法?还有获取是怎么理解,他就在我的手机和电脑里,我没看就不是获取,眼睛看到了就是获取?到底是获取还是看到?我看不看他不都是在我的手机或电脑里吗?
法律适用
一、秒杀脚本抢票不构成计算机犯罪。
公安机关认为脚本抢票获取用户Cookies信息的行为,构成非法获取计算机信息系统数据;利用脚本进行预约门票的行为构成非法控制计算机信息系统罪,也有的认为构成破坏计算机信息系统,这些都是一种简单的将线下生活场景的规则照搬到计算机网网络世界的典型错误认识。
1.技术人员的行为不符合破坏计算机信息系统罪的犯罪构成。
从犯罪构成看,非法获取计算机信息系统数据、非法控制计算机信息系统罪规定在《中华人民共和国刑法》第285条第二款,从本罪的客观构成要件分析,需要满足四个条件:一是违反国家规定;二是以侵入或者采用与侵入程度相当的其他技术手段为前提;三是未经授权获取计算机信息系统中的数据、对计算机信息系统实施非法控制;四是需要达到情节严重。对照以上四点,技术人员的行为不构成非法获取计算机信息系统数据罪、非法控制计算机信息系统罪。一是技术人员的行为没有违反国家规定;二是其获取的Cookies信息本来就是存储在本地浏览器中,并没有保存在预约平台服务端,技术人员在自己电脑的浏览器中获取数据,并且预约门票的所有行为都是在本地计算机完成,并没有,也不需要侵入预约平台的计算机信息系统;三是技术人员获取的Cookies信息是每一个预约用户扫码登录授权的,并不存在未经授权的问题。
破坏计算机信息系统罪规定在《中华人民共和国刑法》第286条,对破坏计算机信息系统罪的构成分三款表述,分别为:
违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的;
违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的;
故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的。
除了违反国家规定和后果严重外,主要构成分为三种情况:
针对功能的删除、修改、增加、干扰;针对数据的删除、修改、增加;制作、传播病毒等破坏性程序。其中除了对功能的干扰以外,其他情形均必须以侵入计算机信息系统为前提才能实现,均需要以突破或绕开计算机信息系统的安全防范措施为前提。
2.脚本抢票不符合破坏计算机信息系统罪的构成要件。
在笔者办理的一起利用秒杀脚本预约疫苗的案件中,侦查阶段和审查起诉阶段,笔者多次和公诉人沟通罪名问题,期间侦查机关和公诉机关也多次变更罪名,最终以违反刑法286条第一款、第二款认为技术人员构成破坏计算机信息系统罪,第一款是对计算机信息系统功能进行增删改和干扰,造成计算机信息系统不能正常运行;第二款是对计算机信息系统重的数据和应用进行增删改,法条没有明列需要造成计算机信息系统不能正常运行。所以公诉机关认为第二款不需要以造成计算机信息系统不能正常运行为条件就可以入罪。这个理解是不对的,在最高人民法院发布的第26批第145号指导性案例《张竣杰等非法控制计算机信息系统案》中已经明确:通过修改、增加计算机信息系统数据,对该计算机信息系统实施非法控制,但未造成系统功能实质性破坏或者不能正常运行的,不应当认定为破坏计算机信息系统罪,应当认定为非法控制计算机信息系统罪。
所以,公诉机关在没有证据证明技术人员造成了服务器不能正常运行,也不能明确技术人员具体增删改了预约服务器中的什么数据的前提下,依据对刑法法条的表面字义机械的理解,笼统的定罪是法律适用的错误。
3.秒杀脚本的“所作所为”并不符合破坏计算机的构成要件和保护法益。
计算机犯罪规定在刑法分则第六章第一节 扰乱公共秩序罪,保护的法益是网络安全。破坏计算机信息系统罪保护的法益是网络安全,要指控技术人员行为触犯了刑法第286条第1款、第2款之规定,那么首先要解决的问题是搞清楚:
谁违反哪个国家规定?用何种方法?对哪个计算机信息系统功能实施了何种破坏?造成了何种严重后果?
谁违反哪个国家规定?使用什么方法或工具绕开或突破了被害人计算机信息系统中的哪个安全防范措施?对哪个计算机信息系统中存储、处理或者传输的具体何种数据和应用程序进行了删除、修改、增加的操作?造成了何种严重后果?(实践中很难通过证据说清楚具体对服务器中的具体哪个数据进行了修改?),而更多的是因为技术人员的行为影响了预约的公平,扰乱了正常的预约秩序,但是又不能以倒卖车票罪、倒卖有价票证罪和非法经营罪来规制,就因为跟计算机网络相关就用计算机犯罪罪名来兜底,而全然置各个罪名的保护法益的不同于不顾。这是将线下对传统案件的认知规则直接照搬到互联网世界的机械做法,忽略了涉及保护法益、权利边界、犯罪构成等诸多问题。
二、秒杀脚本抢票的社会危害性分析。
1.秒杀脚本抢票行为的违法性分析。
首先给人的感觉就是扰乱了秩序,影响了公平。但是从发行预约的目的性考量,其实部分人借助技术手段以较高的概率获取门票的行为并不影响预约的目的性,从发行门票来说,比如我发行了100份门票,但是有1000人需要,最终获取门票的100人里面有10个人是通过技术手段预约的,但是总体上,这个100个人也是这1000人里面的,并没有发生一人获取多份再转卖的情况;也没有说这10人通过技术帮助预约了,其他人就不能预约的情况;更不存在说这10个人具有所谓的优先权,他们抢完了,其他人才能抢,实际上,通过技术手段也不是100%能抢到,根据在案证据显示,所以并不存在技术人员扰乱了秩序,影响公平的问题。
2.罪名保护的法益和社会危害性不对应的问题。
退一万步,即使认为这个行为影响了公平,这个和聘请高手代替打游戏是一样的道理,每个人的手速,技能是有高低的,每个人的手机和网速也是有高低的,即便存在借助外力提升自己获得相对竞争优势的行为,这个优势带来的不公平,在民事上都是合法的商业模式,法无禁止即合法,更不要说刑法规制了,实际上,这个公平也不是刑法计算机犯罪罪名所保护的法益。
3.在计算机罪名下的实行行为与入罪行为不同一。
社会危害性体现在抢门票行为给社会公平带来的破坏,而不是增加、删除、修改数据的行为本身,既然技术行为本身没有社会危害性,技术手段的目的不是增加、删除、修改数据本身,而是用来抢门票,也就说,该类案件的定罪逻辑是因一个后续行为的社会危害性而对其之前的手段行为定了一个罪。
三、司法实践中以计算机罪名进行刑法规制存在较大争议
通过网络检索,可以查找到类似通过编写代码“抢门票”被采取刑事强制措施的新闻报道,当时新闻报道一出,争议很大,不少法律学者和计算机专业人士都提出了质疑。目前,笔者代理的其他地区的几起利用脚本预约九价疫苗案件均作无罪辩护,案件正在审理中,案件办理单位也认为在罪与非罪的法律适用上存在争议。目前司法实践对该类案件能否以计算机罪名规制,具体以何罪名规制争议巨大。
1.类似行为在司法实践中未以计算机犯罪罪名规制。
技术人员的行为,操作方式与通过软件在“12306”网站“抢车票”情况类似,经查询相关案例(如南昌铁路运输中级人民法院(2019)赣71刑终8号、达州市通川区人民法院(2018)川1702刑初260号、达州市达川区人民法院(2018)川1703刑初294号),本身通过软件或者代码抢票并不犯法,相关行为并没有被法院认定为非法获取计算机信息系统数据、非法控制计算机信息系统罪等,相关行为构成犯罪的原因在于倒卖车票,从而构成倒卖车票罪。可见,“抢票”行为本身不违法,违法的是倒卖行为,倒卖了特种物品(如车票、文物等)会构成犯罪,如果是其他物品,则不构成犯罪,技术人员也只是帮人预约,也不存在倒卖行为。
2.脚本秒杀门票的行为本质上是一种代理行为。
现实中,都是门票需求者找到“黄牛”,黄牛再找到技术人员,真正发挥作用大的是“黄牛”,而“黄牛”行为,如果刑法没有规定为犯罪的,主要承担民事责任和行政责任。技术人员的相关行为,刑法并没有规定为犯罪,对相关行为的规范,如果行政法规规定属于违法行为,可处以行政处罚,而不应该上升到犯罪的情形。如果行政法规没有规定为违法行为,那么,按照“法无禁止皆可为”的原则,技术人员代人预约门票、收取佣金系双方自愿,与其它出售劳务获取价值的行为没有本质区别,是典型的民事代理行为。
结语
法律人要用司法机关听得懂的语言为技术辩护
所有的计算机犯罪都是为了解决某种需求,需求来源于生活,所以我坚信,每一个计算机案件涉及的技术实现原理都存在一个对应的生活模型。
计算机犯罪案件由于涉及计算机专业技术问题和法律问题,而计算机网络技术知识体系和法学知识体系之间存在着很难逾越的鸿沟,所以我们在办理计算机犯罪案件中,一定不能简单地将线下对传统案件的认知规则直接照搬到计算机网络世界,而必须要对具体案件进行“技术剖析”和“建模解构”。
“技术剖析”就是将简单问题复杂化,将表现形式还原成技术问题,要解决的是怎样发现真相,还原事实的问题。
“建模解构”就是将复杂问题简单化:将技术问题建构成简单模型,从而实现正确的法律评价,要解决的是怎样让普通人和法律人都能够听得懂的问题。
秒杀脚本抢票的技术原型问题,本质上就是如何从非计算机专业的普通人视角认识和理解预约门票脚本的功能实质:在不侵入服务器的前提下,用脚本直接发送预约数据的方式,代替人工预约的点击操作,其实质都是一样的,都是向服务器发送了符合服务器要求的数据,使用脚本的优势是可以在设定是时间提交数据,不会造成人为的耽误。同是用脚本配合ip代理,可以实现替多人同时预约,这个其实和多个人自己预约是一样的,对服务器来说没有任何区别。
综上,技术人员在抢票过程中通过技术手段获取的数据,不论是cookies信息还是token令牌信息,都是存在于用户自己的电脑上,而且这些数据都是属于用户自己,不属于服务器。用户在自己的电脑上获取属于自己的数据,不应当构成犯罪;在抢票过程中通过技术手段发送符合服务器要求的数据包,也不构成破坏计算机,因为所有涉及增加、修改数据行为都是发生在技术人员自己的电脑上,本质上其增加、修改的都是技术人员自己计算机信息系统中的数据,修改的是自己的代码。同时其代码也并不具备DDOS等非侵入型计算机攻击破坏功能。笔者认为技术人员的行为不构成计算机犯罪。
秒杀脚本抢票案件属于互联网环境下的新型问题,涉及计算机网络专业知识和司法实践,司法机关应审慎办理该类案件,有限的司法先行不能超出国民预测可能性,更不能超出法律规定,这样才能作出经得起历史检验的公正判决。