自从在4年前面世以来,非接触式支付获得了巨大的成功,并且正变得越来越流行。Visa欧洲宣称,从2015年5月到2016年5月,欧洲共进行了30亿笔非接触式Visa卡交易,这个数量差不多是一年前的3倍多。在商店中,有1/5的交易采用非接触式支付,而2013年这个比例仅为1/60。
在法国,非接触式支付的交易数量在一年内就增长了230%,在12个月内进行了1.94亿笔交易,交易额超过20亿欧元。消费者对于非接触式支付极为信任。
然而,非接触式支付所采用的近场通信技术(在不超过10厘米的范围内,读卡器通过无线电波与带有微型天线的银行卡芯片通信)并非无懈可击。当然,银行提供了众多防护措施来保卫你的钱包,比如每次取款限额为20欧元、每天非接触式支付数量设有上限等等。不过,卡片本身没有任何内置的防盗刷安全措施。
也没有什么措施能够阻止黑客用读卡器贴近你装着卡片的口袋,拦截你的银行数据。
百万美金赏金
实际上,非接触式支付面临的这些麻烦只是由来已久的IC卡安全问题的最新表现而已。本文的两位作者既是这段历史的见证者,也是这段历史的参与者。让-雅克·齐斯夸特对技术进步做出了贡献,而让-路易·德维涅则大力主张在IC卡中使用加密技术。在那时,加密技术还是专为军方和政府服务的。
历史总是在不断地重演。在IC卡使用的初期,也就是20世纪80年代左右,人们相信这种卡片是万无一失的,完全值得信赖。这种信任如此根深蒂固,以至于有人悬赏100万美元邀请黑客来破解。
1985年左右,在布鲁塞尔一场大型展览会上,飞利浦公司的一个高管打算分发几万张IC卡,让参与者来破解它们的4位密码,也就是个人识别码(PIN)。首位破解成功的人将获得100万美金的奖励。但是,考虑到分发的卡片和参与者的数量,简单的概率统计计算就能证明总会有人能够破解 PIN 码。而这和卡片的安全性毫无关系。本文作者齐斯夸特向飞利浦高管说明了这一点,但是他却不相信。和IC卡安全先驱之一路易·纪佑(Louis Guillou)一道,我们打算黑掉一张卡片,来证明我们能够破解IC卡的密码——潘多拉魔盒就这么被打开了。
我们不打算在这讲述IC卡的整个研发史,因为要全面介绍IC卡研究者和他们进行的试验,得一整本书才行。我们将要讲述的是,IC卡是怎样通过引入加密技术而变得值得信赖,同时成为密钥的守护者的(而密钥本身就是加密方法的核心)。
万无一失的安全性?
当IC卡出现的时候,由于性质使然,它看上去天然就是安全的,不会受到恶意查询和金融诈骗的侵害。的确,集成电路对于普通人来说是无法逾越的技术壁垒,那些可以读取或是改写当时常用的磁条卡的技术,对IC卡是无效的。
最初开发的IC卡和相关专利并没有涉及加密技术。不管是法国科幻作家赫内·巴赫札维勒 (René Barjavel)的小说《冰人》(1968年)中的贡达瓦人(在书中,贡达瓦是消失的文明,贡达瓦人用一把钥匙登录到中央电脑里就可以付款),还是日本、德国或美国的第一批相关专利,抑或是罗兰·莫雷诺(Roland Moreno,IC卡发明者)在1974年设计的智能“戒指”,都没有在芯片中使用加密技术,尽管当时已经有人提出了安全方面的考虑。
很自然地,银行卡成为了IC卡首选的应用领域。印有凸起字符的老式银行卡和它的读卡器,或是磁条卡,很快就都显得不够安全了,至少对欧洲的银行来说是这样。
但是,另外一个意想不到的应用却使IC卡技术实现了大规模工业化生产——电话卡。IC电话卡里面存有通信时长,这解决了投币电话亭兑换硬币难的头疼问题。
IC卡的另外一项应用并不太广泛,但是却触及了具有影响力的人群,因此这个应用——付费电视,也为IC卡的普及作出了贡献。此外,当我(本文作者德维涅)掌管法国计算机安全服务中心(法国国家计算机安全局的前身)时,正是付费电视让我开始思索IC卡的安全性,并向当局发出有必要尽快处理IC卡安全问题的警告。
1996年,英国天空电视台(BSkyB)就成为一起大型盗版事件的受害者,盗版者为一家爱尔兰公司。这家爱尔兰公司公开廉价销售可以看天空电视台节目的伪造电视卡。电视台此后为了打击盗版而出台的一系列补丁也无力对抗盗版者的快速应对。
正是由于在开发新技术之初对安全问题缺乏严肃考虑,才产生了这个盗版黑色产业链。那时,我用这个例子说服法国卫生部使用加密技术来保护该部门所使用的卡片(医保卡和职业健康卡)。复制或伪造的卡片在外泛滥会带来多么严重的风险,根本无需多言。
公众对IC卡的使用仅仅是风险的一方面。10年前,当我是国防部“密码官”的时候,我的工作就是管理加密设备的密钥,当时这方面的状况不太令人满意。
像那个年代所有负责这个领域的官员一样,我脑子里总想着汉斯-提罗·施密特(Hans-Thilo Schmidt)背叛的往事。施密特是德国密码机构的工作人员,早在第二次世界大战开始前几年就向法国情报机构出卖了德国恩尼格玛密码机的使用手册、密码本和破译加密信息的机器参数。在法国人和英国人(包括著名数学家阿兰·图灵)的先后帮助下,波兰人破解了这台密码机。施密特提供的情报极大地促进了盟军的破译工作。
直到1990年,政府间的加密网络(如北约)一直没有什么改进。它们用的是对称密码系统,即用来加密和解密的都是相同的私钥。密钥的初始化(将同一个密钥分配给所有机器)是手工操作的,操作人员会在物理上接触密钥。
不管选拔操作人员的过程如何严格,都无法完全排除操作者泄露其接触的机密的可能。当然,为了减少这种可能性,保密机构当时也采取了一些不同的预防手段,比如用密码活页纸,每天撕去一页换新的,防止同样的密码长时间暴露。
保密机构也曾用过从某些游戏中借用来的刮涂技术。后来又出现了在读取后无法倒带的打孔带盒子。还有电子密钥输入器,就是一个简单的储存器,但操作界面外行根本看不懂(不过成本很高)。
而我为了提高大规模加密网络的安全性,曾经反其道而行之,延长了一些密钥的密码有效期,减少了能够接触这些密钥的操作者数量。我把密钥原本的更新周期从24小时延长到1周,通过这种方式,把因操作人员走上歧途而泄露重大机密的可能性缩小到原来的1/6到1/5左右。
这就是为什么,IC卡一出现(例如20世纪80年代出现的布尔CP8 IC卡),我就试图利用它来研发成本适中的新型加密设备。一开始IC卡只被用来安全存储密钥,比如法国萨基姆公司为政府开发的军用保密电话DCS500中的IC卡就是这个功能。
直到20世纪90年代末,法国国防部才开始在“密钥管理基础设施”项目中采用IC卡来储存安全证书,也就是说这时候已经开始采用非对称加密系统了。
这些安全证书一般被称为公钥(这类系统有2个密钥,公钥用来加密,私钥用来解密),是在70年代中期出现的。这种系统的大规模应用是与互联网的发展交织在一起。
但是,为了用IC卡安全存储密钥,IC卡自身必须是真正的安全系统。如果想要避免受到某些攻击的话,IC卡的芯片就应当具有一定计算能力。
举个简单的例子,储存在IC卡上的密码可用来获取某种服务,比如付费电视和Minitel(法国的网络终端服务,已停用)一开始采用的就是这种方法。假设这张卡通过PIN码和某个用户联系在一起,这个用户就可以用卡中存储的密码来证明自己的身份。要储存该密码的话,芯片就必须有一个无法篡改的储存器,芯片本身也应该是无法篡改的。
必要的加密技术
另外,如果原封不动地传输密码,盗取密码显然易如反掌。因此,密码的传输不能通过直接的方式进行,而是要用迂回的方式,不提供密码。
实际操作中采用的方法是,用某种加密算法来配合随机数或者密码。比如,不传输密码,而是传送一个加密算法的函数,这样就能让使用者在不透露密码的情况下证明自己知道密码;反过来,这种方法也能保证另一方在不知道密码的情况下验证密码是否正确。
因此,IC卡中有必要使用强加密技术的理念在1980到1984年间迅速得到了认同。法国布尔公司(Bull)的米歇尔··于贡(Michel Ugon ,Telepass算法的发明人)、法国电视广播及通信研究联合中心的路易·纪佑(Louis Guillou,加密字节发生器GOC算法的发明人),以及当时任职于飞利浦公司的本文作者齐斯夸特在这方面做出了巨大贡献。1976年,当美国斯坦福大学的惠特菲尔德·迪菲(Whitfield Diffie)和马丁· 赫尔曼(Martin Hellman)的文章《密码学的新方向》(New directions in cryptography)刚刚发表时,我(齐斯夸特)曾有幸拜读。因为在密码学领域的贡献,这两个作者在40年后的2015年获得了图灵奖。
那个年代还只有对称密钥系统,这两位密码学家在这篇文章中提出了公开密钥系统的概念,并证明了大质数计算在这个系统中的价值。我当时是飞利浦在比利时布鲁塞尔的实验室的研究员,致力于应用数学研究。看到这篇论文后我着了迷,向上司申请进行加密数学的研究。
我的申请得到了批准,在第一个公开密钥系统——RSA加密算法出现前,我和其他6人就已开始探索这个领域。RSA加密算法是以3个发明人的首字母命名的,他们分别是罗纳德·李维斯特(Ronald Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)。时至今日,RSA加密算法仍在被广泛使用。马丁·加德纳(Martin Gardner,美国著名业余数学大师,曾在《科学美国人》上开设了延续20多年的数学游戏专栏)曾于1977年在《科学美国人》上介绍了这个算法。
1979年12月,飞利浦法国公司和我们联络,问我们是否愿意参加法国经济利益集团存储卡项目(Groupement d'intérêt économique Carte à mémoire)的招标。这个项目背后是法国电信总局以及一些法国银行组成的财团。这项招标旨在测试在现实生活中,IC卡在技术以及经济方面的可行性。飞利浦公司的另外两个竞争对手斯伦贝谢公司(Schlumberger)和布尔公司也参与了竞标。
负责这个计划的团队认为,应该在IC卡中植入加密技术,至少在身份验证时应该加密。从这次竞标起,我们就在飞利浦公司成立了致力于密码学研究的实验室。
1981年,经济利益集团存储卡项目开展了对IC卡的3次大规模试验。第一次是布尔公司在法国布卢瓦进行的,第二次是飞利浦公司在卡昂进行的,第三次是斯伦贝谢有限公司在里昂进行的。每次试验都用上了几百台终端和几万张IC卡。在准备进行试验的时候,我们开了几次会,为IC卡增添了加密功能和安全协议。
只有在布卢瓦进行的试验取得了令人满意的结果,于是布尔公司赢得了招标,后来为这个项目开发了IC卡。但是,当时的IC卡还远不够安全。原因很简单:要给IC卡增添加密协议的话,加密算法,尤其是公开密钥算法对于当时卡片的容量来说太大了。
而法国计算机安全服务中心的要求是非常高的:要防止不法分子挪用使用了强加密技术的物品。要用IC卡存储密钥或提供安全身份认证的话,必须满足这些条件。换句话说,IC卡的加密算法必须强到无法通过加密过程反向推导出解密过程。
加密算法之争
一开始,IC卡带有2个芯片,其中一个是处理器,另一个是储存器,这样就可以为算法提供更大的存储空间。但是我们觉察到,两个芯片间的连接是透明的,因此窃听处理器与存储器之间的数据交换是可能的(例如监测电流强度变化)。单芯片解决了这个问题,但是并没有解决容量的问题。
第一批IC卡的加密算法要么是单向算法,要么是可逆算法,但都只用一个密钥(比如Telepass 1卡、TDF卡、 Telepass2卡、Videopass卡等等)。对于当时IC卡的8位处理器,以及有限的计算速度和储存空间,这些算法很合适。完整安装的情况下这些算法大概只占用200个到300个字节,非常了不起。但是,由于这些算法并没有公开发表,因此它们在法国之外的使用和传播都受到了非常大的限制。
使得这些算法变得广为人知的是1984年欧洲密码学大会,这是关于密码学的第一次公开国际会议。纪佑在该会议上展示了IC卡以及条件接收系统。有人问他为什么他不用DES算法。DES算法是一种密钥长度为56位的加密算法,在1976年成为行业标准。他回答:“这是不可能的,因为ROM(随机存取存储器)太小了。”
这是我和我的团队当时准备着手应对的挑战。实际上在比利时当时正有一个名为TRASEC的银行间安全传输项目,这个项目使用IC卡来储存交易密钥,用户可以用自己的PIN码来使用IC卡进行交易。但是,密钥使用的DES算法要在一台没有保护的计算机上运行。如果将算法也植入IC卡中就能填补这个安全漏洞。在几个月里,我们一个一个字节地,将DES算法里的置换操作提取出来,并将其压缩。我们通过这个方式把安装算法占用的空间减少了总共668个字节:每个字节大约花了每个人1天的工作时间才完成。
芯片上的RSA加密演算法
但是,对于我们每个人来说,IC卡加密技术的圣杯并非DES算法,而是RSA算法。RSA算法的基础是大整数的因数分解,这种算法已经成为密码学的标准。在卡片中集成这个算法就能进行生成数字签名和密钥分配等操作了。英国牛津大学的保罗·巴雷特(Paul Barrett)于1986年为发明了一种新形式的RSA算法,该算法是专门为信号处理器设计的。
我们从巴雷特算法出发进行研究。在对IC卡进行了几次测试之后,我们终于实现在100秒之内执行512位的RSA算法。借助于一些技巧(对公共模数的存储,以及在求模运算中使用中国剩余定理——用于求解同余方程组的定理),我们就能用512位RSA模块在20秒内生成一个数字签名。这个结果已经非常漂亮,但是对于实际应用来说还是太慢,而且消耗过多计算资源。
1989年,飞利浦法国和德国公司的亨利·莫尔科(Henri Molko)向我们提出了一个大胆的建议:在芯片中加入一个RSA协处理器,与80C51处理器联合起来,可以在1秒内完成512位RSA数字签名。实际上后来我们仅用了0.2秒。在没有经费支持的情况下,我们参与到了这个名为 CORSAIR (Coprocessor RSA In a Rus)的项目中。
在5周内,我们用我在不久前发现的一种新算法设计出了几个协处理器的版本。这是对IC卡RSA算法的首次提速,提速后的运算速度达到之前的500倍。1990年初我们制作出了第一个原型硬件芯片,一切运转正常,唯一的缺憾就是在我们项目的后期,对卡片的可编程可擦除只读存储器(E²PROM)的写入速度“优化过度”了。
我后来另外设计出了一个叫做齐斯夸特算法的新算法。它与其他算法的不同之处在于,协处理器的从头到尾的执行时间并不取决于密钥的长度,而是固定的,因为在算法执行期间没有进行任何其他校验。这种算法能够防范通过测量算法执行时间来推测密钥的攻击行为。
芯片制造商间展开了一场第二代协处理器的竞赛。Fortress、西门子、英飞凌(Infineon)和飞利浦等公司都参与到了混战之中。1995年,飞利浦为了这场竞赛启动了一个新项目:FAME。这个项目的成果就是,我们制造出了速度比CORSAIR协处理器快500倍的新一代协处理器。它有何秘诀呢?改良了电路,增加了能将频率提高16倍的乘法器(该乘法器能够计算32位,而不是8位的编码数字)、带宽更大的总线(bus,信息传送线路)、端口宽度更大的双端口RAM,协处理器的处理链也改善了。时至今日,该协处理器的几种优化版本仍在被使用。和10年前的第一代8位软件版本相比,FAME 协处理器的速度提高了250 000倍。
IC卡应用的扩张适逢一些国家正要寻找评估计算机系统安全性的方法。美国最先推出了橙皮书(Orange Book),向北约提出了计算机安全性要达到一定水平所应遵照的标准。
很快各国发现,美国的提议实际是为了大力推销美国的产品,与他国竞争。作为回应,欧洲的一些国家各自提出了不同的议案,德国提出了绿皮书,英国提出了黄皮书,法国提出了蓝白红皮书。最终,欧盟控制住了局面,催生出了欧洲的安全评价标准,即ITSEC。这套标准让欧洲列国能够执行他们自己的认证计划。要注意的是,ITSEC与橙皮书不同,橙皮书确认的是安全机制是否存在,而ITSEC则会确认安全机制的有效性以及效率。
不久后,在大西洋两岸,以及世界上的其他地方就出现了一套各国都能接受的、一般性的安全标准,这就是信息安全通用标准(Common Criteria,CC)。不久,CC被转化为国际标准化组织(ISO)的标准。法国作为工作组主席,在该标准的编写过程中承担了决定性的工作。
实际上,当美国和英国主要关注不同操作系统以及类似于防火墙一类的安全工具的认证时,法国把精力投入到了IC卡领域。法国在这个领域的专长使其能够形成一定的垄断之势。
于是,那些著名的韩国、日本和美国公司(如摩托罗拉)纷纷委托法国对其产品进行评估。而法国在该领域的傲人能力,实际上源自法国电信(France Télécom)一个人数不多的研究团队。这个团队大约有十几个成员,他们与 SCSSI 合作,研发硬件和软件以及自动搜索漏洞的检测方法。这个团队后来被转移到法国原子能和替代能源委员会(CEA)旗下的信息技术实验室(Laboratoire des technologies de l' information,LETI)中。
保障IC卡组件的安全性需要生产企业付出大量努力,有时甚至需要对生产线进行大改造(如洁净室)。这些工作耗费的投资是巨大的。
1999年, Moneo 卡(这个电子钱包卡片没有得到预想的成功)在法国图尔正式发布,这家公司的首席执行官在现场正式接受了自己的安全证书,他在随后的演讲中称,这个安全证书让软件和开支都额外增大了20%,使产品超时30%才交付,并且让研发人员的汗水和压力也增多了50%。但是他对此后研发速度提升,以及最终的产品非常满意。
长久以来,加密技术保护下的IC卡一直被认为是最安全的支付方式。公开数据显示这种卡片的盗用率为0.03%。因此,该行业缺乏进一步加强安全措施的动力。尽管密钥的长度被专家认为太弱,但还是被原样保持了太长时间。因此,当 GIE 银行卡遭遇了亨佩琦事件,原本的乐观迅速演变了恐慌。
亨佩琦事件
1997年,自学成才的芯片工程师塞尔日·亨佩琦(Serge Humpich)成功地破解了 RSA 数字签名。当时该数字签名是静态的,和加密过程一样都储存在卡片中。后来他在巴黎大众运输公司(RATP)的yescard卡终端机上成功地使用了假卡,这些终端机对于小额交易不要求强认证。他试图靠这个技术赚上一笔,但因触犯了高德佛兰(Godfrain)法而被逮捕。2000年对他进行的审判为人们敲响了警钟,因为亨佩琦和类似的黑客是有能力通过传播 RSA 密钥而危害系统安全的。
实际上,纯靠技术手段盗用IC卡的案件是相当少的。多数案件主要归咎于受害者令人难以置信的天真,以及诈骗犯在社会工程学(指利用人的心理弱点进行欺诈和控制的手段)方面的高超技能。但是,当卡片具备了“非接触”功能后,IC卡真正的弱点才暴露出来。
已经有人证明,有办法在距离较近时黑入非接触IC卡,从而窃取高度敏感信息。法国信息与自由委员会(Commission nationale de l' informatique et des libertés,CNIL)得知后大为震动,并命令法国的银行在卡片持有者请求的情况下关闭这项功能,或者提供一个“法拉第笼”,以避免不必要的电磁干扰。
然而,还有更值得担忧的地方。不管IC卡片是接触的或非接触的,它本身也是一种安全设备。而现在网络和电信业巨头们打算用新的产品,把它替换掉。
例如,使用带有新功能的 SIM 卡,或是本身就具有这些新功能的手机。在这类手机上,通信工具以及身份识别和认证方法已融为一体。黑客对这样的趋势肯定是喜闻乐见的。这也为谷歌、苹果、Facebook和亚马逊等网络巨头提供了控制尚未被美国公司完全占领的领域的机会。
请 登录 发表评论