中文版 / ENGLISH 
华虹首页 关于我们 产品中心 解决方案 服务支持 人力资源 新闻中心 联系我们
SOLUTION 解决方案
公交一卡通
身份识别
移动支付
社会保障
电信智能卡
解决方案 首页 >> 解决方案 >> 

智能卡抵抗旁路攻击的思想

发布时间: 2011/3/21

智能卡抵抗旁路攻击的思想

The Thought of Resisting Side Channel Attack for Smart Card

n上海华虹集成电路有限责任公司  马博 包斯刚

 

摘要:旁路攻击从发展至今有数年的时间,现在已经成为攻击方法的主流,这种攻击的特点在于无论密码算法多么复杂,如果其自身得不到有效的保护,都有可能在相对较短的时限内被彻底攻破。如今,智能卡产品的使用范围十分广泛,小到门禁卡、餐饮卡,大至城市一卡通、银行卡和护照等等。正因为智能卡产品的使用不受时间、地点的约束,所以给攻击者提供了便利,旁路攻击又为攻击者提供了手段,因此智能卡如何抵御旁路攻击成为了焦点。本文将从宏观出发,简述旁路攻击的威胁,以及详述抵抗旁路攻击的思想。

关键词:智能卡;旁路攻击;功耗攻击;电磁攻击;时间攻击;错误攻击

引言

众所周知,智能卡如今已经成为人们生活中的一个重要组成部分,其实用性、方便性和简洁性都被大众所认可,尤其在消费类领域倍受青睐。从 早的就餐卡,公共交通卡到现在的城市一卡通,智能卡的功能在不断增加,性能在不断提高,及时满足新应用环境的需求。智能卡的便捷性在各个领域都可以体现,比如辅助身份认证、电子标签以及小额消费等等,但是另一个重要的问题也逐渐被人们所关注,那就是“智能卡安全吗?”。这个问题现已成为智能卡领域中的核心问题。

1. 智能卡安全性简述

为了保证在各种安全场合下的正常使用,智能卡嵌入了很多 的密码算法,包括对称密码和公钥密码。有了密码的保护,普通情况下没有授权的人无法得到智能卡中的秘密信息。换句话说,攻击者在应用 别只能获得传输过程中的密文数据,在智能卡的有效生命周期内,没有办法通过逆运算推导等方法破解并获取智能卡中敏感信息的明文表达。

但是,近十年来安全技术的发展告诉我们,仅有密码保护是不够的,旁路攻击就是一种有效破解密码运算的手段,它也是智能卡安全问题面临的 威胁。

2. 旁路攻击介绍

旁路攻击(Side Channel Attack),是指通过非正规的途径对智能卡密码系统进行攻击的方法。具体来说,智能卡工作时会泄漏旁路信息(Side Channel Information),攻击者通过分析这些旁路信息就可以获得密钥,有了密钥就可以把密文转化为明文。旁路信息是智能卡工作时的附带信息,主要表现为:错误信息、执行时间、功耗特征和电磁辐射等等。如图1所示,这些旁路信息都是随着智能卡工作时泄漏的,也是智能卡本身极难掩盖的信息。目前已经出现了不少利用旁路攻击破解智能卡的成功实验,由此可见旁路攻击对智能卡的威胁是实实在在的,智能卡的安全性遇到了新的挑战。


1 旁路攻击示意图

2.1 错误攻击(Fault Attack

错误攻击的实施方法是在密码运算过程中精确地导入一个错误,基于这个错误推算出密钥。这种方法需要高端的设备,但是一旦错误导入成功,攻击者就能获取密钥,RSA-CRT算法已被这种方法攻破。攻击者也会将智能卡置于异常环境中工作,比如异常温度、异常光照或者异常时钟频率等等,目的是让智能卡工作不正常,用于跳过一些常规的权限检测,从而得到更多的秘密信息,如图2所示。


2 错误攻击示意图

2.2 时间攻击(Timing Attack

如果智能卡对密钥信息的处理流程在时间上存在差别,那么攻击者通过观察时间上的差异能够分析出密钥信息。比如在条件判定等环节,若条件本身包含了密钥信息,而不同条件分支的处理时间又不同,攻击者会很容易知道操作是否符合条件,进而推算出密钥信息,如图3所示。


3 时间攻击示意图

2.3 功耗攻击(Power Attack

功耗攻击是目前较流行的旁路攻击方法,其原因是: ,智能卡内部的工作状态会反应在功耗上,攻击者可以从中获取对攻击有利的信息;其次,攻击环境容易搭建,对攻击者也没有过高的要求。功耗攻击分为简单功耗分析(SPA)和差分功耗分析( )两种,其在攻击理论及方法上大不相同。

SPA在破解思想上和时间攻击比较相似,假如智能卡处理密钥信息的流程在功耗上存在差异(如图4所示),攻击者将由此推导出密钥。


4 SPA示意图

是一种相对 的功耗攻击手段,它利用智能卡密码运算时内部数据和功耗的相关性做统计分析以获取密钥。根据有关理论,不同的数据通过同一段链路,功耗也会相应改变。不过这种相关性不是直观的,需要采集大量样本才能统计出来。 主要分为单指数多数据攻击(SEMD)和多指数但数据攻击(MESD)两种手段。

2.4 电磁攻击(Electromagnetic Attack

电磁攻击(EMA)和功耗攻击的后期分析方法大致相同,区别是电磁攻击采集的是智能卡工作时辐射出来的电磁信号,其效果比功耗特征更加清晰明显。但是,电磁攻击需要高端的电磁采集设备,实施攻击的门槛比较高。电磁攻击也分为简单电磁攻击(SEMA)和差分电磁攻击(DEMA)两种,在分析方面和SPA以及 类似。

3. 旁路攻击防御思想

智能卡如何抵御旁路攻击威胁成为了设计者和用户普遍关心的问题。在智能卡中,密码算法的保护作用相当于一道关卡,只有过了这道关卡才能得到真正的核心数据,而密钥相当于该关卡的通行证,所以攻击者的直接目的是获取密钥(公钥算法中的私钥)。因此,抵抗旁路攻击的思想也可以理解为怎样保护密钥。


5 密码算法示意图

3.1 源头防御

旁路信息等同于整个攻击流程的源头,如果图1中去掉了旁路信息那条链路,攻击者就无法对智能卡进行破解。所以, 彻底的防御办法就是关闭源头,使攻击者得不到任何一点旁路信息。

错误攻击的首要步骤是在密码运算过程中导入一个错误,由于该错误导致的错误计算结果就是旁路信息。有两种办法可以屏蔽此旁路信息:一是防止攻击者向智能卡导入错误,这需要对智能卡芯片本身进行完全的物理 保护,但是所花费的代价也很大,如图6a所示;另一种方法是加入检错机制,当检查到错误时进行报警操作,如图6b所示。

    

6a 物理防护                             6b 错误检查

时间攻击的旁路信息是处理密钥信息时不同流程上的时间差异。如果要从源头上堵截此旁路信息,就要在处理密钥信息时保证任何流程所需的时间都一致。比如将图3中两个流程中的处理时间平衡化。

密码运算时的功耗特征就是功耗攻击的旁路信息。其总的防御思想是在硬件上加以改造,做到无论智能卡内部做什么操作,功耗表现都是一致的,这样就彻底地从源头上封锁了旁路信息的泄露,但是这种方案会降低智能卡的性能。另外,源头防御可以将抗SPA和抗 分开来对待。对防御SPA而言,只要做到处理密钥信息时任何流程的功耗都保持一致就可以屏蔽旁路信息,比如令图4中两个流程中的功耗平衡化。而针对 的源头防御措施有些复杂,如果要阻截相应的旁路信息外漏,就必须保证密码运算时不同数据操作产生相同的功耗。要达到上述目的则需引入一种补偿机制,消除此类功耗的差别,比如应用双轨电路等等。不过,这种补偿机制所花费的代价是非常巨大的。

电磁攻击的旁路信息是密码运算时辐射出来的电磁信号。如果从源头上对电磁攻击进行防御,可以通过以下几种途径完成。 ,在智能卡芯片的物理 进行改造,防止内部的电磁信号向外辐射,这个办法 彻底,但实施起来有难度。第二,对硬件进行改造,做到任何情况下智能卡辐射出的电磁信号都不发生变化,此方法会提升设计难度而降低性能。第三,分别对待SEMADEMA,防御思想类似于抵抗SPA

3.2 降低旁路信噪比

信噪比指的是有效信号和噪声的比值,含义是信号质量的量化评价。旁路相当于一个信道,旁路信息就是在此信道被攻击者捕获的。如果可以令攻击者在有限的旁路信息中得到极少的有用信息,就能大大增加其攻击复杂度和攻击时间。若攻击时间大于智能卡的使用寿命,则达到了保护智能卡的目的。

该防御思想并不适用于防御错误攻击,主要应用在防御其它三种攻击手段。

若要降低时间攻击的旁路信噪比,可以在处理密钥信息时将智能卡芯片的工作时钟随机化,或者在密码运算过程中插入一些时间上的假操作,这样就可以起到迷惑攻击者和保护密钥信息的作用。

降低功耗攻击的旁路信噪比可以在设计中加入功耗上的噪声,比如增加额外的工作电流等等。对SPA而言,还可以像防御时间攻击那样,在密码运算过程中插入一些功耗上的假操作来降低旁路信噪比。

如果欲将电磁攻击旁路信噪比降低,可以在智能卡芯片中加入电磁噪声。抵御SEMA方面,也能够采用抗SPA那样的方案, 在密码运算过程中插入一些电磁信号上的假操作。

3.3 隐藏密钥信息

旁路攻击者得到旁路信息后就会开始着手分析其中的密钥信息,如果设计中就已经将密钥信息很好地隐藏起来,那么攻击者后期分析的代价和难度会急剧增加。这种隐藏应该是十分讲究的,因为真实的秘密信息就淹没在旁路信息之中,如果隐藏不好就会被攻击者获得,所以隐藏的方法必须是单向不可逆的,只有做到这样才能保证攻击者即便得到了足够的旁路信息也不能破解出密钥。

针对错误攻击,密钥信息隐藏法并不太适用,所以隐藏密钥信息的方法主要用来抵御其它三种攻击手段。

对于抵抗时间攻击来讲,可以通过重排密钥信息的处理次序来隐藏密钥信息,同时保证从旁路信息不可能逆推得出密钥信息,并且不影响 终的结果。做到了这一点,攻击者就无法对智能卡进行时间攻击,达到保护效果。

功耗攻击的防御中,对抗SPA可以参照抵抗时间攻击的方法,用重排密钥信息的处理次序隐藏密钥信息;抵抗 时,隐藏密钥信息的方法是对密码运算的输入进行 操作,用 后的数据进行运算就可以有效防御 攻击。

电磁攻击后续的分析方法和功耗攻击几乎相同,所以抵抗功耗攻击时隐藏密钥信息的策略可以直接用于防御电磁攻击。抗SPA的方法适用于防御SEMA攻击;抗 的方法适用于防御DEMA攻击。

结束语

智能卡用途广泛是毋庸置疑的,也正是因为它的使用范围太广,所以攻击者很容易得到一张智能卡并对其实施攻击。密码算法的引入保护了智能卡的隐私,但是旁路攻击的提出又使智能卡中密码运算的保护能力显得不足。理解了旁路攻击的手段和原理以后,针对不同的攻击方法可以运用相应的防御思想,智能卡芯片设计者可以根据具体的情况采用适当的防御策略,这些防御措施的加入可以更有效地保护智能卡。目前的实践中,一些智能卡产品已经将功耗攻击的防御思想融入其中,达到真正的安全应用。

参考文献

1.           P. Kocher, J. Jaffe, and B. Jun, “Introduction to Differential Power Analysis and Related Attacks,” http://www.cryptography.com/dpa/technical, 1998.

2.      Hagai Bar-El. Known Attacks against Smartcards[R]. Netherlands.

3.      Prof. Jean-Jacques Quisquater, Math Rizk. Side Channel Attacks[R]. Belgium2002.

4.      Elisabeth Oswald. On Side-Channel Attacks and the Application of Algorithmic Countermeasures [D]. Austria: Graz University of Technology, 2003.

5.         Thomas S. Messerges, Ezzy A. Dabbish, and Robert H. Sloan. Power Analysis Attacks of Modular Exponentiation in Smartcards [A]. Cryptographic Hardware and Embedded Systems[C]. Germany: Springer, 1999. 144-157.

6.         Jean-Sébastien Coron. Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems [A]. Cryptographic Hardware and Embedded Systems[C]. Germany: Springer, 1999. 292-302.

7.      Hideyo Maniya, Atsuko Miyaji, and Hiroaki Morimoto. Efficient Countermeasures against RPA, , and SPA [A]. Cryptographic Hardware and Embedded Systems[C]. Germany: Springer, 2004. 343-356.

              沪ICP备19002321号-1 公安全国联网备案编号 备案编号:31011502008572