MCU制造商必需掌握的7种攻防技术,原来黑客是这样使坏的 (mcu制造商必需掌握的技能)
整理分享MCU制造商必需掌握的7种攻防技术,原来黑客是这样使坏的 (mcu制造商必需掌握的技能),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:mcu制造工艺,mcu行业,mcu制造工艺,mcu制造工艺,mcu生产商,mcu制造商必需掌握的技术,做mcu的厂家,mcu制造商必需掌握的技能,内容如对您有帮助,希望把内容链接给更多的朋友!
半导体制造商给大客户提供了增强产品防pojie能力的措施:包装上的客户印字代替了标准的芯片型号。这给人的印象是产品是由定制的集成电路规划的。众所周知,ASIC提供了很好地保护措施来防止多种攻击,只有极少数经验丰富且装备精良的pojie者才有可能成功pojie。这会使很多潜在的pojie者望而却步。但一个信心坚定的pojie者会尝试用简单的方式确定芯片是不是真的ASIC。最简单的方式是观察连接到电源,地,时钟,复位,串口或别的接口的引脚。与数据库中被怀疑的微*相比较,这种结果非常可靠,因每种微*都有自己的引脚特点。一旦发现相似的,就把它放在通用烧写器上尝试读出结果。 另一个简单的方式是*访问程序储存器。通常用在智能卡中,但一些微*中也用到。这不是很可靠且实用的方式。当然在智能卡中用得很好,所有的客户被与芯片制造商迫签署不扩散协议。但微*极少这样,能被通用烧写器烧写的微*世界上很多公司都能提供。即使文件中没有烧写的规格,用低成本的示波器几个小时就可以套出需要的波形。如果微*不被特殊通用烧写器所支持,依旧可以通过从制造商购买开发板来获得直接完整的协议。 时序攻击(Timingattacks) 一些安全相关的*作运用输入的值和密钥,由半导体芯片执行不一样的时间来比较。小心的时序测量和分析就能恢复出密钥。这个方式最早在年的文献上提到。稍后这种攻击成功pojie了实际的RSA签名的智能卡。 为了攻击成功,需要收集装置的信息,与处理时间整合比较,如问答延迟(question-answerdelay)。很多密码算法容易受到时序攻击,主要原因是软件来执行算法。那包括执行适时跳过需要的分支和*作条件;运用缓存;不固定时间处理指令如倍频和分频;还有大量的其他原因。结果就是执行能力典型地取决于密钥和输入的数据。 为防止此类攻击可以运用盲签名(Blindingsignatures)技术。这个方式是利用选定的随机数与输入数据混合来防止pojie者知道输入数据的数*算法则。 时序攻击可用在安全保护是基于密码的微*,或运用确定数字的卡或密码来进行访问控制的*,如达拉斯的iButton产品。这些**有的风险是输入的连续数字在数据库进行再次校验。*需经常检查输入到数据库的密钥的每个字节,一旦发现不正确的字节就会立即停止,然后切换到下一个直到最后一个。所以pojie者很容易测量出输入最后一个密钥倒请求另一个的时间,并得出发现的密钥相似度。尝试相对小的数字,有可能找到匹配的密钥。 为防止这些攻击,规划者需要小心计算处理器的周期。当密码进行比较时确保正确和错误的时间是一样的,例如:飞思卡尔的HC微*的内部储存器载入模块在输入正确的八字节密码后可以访问内部闪存。为达到正确和错误的密码都处理相同的时间,程序中增加了额外的空*作指令。这对时序攻击提供了很好的保护。一些微*有内部阻容振荡器,那样处理器的工作频率与电压和芯片的温度相关。这使得时序分析很困难,攻击时需要稳定元器件的温度并减少电源线上的噪声和电压波动。一些智能卡有内部随机时钟信号使得攻击时测量时间延迟无效。 穷举攻击(也称*攻击Bruteforceattacks) *对于半导体硬件和密码来说是另一种意思。对于密码,*攻击是对*尝试数量众多的密钥。通常是运用高速计算机来寻找匹配的密钥。 一个例子是微*中的密码保护设置。以TI的MSP为例,密码本身长度为字节(位),抵挡*攻击已经足够了。但密码分配在与处理器中断矢量相同的储存器*。那么,首先减少储存器内矢量一直指向的区域。然后当软件被更新时,只有小部分的密码被修改,因为大部分中断子程序指向的矢量是相同的*。结果是,如果pojie者知道早前密码中的一个,就很容易做*的搜索,在合理的时间内找到正确的密码。暴 力攻击也可用在ASIC或CPLD的硬件规划来实现。这种情况下,pojie者运用所有可能的逻辑组合到元器件可能的输入端并观察所有输出。这种方式也称为黑箱分析(Black-box*ysis),因为pojie者不知道被测验元器件的情况。通过所有可能的信号组合,尝试获得元器件的功能。这种方式对相对小的逻辑器件很有效。另一个问题是pojie者运用的ASIC或CPLD有触发器,故输出将可能是当前状态或输入的状态。但如果预先检查并分析信号,搜索的范围可以显著减少。例如,时钟输入,数据总线和一些控制信号是很容易认出的。 另一种可能的*攻击,对很大多导体芯片有效,是将外部高压信号(通常是两倍于电源电压)加到芯片引脚上,来试图进入工厂测验或编程模式。事实上,这些引脚用数字万用表很容易发现,因为它们没有保护二极管到电源脚。一旦发现对高压敏感的引脚,pojie者就可以尝试可能的逻辑信号组合来加到别的引脚上,找出用于进入工厂测验或编程模式的部分。 pojie者也可用元器件的通信协议来找出规划者嵌入在软件中的测验和更新用得隐藏功能。 芯片制造商经常提供给后期测验用得嵌入硬件测验接口。如果这些接口的安全保护没有适当规划,pojie者很容易利用它来读写片上储存器。在智能卡中,这些测验接口通常位于芯片电路之外,并在测验后从物理上除去。 任何安全*,不管软件和硬件,在规划上都可能有*,对于pojie者来说都是机会,*攻击有可能找到它。小心规划安全保护*,进行适当的评估,可以避免很多问题,并使得这些攻击事实上不可行。 功耗分析(Power*ysis) 一个运算设备的功耗取决于它当前的状态。依照CMOS晶体管的原理,各部分动态时的功耗比静态的要大。当输入电压加到反向器上,会引起一个晶体管短路,这个晶体管电流的增加比静态消耗的寄生漏电要大得多。在电源线上加个-欧的电阻,就可以测量电流的波动。为达到更好的效果,需要运用至少位精度和MHz采样速度的模数转换器。这些获得的参数可以用来分别处理器的不一样指令并估计总线上同时翻转的位数。 通过平均多次重复同样*作的电流,即使是没有通过总线的很小信号也能分别开。有些信号如移位状态特别有用,因为很多密码的密钥产生算法运用移位*作来逐一移出单个密钥倒进位标志。即使状态位的变化不能直接测量,它们通常会改变指令次序或微码的执行,这会导致功耗的显著变化。 不一样指令导致不一样级别的指令*和运算单元的活动,可被清晰地分别开,故运算部分能被推测出。处理器的不一样单元在时钟沿相关的不一样时间里有独有的开关状态,能被高频仪器分离出来。 有多种不一样的功耗分析技术用在pojie密码算法上。整个分析过程是相对简单的,只需要标准的现有的廉价仪器设备。 功耗分析技术主要有两种:简单功耗分析(SPA:SimplePowerAnalysis)和差分功耗分析(DPA:DifferencePowerAnalysis)。SPA是在密码或别的安全相关*作时直接观察功耗,可以得知设备运行时的信息如密钥资料。如果pojie者知道密码算法,很容易通过观察处理器指令次序,特别是移位条件转移,找到一些位的信息。如果算法或逻辑运算的结果很容易被看出,如进位状态,零或负标志,就可以获得更多的信息。DPA是种更有效的技术,因为pojie者不需要知道密码算法是如何执行的。它运用静态分析和已知密码运算的大量功耗迹线来获得隐藏信息。用统计方式鉴别功耗的微小分别,可用来恢复密钥中的单个的位信息。 功耗特点当然包括噪声部分。额外的噪声可以通过减少获得信号的探针长度并小心运用测量仪器来降低它。测量接在地线上的电阻的功耗有一些优势。首先,减少了噪声电平。其次,可以用示波器的*直接测量信号,因为大部分探针站有公共的地线与外部电源地相连。为了增加信噪比,可以通过提升平均采样数来获得。 有源*能降低输入电容,增加对输入信号的带宽。一种方式是用高速低噪声的运放来构建相对简单的*,另一种是用很短的同轴电缆直连到示波器的输入端。在这些情况下,*的输入电容显著减少。 我们对现有的功耗分析步骤进行了改进。这是一种新的方式,尚未有相似的。我们用铁芯变压器来取代连到电源或地的电阻,那样波形就有点不一样,因为信号的直流成分遗失了,同时又有些有利条件。常用的方式对直流电流几乎没有什么*。但对于欧电阻来讲mA的电流意味着有1V的电压降,那可能中断微*的正常*作。减少这个电阻可以搞定这个问题,但会使得难以识别功耗的微小变动。运用变压器后,不需要运用昂贵的有源*,标准的无源*就可以给出几乎相同的结果。如果信号太小,调节二次侧的线圈就可以增加振幅。变压器也担当无源滤波器的角色,如波形,同样的处理器指令对电阻和变压器所测量到的波形有不一样的影响。那可以通过对获得的信号进行处理。为了攻击获得成功,需要采集数千的样本,然后快速分析处理所展现的奥秘。 最近,芯片规划上已考虑这种攻击,并将使得这种攻击方式更难获得成功。 噪声攻击(Glitchattacks) 噪声攻击是快速改变输入到微*的信号,以影响它的正常运行。通常噪声是叠加在电源上或时钟信号上,但噪声也可以是外加的短暂电场或电磁脉冲。在离芯片表面数百微米处放置两根金属针,然后加上少于1微秒的数百伏电压的窄脉冲,晶圆衬底会感应出一个电场,使得邻近晶体管的阈值电压发生变化。最近出现一种改进的方式:运用几百圈金属线绕在微探针的针尖构成一个小型电感。当电流进入线圈会产生磁场,针尖将集中磁力线。 每个晶体管和与它相连的线路构成有时延特点的RC电路。处理器的最大可用时钟频率取决于该电路的最大延迟。同样的,每个触发器在接收输入电压和由此引致的输出电压之间有个特征时间窗口。这个窗口由给定的电压和温度来确定。如果用时钟噪声(比正常的时钟脉冲要短得多)或电源噪声(电源电压的快速波动)将会影响芯片里的某些晶体管,导致一个或多个触发器进入错误状态。通过改变参数,处理器会被导致执行许多完全不一样的错误指令,有时甚至是不被微码支持的。经管我们不会预先知道何种噪声会导致何种芯片的何种错误,但它能相当简单地进行*的搜索。 时钟噪声攻击(Clockglitches) 时钟信号的噪声攻击在现在是最简单的,且相当实用。实际使用中的噪声通常用来取代跳转条件并试验先前的测验指令。可以在安全密码问询处理时创建一个攻击窗口,简单预防执行这些指令。指令噪声也能用来扩大循环的时间。如,串口子程序在输出缓冲后再读更多的内容;或在密钥*作时减少循环次数来传一个弱的密码。 为获得噪声,时钟需要临时增加一个或大于半个周期,有些触发器在到达新状态之前就获得输入。时钟噪声通常针对处理器的指令流。对硬件执行安全保护的微*没有什么效果。实际中,仅运用时钟噪声来攻击微*或智能卡的软件程序接口。 这类保护的pojie是相对容易的。如处理器在循环里只执行一个指令,攻击时可用不一样的时钟噪声导致处理器误*作。不需要小心地与时钟信号同步,只需要随机制造噪声就可在数次攻击内成功。*噪声是相对容易的,无需运用外部发生器,瞬间短路晶振即可。当谐振器在不一样的泛音上产生震荡会发出很多噪声。大部分情况下需要在确定的时钟周期内获得所需结果,在这种情况下用信号发生器更好。 运用时钟噪声来攻击某些微*也许是很困难的。例如德仪的MPS微*在内部RC*工作的启动模块。很难与内部时钟同步,攻击时很难估计精确的时间。一些智能卡在处理器指令流里会随机*延迟,使得攻击更为困难。运用功耗分析会有帮助,但要求非常昂贵的设备来实时获得参考信号。 电源噪声攻击(Powerglitches) 电源供应电压的波动会导致晶体管阈值电平的漂移。结果就是一些触发器在不一样的时间里采样它们的输入,或读出错误的安全熔丝的状态。通常用瞬间增加电源电压或电压跌落来制造噪声,一般在个时钟周期内。电源噪声通常用在微*的程序接口上,能影响处理器运行或硬件安全电路。一般地,弱点比时钟噪声更难找到并利用,因为对于时域参数,振幅,上升/下降时间都是变量。 一个例子是上例提到的攻击MCCB6.如果在执行AND$指令时电源电压减少-%,处理器从EEPROM中取出的值是FFh而不是实际的值。这会对应熔丝未加密状态。窍门是小心计算执行时间来减少电源电压,否则处理器会停止运行或进入复位状态。这种任务并不难,复位后目标指令在第一个一百周期内被执行。pojie者可以运用矢量发生器或构建一个自己的噪声源。 另一个是微芯的老旧的PICF。芯片的擦除*作会解除安全保护。但同时会芯片上程序和数据储存器中的内容。安全保护电路在硬件规划上是在安全熔丝复位之前擦掉储存器。但我们发现在芯片擦除*作时电源电压几微秒内增加到大约V,会中断储存器擦除*作,但安全熔丝正常完成复位,这使得有可能读出储存器里的内容。如此高压需要谨慎运用,如果时间过长会损伤芯片。新版本的PICFA增加了防欠压和过压攻击的能力。如果电源电压低于3V或6V,通过编程接口的任意修改储存器的*作会被立即中断。 不是一直需要电源噪声超过电源电压范围的规格。例如,PICFA微*,保护机制可以阻止在芯片擦除*作开始后运用大于mV的噪声。那会导致中止程序储存器的擦除*作但不会擦掉熔丝。 上述例子表明噪声攻击时无需特殊工具就有很好的效果。智能卡里有时钟监控电路但极少微*有。 数据保持能力分析(Dataremanence) 处理器一般会把密钥保存在静态RAM里,如果元器件被篡改就会掉电,RAM内容遗失,从而保护密钥不被窃取。众所周知的是在低于零下度时,SRAM里的内容会“冰冻”。很多元器件把温度低于这个阈值视为发生篡改事件。我们做了一些实验来确定现代SRAM数据保持能力与温度的关系。我们的实验表明传统的思维不再有效。即使在高温下,数据保持能力也是个问题。数据保持能力不仅仅对SRAM有影响,对DRAM,UVEPROM,EEPROM和闪存也有影响。结果是,依旧可以从已擦除的储存器中获得一些信息。这会给安全设备带来很多问题。 安全工程师都很关心断电后SRAM器件能保持数据的时间。原因如下:很多产品运用密钥或相似的方式进行加密和别的安全相关的计算,需要不能被读出或改变。最普遍的搞定方式是把安全密钥放在带篡改传感器的易失储存器中。一旦检测到发生篡改,易失传感器会掉电或短路到地。但如果数据保留时间大于pojie者打开元器件并对储存器上电的时间,那保护机制就被摧毁了。 在二十世纪八十年代,发现低温能将SRAM的数据保存时间增加到几秒甚至几分钟。对于那个时候的元器件,发现零下度就可以增加数据保存时间,并且会随着温度的降低而增加保持的时间。有些就增加了温度传感器,温度低于零下度就触发篡改事件,立即清零储存器。本次试验是重复这个工作,察看年后的产品是否也有此特点。 另一个需要关心的是即使部分内容已被*,安全信息也能被复原。假设pojie者获得了n=位密钥中的m=位,也就是%的信息。他可以通过搜索n!/(m!(n-m)!=!/(!!)=2.*~个可能的密钥。通过1万台电脑,每台每秒进行亿次搜索密钥的*作,pojie者只需6个小时就能搜遍所有密钥。如果只有%的信息,也就是知道位密钥中的位,那就有2.*~种可能。几乎增大了一百倍,pojie者要花百万年来搜索密钥,故认为均匀的位密钥不能被恢复。标签: mcu制造商必需掌握的技能
本文链接地址:https://www.iopcc.com/jiadian/46938.html转载请保留说明!