4.3 快易通系统
SpesdPass系统采用的是德州仪器公司(TI公司)的射频识别系统——频率134.2KHz的DST射频识别系统。钥匙扣上带有一个23毫米长的用玻璃封装的标签,看起来象一个小小的玻璃丸。整个封装小巧而且方便携带。该系统属于被动RFID系统,也就是说,标签内部没有电池来供给电源。其工作时所需的能量是由泵站或店铺的阅读器发出的射频电场提供的。这就确保了标签体积小巧、成本低廉,并降低了客户更换标签时所需的费用。标签经久耐用,更换成本低。
许多标签对阅读器的响应仅仅是返回标签本身的ID号,而DST标签的工作却不同。每一枚标签在生产的时候都嵌入了一个内部“密钥”,该“密钥”在工作时不会被发送。当阅读器进行标签查询时,它先向标签发送一个“问讯”请求,标签返回ID号以及一个用内部密钥加密的响应信号。与此同时,阅读器计算该序列号的标签应该返回的应答信号并和接收到的应答信号进行比较(这里假定进入系统的标签是同一个)。因为系统能够进行内部密钥校验,这样,将该系统应用到资金交易中,就增加了一层必要的安全措施。
该系统的另外一个主要的优点就是不需要用户的介入,当标签进入阅读器的阅读范围时,阅读器向标签发送一个40比特的问讯信号,标签接收到该信号并用其40比特的密钥加密。其结果是返回一个24比特的数据和一个24比特的唯一的标识码给阅读器。该标识码是由工厂编程的并把后台数据库和客户账号的详细信息关联起来。阅读器用同样的40比特的问讯信号和24比特的标识及自己的加密方式去确认标签返回的24比特的应答信号是否正确。
应用于快易通(SpeedPass)的射频识别系统的DST标签同样也应用于许多新型的车辆的防盗系统中,这些车辆的驾驶控制系统中嵌入了阅读器,当汽车启动时,阅读器比较钥匙标签是否和汽车计算机中输入的标签信息一样,如果比较的信息不一致,则汽车的供油系统不会开启。这为汽车的防盗增加了另外一道安全措施。现在你要启动汽车的话,就需要一把钥匙去点火,也就需要一个正确的标签。此外,新增加的这种安全措施对想偷车的人来讲也是一种上心理的威慑。
RFID芯片体积小和能耗低的特点使其具有较低的使用成本。但是,这也成为RFID安全的主要缺陷——标签没有足够的计算能力去加密。构建一个系统最好的办法是用那些已经经受检验的公匙算法。但是,这些算法唯一存在的问题是需要较大的计算能力。所以,TIRIS系统采用了特殊的加密算法并且是不是公开的。这使得该系统的安全体系非常脆弱,这种安全思想已经被证明不是十分可靠的。想知道芯片内部工作原理的唯一途径就是和TI公司签订一个保密协议。该保密协议禁止公开讨论相关得技术细节。因此,这也就是系统制造商声称“相信我们”的原因,因为我们没有办法去确认或测试其系统的安全性。
这些年,关于该系统的安全性问题一直是备受争议的。用于加密的密钥是40比特,而且自从1997年以来从来没有更新过。正如RFID的信息量增加一样,SpeedPass系统的问题也开始增加。40比特的密钥在其它加密算法中并不是合适的,这给人留下的印象是SpeedPass系统容易受到安全攻击
小知识
私钥加密——并不高明的做法
许多加密算法在投放市场的时候往往都采用同样的宣传口号,如“百万比特加密算法”、“无法破解”、“经过黑客证明是安全的”等等。当涉及到系统的安全性时,通常的反应就是“相信我们”,这种做法常常导致顾客的利益收到损害。
加密专家一直相信加密系统的安全性是建立在密钥安全性的基础上而不是建立在算法的安全性之上得。
在加密专家共享加密算法以及企图破解该加密算法时可以采用系统侦测的方法。随着时间的流逝,一些安全性较强的加密算法能够经受住时间的考验,而安全性较弱的算法则被淘汰掉了。一些加密算法可以持续几十年而不被淘汰掉。私钥和公钥算法并不能提高系统的安全性。通常,那些分析加密系统的人就是系统的设计者,因此他们总是发现不了存在的问题。由加密专家和业余人员组成的团队从不同的角度分析该算法。一个算法能否经受住时间的考验,是判断一个算法是否可靠的最好的办法。那些从来不去评估他们的系统的安全性的制造商常常会发现他们被市场边缘化并最终丢掉了市场,其原因是他们并没有取得公众的信任。
对SpeedPass系统安全性的研究工作开始于2003年,SpeedPass系统的安全性问题在不同的计算机安全会议上经过被多次提出来加以讨论。由于当时信息有限,关于该系统的安全性讨论得非常激烈。除了市场上已有的ExxonMobile公司提供的宣传手册,没有人知道更多的具体细节。这激发了我的好奇心,我开始收集关于SpeedPass系统可能存在的问题的信息。使我感到惊奇的是几乎没有任何独立的关于该系统安全问题的研究的信息。从来没有人对该系统的安全体系作过任何程度的调查。我只发现1997年Comp.risks提及这个问题,另外就是市场资料和商业期刊有所提及。
小知识:
快易通(SpeedPass)
在《风险文摘论坛》第19卷第52册,也就是Comp.risks中,菲利普克普曼(Philip Koopman)列举了SpeedPass系统存在的各种安全风险:
石油公司正在推行SpeedPass计划,该计划的核心就是给你发放一张RFID射频卡,你就可以采用该RFID卡片在加油站购买汽油。很明显,系统采用的是TI公司的TIRIS技术。其核心技术是识别距离短,系统工作所需能量低。我曾经推测车上使用的可能是915MHz的电池供电的标签。这是一种非常好的应用,尤其是对汽车来说,不需要密码。我曾经从事过射频发射和接收安全方面的工作。在我的记忆中,这种系统的安全性能比较可靠。
现在我们来看看风险——TIRIS技术(或者任何便宜的RF系统)并不能完全防范对你的RFID系统的干扰和对你的ID号的非法截取。对我来说,车载的东西风险可能更大,既然使用同样的技术而且在市场上都可以买到,因此,只要你得到一个标签的ID号码,你就可以得到该标签的相关信息并用它去购买汽油直到该号码被挂失。这种风险就和一些人在你不知不觉的情况下从空中接口获取你的电话信用卡号码差不多。当然,915MHz TIRIS设备经过加密,但是除非他们今后不断地进行加密更新或者经过我的认真细致地检查,否则我是不会完全相信其安全性的(为了分析加密体系,我检查的TIRIS设备应用ROOLING码和固定低通反馈,每一台设备都从一个简单的种子码开始。因此,只要你最终确定了一个标签的密码你就只需一次截取就可以破译所有的密码。或许,他们现在改进了该系统的安全性能,但是他们没有在自己的网站上发布相关信息。)
出于诚信,美孚公司向我保证TIRIS号并不是个人的信用卡号(因此他们并没有在空中广播信用卡号,这种做法很好)。那些想从他们的系统重新得到信用卡号的人必须要知道你本人的出生日期和社会保险密码。真正的风险是超低成本的标签没有足够的空间用来运行强大的加密体系,而往往只能采用非常脆弱的加密算法。但是,对于一个懒惰的人来讲,说它是加密了的将会使他感觉比较舒服。但这种做法模糊了安全的概念。或许偷一点汽油并不多(当然长期持续偷油也会花费很多),和盗窃蜂窝电话的ID相比显得非常少。但是,你应该明白他们从射频广播ID信息中得到教训。除非采用钥匙环射频卡(Key-Ring)消费时能够像信用卡消费一样因为其加密而变得非常安全,否则我真的会怀疑这个系统的使用能够持续多久。
资料来源:
TIRIS:www.mobil.com/mc/docs/mobil.htm
SpeedPass:www.mobil.com/SpeedPass/html/questions.html
SpeedPass中心的客户监督员确认他们正在使用TI公司的技术,提供了许多事先设计好的但非常含糊的安全保证。
Phil koopman:koopman@cmu.edu—www.ece.cmu.edu/koopman
菲利普克普曼(Philip Koopman)利用其工作之便研究了该系统的车载版本,稍微有些区别,但确是和目前的研究工作唯一有些类似的版本。
对该系统信息的缺乏(没有任何关于该系统安全攻击的提醒,有限的非市场安全信息等等)并不能使顾客增加系统的安全感。正因为如此,2003年,我决定去试着对该系统进行安全攻击试验。
4.3.1 破解SpeedPass芯片
我们破解SpeedPass芯片的第一步是必须获取和标签相对应的必要的设备。在破解工作开始阶段,还不能使用埃克森美孚公司的设备,因为我并不想和埃克森美孚公司之间产生任何法律纠纷。
小知识:
逆向工程
逆向工程(Reverse Engineering)是指的是对一个已经完工的终端产品进行逆向推理,从而得出其内部工作原理的过程。长期以来,这种技术在没有得到该产品技术许可的情况下,被用来生产兼容产品或者仿制某项产品。
逆向工程最杰出的代表就是个人计算机的BIOS系统,在二十世纪八十年代早期,IBM是唯一的个人计算机制造商。任何人想生产运行同样软件的计算机都需要同样的BIOS。PC BIOS的版权为IBM所拥有,因为IBM不想因为竞争而失去对市场得垄断占有,这也侵犯了顾客的选择权利,妨碍了技术的进步。
在没有IBM PC BIOS的技术资料的情况下,美国加利福利亚圣何塞菲尼克斯技术公司(Phoenix)的工作人员试图生产能够运行IBM软件的PC BIOS。菲尼克斯的研究团队应用了逆向工程的“空白房间”(Clean Room)技术。这样命名是因为这项逆向工程确实避免了使用任何可以引起版权和专利纠纷的外部代码或者信息。该团队研究了IBM的BIOS并起草了一份关于其内部工作原理的技术报告,这个报告避免了IBM的实际应用的具有知识版权的代码。
然后他们向从来没有见过IBM BIOS的编程人员提供了这份BIOS技术报告,这些编程人员能够在没有IBM代码的情况下编写和IBM BIOS功能一样的程序代码。既然它不是IBM的代码,IBM也就无权阻止新的BIOS的生产。这也促使了个人计算机市场的爆炸性增长,因为任何人都可以在没有IBM许可的情况下生产和IBM兼容的计算机。
形象来讲,逆向工程类似于有人提供给你一张高密度光盘以及关于音乐信号是如何记录在该光盘上的描述性信息,从而请你“设计一个播放器”。逆向技术将为技术的进步带来新的方法和途径。如果不是当年菲尼克斯公司的努力,也许今天的个人计算机市场就不会如此的繁荣,个人计算机的价格也就不会变得如此的低廉。
然而,不幸的是,逆向工程的这种做法也常常会受到谴责或者限制,因为一些企业并不想让其他人知道他们的工作思路和产品构架。像DMCA这样的法律禁止人们用逆向工程去获取受到保护或者限制的技术。许多程序和产品在销售的时候都特别声明禁止采用逆向工程进行破解,这也妨碍了研究工作的进行。也就是说,在产品能够安全使用的情况下,不允许人们了解他们的产品是否真的具有很好的安全性。
小知识:
法律上的义务
采用任何种类的逆向工程都是法律允许的,但是它却受到许多版权和专利方面的限制,一些公司甚至试图否定逆向工程的权利。
2003年,美国音像协会提出反对并试图否决关于音乐的某些管理法案包括破解数字音乐管理体系。他们声称将向任何成功破解该数字音乐管理体系的人提供奖金。但其先决条件是在你参赛之前要签订一系列保密协议包括不公开攻击所采用的技术方法等。有几个团队并没有签订保密协议,他们并不是为了奖金而参赛,他们的目的本身就是为了破译该系统。爱德华(Edward)教授和他所率领的团队成功破译了数字音乐管理体系中的很多技术障碍。他们因为发现他们已经被卷入了法律纠纷,因而他们不能够将其研究成果公开发表。
我们正在努力工作,以确认我们是否能通过运用逆向工程的方法破译SpeedPass标签的加密算法。如果我们知道了这种算法并截获了已知的问讯/应答信号,我们就能够采用强行入侵攻击方法去获取应答信号中的密钥(例如在代数学中,给你一个计算公式的输入值,你也知道其输出值,但是你还需要确定公式的其它未知部分。虽然这种推理方法不是最好的方法,但是却是最有效的工作方法)。
我们应用阅读器提供的软件截取问讯/应答信号。该软件组件包括对只读系统和可读写系统的信息的获取。该软件还提供和标签交互的功能,包括向标签发送问讯信息的对话框和标签实际应答的对话框。我们也使用串行嗅探器来(Serial Sniffer)确认阅读器输出和输入的信息。
研究工作进展得并不是十分顺利。我们获取了阅读器大量的问讯和应答信息,还发生过通信中断的情形。我们也准确地定位了系统的加密算法的思路和技术方向。然而,由于我们的团队缺乏具有丰富经验的加密分析专家,因此研究工作得进展非常缓慢。
005年1月,Johns Hopkins大学的团队在www.rfidanalysys.org网站上发布了他们的研究成果。他们成功的实现了我们这个团队付出了两年的努力工作而没有得到的结果。他们成功地破解系统的加密算法,取得了密钥,模拟了软件,克隆了RFID阅读器。
我的团队由两位具有较为充裕的业余时间来从事该项目研究的工程师组成。Johns Hopkins的团队由三位研究生、一个工作人员、两个科学家组成,并拥有一个实验室和强大的资金支持。遗憾的是,我的团队没有这样好的条件。
4.3.2 Johns Hopkins攻击
Johns Hopkins团队最初从埃克森美孚石油公司得到了一个系统评估套件和一些DST标签。他们在网上搜寻到了关于该芯片内部加密技术的概要性信息。这些工作最终被证明是非常关键的。
ohns Hopkins的团队采用了黑箱(Black Box)的办法去描绘算法的技术环节。这种研究方法就是将输入值输入到黑盒子,然后观察其输出结果。通过这种观察,应用特殊的输入,建立一个能够输出和黑盒子一样的输出结果的程序是完全可能的。这种方法的关键就是准确模拟黑盒子的工作机制。但是通过不同的方法得到相同的输出。这种方法也能避免法律纠纷,因为工作团队并没有违反保密协议。
通过侦听工作,该团队获悉了关于系统所采用的加密算法的大致技术路径。确定了基本技术工作方向,Johns Hopkins团队开始了填充空白和跟踪每一个比特信号的艰巨任务。他们通过发送特定选择的问讯信号并比较输出结果来完成这项工作(简而言之,就像他们把问讯信号2输入到黑盒子来观察应答信号4)。在不长的时间里,每一个数字都得到了测试。通过绘制输入和输出信号间的关系,他们就能够填补算法的不可见部分从而能够了解标签内部的工作原理。
他们现在通过逆向工程得到了DST标签内部的算法。他们就可以编写一段程序来准确模拟DST标签内部的加密过程。有了这些,他们就可以得到标签内部的密钥。
小知识
暴力攻击与温柔求解
在信息安全领域,有多种方法可以用来获取相似的结果。计算机网络威胁,编写代码以及其他攻击,通常属于以下两类:
暴力攻击(Brute force)与温柔求解(Elegant Solution)。
温柔求解模式运用的一个新颖的、安静的解决问题的方法;而暴力攻击方式则是采取一个喧哗的、粗暴的做事方式。
以现实生活为例,我们如果要打开一个门锁,可以采用温柔的方法和暴力开锁的方法,这两种方法都可以打开门锁。温柔的解决方式是检查门垫和锁的结构,用一个薄片打开门锁。暴力解决方式是撬开锁或用砖头打破窗子。这两种方式都得到了同样的结果,但温柔的的解决方式更值得我们选择。
加密算法的温柔破解方式采用的技术路径是寻找能够帮助我们确定加密密钥的漏洞。强行入侵是穷举所有密钥直到得到正确的结果,这或许不是最快的方式,但却得到了同样的结果。
因为系统的安全性是基于某种加密算法基础上的,因此,从这点来看,系统的安全性越来越脆弱。在该加密算法没有被破解之前,潜在的安全攻击不能够确认或克隆一个有效标签的工作。但当攻击者一旦破解了该加密算法,捕获标签的问讯与应答信号就是他们所需要的结果。
假如有一个40比特的密钥组合(1099511627776),用普通的电脑来获得该标签的密钥需要花Johns Hopkins团队几周的时间。对此,关键问题是攻击者愿意花多少时间来破解该密钥。要证明实际攻击的可行性,就要确定几个基本规则来缩短暴力攻击所需的时间,使得实际攻击具有较好的性价比。
为了做好这项工作,该团队使用了现场可编程门阵列(Field Programmable Gate Array,FPGA),现场可编程门阵列可以用来进行现场编程,是一种可以为攻击者测试新的处理器设计或破解代码用的计算机集成电路处理器。他们对FPGA编程来测试并行的32比特的密钥。一个FPGA去破译一个密钥大约需要10个小时的时间,对该攻击来说,所耗费的时间并不多,但是却是攻击者所希求的结果。Johns Hopkins团队用16个并行工作的FPGA来构造门阵列,给出了问讯与相应的应答,并在1小时内破解了系统,获取了密钥。
现在该攻击更具有现实的可行性。随着处理器速度的不断加快,采用家用电脑,用几分钟的时间破解一个密钥也不再是什么问题。
2005年1月,该团队在若干媒体的关注和好奇中公开了他们的发现,他们宣称,所谓完善的SpeedPass系统被证明是具有致命的安全隐患,容易遭受系统安全攻击。尽管他们没有完全破解该系统,但这已经足够证明,运行了七年之久的系统已经开始老化,应该可以考虑可以替代的新的技术方式了。
该团队通过对实际使用进行的问讯/应答对测试了攻击者的可行性。作为其研究的一部分,他们测试了通用的攻击场景。
一种测试方法是坐在不知情的受害者旁边,通过手提电脑和TI公司的阅读器来读取受害者口袋中的DST标签。他们应用空白的密钥和克隆的标签也可以开启配有DST标签的车辆。他们应用克隆的标签成功的从埃克森美孚汽站购买到了汽油。这说明完全破解该系统是可能的。后者需要在车尾箱装一些电脑设备。因此,对于系统攻击者来讲,把大量的设备变为更为紧凑和便携的是非常重要的。
明智的是,Johns Hopkins并没有公布有关内部算法的细节,阻止了许多偷盗情况的发声。如果小偷们想滥用该系统,它们将不得不重新开始同样的研究工作。
4.3.3 经验教训
SpeedPass系统确实具有很多优点,但它也存在一些缺点和不足。总的来说,该系统被成功攻击并被破解之前已经安全运行了七年。
在SpeedPass系统开始应用的时候,TI DST标签是应用最安全也是应用最为广泛的RFID技术之一。因为其体积小巧、具有较强的验证能力、抗干扰,选择该标签是明智的。不幸的是,体积小巧和能耗较低也成为它自身的一个技术问题。
对标签来说更为合适的加密系统是应用公/私钥算法,更为可靠的是诸如经过多年的检验和测试的RSA算法。应用长的密钥也能够使安全攻击花费更多的时间。体积小巧限制了加密过程所需要的计算能力,这种情况导致了合适的算法选择和40比特的密钥的应用。做更强的加密运算就需要更大的处理能力,这也意味着需要较大的体积、较高的成本、较高的功耗。
如果你在交易系统中使用RFID,那么加密盒被证明是非常必要的。否则,你将为那些使用克隆卡片的人滥用该系统开启了方便之门,这些小偷都是高技术版本的口袋性小偷。但是,选择一个目前安全的技术并不意味着它将具有长期安全性。所有的系统都需要定期检查与改善。调查市场上是否有更为鲁棒的加密算法的标签并在安全系统遭到破坏威胁时进行及时移植是非常明智的。
在一个大众化的应用系统中,总有人在努力地发现安全隐患。目前至少有两组人都在积极寻找克隆SpeedPass系统的方法。他们都取得了良好的研究成果。牢牢把握安全技术的变化趋势将能够使你明智的选择产品,并能够使你面对新的威胁和问题时,及时采取相关防范措施。
然而Johns Hopkins团队应用的安全攻击方法需要较大的工作量,为了比较容易的进行该项工作他们提出了一些建议。加快破译密钥的最便捷的方法就是事先对可能的密钥进行验证运算。
如果你企图破译一个未知密钥的标签的号码,你必须要得到两组问讯/应答(一组是查找密钥,另一组是确认你得到正确的密钥)。当使用算法的时候,你不得不重新作所有的运算来查找能给问讯正确应答的密钥。如果你能够控制用于产生应答的问讯,你今后的攻击中你就会节省大量的工作量,这就是众所周知的时间计忆平衡。假如你有两张密钥不同的标签,但是其响应相同,因为标签密钥不同,你将得到两个不同的应答结果,要破解每一张卡,在得到正确的应答之前你必须测试每一个密钥,你计算并记录每一个密钥的应答而不是测试得到正确应答的密钥。现在你已经拥有了一张能迅速给你想要的密钥的表。如果你生成第一个标签的查询表,并把同样的问讯信号发给第二个标签,你只需要做的是查询应答表以及能给你正确结果的密钥。
这种表格的数据量是非常大的,但是,在表中是非常容易查询结果的而无需作所有的计算工作。随着存储器价格的大大降低以及存储容量的不断增加,处理比SpeedPass标签更大的表格成为可能,从成本和处理价格来说更为经济。这和学校用的乘法表非常相似,这种方法的一个缺点是在最初需要大量的运算,但是前期计算一旦完成,从一个事先编写好的表格查找答案将能节省大量地时间。
Johns Hopkins团队建议采用用一个由阅读器、模拟器和带有不同存储媒介的计算机来完成此项工作。该设备将向邻近标签发送问讯信号并记录应答信号。计算机能够查看经过事先编制的杂乱表格并通过模拟器模拟标签并发送一个有效的应答信号。


