产品资料搜索:

最新产品展示

  • LDM8035接触式模块
    接触式IC卡读写模块 支持SLE4442/4428 小型化 低功耗 方便使用
  • LDM522-MINI射频模块
    体积小(1.9cm*1.4cm) ISO14443-A以及Mifare, Ultrlight&EV1等的低功耗模块
  • LDM-A3射频读卡器
    支持ISO14443A/B 二代证ID 低功耗 免驱
  • LDM523射频读卡模块
    支持iso14443A/B 韦根接口 二代证ID
  • 微控制器(MCU)破解秘笈之三

    2009-4-6

    微控制器(MCU)破解秘笈之二            破解技术

                               
        安全微控制器和智能卡都是被设计成能保护敏感信息的机密性和完整性。但这并不能完全防止破解者找到所存储的密钥。不能被破解者修改密钥的一部分为已知值;或产生计算值的错误而导致敏感信息被推断出来。这些错误可以是数据的错误,如不正确的数字信号泄露密钥;或编码错误,如丢失跳转条件而减少密码模块的循环次数。
    3.1 简介
        对给定的产品评估篡改的难度系数是个重要的问题。不幸的是安全研究协会极少关心给硬件作安去评估。甚至芯片制造商都在试图避免对它们的产品进行安全保护原理的探讨。如果发现设计上硬件的安全问题,它们会尽可能静悄悄的解决,然后发布另一个版本的芯片。
        在安全类产品的说明书上没有什么安全保护的信息,通常仅列出已设计的防破解措施而不会讨论任何详情。一直有个严重的问题:是否对手能不受限地读写元器件。如果答案是否定的,那相对简单的试验就可以证实。例如:VISA安全模型对人们的特殊访问是有缺陷的, 一个服务工程师在维护的时候就很容易屏蔽掉防篡改保护电路系统,下一步就可以取得密钥材料。但银行不认为这是个问题,它们通常是把安全模块放在受监控的计算机房里,关掉对管理服务的访问。

        随着应用数量的不断增多,对手能获得完整的未授权访问而不是只能进入一次密码系统。包括我们感兴趣的下列东西:含MCU的工业设备,付费电视卡,预付费的水电表,软件的看门狗,硬件标签,汽车的遥控门锁和移动电话的SIM卡。很多类似的系统已经有方法破解。
        参考IBM的做法,依专业程度和攻击强度,破解可以分成三类:
      初级
      他们通常很有才智,但缺乏系统的知识。它们能够读写一些老旧的元器件。他们更乐于破解现有系统的弱点,而不是制造一个新的系统。
      中级
      他们有足够的技术和经验。它们能改变系统已知部分的安全等级,并可能读写大部分。通常有高精尖的工具和仪器来分析。
      高级
      他们的组织背景不凡,是由相关且技能互补的特殊人士组成的团队。有能力彻底分析整个系统,设计精巧的攻击方法,使用的是先进工具。中级有可能是它们团队的组成部分。
    3.1.1 保护等级
        评估半导体芯片的保护等级不是个容易的工作,要考虑太多的因素,从芯片的封装,芯片的版图到存储器的架构,存储器的类型,编程和读写接口,安全熔丝和安全密钥的位置,保护原理到别的安全特性如噪声检测,电源电压监测,保护用网格,防篡改电阻等。没有简单的方法来评估半导体元器件的安全特性,只有使用不同的攻击方法并检查结果。从另一方面来讲,半侵入式攻击比非侵入式更容易自动化操作;同时,需要的设备比侵入式便宜得多。这使得半侵入式攻击在在快速且相对便宜的硬件安全评估方面很有市场。
        来自IBM的文件也讨论了安全系统对不同攻击方法所具有的保护等级。他们建议分成六
    个安全等级,从没有任何安全保护的零级到实质上不可破解的高级:

    ● 零级
       系统中没有使用特别的安全措施,所有部分可以自由访问。例如,使用外部ROM的微控制器和FPGA。
    ● 低级
      使用了一些安全措施,但它的破解是相对容易的。如使用电烙铁和廉价的模拟示波器就可以破解。破解者需要时间,但不需要很久。如内部存储器无保护,但编程算法私有的MCU。
    ● 中低级
      安全措施可以抵挡大多数廉价的攻击手段。需要使用到昂贵的工具和特殊的知识,如对功耗分析和电源噪声敏感的微控制器。
    ● 中级
      需要使用到特殊的工具和设备,并需要特殊的技能和知识。攻击可能是相当耗时间,如防紫外线攻击的微控制器,旧的智能卡。
    ● 中高级
      设计上就特别关注安全保护。有攻击用设备但购买和使用都很昂贵。使用设备时需要使用到特殊的技巧和知识。如更高级安全保护的现代智能卡。复杂ASIC,安全型FPGA和CPLD。
    ● 高级
      可阻止所有已知的攻击,需要一个特别的团队来研究一种新的破解方法。某些破解用设备需要设计建造,不确定攻击是否会成功。只有大型的组织如半导体工厂或政府建立的实验室才能做到,如签名应用中的加密模块。
        实际元器件的安全等级不会永远保持不变的,将来有可能发现更廉价有效的破解方法。

    3.1.2 攻击种类
        对于安全评估,需要假定破解者可以获得多个目标元器件。我们所关心的破解目的是复原安全保护规则并获得存储在微控制器,智能卡或别的芯片级安全处理器中的密钥资料。
        可以把主要的攻击方法分为五类,
    ●   微探测技术可以用来直接访问芯片表面,可以用来观测,修改和干扰集成电路的工作。
    ●   反向工程用来推导半导体芯片的内部结构并学习或仿效它的功能。它需要破解者使用与制造商相似的技术和能力。
    ●   软件攻击用在处理器正常的通信接口上,从协议,密钥的算法或它们的执行模块来获得安全保护的弱点。
    ●   窃听技术使得破解者可以精确监控所能获得的模拟特性和接口的通信协议,以及处理器正常工作时的任意电磁辐射。
    ●   缺陷注入技术是在正常的工作条件下,使处理器发生操作错误来获得额外的读写能力。 微探测和反向工程技术是侵入式攻击,它们需要在特殊的实验室里花费数小时或数周的时间,来打开产品的封装。别的技术大多是非侵入式攻击。在进行攻击时,不需要从物理上破坏元器件。最后一种是半侵入式攻击。这意味着需要接近芯片里的晶粒,但不需要彻底的攻击,要用强光,射线,加热或别的来产生缺陷。
        非侵入式攻击对某些应用的威胁有二:一是元器件的所有人可能不会意识到密钥已经被盗,因此,危及安全的有效密钥在被滥用之前是不会被废除的。二是非侵入式攻击弹性大,被攻击的元器件可以用来廉价地进行再生产和更新。
        大多数非侵入式攻击需要非常熟悉处理器的硬件和软件。另一方面,侵入式的微探测攻击只需很少的预备知识,且通常可以破解用同样技术制造的不同产品。通常攻击从反向工程开始,获得的结果有助于研究更快更廉价的非侵入式攻击。半侵入式攻击可以用来学习元器件的功能和测试它的安全电路。它不需要与芯片的内部某层建立物理的连接,不需要使用昂贵的设备,如激光切割器或FIB机器,被成功用于进行简单的闪光灯或点状激光攻击。
        攻击可以是可逆的,元器件可以回到初始状态,或者使元器件永久修改而不能恢复。如功耗分析和微探测技术可以不用损伤元器件就可以得到结果。当然微探测攻击会留下痕迹,但通常不会影响元器件以后的运行。缺陷注入和紫外线攻击几乎可以把微控制器置于不稳定状态,可以改变内部电阻,或存储器不能复原。另外,紫外线攻击会留下篡改痕迹。

    3.1.3 攻击过程
        因目标不同,有不同的攻击方法。有时候盗版市场上热销的产品就很容易赚到钱。大的厂商会考虑从元器件中窃取IP并与自己的IP混合以掩饰盗窃行为。别的公司也许会窃取元器件内的秘密资料,用以开发竞争的产品或卖给别人。产品的设计者首先必须考虑被攻击的可能动机,然后是考虑保护原理。下列攻击过程在系统设计时应该考虑。
        来自个人的攻击,他们想降低配件的成本。对于大公司来讲,与增加设计方面的投资相比,它们对增加销售额更感兴趣。例如,狡猾的竞争对手会复制现有的产品来降低研发成本。当然,它们会在盗窃行为的伪装方面下点功夫。但与完整的研发成本相比,这些开销可以忽略的。IP盗版的常见行为是多做一些。常见于厂商的实际制造数量大于所需数量时。多余部分就会被卖到市场上,或给第三方。
        服务盗窃通常发生在用电子元器件提供对信息或服务的访问控制时。例如有线或卫星电视公司会控制所能看到的频道。如果窃贼能绕过安全系统或模拟该设备,那服务提供商就有损失了。如果有大量的盗窃者正常收视,那服务提供商就亏大了。
        竞争对手可以使用拒绝服务来诋毁原始的产品。这在设备通过网络更新固件时容易发生。如果竞争对手能够对设备进行反向工程并导出更新用的协议,就可以发布恶意的更新代码来破坏设备。如通过更新配置文件可以永久损坏FPGA。现代的微控制器和智能卡用闪存来保存程序代码,如果擦掉了闪存,元器件就不会正常工作了。开发者需要小心设计固件更新功能以防止未授权的访问。

    3.2 非侵入式攻击
        常用的非侵入式攻击方法有抖动电源的电压和抖动时钟信号。欠压和过压攻击用来屏蔽掉保护电路,或强制处理器误操作。因此,安全处理器会有电压检测电路,但它对快速的瞬间波动没有作用。电源和时钟瞬间波动也可以用在某些处理器中来影响个别指令的解码和执行。
        另一种是电流分析。可以用模数转换器来测量元器件消耗的电流。驱动地址和数据总线时,每一位都要反向后上拉,每位都要驱动一个很大的电容负载。这会导致在状态翻转时电源出现明显的短路脉冲。单条总线从1翻转到0或反之,在时钟边沿需要0.5-1mA的漏极电流。一个12位的模数转换器就可以用来推测任意时刻翻转的总线位数。SRAM写操作通常有最强的信号。
        另一个可能的威胁是数据的保持能力,这是易失存储器在掉电后保存信息的能力。保存在静态RAM里的密钥可以在较长时间后的下次上电时恢复。另一种可能是用低温来“冰冻”存储器的内容。这样,静态RAM里的信息可以保存足够长的时间,就可以访问芯片并读出内容。同样可以用在非易失的存储器中,可以检测出浮栅中的残留电子。例如,它会影响晶体管导通的阈值电压,或开关时的时间参数。
        下一个可能被攻击的方向是接口信号和访问协议。同样,如果安全协议被错误执行,会留下被攻击的隐患。一些微控制器和智能卡有工厂测试用的接口,那可以访问芯片上的存储器以及允许制造商测试元器件。如果一个破解者能够找到这个接口,就很容易导出保存在芯片里的信息。一般的测试电路信息由制造商来保密,但破解者可以用不同的电压和逻辑电平加到引脚上就有可能使芯片进入测试模式。这种方法有时对微控制器有效,但智能卡的测试电路通常会在使用后破坏掉。同样,嵌入的软件升级功能必须防止未授权的代码访问,或者
    代码只能加密后发出。

    3.3 侵入式攻击
        对于复杂的侵入式攻击,某些部分只能使用昂贵的实验室设备来完成。廉价的攻击通常是使用二手的测试设备才能做到。有足够的耐心和技巧,通过二手市场或自行设计是可以解决设备问题的。
        侵入式攻击首先是打开芯片的封装。打开后就可以进行探针检测并修改攻击。侵入式攻击的最重要工具是微探针工作站。主要部件是个特殊的带长焦物镜的光学显微镜。安装在带测试座的稳定平台上,探针臂可以在芯片表面以亚微米的精度步进。比头发丝还细的探针安装在末端,可以接触到芯片内部总线而不损伤它们。
        在已打开封装的芯片表面,顶层的铝互联线被一层钝化层保护,通常是硅氧化物或氮化物,用来保护不受环境和离子的侵袭。这些钝化层在探针接触之前必须除去。一般是用激光来切出小孔,切除时需谨慎确定激光的能量大小。可以做到仅仅在钝化层上暴露单条总线。这就能防止意外连接到旁边的线,小孔也可以固定住探针的位置,减少震动和温度的影响。
        除ROM外,直接从单个存储器单元中读出存储的信息并不常见。存储的数据可以通过存储器总线来访问,那样所有的数据都在同一个位置出现。微探针可以用来搜索总线并记录探测到的值。
        为了不用软件就能读出所有的存储器,可以修改处理器的某一部分,如地址计数器,用以访问存储器。程序计数器在每个指令周期都在增加,用来读下一个地址,这极为适合作地址发生器。只需防止处理器执行跳转,调用或返回指令,那些指令会扰乱程序计数器的正常读状态。很容易通过激光来割开正确的金属互联,对指令解码或程序计数器电路进行微小修改,就可以达到所要得果。                                                                                        

           另一种方法是理解元器件的工作原理来进行反向工程。第一步是建立处理器的示意图。这可以用带摄像头的光学显微镜来获得高分辨率的芯片表面图案。对于基本的体系结构,通过学习识别连接图案,跟踪明显模块边缘的金属线,如数据和地址总线,可以轻易标定出来。所有的处理模块通常是通过总线连在一起的,很容易识别出总线的锁存器和驱动器。
        大部分现代的微控制器和智能卡是用0.25-0.5微米的工艺制造的,有2-4个金属层。可以通过手动检查和光学技术来进行反向工程,但需要一些特殊的操作来除去特定层的金属。下一代的微控制器将使用更细的工艺线宽和更多的金属层,将需要使用更昂贵的工具如扫描电子显微镜(SEM:Scanning Electron Microscope)。
        可以用聚焦离子束(FIB:Focused Ion Beam)来修改芯片结构。FIB与SEM类似,但它能够用来切割金属和多晶硅互联,以亚微米的精度做个新的互联。如果使用激光干涉台,可以在芯片表面进行盲操作。芯片可以从背面磨薄至几十微米。使用激光干涉仪操作或红外成像,可以定位到单个晶体管,通过在底层的硅挖个合适的孔来进行连通。这种背面侵入技术很早就有人使用了,现在更普遍。

    3.4 半侵入式攻击
        在先前讨论的非侵入式和侵入式攻击之间有个巨大的间隙,很多种攻击方法在这个间隙里面,比典型的侵入式攻击便宜,与非侵入式攻击一样可重复。这就是即将要介绍的新一类攻击方法---半侵入式攻击。如侵入式攻击一样它们需要打开芯片的封装来访问芯片表面,但钝化层保持完整,半侵入式攻击不需要剥离钝化层或创建内部互联。无需使用微探针,FIB,激光切割器之类的昂贵仪器。
        半侵入式攻击不是全新的,多年前在EPROM和OTP型微控制器中用紫外线来屏蔽安全熔丝,现代微控制器很少受到此类攻击,因为设计时考虑过。
        先进成像技术也能作半侵入式攻击。包括红外,激光扫描和热成像。它们中的某些可以用在芯片的背面,这对现代多层金属设计的芯片很有效。某些技术可以观测芯片内部单个晶体管的状态。
        半侵入式攻击中的缺陷注入攻击方法可以修改SRAM中的内容,改变芯片内任意单个晶体管的状态,这几乎可以无限制地控制芯片操作并任意使用保护机制。
        与非侵入式攻击相比,半侵入式攻击需要打开芯片的封装。但是设备比侵入式的便宜很多.可以在适当短的时间内完成攻击。同时可以缩小到确定的范围,足够的技巧和知识有助于快速简易地进行破解。进行攻击时的某些操作,如搜索安全熔丝,可以自动进行。与侵入式攻击相比,半侵入式攻击不需要精确定位,它通常对所有晶体管或部分区域的晶体管有效。

    © 2014 龙达科技有限公司版权所有,所有内容未经许可严禁复制