0900723 旁信道攻发布十年及其对密码模块安全测试的影响文档格式.docx
《0900723 旁信道攻发布十年及其对密码模块安全测试的影响文档格式.docx》由会员分享,可在线阅读,更多相关《0900723 旁信道攻发布十年及其对密码模块安全测试的影响文档格式.docx(48页珍藏版)》请在冰点文库上搜索。
但在过程中,却对安全机制的现实作了种种假设,譬如,加密运算是一个理想的“黑盒子”,内部既不被观察,也不被任何恶意实体所干扰。
在这些假设配下下,安全级别普遍以加密算法数学特征及其密钥长度形式量化。
但事实上,这些安全机制本身远远达不到完全的安全[42]。
以为攻击者会直接与计算复杂度较劲,来破解安全机制中的加密基本单元这种设想是不切和实际的。
文献[114]中,有一个强加密算法与高安全门锁之间有趣的类比:
企图入室的窃贼很少采用撬锁的伎俩,而可能越窗、破坏门上小五金,或者在主人准备进门时抢走他们的钥匙。
同样,几乎已知的所有对密码系统的安全性攻击,都是瞄准执行/调度机构、对准加密算法的的弱点下手。
这些薄弱环节使攻击者完全绕过、或者显著削弱那些理论强大的安全措施。
一个加密系统尚且安全,最重要的是密钥——用来实行必要的安全服务——不能以任何方式泄露。
既然加密算法本身已被专家们研究很长时间,黑客们似乎更喜欢对封装有密码单元的软硬件系统发起攻击。
过去几年来,Kocher把攻击划分为若干等级,[49,50]。
这些攻击产生效果,是因为在计算过程不同时点上,得到的物理度量与处理器内部状态之间存在相关性,而处理器内部状态自身又与密钥有关系。
在现实中,加密算法通常由软件、或由与环境交互并受其影响的物理设备上的硬件实施。
敌手譬如Eve能引发这些物理交互作用并加以监控,产生对密码分析学有用的信息,称作旁信道信息side-channelinformation,采用旁信道信息进行攻击,称作旁信道攻击(SCA)。
旁信道攻击的根本思想是关注加密算法的执行方法,甚于加密算法自身。
不难发现,常规密码分析把加密算法当作一个纯数学对象来对待;
而旁信道密码分析所关注的是算法的实施。
因此SCA攻击也称作攻击性实施implementationonattacks。
任何加密算法都必须被编码,以便正确实现其功能,这些被编码的算法绝不能泄露所用的私钥信息,尽管敌手有能力窥视和操控正运行着的算法。
首起与SCA攻击有关的官方信息可以追溯到1965年。
P.Wright(那时一名供职于英国政府通讯总部GCHQ的科学家)在[113]中报告,英国情报机构MI5正在破解伦敦埃及使馆使用的密码,但是他们的努力被电脑计算能力极限所困扰。
Wright建议在埃及人使用的旋转式密码机旁放一个麦克风,侦测机器产生的咔嗒声。
通过倾听密码员每天早晨将密码机复位的咔嗒声,MI5成功解析出该机器2或3个旋转器的核心位置。
这个附加信息减少了破译密码的计算量,使得MI5暗中监视那位埃及大使的通讯多年。
另一方面,公钥体制研究社团有关SCA攻击的原创性开拓,以及后来许多前瞻性思想要归功于PaulKocher,,[49,59,64]。
SCA攻击的基本原理很容易掌握,它能发挥作用是因为:
计算过程中采集的物理度量(如:
功耗、计算时间、电动势辐射等),和处理器内部状态(又与密钥自相关)之间具有相关性。
SCA攻击企图寻找的,正是这种旁信道信息与密钥关联运算之间相关性。
事实证明,与常规基于数学分析的攻击相比,SCA攻击效果要高出几个数量级,并容易上手。
在协议设计protocoldesign甚至软件构架softwareconstruction领域,可以采用一系列正式技术模拟待设计的器件、模拟敌手攻击的作用范围,然后对待提供器件的正确性进行推断。
在抽象模拟中,我们对于该器件的抗攻击性就有了一些把握。
但是,当我们把一个抽象的安全意图表达,朝着作为物理世界中一个真实过程的实施例转移时,事情变得困难起来。
现实世界开显了抽象遮掩下的微妙差别,使意涵变得丰富而明晰allthereal-worldnuancesthattheabstractionhidbecomesignificant。
在现实世界中这个加密器件的边界是什么?
敌手可观察的输出是什么?
敌手出于操控目的,施加于该器件的输入是什么?
这些问题虽然难以流畅表述,但要设计一个系统构架来防御任意攻击,必须要将这些问题表述清楚。
况且,物理的计算动作通常能产生可被敌手观测的物理效应。
这些观察数据有时会泄露受密码模块构架保护的内部敏感数据。
这种方式的攻击,也称作旁信道分析(side-channelanalysis),因为模块或器件信息泄露渠道,不经由意想中的主接口。
凭借对加密装置施加物理攻击,敌手期望以某种方式颠覆加密装置的安全正确性处置securitycorrectnessproperties,通常是析取安全装置一些按规定不应泄露的秘密。
乍一看来,为达此目的自然就是直接进入:
绕开密码模块的保护直接读取数据。
所幸的是,从设计原则上说,一种称作抗干扰tamper-resistant的技术能轻而易举地阻击种直接攻击。
虽然直接入侵常常得手,但一种更复杂的非直接入侵出现了:
敌手另外通过一些物理故障,将一个错误引入模块运行中,如果模块忽略这个错误继续运行,最终将会泄露足够的信息让敌手重现该秘密。
贝尔通讯研究所Bellcore的研究人员率先描述了这种攻击,有关内容发表在一篇有关对执行RSA中国剩余定理CRT的加密硬件引入错误的理论文章中[90]。
这一结果引发了雪崩式式跟随效应。
其中一个支脉就发展成为所谓DFA差分故障分析differentialfaultanalysis。
这些理论上的攻击最后成为现实,且被证实;
并按照原创论文作者被命名为Bellcore攻击[90]。
当今系统安全通常称作可信任平台模块TrustedPlatformModule(TPM)。
TPM通常以加密安全模块的面目出现,它是TPM的核心[131,169]。
该密码模块的关键成分是拥有秘密信息并应用它——尽管敌手有企图,也许是直接物理入侵,企图得到这些秘密信息。
像智能卡这些单芯片器件经常被攻击团伙光顾,也许是由于智能卡在低端商业应用中普遍存在(动机),以及低成本(试验和对大群体破坏性分析)。
Anderson和Kuhn在其著作中,,[2,3,7]列举各种行之有效的技术,对它们进行启发式、且引人关注的勘验与评述。
近来,有两个事件引起了密码、特别是SCA攻击研究者的注意,这就是:
抗旁信道分析设计流程SCARD(SideChannelAnalysisResistantDesignFlow)计划[120];
和欧洲卓越密码网络ECRYPT(EuropeanNetworkofExcellenceforCryptology)计划[121]。
它们都是国际合作项目,欧洲研究成员来自密码研究机构和相关产业。
ACARD项目提出强化典型的微芯片设计流程。
从高层系统定义highlevelsysyemdescription开始,统摄寄存器传输层定义registertransferlayerdescription,下及门级网络列表gatelevelnetlists,最后到安排placement和微芯片的路径routingofthemicro-chip设计——这一切都是为了给设计出抗旁信道分析的电路和系统提供手段。
再者,还需要采用始终如一的方式,对旁信道分析的所有现象进行研究;
提供合适的分析工具,以及为安全系统设计师们设计出所需要的工具。
实际上,这些传统微芯片设计流程中附加性设计流程,是设计下一代安全和相关器件所必须的。
ECRYPT是由信息协会技术程序欧洲委员会出资的一个4年网络计划。
它被归入一个针对全球可信任安全框架的行动线actionline,其目的是加强欧洲在信息安全领域,尤其是密码和数字水印方面的研究合作。
为了达到这一目的,有32位一流科学家将他们的研究能力融合在5个虚拟实验室中,以关注不同的核心研究领域,并由其中一个实验室可靠、高效地进行整合(VAMIRE)。
该“整合器”有4个工作组,其中之一就是SCA分析研究组。
随着SCARD和ECRYPT的临近,经过初步评估,我们认为欧洲是世界抗SCA攻击合作研究的步伐迈得最深入的洲际大陆。
一个有趣的实事是,SCA攻击评估往往在好几年前被明确提出,它被包含在国际标准构架(譬如3GPP构架)的密码算法评估中[8]。
然而,由于缺乏可测试方法和实用工具,这种具有洞见的建议最终在人们的视野中只留下空虚的景象。
因此,对于这些标准体的最终评估报告会得出“可以断定,在设计过程中要设计一个总体算法框架,其自身对SCA攻击不具有脆弱性是不可行的”[119],这样的结论,就非常容易理解了。
最近,Tiri和Verbauwhede提出了一种数字VLSI设计流程,产生安全、抗SCA攻击的集成电路芯片(以下称作IC)[66]。
虽然这是IC安全设计首次有意义的尝试,但在全面、自上而下自动化的同步VLSI设计流程中,他们仅考虑了功耗分析攻击poweranalysisattack,该设计流程所追求的是恒定功率耗散constantpowerdissipation。
Kocher等人[64]提出了安全应作为嵌入式系统内在固有部分的设计观点。
Ravi等人[63]探讨了安全嵌入式系统的一般性抗干扰机制tamperresistantmechanisms。
他们开发了一种初步的系统安全嵌入式系统设计途径apreliminarysystematicsecurityembeddedsystemdesignapproach。
在该案例研究中引入一种可信码基trustedcodebase的概念,假设可信计算是基于安全的操作系统环境中。
SCA威胁也引起了“片上网络”NoC的研究社团[11]的注意,Gebotys等提出一种NoC安全框架,具体做法是:
提供网络级的对称密钥实现密钥配送;
在核心层通过带描述的软件修改atthecorelevelbyillustratingmodificationofsoftware,以极低的开销提高抗功耗分析攻击的安全性[11]withextremelylowoverheadsforaddedsecurityagainstpowerattacks。
显然,仅仅强于对付常规密码攻击的加密算法,而不能在各种平台上被安全地加以操作执行,这种加密算法是没有用处的。
早在AES和NESSIE过程中,密码界就已经作出这种结论。
本论文的部分动机是:
了解SCA攻击的历史,认识到SCA攻击的严重性;
评估SCA对密码模块安全性测试的影响;
识别这一领域可能的研发方向。
本论文余下部分的结构是:
第2节介绍SCA模型;
第3节扼要回顾FIPS140标准;
第4节对SCA分类;
第5节展现迄今发现的具体旁信道(攻击)及其对策;
第6节我们给出SCA对密码模块安全测试影响的一些看法;
第7节为结论。
2旁信道攻击模型
至少可以从两个视角来看待一个密码基本单元cryptographicprimitive。
一方面,可以把它看作一个抽象的数学对象(一种变换,可能是由一个密钥介入的参数化过程,将一些输入转变为一些输出中);
另一方面,看到这个基本单元最终必须在一个程序中被执行,该程序是在给定环境中,运行在一个给定的处理器中,因而会使基本单元呈现出特定规格参数specificcharacteristics。
第一种是“经典”密码分析的观点;
第二种是旁信道密码分析的观点。
旁信道密码分析利用特定规格参数的执行,找回计算过程中介入的秘密参数。
因此,执行越不一般化(由于对于给定执行步骤都是明确特定的),比经典密码分析法越有优势,对此密码计划实施者深切认同andisconsideredveryseriouslybycryptographicdevices’implementors。
传统密码分析中,评估加密协议的安全性时,我们假定敌手具备该协议的详细描述,拥有全部公钥,只是对私钥知之甚少。
此外,敌手也许已经拦截了合法伙伴之间某些交换信息,甚至获得了某些数据特性的控制权controloverthenatureofthisdata(比如,在一个签名机制中asignaturescheme,选择特定的消息,以实施chosen-message攻击;
在一个公钥加密机制中,选择特定的密文,以实施chosen-ciphertext攻击)。
然后,敌手企图损害加密协议,其手段要么解决一个根本、并假设是难以对付的问题;
要么利用协议中的设计缺陷。
在此过程中,数学抽象mathematicalabstrction是研究密码基本单元一个十分有用的工具。
密码分析员把它们看成用于图1类似环境下的数学函数,来评估密码机制的安全性。
从传统意义上说,安全的加密算法所提供的安全功能抵挡了敌手的攻击,而且敌手仅以黑箱black-box方式使用可靠伙伴们的秘密信息(参见图1)。
但是,这种模型不能适应其它情况,特别是受到可实行的企图篡改密钥攻击时attacksthattrytotamperwiththesecretkey,这些算法的安全性有可能完全瓦解。
传统安全模型下的攻击行为,所利用的是协议的数学规格定义themathematicalspecificationoftheprotocol。
近年来,研究人员越来越关注的是:
利用实施和操作环境具体特性发起攻击的可能性specificpropertiesoftheimplementationandoperatingenvironment。
旁信道攻击SCA运用执行协议时所泄露的信息,这在传统安全模型中是未加考虑的。
举例说,敌手可以监测智能卡的密钥作解密和签名时运算的功耗或电磁辐射;
敌手也可以测量加密运算的时间,或者分析加密器件遭遇确定故障时的行为。
实施中旁信道信息容易采集,所以评估整个系统的安全性时,对SCA的威胁进行量化是非常重要的,参见图2所示的情境:
旁信道的定义是:
系统中不欲输出的信道。
PaulKocher在1996年发表了具有重大影响的论文《Diffie-Hellman、RSA、DSS等密码机制实施中的计时攻击》(TimingAttacksonImplementationofDiffie-Hellman,RSA,DSS,andOtherSystems)表明,密码的非恒定运行时间non-costantrunningtimeofciphers能够泄漏密钥信息。
当执行采用最优化计算时,问题就更加明显了。
须指出的是,一个特定的SCA攻击在某些环境中也许构不成现实的威胁。
比如,遇到下列情况,测量加密器件的功耗进行攻击,被认为是花架子,这就是当密码器件为智能卡,并且它从外部,非信任的资源汲取电源时。
另一方面,假如该器件是一个工作站,位于安全办公室的,那么功耗攻击的威胁也不大。
3FIPS140标准及相关问题
FIPS140是一种标准,被美国联邦组织用来定义一个基于密码的安全系统,对敏感或有价值数据提供保护(维护信息的机密性和完整性)。
FIPS140标准通过一个密码模块对被满足的安全需求进行定义。
该密码模块具有4个递增、量化的安全等级(1级最低,4级最高)概括如下:
3.1安全级1
提供最低级别的安全。
它定义了密码模块仅由软件实施的基本的安全需求。
3.2安全级2
以增加破坏存迹涂层、密封、或者抗拆锁等措施,改善安全级别1密码模块的物理安全。
3.3安全级3
强化的物理安全需求,旨在防止入侵者接近模块所持有的关键性安全参数。
3.4安全级4
提供最高级别的安全。
本级别的物理安全,是指提供一个保护性封套包裹密码模块,并能检测出任意方向的(信息)泄露。
这些安全等级用来覆盖广阔的潜在应用和密码模块能够使用的环境。
安全性要求覆盖了11个与安全设计及密码模块执行有关的领域,其中有:
密码模块规格说明;
密码模块端口和接口;
规则roles;
服务和认证authentication;
有限状态模型finitestatemodel;
物理安全;
操作环境;
密钥管理;
电磁接口/电磁兼容性EMI/EMC;
自测selftest;
设计担保designassurance;
攻击抑制mitigationofotherattacks。
每隔五年对FIPS140进行再调查再确认reexamineorreaffirm。
FIPS140-1定义了计算机、通信系统(包括声音系统)的非保密信息保护所使用密码模块须被满足的安全需求。
2001年FIPS140-2取代了FIPS140-1,它对后者作了技术修改,并罗列了自FIPS140-1发表以来的技术进步。
实际上FIPS140-2当前版也存在问题。
首先,是主要内容聚焦在硬件模块上,未能与软件充分适应。
希望FIPS140-3能改变这种状态。
第二,被测试系统的覆盖范围太窄。
需要向通用标准CommonCriteria看齐,功能协议中的安全薄弱环节thesecurityvulnerabilitiesoffunctionalprotocols需要加强;
最后,这一版本的功能需求已经过时。
所定义的需求在理论和实践上都落后于信息安全的实际需要。
同时,FIPS140复杂的确认validation过程体现了:
创造硬加密算法和模块的优点难于实现。
在11个领域中以下4个似乎困难最大:
物理安全,自测,随机数产生和密钥管理。
特别是,就SCA而言,FIPS140-1并不明显关注密码模块针对旁信道攻击的安全性;
而FIPS140-2只是简单应付一下抑制攻击,对此目前还没有定义出可测试的需求。
4SCA分类
在技术文献中对于旁信道攻击的分类通常是沿着下面三个相互垂直的坐标方向展开:
◆干预计算的类型controloverthecomputationprocess
◆接近密码模块的方式thewayofaccessingthemodule
◆采用的分析方法themethodusedintheanalysisprocess
4.1干预计算的类型
根据攻击者对计算过程进行干预,SCA攻击大体上分为两类:
被动攻击和主动攻击。
1)被动攻击
不明显干扰目标系统的运作。
攻击者获得目标系统运作的某些信息,但目标系统的行为就像没有攻击发生一样。
2)主动攻击
敌手对目标系统的行为施加某些影响。
但遭受主动攻击的目标系统也许能或不能监测到这种影响。
一个局外的观察者将能注意到目标系统该项运作上的一些差异。
3)区别被/主动攻击差异的关键
要看攻击的内在特性,而不是攻击实施时它的物理侵扰程度theintrusivenessofanyphysicalimplementationoftheattack。
4.2接近密码模块的方式
当我们分析密码硬件模块的安全性时,系统回顾一下攻击面attacksurface是很有用的。
所谓攻击面是物理、电子、和逻辑界面的集合thesetofphysical,electricalandlogicalinterfaces,它们曝露在潜在对手的窥探之下。
按照窥探的程度,Anderson等人[111]将这类攻击分为侵入式攻击,半侵入施攻击,非侵入式攻击。
1)侵入式攻击InvasiveAttacks
一个侵入式攻击包括,解除包裹层,直接进入到密码模块或设备的内部器件。
一个典型案例是,攻击者在密码模块钝化层打一个孔,将探针植入数据总线窃取数据传输。
一般在硬件中实施防篡改tamperresistant或者回应机制responsivemechanisms来有效防御侵入式攻击。
例如,当检测到发生篡改时,更高安全级别的一些密码模块将清零它们的所有内存[116]。
2)半侵入式攻击Semi-invasiveAttacks
此概念由Skorobogatov和Anderson首创[95]。
此类攻击仍要进入设备,但不损害钝化层;
或者实施电子接触,除了授权层makingelectricalcontactotherthanwiththeauthorizedsurface。
举例说,在错误诱发攻击fault-inducedattack中,攻击者可以用激光束让器件产生离子化,对内存作某些改变,从而改变这个器件的输出。
3)非侵入式攻击Non-invasiveAttacks
包括近距离观察或操控该器件的运作。
这类攻击仅利用在外部可获得、通常是无意识泄露的信息。
典型的例子是计时分析timinganalysis,具体是:
对器件执行一个运算所用的时间进行测量,分析它与特定计算性能之间的相关性,以推算密钥。
此类攻击的一个重要特点是完全不可侦测。
举例说,没有办法让智能卡辨别出,它的计算时间正在被监测。
4.3采用的分析方法
根据分析样本数据过程中所采用的方法,SCA攻击分为简单旁信道攻击(下文称作SSCA)和差分旁信道攻击(下文称作DSCA)。
1)简单旁信道攻击SSCA
攻击探究旁信道输出,主要依靠执行的运算theperformedoperation。
具有代表性的是采用单迹asingletrace进行分析,这样密钥可以直接从旁信道迹side-channeltrace中读出。
显然,与受攻击指令有关的旁信道信息(信号),必须比指令无关的旁信道信息(噪声)要长[154]。
SSCA所要探究的是一种关系relationship,即被执行的指令theexecutedinstructions与旁信道输出theside-channeloutput之间的关系。
2)差分旁信道攻击DSCA
当简单旁信道攻击SSCA测量中噪声太多,变得无法进行时,采用统计方法的差分旁信道攻击方法DSCA就被加以尝试。
DSCA探究的是一种相关性correlation,即被处理的数据theprocesseddata与旁信道