在线扑克如何作弊:一次软件安全研究

扑克是一种风靡世界的纸牌游戏,我们不仅可以在家中的餐桌上、赌场上、或者桥牌室中玩扑克,现在还可以在网上玩。我们研究可靠软件技术的一些人也玩扑克。因为我们现在都会花大量的时间在网上,所以将打扑克和可靠软件技术研究结合在一起只是时间问题。我们将在线扑克游戏和软件安全结合起来研究后,发现一个巨大的安全漏洞,这就是本篇文章所要讲的。

人们可以在PlanetPoker这样的互联网桥牌室与其他人打德州扑克,这些游戏是实时的,而且用真钱。由于我们的主要工作是为公司提供安全、可靠且健壮的软件,所以我们很好奇在线游戏背后的软件是什么样的。它如何运行否公平们查看了PlanetPoker网站上的FAQ页面,这个页面包含它们的洗牌算法(为展现游戏公平性而公开洗牌算法,这还是很令人惊讶的),这些足以开始我们的分析了。当我们看到洗牌算法时,就开始怀疑这其中可能有问题。一个小小的调查研究证明这种直觉是正确的。

 

在德州扑克中,每个玩家发两张牌(称作底牌)。最初的发牌后是一轮下注。第一轮下注结束后,接下来所有的发牌都是牌面朝上,所有玩家都可以看到的。庄家在牌桌上发三张牌面朝上的牌(称为翻牌),然后就是第二轮下注。德州扑克一般是定额下注,就是说每个玩家在每一轮下注都是定额。比如,在3美元到6美元的游戏中,前两轮是3美元赌注,而第三轮和第四轮是6美元赌注。第二轮下注后,庄家在牌桌上再发一张牌面朝上的牌(称为转牌),然后就是第三轮下注。最后,庄家在牌桌上再发最后一张牌面朝上的牌(称为河牌),然后就是最后一轮下注。剩余的每个玩家使用自己手中的两张底牌和牌桌上的五张公共牌,从这七张牌中选五张,凑成最大的组合。玩家凑成的成手牌的好坏由标准扑克成手牌顺序决定。

德州扑克是一种快节奏的,令人兴奋的游戏。这个游戏很重要的一个组成是虚张声势,并且玩家要对其他玩家持有的牌做快速判断,这些判断决定谁是最终的胜者。有趣的是,德州扑克还是每年在拉斯维加斯举办的世界扑克系列赛中的其中一项。

既然现在每个人和他们的狗都是在线的,而且几乎所有类型的业务都被呈现在互联网上,那么在线赌场和桥牌室的出现就再自然不过了。虽然说要进赌场的话,去印第安保留区和河船就很容易做到,但是更方便的参与游戏仍是现在的真实需求。如果能在自己家舒舒服服的上网娱乐(更别说可以穿着自己的睡衣),不用忍受二手烟,以及那些令人讨厌的玩家,这绝对是很吸引人的。

 

所有的便利都伴随着一定的代价。很不幸,玩在线扑克存在真正的风险。赌场本身可能就是一个骗局,其存在只是为了从玩家手上拿钱,它根本没有打算回报玩家任何胜局。运行在线赌场的服务器也可能被恶意攻击者破解,以获得信用卡号码,或者尝试在游戏中利用一些优势。因为大多数赌场不对玩家的客户端程序和托管纸牌游戏的服务器之间的网络流量进行认证和加密,可想而知,一个恶意玩家就可能检查这些网络流量(采用经典的中间人攻击),以确定对手牌。这些风险都是网络安全专家非常熟悉的。

串通也是一个扑克所独有的问题(不同于其他游戏,如21点或掷骰子)。因为扑克玩家互相对抗,他们的对手并不是赌场本身。当一个桌子上的两个或多个玩家互相串通时,他们作为一个团队一起玩,往往会使用相同的资金。互相串通的玩家知道他们团队成员手上的牌(通常是通过细微的信号),而且他们为使团队获得最大的利益而下注,不管是团队中的谁赢都行。串通在现实的桥牌室中是一个问题,但对在线扑克来说,这个问题更严重。在线玩家可以使用即时通讯工具、电话会议聊天工具等,这使得串通问题成为一个严重的风险。如果一个在线游戏的所有玩家都一起合作,来欺骗那些不质疑网络安全的,容易受骗的玩家怎么办怎么保证你永远不会成为这些攻击的受害者呢/p>

最后也很重要的一个风险(特别是对本文而言),就是在线扑克软件本身可能存在缺陷。软件问题是引起安全风险的一种臭名昭著的形式,而且它常常被过分相信防火墙和加密技术的公司所忽略。软件应用程序会给一个系统带来非常多的安全漏洞,我们每天都会花大量的时间来找出并解决这些软件安全问题,所以我们注意到在线扑克也是迟早的事。本文的其余部分就专门来讨论我们在一个流行的在线扑克游戏中发现的软件安全问题。

 

洗虚拟牌

我们关注的第一个软件缺陷涉及洗虚拟牌。公平洗牌意味着什么呢质上来说,它意味着牌的所有可能组合出现的概率相等,我们称对这52张牌的每个排序为一次洗牌。

对真实的一副牌,有52!(约2^226)种不重复的洗牌。计算机洗一副虚拟牌时,它从这些可能的组合中选一种。现在有很多洗牌算法,一些算法优于其它,一些则是完全错误的。

ASF软件公司开发的算法被大部分在线扑克游戏所使用。我们发现他们的洗牌算法有很多缺陷,根据这些发现,我们联系了ASF公司,他们更改了他们的算法,但是我们还没有看他们的新算法。从安全角度确保一切都完全正确并不容易啊(本文的其余部分将会介绍)。

图表一:有缺陷的ASF洗牌算法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 procedure TDeck . Shuffle; var      ctr: 来源:liuweihuhao

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年6月13日
下一篇 2014年6月13日

相关推荐