Bethropic

审计员就是攻击者:罗纳德·哈里斯与他被雇来检查的老虎机

winterfurrow5060 次浏览
🌐 Originally written in English· AI translationView original

这份工作

老虎机是一种你无法核实的概率声明。滚轮只是图案;结果由芯片上的代码决定,而没有任何玩家能够读取那块芯片。因此这个行业建立了一条信任链来代替证明:制造商编写软件,州监管机构的技术人员对其进行审查,通过认证的程序被刻录到芯片上并密封进机柜。此后的一切都依赖于这次审查。

罗纳德·戴尔·哈里斯正是从事这项审查工作的人。20世纪90年代初,他是内华达州博彩管理委员会的一名计算机工程师,负责在运行赌场电子游戏的软件中查找漏洞和作弊装置。新泽西州后来的排除令文件将他直白地描述为一名专门检测用于老虎机作弊的软件和设备的工程师。他拥有源代码、工具,以及作为签字批准人所带来的地位。

同案共犯罗纳德·D·哈里斯是一名专门检测用于老虎机作弊的软件和设备的工程师。——新泽西州博彩执法处,针对里德·E·麦克尼尔的排除令,案卷号95-0240-EL

两个骗局,只有一个涉及篡改

哈里斯运作的不是一个骗局,而是两个,第二个远比第一个更有意思。

第一个是后门。利用他对源代码的访问权限,他修改了某些机器,使得以特定顺序和数量投入硬币会触发一次大额支付。从1993年到1995年,他和一名同伙用这个方法从拉斯维加斯的赌场中拿走了数千美元。这是一次典型的内部人员攻击:本该检查恶意代码的人却在添加它。

第二个骗局没有触碰任何东西。到后期,哈里斯转向了keno,写了一个程序,提前确定该游戏的伪随机数生成器将会选出哪些号码。没有芯片被改动。没有封条被破坏。机器运行的正是它被认证时的那套代码,产生的正是那套代码本来就会产生的数字——而这恰恰就是问题所在。

同一个人,同一种信任模式的两次不同失败

硬币序列后门KENO 预测器
改变了什么机器上的程序什么都没变
审查会发现什么被改动的代码——如果有人重新读取它没有可发现的问题;机器是合规的
为什么能得手检查员本身就是攻击者只要知道算法,任何人都能预测出结果
该修复方案暗示了什么不要依赖单一可信的读数人不要指望方法能一直保密

伪随机数生成器是一种确定性函数。给它相同的初始状态,它每次都会产生相同的序列,而它对玩家来说的不可预测性,取决于该状态和该算法是否为人所知。哈里斯两者都知道。从外部看,这台机器完好无损、诚实可靠;但从他的角度看,这就是一张打印出来的清单。

大西洋城,1995年1月

这个骗局最终在收银台前告终。1995年1月15日,哈里斯和里德·E·麦克尼尔被控企图诈骗、共谋和电脑盗窃罪,起因是他们试图利用专有电脑软件信息,从大西洋城的巴利公园广场赌场酒店骗取10万美元的基诺奖金。这项指控值得细读:未遂。那张彩票从未被兑付。

阻止这一切的并非技术手段。当麦克尼尔出示中奖彩票时,赌场高管觉得他的举止可疑,于是报了警,通知了新泽西州博彩调查人员。数学被攻破了,但去领钱的那个人却没能演好那份该有的喜悦。

公开记录

日期事件
1993–1995年哈里斯和一名同伙通过改装机器,从拉斯维加斯的赌场骗取了数千美元
1995年1月15日哈里斯和麦克尼尔因10万美元基诺奖金骗取未遂案在新泽西州被起诉
1995年6月21日新泽西州对麦克尼尔发出初步禁入令(案卷号95-0240-EL)
1997年11月5日新泽西州的禁入令正式生效

哈里斯被判处七年监禁,服刑两年后获释。他被列入内华达州博彩管控委员会的黑名单,被禁止进入该州的赌场。

这个案例真正证明了什么

通常从哈里斯事件中得出的教训是监管机构需要更严格的审查。这没错,但格局太小。更大的教训是结构性的,它适用于此后所有以同样方式构建的博彩系统。

  • 受信任的审查者是单点故障。如果保证是“有专家检查过了”,那么这个保证的强度就仅仅等同于该专家本身,一旦他叛变,保证就会彻底且悄无声息地失效。
  • 保密并不是一种安全属性。基诺预测器根本不需要任何篡改。一个公平性依赖于“没人知道其运作原理”的系统,早已在任何知道原理的人面前败下阵来——而在一个受监管的行业里,这包括一批不断轮换的员工、审查员和承包商。
  • 玩家被排除在证明之外。在上世纪九十年代的模式中,没有任何玩家能够验证任何事情。对于“我怎么知道这是公平的?”这个问题,当时能给出的最好答案就是证书上的一个名字——而这正是在此事件中失效的答案。

密码学早在十九世纪就已经回答了中间那一点。柯克霍夫原则指出,一个系统即使其设计的一切细节都公开,也应保持安全,唯一允许保密的只有密钥。一个安全性依赖于算法不为人知的基诺生成器,从它被写出来的那一天起就已经不合格了。只是在像哈里斯这样的人出现之前,它不会公开地暴露出问题。

取而代之的模式

承诺-揭示公平性机制的存在,正是为了消除哈里斯所打破的那个假设。庄家生成一个服务器种子,并在你下注之前发布其哈希值——这是一个之后无法更改的承诺。你自己的客户端种子会被混合进结果中,因此结果取决于一个庄家无法选择的值。计数器使每一轮都各不相同。当种子对轮换时,旧的服务器种子会被公开,此时过去的每一轮都可以在你自己的机器上重新计算,并与你实际获得的赔付进行核对。

把这一点和上面两个方案对照来看。后门失效是因为结果在下注之前就已被承诺锁定,所以没有任何代码路径能在得知你的操作后决定改变支付结果。预测器失效是因为知道算法毫无用处:服务器种子已被承诺并隐藏,你的客户端种子属于你自己,整个方法可以公开发布而不会因此变弱。这正是关键所在——算法本来就应该是公开的。整个验证一轮结果的流程大约只需一分钟,这是一种证明,而不是一句承诺。

有必要精确地说明这套机制能带来什么,不能带来什么,因为在这方面夸大其词本身就是一种不诚实。已验证的开奖只能证明数字没有被操纵。它对赔付表是否慷慨完全没有说明——一个只支付公平价值一半的游戏也能完美通过验证。这是两个完全独立的问题,而只有公开的赔付表能回答第二个问题

承诺-揭示机制本身也不能使运营商变得诚实。它缩小了不诚实可能出现的方式:庄家仍然可以把游戏定价得很差,但它再也不能在看到你的下注后决定这一轮的结果,也再也不能指望你无法核实。

哈里斯被人们记住是因为他是个骗子,这一点没错。但他更有价值的地方在于证明了一个反面命题:他两次证明了,建立在内部人员的操守和自由裁量权之上的信任模型,终究会遇到一个内部人员的背叛。行业的应对方式是继续雇佣谨慎的人。而更好的答案是——从根本上不再需要依赖他们。

基诺,开奖结果在你下注前就已被承诺
棋盘、赔付表以及你事后可以核实的种子对
基诺 →

常见问题

罗纳德·戴尔·哈里斯是谁?

他是二十世纪九十年代初受雇于内华达博彩管理委员会的一名计算机工程师,职责是检测被设计用来在老虎机游戏中作弊的软件和装置。他利用这个职务之便,自己动手操纵了机器。

罗纳德·哈里斯是如何在老虎机上作弊的?

他修改了某些机器上的软件,使得以特定顺序和数量投入硬币会触发大额支付。1993年至1995年间,他和一名同伙利用这一漏洞从拉斯维加斯的赌场骗取了数千美元。

他是如何被抓获的?

并不是通过技术手段被发现的。他的同伙里德·麦克尼尔(Reid McNeal)试图在大西洋城的巴利公园广场赌场(Bally's Park Place)领取一笔10万美元的基诺头奖;赌场高管觉得他的行为可疑,于是通知了新泽西州的博彩调查人员。两人于1995年1月15日被起诉。

他后来怎么样了?

他被判处七年监禁,服刑两年后获释。他被列入内华达州博彩管理局的黑名单,这使他被禁止进入该州任何持牌赌场。

这种基诺预测攻击手段能对可证明公平的游戏起作用吗?

不会以同样的方式起作用。哈里斯利用的是一个对了解算法和其状态的人来说输出可预测的生成器。而在承诺-揭示机制下,服务器种子在下注前就以哈希形式承诺,事后才揭示,且你自己的客户端种子也会参与结果的生成——因此公开算法没有任何代价,一旦下注完成,结果也无法被更改。

来源与参考资料

本文涉及的游戏

基诺——规则与免费试玩 →

审计员就是攻击者:罗纳德·哈里斯与他被雇来检查的老虎机

评论 (1)

  • So the guy whose literal job was to catch cheating in slot machines was the one actually cheating them? That's pretty wild.