破解MCU難於上青天?這幾招讓你破解有絕招
發布時間:2017-03-09 責任編輯:susan
【導讀】時序攻擊可用在安全保護是基於密碼的微控製器,或使用確定數字的卡或密碼來進行訪問控製的係統,如達拉斯的iButton產品。這些係統中共有的風險是輸入的連續數字在數據庫進行再次校驗。
首先明白MCU是什麼——即結構與組成
Ⅰ:中央處理器CPU,包括運算器、控製器和寄存器組。是MCU內部的核心部件,由運算部件和控製部件兩大部分組成。前者能完成數據的算術邏輯運算、位變量處理和數據傳送操作,後者是按一定時序協調工作,是分析和執行指令的部件。
Ⅱ:存儲器,包括ROM和RAM。ROM程序存儲器,MCU的工作是按事先編製好的程序一條條循序執行的,ROM程序存儲器即用來存放已編的程序(係統程序由製造廠家編製和寫入)。存儲數據掉電後不消失。ROM又分為片內存儲器和片外(擴展)存儲器兩種。

RAM數據存儲器,在程序運行過程中可以隨時寫入數據,又可以隨時讀出數據。存儲數據在掉電後不能保持。RAM也分為片內數據存儲器和片外(擴展)存儲器兩種。
Ⅲ:輸入、輸出I/O接口,與外部輸入、輸出(電路)設備相連接。PO/P1/P2/P3等數字I/O接口,內部電路含端口鎖存器、輸出驅動器和輸入緩衝器等電路。其中PO為三態雙向接口,P1/P2/P3數字I/O端口,內部驅動器為“開路集電極”輸出電路,應用時內部或外部電路接有上拉電阻。每個端口均可作為數字信號輸入或輸出口,並具有複用功能(指端口功能有第一功能、第二功能甚至數個功能,在應用中可靈活設置)。
MCU器件,除數字I/O端口外,還有ADC模擬量輸入、輸出端口,輸入信號經內部A/D轉換電路,變換為數字(頻率)信號,再進行處理;對輸出模擬量信號,則先經D/A轉換後,再輸出至外部電路。
再來談幾種如何破解MCU方法
一、非侵入式攻擊
不bu需xu要yao對dui元yuan器qi件jian進jin行xing初chu始shi化hua。攻gong擊ji時shi可ke以yi把ba元yuan器qi件jian放fang在zai測ce試shi電dian路lu中zhong分fen析xi,也ye可ke單dan獨du連lian接jie元yuan器qi件jian。一yi旦dan成cheng功gong,這zhe種zhong攻gong擊ji很hen容rong易yi普pu及ji,並bing且qie重zhong新xin進jin行xing攻gong擊ji不bu需xu要yao很hen大da的de開kai銷xiao。另ling外wai,使shi用yong這zhe種zhong攻gong擊ji不bu會hui留liu下xia痕hen跡ji。因yin此ci,這zhe被bei認ren為wei是shi對dui任ren意yi元yuan器qi件jian的de硬ying件jian安an全quan最zui大da的de威wei脅xie。同tong時shi,通tong常chang需xu要yao很hen多duo時shi間jian和he精jing力li來lai尋xun找zhao對dui特te定ding元yuan器qi件jian的de非fei侵qin入ru式shi攻gong擊ji方fang法fa。這zhe通tong常chang對dui元yuan器qi件jian進jin行xing反fan向xiang工gong程cheng,包bao括kuo反fan彙hui編bian軟ruan件jian和he理li解jie硬ying件jian版ban圖tu。
feiqinrushigongjikeyishibeidongdehuozhudongde。beidonggongji,yejiaocemiangongji,buhuiduibeigongjiyuanqijianfashengzuoyong,dantongchangshiguanchatadexinhaohediancifushe。rugonghaofenxiheshizhonggongji。zhudonggongji,ruqiongjugongjihezaoshenggongji,tedianshijiangxinhaojiadaoyuanqijianshang,baokuodianyuanxian。
一個簡單的非侵入式攻擊可以是複製一個上電配置的基於SRAM的FPGA。接上配置芯片用的JATG接口,用示波器或邏輯分析儀,捕捉所有信號。然後可以通過分析波形並回複獨有的命令。
隻使用到一半的FPGA資源時,可以輕微改變數據流來偽裝盜版的事實。配置時留下一點空間而不影響元器件的運行。JTAG接(jie)口(kou)在(zai)發(fa)送(song)信(xin)號(hao)時(shi)序(xu)時(shi)也(ye)有(you)一(yi)些(xie)自(zi)由(you),故(gu)盜(dao)版(ban)的(de)波(bo)形(xing)可(ke)以(yi)設(she)置(zhi)成(cheng)看(kan)上(shang)去(qu)與(yu)原(yuan)始(shi)信(xin)號(hao)不(bu)一(yi)樣(yang)的(de)。另(ling)外(wai),破(po)解(jie)者(zhe)可(ke)以(yi)在(zai)上(shang)傳(chuan)時(shi)交(jiao)換(huan)行(xing)地(di)址(zhi),給(gei)人(ren)的(de)印(yin)象(xiang)是(shi)完(wan)全(quan)不(bu)同(tong)的(de)設(she)計(ji)。
含糊與安全
半導體製造商給大客戶提供了增強產品防破解能力的措施:包裝上的客戶印字代替了標準的芯片型號。這給人的印象是產品是由定製的集成電路設計的。眾所周知,ASIC提ti供gong了le很hen好hao地di保bao護hu措cuo施shi來lai防fang止zhi多duo種zhong攻gong擊ji,隻zhi有you極ji少shao數shu經jing驗yan豐feng富fu且qie裝zhuang備bei精jing良liang的de破po解jie者zhe才cai有you可ke能neng成cheng功gong破po解jie。這zhe會hui使shi很hen多duo潛qian在zai的de破po解jie者zhe望wang而er卻que步bu。但dan一yi個ge信xin心xin堅jian定ding的de破po解jie者zhe會hui嚐chang試shi用yong簡jian單dan的de方fang法fa確que定ding芯xin片pian是shi不bu是shi真zhen的deASIC。zuijiandandefangfashiguanchalianjiedaodianyuan,di,shizhong,fuwei,chuankouhuobiedejiekoudeyinjiao。yushujukuzhongbeihuaiyideweikongzhiqixiangbijiao,zhezhongjieguofeichangkekao,meizhongweikongzhiqidouyouzijideyinjiaotedian。yidanfaxianxiangside,jiubatafangzaitongyongshaoxieqishangchangshiduchujieguo。
另(ling)一(yi)個(ge)簡(jian)單(dan)的(de)方(fang)法(fa)是(shi)限(xian)製(zhi)訪(fang)問(wen)程(cheng)序(xu)存(cun)儲(chu)器(qi)。通(tong)常(chang)用(yong)在(zai)智(zhi)能(neng)卡(ka)中(zhong),但(dan)一(yi)些(xie)微(wei)控(kong)製(zhi)器(qi)中(zhong)也(ye)用(yong)到(dao)。這(zhe)不(bu)是(shi)很(hen)可(ke)靠(kao)且(qie)實(shi)用(yong)的(de)方(fang)法(fa)。當(dang)然(ran)在(zai)智(zhi)能(neng)卡(ka)中(zhong)用(yong)得(de)很(hen)好(hao),所(suo)有(you)的(de)客(ke)戶(hu)被(bei)與(yu)芯(xin)片(pian)製(zhi)造(zao)商(shang)迫(po)簽(qian)署(shu)不(bu)擴(kuo)散(san)協(xie)議(yi)。但(dan)微(wei)控(kong)製(zhi)器(qi)極(ji)少(shao)這(zhe)樣(yang),能(neng)被(bei)通(tong)用(yong)燒(shao)寫(xie)器(qi)燒(shao)寫(xie)的(de)微(wei)控(kong)製(zhi)器(qi)世(shi)界(jie)上(shang)很(hen)多(duo)公(gong)司(si)都(dou)能(neng)提(ti)供(gong)。即(ji)使(shi)文(wen)件(jian)中(zhong)沒(mei)有(you)燒(shao)寫(xie)的(de)規(gui)格(ge),用(yong)低(di)成(cheng)本(ben)的(de)示(shi)波(bo)器(qi)幾(ji)個(ge)小(xiao)時(shi)就(jiu)可(ke)以(yi)套(tao)出(chu)需(xu)要(yao)的(de)波(bo)形(xing)。如(ru)果(guo)微(wei)控(kong)製(zhi)器(qi)不(bu)被(bei)特(te)殊(shu)通(tong)用(yong)燒(shao)寫(xie)器(qi)所(suo)支(zhi)持(chi),仍(reng)然(ran)可(ke)以(yi)通(tong)過(guo)從(cong)製(zhi)造(zao)商(shang)購(gou)買(mai)開(kai)發(fa)板(ban)來(lai)獲(huo)得(de)直(zhi)接(jie)完(wan)整(zheng)的(de)協(xie)議(yi)。
二、時序攻擊(TIming attacks)
yixieanquanxiangguandecaozuoshiyongshurudezhihemiyao,youbandaotixinpianzhixingbutongdeshijianlaibijiao。xiaoxindeshixucelianghefenxijiunenghuifuchumiyao。zhegefangfazuizaozai1996年的文獻上提到。稍後這種攻擊成功破解了實際的RSA簽名的智能卡。
為了攻擊成功,需要收集裝置的信息,與處理時間整合比較,如問答延遲(quesTIon-answer delay)。很多密碼算法容易受到時序攻擊,主要原因是軟件來執行算法。那包括執行適時跳過需要的分支和操作條件;使用緩存;不固定時間處理指令如倍頻和分頻;還有大量的其他原因。結果就是執行能力典型地取決於密鑰和輸入的數據。

為防止此類攻擊可以使用盲簽名(Blinding signatures)技術。這個方法是利用選定的隨機數與輸入數據混合來防止破解者知道輸入數據的數學運算法則。
時序攻擊可用在安全保護是基於密碼的微控製器,或使用確定數字的卡或密碼來進行訪問控製的係統,如達拉斯的iButtonchanpin。zhexiexitongzhonggongyoudefengxianshishurudelianxushuzizaishujukujinxingzaicixiaoyan。xitongxujingchangjianzhashurudaoshujukudemiyaodemeigezijie,yidanfaxianbuzhengquedezijiejiuhuilijitingzhi,ranhouqiehuandaoxiayigezhidaozuihouyige。suoyipojiezhehenrongyiceliangchushuruzuihouyigemiyaodaoqingqiulingyigedeshijian,bingdechufaxiandemiyaoxiangsidu。changshixiangduixiaodeshuzi,youkenengzhaodaopipeidemiyao。
為防止這些攻擊,設計者需要小心計算處理器的周期。當密碼進行比較時確保正確和錯誤的時間是一樣的,例如:飛思卡爾的68HC08微wei控kong製zhi器qi的de內nei部bu存cun儲chu器qi載zai入ru模mo塊kuai在zai輸shu入ru正zheng確que的de八ba字zi節jie密mi碼ma後hou可ke以yi訪fang問wen內nei部bu閃shan存cun。為wei達da到dao正zheng確que和he錯cuo誤wu的de密mi碼ma都dou處chu理li相xiang同tong的de時shi間jian,程cheng序xu中zhong增zeng加jia了le額e外wai的de空kong操cao作zuo指zhi令ling。這zhe對dui時shi序xu攻gong擊ji提ti供gong了le很hen好hao的de保bao護hu。一yi些xie微wei控kong製zhi器qi有you內nei部bu阻zu容rong振zhen蕩dang器qi,那na樣yang處chu理li器qi的de工gong作zuo頻pin率lv與yu電dian壓ya和he芯xin片pian的de溫wen度du相xiang關guan。這zhe使shi得de時shi序xu分fen析xi很hen困kun難nan,攻gong擊ji時shi需xu要yao穩wen定ding元yuan器qi件jian的de溫wen度du並bing減jian少shao電dian源yuan線xian上shang的de噪zao聲sheng和he電dian壓ya波bo動dong。一yi些xie智zhi能neng卡ka有you內nei部bu隨sui機ji時shi鍾zhong信xin號hao使shi得de攻gong擊ji時shi測ce量liang時shi間jian延yan遲chi無wu效xiao。
三、窮舉攻擊(也稱暴力攻擊Brute force attacks)
暴bao力li對dui於yu半ban導dao體ti硬ying件jian和he密mi碼ma來lai說shuo是shi另ling一yi種zhong意yi思si。對dui於yu密mi碼ma,暴bao力li攻gong擊ji是shi對dui係xi統tong嚐chang試shi數shu量liang眾zhong多duo的de密mi鑰yao。通tong常chang是shi使shi用yong高gao速su計ji算suan機ji來lai尋xun找zhao匹pi配pei的de密mi鑰yao。 一個例子是微控製器中的密碼保護設置。以TI的MSP430為例,密碼本身長度為32字節(256位),抵(di)擋(dang)暴(bao)力(li)攻(gong)擊(ji)已(yi)經(jing)足(zu)夠(gou)了(le)。但(dan)密(mi)碼(ma)分(fen)配(pei)在(zai)與(yu)處(chu)理(li)器(qi)中(zhong)斷(duan)矢(shi)量(liang)相(xiang)同(tong)的(de)存(cun)儲(chu)器(qi)地(di)址(zhi)。那(na)麼(me),首(shou)先(xian)減(jian)少(shao)存(cun)儲(chu)器(qi)內(nei)矢(shi)量(liang)一(yi)直(zhi)指(zhi)向(xiang)的(de)區(qu)域(yu)。然(ran)後(hou)當(dang)軟(ruan)件(jian)被(bei)更(geng)新(xin)時(shi),隻(zhi)有(you)小(xiao)部(bu)分(fen)的(de)密(mi)碼(ma)被(bei)修(xiu)改(gai),因(yin)為(wei)大(da)部(bu)分(fen)中(zhong)斷(duan)子(zi)程(cheng)序(xu)指(zhi)向(xiang)的(de)矢(shi)量(liang)是(shi)相(xiang)同(tong)的(de)地(di)址(zhi)。
結果是,如果破解者知道早前密碼中的一個,就很容易做係統的搜索,在合理的時間內找到正確的密碼。 暴力攻擊也可用在ASIC或CPLD的硬件設計來實現。這種情況下,破解者使用所有可能的邏輯組合到元器件可能的輸入端並觀察所有輸出。這種方法也稱為黑箱分析(Black-box analysis),因(yin)為(wei)破(po)解(jie)者(zhe)不(bu)知(zhi)道(dao)被(bei)測(ce)試(shi)元(yuan)器(qi)件(jian)的(de)情(qing)況(kuang)。通(tong)過(guo)所(suo)有(you)可(ke)能(neng)的(de)信(xin)號(hao)組(zu)合(he),嚐(chang)試(shi)獲(huo)得(de)元(yuan)器(qi)件(jian)的(de)功(gong)能(neng)。這(zhe)種(zhong)方(fang)法(fa)對(dui)相(xiang)對(dui)小(xiao)的(de)邏(luo)輯(ji)器(qi)件(jian)很(hen)有(you)效(xiao)。另(ling)一(yi)個(ge)問(wen)題(ti)是(shi)破(po)解(jie)者(zhe)使(shi)用(yong)的(de)ASIC或CPLD有you觸chu發fa器qi,故gu輸shu出chu將jiang可ke能neng是shi當dang前qian狀zhuang態tai或huo輸shu入ru的de狀zhuang態tai。但dan如ru果guo預yu先xian檢jian查zha並bing分fen析xi信xin號hao,搜sou索suo的de範fan圍wei可ke以yi顯xian著zhu減jian少shao。例li如ru,時shi鍾zhong輸shu入ru,數shu據ju總zong線xian和he一yi些xie控kong製zhi信xin號hao是shi很hen容rong易yi認ren出chu的de。
另一種可能的暴力攻擊,對很多半導體芯片有效,是將外部高壓信號(通常是兩倍於電源電壓)加(jia)到(dao)芯(xin)片(pian)引(yin)腳(jiao)上(shang),來(lai)試(shi)圖(tu)進(jin)入(ru)工(gong)廠(chang)測(ce)試(shi)或(huo)編(bian)程(cheng)模(mo)式(shi)。事(shi)實(shi)上(shang),這(zhe)些(xie)引(yin)腳(jiao)用(yong)數(shu)字(zi)萬(wan)用(yong)表(biao)很(hen)容(rong)易(yi)發(fa)現(xian),因(yin)為(wei)它(ta)們(men)沒(mei)有(you)保(bao)護(hu)二(er)極(ji)管(guan)到(dao)電(dian)源(yuan)腳(jiao)。一(yi)旦(dan)發(fa)現(xian)對(dui)高(gao)壓(ya)敏(min)感(gan)的(de)引(yin)腳(jiao),破(po)解(jie)者(zhe)就(jiu)可(ke)以(yi)嚐(chang)試(shi)可(ke)能(neng)的(de)邏(luo)輯(ji)信(xin)號(hao)組(zu)合(he)來(lai)加(jia)到(dao)別(bie)的(de)引(yin)腳(jiao)上(shang),找(zhao)出(chu)用(yong)於(yu)進(jin)入(ru)工(gong)廠(chang)測(ce)試(shi)或(huo)編(bian)程(cheng)模(mo)式(shi)的(de)部(bu)分(fen)。 破解者也可用元器件的通信協議來找出設計者嵌入在軟件中的測試和更新用得隱藏功能。
xinpianzhizaoshangjingchangtigonggeihouqiceshiyongdeqianruyingjianceshijiekou。ruguozhexiejiekoudeanquanbaohumeiyoushidangsheji,pojiezhehenrongyiliyongtalaiduxiepianshangcunchuqi。zaizhinengkazhong,zhexieceshijiekoutongchangweiyuxinpiandianluzhiwai,bingzaiceshihoucongwulishangchuqu。 renheanquanxitong,buguanruanjianheyingjian,zaishejishangdoukenengyouquexian,duiyupojiezhelaishuodoushijihui,baoligongjiyoukenengzhaodaota。xiaoxinshejianquanbaohuxitong,jinxingshidangdepinggu,keyibimianhenduowenti,bingshidezhexiegongjishishishangbukexing。
四、功耗分析(Power analysis)
一個運算設備的功耗取決於它當前的狀態。依照CMOS晶(jing)體(ti)管(guan)的(de)原(yuan)理(li),各(ge)部(bu)分(fen)動(dong)態(tai)時(shi)的(de)功(gong)耗(hao)比(bi)靜(jing)態(tai)的(de)要(yao)大(da)。當(dang)輸(shu)入(ru)電(dian)壓(ya)加(jia)到(dao)反(fan)向(xiang)器(qi)上(shang),會(hui)引(yin)起(qi)一(yi)個(ge)晶(jing)體(ti)管(guan)短(duan)路(lu),這(zhe)個(ge)晶(jing)體(ti)管(guan)電(dian)流(liu)的(de)增(zeng)加(jia)比(bi)靜(jing)態(tai)消(xiao)耗(hao)的(de)寄(ji)生(sheng)漏(lou)電(dian)要(yao)大(da)得(de)多(duo)。在(zai)電(dian)源(yuan)線(xian)上(shang)加(jia)個(ge)10-20歐的電阻,就可以測量電流的波動。為達到更好的效果,需要使用至少12位精度和50MHz采樣速度的模數轉換器。
這些獲得的參數可以用來區別處理器的不同指令並估計總線上同時翻轉的位數。 tongguopingjunduocizhongfutongyangcaozuodedianliu,jishishimeiyoutongguozongxiandehenxiaoxinhaoyenengqubiekai。youxiexinhaoruyiweizhuangtaitebieyouyong,yinweihenduomimademiyaochanshengsuanfashiyongyiweicaozuolaizhuyiyichudangemiyaodaojinweibiaozhi。jishizhuangtaiweidebianhuabunengzhijieceliang,tamentongchanghuigaibianzhilingcixuhuoweimadezhixing,zhehuidaozhigonghaodemingxianbianhua。

不(bu)同(tong)指(zhi)令(ling)導(dao)致(zhi)不(bu)同(tong)級(ji)別(bie)的(de)指(zhi)令(ling)解(jie)碼(ma)和(he)運(yun)算(suan)單(dan)元(yuan)的(de)活(huo)動(dong),可(ke)被(bei)清(qing)晰(xi)地(di)區(qu)別(bie)開(kai),故(gu)運(yun)算(suan)部(bu)分(fen)能(neng)被(bei)推(tui)測(ce)出(chu)。處(chu)理(li)器(qi)的(de)不(bu)同(tong)單(dan)元(yuan)在(zai)時(shi)鍾(zhong)沿(yan)相(xiang)關(guan)的(de)不(bu)同(tong)時(shi)間(jian)裏(li)有(you)獨(du)有(you)的(de)開(kai)關(guan)狀(zhuang)態(tai),能(neng)被(bei)高(gao)頻(pin)儀(yi)器(qi)分(fen)離(li)出(chu)來(lai)。
有多種不同的功耗分析技術用在破解密碼算法上。整個分析過程是相對簡單的,隻需要標準的現有的廉價儀器設備。 功耗分析技術主要有兩種:簡單功耗分析(SPA:Simple Power Analysis)和差分功耗分析(DPA:Difference Power Analysis)。SPA是shi在zai密mi碼ma或huo別bie的de安an全quan相xiang關guan操cao作zuo時shi直zhi接jie觀guan察cha功gong耗hao,可ke以yi得de知zhi設she備bei運yun行xing時shi的de信xin息xi如ru密mi鑰yao資zi料liao。如ru果guo破po解jie者zhe知zhi道dao密mi碼ma算suan法fa,很hen容rong易yi通tong過guo觀guan察cha處chu理li器qi指zhi令ling次ci序xu,特te別bie是shi移yi位wei條tiao件jian轉zhuan移yi,找zhao到dao一yi些xie位wei的de信xin息xi。如ru果guo算suan法fa或huo邏luo輯ji運yun算suan的de結jie果guo很hen容rong易yi被bei看kan出chu,如ru進jin位wei狀zhuang態tai,零ling或huo負fu標biao誌zhi,就jiu可ke以yi獲huo得de更geng多duo的de信xin息xi。
DPA是(shi)種(zhong)更(geng)有(you)效(xiao)的(de)技(ji)術(shu),因(yin)為(wei)破(po)解(jie)者(zhe)不(bu)需(xu)要(yao)知(zhi)道(dao)密(mi)碼(ma)算(suan)法(fa)是(shi)如(ru)何(he)執(zhi)行(xing)的(de)。它(ta)使(shi)用(yong)靜(jing)態(tai)分(fen)析(xi)和(he)已(yi)知(zhi)密(mi)碼(ma)運(yun)算(suan)的(de)大(da)量(liang)功(gong)耗(hao)跡(ji)線(xian)來(lai)獲(huo)取(qu)隱(yin)藏(zang)信(xin)息(xi)。用(yong)統(tong)計(ji)方(fang)法(fa)鑒(jian)別(bie)功(gong)耗(hao)的(de)微(wei)小(xiao)區(qu)別(bie),可(ke)用(yong)來(lai)恢(hui)複(fu)密(mi)鑰(yao)中(zhong)的(de)單(dan)個(ge)的(de)位(wei)信(xin)息(xi)。 gonghaotexingdangranbaokuozaoshengbufen。ewaidezaoshengkeyitongguojianshaohuoquxinhaodetanzhenchangdubingxiaoxinshiyongceliangyiqilaijiangdita。celiangjiezaidixianshangdedianzudegonghaoyouyixieyoushi。shouxian,jianshaolezaoshengdianping。qici,keyiyongshiboqidetantouzhijieceliangxinhao,yinweidabufentanzhenzhanyougonggongdedixianyuwaibudianyuandixianglian。weilezengjiaxinzaobi,keyitongguotigaopingjuncaiyangshulaihuode。
youyuantantounengjiangdishurudianrong,zengjiaduishuruxinhaodedaikuan。yizhongfangfashiyonggaosudizaoshengdeyunfanglaigoujianxiangduijiandandetantou,lingyizhongshiyonghenduandetongzhoudianlanzhiliandaoshiboqideshuruduan。zaizhexieqingkuangxia,tantoudeshurudianrongxianzhujianshao。
對dui現xian有you的de功gong耗hao分fen析xi步bu驟zhou進jin行xing了le改gai進jin。這zhe是shi一yi種zhong新xin的de方fang法fa,尚shang未wei有you類lei似si的de。我wo們men用yong鐵tie芯xin變bian壓ya器qi來lai取qu代dai連lian到dao電dian源yuan或huo地di的de電dian阻zu,那na樣yang波bo形xing就jiu有you點dian不bu一yi樣yang,因yin為wei信xin號hao的de直zhi流liu成cheng分fen丟diu失shi了le,同tong時shi又you有you些xie有you利li條tiao件jian。常chang用yong的de方fang法fa對dui直zhi流liu電dian流liu幾ji乎hu沒mei有you什shen麼me限xian製zhi。但dan對dui於yu10歐電阻來講100mA的電流意味著有1V的電壓降,那可能中斷微控製器的正常操作。
減(jian)少(shao)這(zhe)個(ge)電(dian)阻(zu)可(ke)以(yi)解(jie)決(jue)這(zhe)個(ge)問(wen)題(ti),但(dan)會(hui)使(shi)得(de)難(nan)以(yi)識(shi)別(bie)功(gong)耗(hao)的(de)微(wei)小(xiao)變(bian)動(dong)。使(shi)用(yong)變(bian)壓(ya)器(qi)後(hou),不(bu)需(xu)要(yao)使(shi)用(yong)昂(ang)貴(gui)的(de)有(you)源(yuan)探(tan)頭(tou),標(biao)準(zhun)的(de)無(wu)源(yuan)探(tan)頭(tou)就(jiu)可(ke)以(yi)給(gei)出(chu)幾(ji)乎(hu)相(xiang)同(tong)的(de)結(jie)果(guo)。如(ru)果(guo)信(xin)號(hao)太(tai)小(xiao),調(tiao)節(jie)二(er)次(ci)側(ce)的(de)線(xian)圈(quan)就(jiu)可(ke)以(yi)增(zeng)加(jia)振(zhen)幅(fu)。變(bian)壓(ya)器(qi)也(ye)擔(dan)當(dang)無(wu)源(yuan)濾(lv)波(bo)器(qi)的(de)角(jiao)色(se),如(ru)波(bo)形(xing),同(tong)樣(yang)的(de)處(chu)理(li)器(qi)指(zhi)令(ling)對(dui)電(dian)阻(zu)和(he)變(bian)壓(ya)器(qi)所(suo)測(ce)量(liang)到(dao)的(de)波(bo)形(xing)有(you)不(bu)同(tong)的(de)影(ying)響(xiang)。那(na)可(ke)以(yi)通(tong)過(guo)對(dui)獲(huo)得(de)的(de)信(xin)號(hao)進(jin)行(xing)處(chu)理(li)。為(wei)了(le)攻(gong)擊(ji)獲(huo)得(de)成(cheng)功(gong),需(xu)要(yao)采(cai)集(ji)數(shu)千(qian)的(de)樣(yang)本(ben),然(ran)後(hou)快(kuai)速(su)分(fen)析(xi)處(chu)理(li)所(suo)展(zhan)現(xian)的(de)秘(mi)密(mi)。
最近,芯片設計上已考慮這種攻擊,並將使得這種攻擊方法更難獲得成功。
五、噪聲攻擊(Glitch attacks)
噪zao聲sheng攻gong擊ji是shi快kuai速su改gai變bian輸shu入ru到dao微wei控kong製zhi器qi的de信xin號hao,以yi影ying響xiang它ta的de正zheng常chang運yun行xing。通tong常chang噪zao聲sheng是shi疊die加jia在zai電dian源yuan上shang或huo時shi鍾zhong信xin號hao上shang,但dan噪zao聲sheng也ye可ke以yi是shi外wai加jia的de短duan暫zan電dian場chang或huo電dian磁ci脈mai衝chong。在zai離li芯xin片pian表biao麵mian數shu百bai微wei米mi處chu放fang置zhi兩liang根gen金jin屬shu針zhen,然ran後hou加jia上shang少shao於yu1微秒的數百伏電壓的窄脈衝,晶圓襯底會感應出一個電場,使得鄰近晶體管的閾值電壓發生變化。最近出現一種改進的方法:使用幾百圈金屬線繞在微探針的針尖構成一個小型電感。當電流進入線圈會產生磁場,針尖將集中磁力線。
每個晶體管和與它相連的線路構成有時延特性的RC電(dian)路(lu)。處(chu)理(li)器(qi)的(de)最(zui)大(da)可(ke)用(yong)時(shi)鍾(zhong)頻(pin)率(lv)取(qu)決(jue)於(yu)該(gai)電(dian)路(lu)的(de)最(zui)大(da)延(yan)遲(chi)。同(tong)樣(yang)的(de),每(mei)個(ge)觸(chu)發(fa)器(qi)在(zai)接(jie)收(shou)輸(shu)入(ru)電(dian)壓(ya)和(he)由(you)此(ci)引(yin)致(zhi)的(de)輸(shu)出(chu)電(dian)壓(ya)之(zhi)間(jian)有(you)個(ge)特(te)征(zheng)時(shi)間(jian)窗(chuang)口(kou)。這(zhe)個(ge)窗(chuang)口(kou)由(you)給(gei)定(ding)的(de)電(dian)壓(ya)和(he)溫(wen)度(du)來(lai)確(que)定(ding)。如(ru)果(guo)用(yong)時(shi)鍾(zhong)噪(zao)聲(sheng)(比正常的時鍾脈衝要短得多)或電源噪聲(電源電壓的快速波動)jianghuiyingxiangxinpianlidemouxiejingtiguan,daozhiyigehuoduogechufaqijinrucuowuzhuangtai。tongguogaibiancanshu,chuliqihuibeidaozhizhixingxuduowanquanbutongdecuowuzhiling,youshishenzhishibubeiweimazhichide。jingguanwomenbuhuiyuxianzhidaohezhongzaoshenghuidaozhihezhongxinpiandehezhongcuowu,dantanengxiangdangjiandandijinxingxitongdesousuo。
1、時鍾噪聲攻擊(Clock glitches)
時(shi)鍾(zhong)信(xin)號(hao)的(de)噪(zao)聲(sheng)攻(gong)擊(ji)在(zai)目(mu)前(qian)是(shi)最(zui)簡(jian)單(dan)的(de),且(qie)相(xiang)當(dang)實(shi)用(yong)。實(shi)際(ji)應(ying)用(yong)中(zhong)的(de)噪(zao)聲(sheng)通(tong)常(chang)用(yong)來(lai)取(qu)代(dai)跳(tiao)轉(zhuan)條(tiao)件(jian)並(bing)試(shi)驗(yan)先(xian)前(qian)的(de)測(ce)試(shi)指(zhi)令(ling)。可(ke)以(yi)在(zai)安(an)全(quan)密(mi)碼(ma)問(wen)詢(xun)處(chu)理(li)時(shi)創(chuang)建(jian)一(yi)個(ge)攻(gong)擊(ji)窗(chuang)口(kou),簡(jian)單(dan)預(yu)防(fang)執(zhi)行(xing)這(zhe)些(xie)指(zhi)令(ling)。指(zhi)令(ling)噪(zao)聲(sheng)也(ye)能(neng)用(yong)來(lai)擴(kuo)大(da)循(xun)環(huan)的(de)時(shi)間(jian)。如(ru),串(chuan)口(kou)子(zi)程(cheng)序(xu)在(zai)輸(shu)出(chu)緩(huan)衝(chong)後(hou)再(zai)讀(du)更(geng)多(duo)的(de)內(nei)容(rong);或在密鑰操作時減少循環次數來傳一個弱的密碼。 為(wei)獲(huo)得(de)噪(zao)聲(sheng),時(shi)鍾(zhong)需(xu)要(yao)臨(lin)時(shi)增(zeng)加(jia)一(yi)個(ge)或(huo)大(da)於(yu)半(ban)個(ge)周(zhou)期(qi),有(you)些(xie)觸(chu)發(fa)器(qi)在(zai)到(dao)達(da)新(xin)狀(zhuang)態(tai)之(zhi)前(qian)就(jiu)獲(huo)得(de)輸(shu)入(ru)。時(shi)鍾(zhong)噪(zao)聲(sheng)通(tong)常(chang)針(zhen)對(dui)處(chu)理(li)器(qi)的(de)指(zhi)令(ling)流(liu)。對(dui)硬(ying)件(jian)執(zhi)行(xing)安(an)全(quan)保(bao)護(hu)的(de)微(wei)控(kong)製(zhi)器(qi)沒(mei)有(you)什(shen)麼(me)效(xiao)果(guo)。實(shi)際(ji)中(zhong),僅(jin)使(shi)用(yong)時(shi)鍾(zhong)噪(zao)聲(sheng)來(lai)攻(gong)擊(ji)微(wei)控(kong)製(zhi)器(qi)或(huo)智(zhi)能(neng)卡(ka)的(de)軟(ruan)件(jian)程(cheng)序(xu)接(jie)口(kou)。
這zhe類lei保bao護hu的de破po解jie是shi相xiang對dui容rong易yi的de。如ru處chu理li器qi在zai循xun環huan裏li隻zhi執zhi行xing一yi個ge指zhi令ling,攻gong擊ji時shi可ke用yong不bu同tong的de時shi鍾zhong噪zao聲sheng導dao致zhi處chu理li器qi誤wu操cao作zuo。不bu需xu要yao小xiao心xin地di與yu時shi鍾zhong信xin號hao同tong步bu,隻zhi需xu要yao隨sui機ji製zhi造zao噪zao聲sheng就jiu可ke在zai數shu次ci攻gong擊ji內nei成cheng功gong。插cha入ru噪zao聲sheng是shi相xiang對dui容rong易yi的de,無wu需xu使shi用yong外wai部bu發fa生sheng器qi,瞬shun間jian短duan路lu晶jing振zhen即ji可ke。當dang諧xie振zhen器qi在zai不bu同tong的de泛fan音yin上shang產chan生sheng震zhen蕩dang會hui發fa出chu很hen多duo噪zao聲sheng。大da部bu分fen情qing況kuang下xia需xu要yao在zai確que定ding的de時shi鍾zhong周zhou期qi內nei獲huo得de所suo需xu結jie果guo,在zai這zhe種zhong情qing況kuang下xia用yong信xin號hao發fa生sheng器qi更geng好hao。
使用時鍾噪聲來攻擊某些微控製器也許是很困難的。例如德儀的MPS430微控製器在內部RC震(zhen)蕩(dang)器(qi)工(gong)作(zuo)的(de)啟(qi)動(dong)模(mo)塊(kuai)。很(hen)難(nan)與(yu)內(nei)部(bu)時(shi)鍾(zhong)同(tong)步(bu),攻(gong)擊(ji)時(shi)很(hen)難(nan)估(gu)計(ji)精(jing)確(que)的(de)時(shi)間(jian)。一(yi)些(xie)智(zhi)能(neng)卡(ka)在(zai)處(chu)理(li)器(qi)指(zhi)令(ling)流(liu)裏(li)會(hui)隨(sui)機(ji)插(cha)入(ru)延(yan)遲(chi),使(shi)得(de)攻(gong)擊(ji)更(geng)為(wei)困(kun)難(nan)。使(shi)用(yong)功(gong)耗(hao)分(fen)析(xi)會(hui)有(you)幫(bang)助(zhu),但(dan)要(yao)求(qiu)非(fei)常(chang)昂(ang)貴(gui)的(de)設(she)備(bei)來(lai)實(shi)時(shi)獲(huo)得(de)參(can)考(kao)信(xin)號(hao)。
2、電源噪聲攻擊(Power glitches)
電(dian)源(yuan)供(gong)應(ying)電(dian)壓(ya)的(de)波(bo)動(dong)會(hui)導(dao)致(zhi)晶(jing)體(ti)管(guan)閾(yu)值(zhi)電(dian)平(ping)的(de)漂(piao)移(yi)。結(jie)果(guo)就(jiu)是(shi)一(yi)些(xie)觸(chu)發(fa)器(qi)在(zai)不(bu)同(tong)的(de)時(shi)間(jian)裏(li)采(cai)樣(yang)它(ta)們(men)的(de)輸(shu)入(ru),或(huo)讀(du)出(chu)錯(cuo)誤(wu)的(de)安(an)全(quan)熔(rong)絲(si)的(de)狀(zhuang)態(tai)。 通常用瞬間增加電源電壓或電壓跌落來製造噪聲,一般在10個(ge)時(shi)鍾(zhong)周(zhou)期(qi)內(nei)。電(dian)源(yuan)噪(zao)聲(sheng)通(tong)常(chang)用(yong)在(zai)微(wei)控(kong)製(zhi)器(qi)的(de)程(cheng)序(xu)接(jie)口(kou)上(shang),能(neng)影(ying)響(xiang)處(chu)理(li)器(qi)運(yun)行(xing)或(huo)硬(ying)件(jian)安(an)全(quan)電(dian)路(lu)。一(yi)般(ban)地(di),弱(ruo)點(dian)比(bi)時(shi)鍾(zhong)噪(zao)聲(sheng)更(geng)難(nan)找(zhao)到(dao)並(bing)利(li)用(yong),因(yin)為(wei)對(dui)於(yu)時(shi)域(yu)參(can)數(shu),振(zhen)幅(fu),上(shang)升(sheng)/下降時間都是變量。
一個例子是上例提到的攻擊MC68C05B6.如果在執行AND $0100指令時電源電壓減少50-70%,處理器從EEPROM中取出的值是FFh而(er)不(bu)是(shi)實(shi)際(ji)的(de)值(zhi)。這(zhe)會(hui)對(dui)應(ying)熔(rong)絲(si)未(wei)加(jia)密(mi)狀(zhuang)態(tai)。竅(qiao)門(men)是(shi)小(xiao)心(xin)計(ji)算(suan)執(zhi)行(xing)時(shi)間(jian)來(lai)減(jian)少(shao)電(dian)源(yuan)電(dian)壓(ya),否(fou)則(ze)處(chu)理(li)器(qi)會(hui)停(ting)止(zhi)運(yun)行(xing)或(huo)進(jin)入(ru)複(fu)位(wei)狀(zhuang)態(tai)。這(zhe)種(zhong)任(ren)務(wu)並(bing)不(bu)難(nan),複(fu)位(wei)後(hou)目(mu)標(biao)指(zhi)令(ling)在(zai)第(di)一(yi)個(ge)一(yi)百(bai)周(zhou)期(qi)內(nei)被(bei)執(zhi)行(xing)。破(po)解(jie)者(zhe)可(ke)以(yi)使(shi)用(yong)矢(shi)量(liang)發(fa)生(sheng)器(qi)或(huo)構(gou)建(jian)一(yi)個(ge)自(zi)己(ji)的(de)噪(zao)聲(sheng)源(yuan)。
另一個是微芯的老舊的PIC16F84。芯(xin)片(pian)的(de)擦(ca)除(chu)操(cao)作(zuo)會(hui)解(jie)除(chu)安(an)全(quan)保(bao)護(hu)。但(dan)同(tong)時(shi)會(hui)芯(xin)片(pian)上(shang)程(cheng)序(xu)和(he)數(shu)據(ju)存(cun)儲(chu)器(qi)中(zhong)的(de)內(nei)容(rong)。安(an)全(quan)保(bao)護(hu)電(dian)路(lu)在(zai)硬(ying)件(jian)設(she)計(ji)上(shang)是(shi)在(zai)安(an)全(quan)熔(rong)絲(si)複(fu)位(wei)之(zhi)前(qian)擦(ca)掉(diao)存(cun)儲(chu)器(qi)。但(dan)我(wo)們(men)發(fa)現(xian)在(zai)芯(xin)片(pian)擦(ca)除(chu)操(cao)作(zuo)時(shi)電(dian)源(yuan)電(dian)壓(ya)幾(ji)微(wei)秒(miao)內(nei)增(zeng)加(jia)到(dao)大(da)約(yue)10V,huizhongduancunchuqicachucaozuo,dananquanrongsizhengchangwanchengfuwei,zheshideyoukenengduchucunchuqilideneirong。rucigaoyaxuyaojinshenshiyong,ruguoshijianguochanghuisunshangxinpian。xinbanbendePIC16F84A增加了防欠壓和過壓攻擊的能力。如果電源電壓低於3V或6V,通過編程接口的任意修改存儲器的操作會被立即中斷。
不是一直需要電源噪聲超過電源電壓範圍的規格。例如,PIC18F84A微控製器,保護機製可以阻止在芯片擦除操作開始後使用大於50mV的噪聲。那會導致中止程序存儲器的擦除操作但不會擦掉熔絲。
上述例子表明噪聲攻擊時無需特殊工具就有很好的效果。智能卡裏有時鍾監控電路但極少微控製器有。
六、數據保持能力分析(Data remanence)
處理器一般會把密鑰保存在靜態RAM裏,如果元器件被篡改就會掉電,RAM內容丟失,從而保護密鑰不被竊取。眾所周知的是在低於零下20度時,SRAM裏的內容會“冰凍”。很多元器件把溫度低於這個閾值視為發生篡改事件。我們做了一些實驗來確定現代SRAM數據保持能力與溫度的關係。我們的實驗表明傳統的思維不再有效。即使在高溫下,數據保持能力也是個問題。數據保持能力不僅僅對SRAM有影響,對DRAM, UV EPROM, EEPROM和閃存也有影響。結果是,仍然可以從已擦除的存儲器中獲得一些信息。
這會給安全設備帶來很多問題。 安全工程師都很關注斷電後SRAM器件能保持數據的時間。原因如下:很hen多duo產chan品pin使shi用yong密mi鑰yao或huo類lei似si的de方fang法fa進jin行xing加jia密mi和he別bie的de安an全quan相xiang關guan的de計ji算suan,需xu要yao不bu能neng被bei讀du出chu或huo改gai變bian。最zui普pu遍bian的de解jie決jue方fang法fa是shi把ba安an全quan密mi鑰yao放fang在zai帶dai篡cuan改gai傳chuan感gan器qi的de易yi失shi存cun儲chu器qi中zhong。一yi旦dan檢jian測ce到dao發fa生sheng篡cuan改gai,易yi失shi傳chuan感gan器qi會hui掉diao電dian或huo短duan路lu到dao地di。但dan如ru果guo數shu據ju保bao留liu時shi間jian大da於yu破po解jie者zhe打da開kai元yuan器qi件jian並bing對dui存cun儲chu器qi上shang電dian的de時shi間jian,那na保bao護hu機ji製zhi就jiu被bei摧cui毀hui了le。
在二十世紀八十年代,發現低溫能將SRAM的數據保存時間增加到幾秒甚至幾分鍾。對於那個時候的元器件,發現零下20度就可以增加數據保存時間,並且會隨著溫度的降低而增加保持的時間。有些就增加了溫度傳感器,溫度低於零下20度就觸發篡改事件,立即清零存儲器。本次試驗是重複這個工作,察看2000年後的產品是否也有此特性。
另一個需要關注的是即使部分內容已被破壞,安全信息也能被複原。假設破解者獲得了n=128位密鑰中的m=115位,也就是90%的信息。他可以通過搜索n!/(m!(n-m)!=128!/(115!13!)=2.12*1017~258個可能的密鑰。通過1萬台電腦,每台每秒進行10億次搜索密鑰的操作,破解者隻需6個小時就能搜遍所有密鑰。如果隻有80%的信息,也就是知道128位密鑰中的103位,那就有2.51*1026~288種可能。幾乎增大了一百倍,破解者要花百萬年來搜索密鑰,故認為均勻的128位密鑰不能被恢複。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 三星上演罕見對峙:工會集會討薪,股東隔街抗議
- 摩爾線程實現DeepSeek-V4“Day-0”支持,國產GPU適配再提速
- 築牢安全防線:智能駕駛邁向規模化應用的關鍵挑戰與破局之道
- GPT-Image 2:99%文字準確率,AI生圖告別“鬼畫符”
- 機器人馬拉鬆的勝負手:藏在主板角落裏的“時鍾戰爭”
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
鑒頻器
江蘇商絡
交流電機
腳踏開關
接觸器接線
接近開關
接口IC
介質電容
介質諧振器
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發工具
開關
開關電源
開關電源電路
開關二極管
開關三極管
科通
可變電容
可調電感
可控矽
空心線圈

