2021年“大牛助手“二审宣判,二审法院依然认定构成犯罪,但是量刑比一审降低了,从5年6个月降为4年。这个案件在国庆后新闻报道一审结果,到现在二审判决,一路引起很多讨论,也有不少人和快播王欣案联系起来,坚持技术无罪。 其实,看待一个诉讼案件,不能仅从基本情感出发,而是要关注事实。而这个案件的价值点,不在于讨论技术是否中立,而是它反映出当前立法和司法实践落后于技术发展,法院甚至没有完全查明“大牛助手”的工作机制,从而不能很好地归入法律关系之中。 有技术人士指出,大牛助手并非只是简单地模拟虚拟位置,钉钉在安全方面走得更远,而大牛助手同样也做得更多,本文尝试把技术层面归纳进法律关系,从诉讼角度去拆解这个案件。 本文要解决三个问题: 1、大牛助手的工作机制是什么? 2、破坏计算机信息系统罪规制的行为是什么? 3、技术与法律边界是什么?
一 要理解大牛助手的工作机制,就要先厘清钉钉打卡功能的工作机制。钉钉要实现打卡功能需经历两个环节,环节①获取用户位置,环节②判定当前位置是否有效。环节①获取位置失败,就不会进入环节②,打卡失败;环节①获取成功,但环节②判定位置无效,打卡依然失败;只有在环节①获取用户位置成功,进而在环节②判定当前位置有效,才能打卡成功。 很多模拟定位软件都是针对环节①,即产生一个虚拟位置,“骗”过那些需要用户位置的软件。但是,这招对于钉钉行不通,钉钉会在继续在②环节去判定获取的位置是否有效,如果发现在虚拟机中运行,那对于所获取的位置会被判定无效,进而打卡失败。 钉钉的工作原理,一方面反映出他们的安全团队实力很强,另一方面也解释了大牛助手并不仅仅是生成了一个虚拟位置,而是针对环节②,让钉钉“认为”自己并不是在虚拟机中运行。具体原理为:CPU、内存和其他一些模块的运行速度,在实机和虚拟机运行是不同的,钉钉通过监测自己自己一段代码的性能——比如软件内置时钟的时钟频率,在虚拟机环境和硬件环境中相差很多,从而去逆推自己是在虚拟机还是实机上运行。这里的重点在于,钉钉在环节②并不需要用户提交数据,而是“自我审查”。大牛助手为了让钉钉“认为”自己是在实机上运行,从非常用、非必要渠道提交了一系列数据,从而让钉钉判定在实机运行,进而打卡成功。 换句话说,大牛助手生成了一个虚拟位置