破解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方法
一、非侵入式攻擊
buxuyaoduiyuanqijianjinxingchushihua。gongjishikeyibayuanqijianfangzaiceshidianluzhongfenxi,yekedandulianjieyuanqijian。yidanchenggong,zhezhonggongjihenrongyipuji,bingqiezhongxinjinxinggongjibuxuyaohendadekaixiao。lingwai,shiyongzhezhonggongjibuhuiliuxiahenji。yinci,zhebeirenweishiduirenyiyuanqijiandeyingjiananquanzuidadeweixie。tongshi,tongchangxuyaohenduoshijianhejinglilaixunzhaoduitedingyuanqijiandefeiqinrushigongjifangfa。zhetongchangduiyuanqijianjinxingfanxianggongcheng,baokuofanhuibianruanjianhelijieyingjianbantu。
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)的(de)ASIC。最zui簡jian單dan的de方fang法fa是shi觀guan察cha連lian接jie到dao電dian源yuan,地di,時shi鍾zhong,複fu位wei,串chuan口kou或huo別bie的de接jie口kou的de引yin腳jiao。與yu數shu據ju庫ku中zhong被bei懷huai疑yi的de微wei控kong製zhi器qi相xiang比bi較jiao,這zhe種zhong結jie果guo非fei常chang可ke靠kao,每mei種zhong微wei控kong製zhi器qi都dou有you自zi己ji的de引yin腳jiao特te點dian。一yi旦dan發fa現xian相xiang似si的de,就jiu把ba它ta放fang在zai通tong用yong燒shao寫xie器qi上shang嚐chang試shi讀du出chu結jie果guo。
另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)
一(yi)些(xie)安(an)全(quan)相(xiang)關(guan)的(de)操(cao)作(zuo)使(shi)用(yong)輸(shu)入(ru)的(de)值(zhi)和(he)密(mi)鑰(yao),由(you)半(ban)導(dao)體(ti)芯(xin)片(pian)執(zhi)行(xing)不(bu)同(tong)的(de)時(shi)間(jian)來(lai)比(bi)較(jiao)。小(xiao)心(xin)的(de)時(shi)序(xu)測(ce)量(liang)和(he)分(fen)析(xi)就(jiu)能(neng)恢(hui)複(fu)出(chu)密(mi)鑰(yao)。這(zhe)個(ge)方(fang)法(fa)最(zui)早(zao)在(zai)1996年的文獻上提到。稍後這種攻擊成功破解了實際的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),yinweipojiezhebuzhidaobeiceshiyuanqijiandeqingkuang。tongguosuoyoukenengdexinhaozuhe,changshihuodeyuanqijiandegongneng。zhezhongfangfaduixiangduixiaodeluojiqijianhenyouxiao。lingyigewentishipojiezheshiyongdeASIC或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)。
另一種可能的暴力攻擊,對很多半導體芯片有效,是將外部高壓信號(通常是兩倍於電源電壓)jiadaoxinpianyinjiaoshang,laishitujinrugongchangceshihuobianchengmoshi。shishishang,zhexieyinjiaoyongshuziwanyongbiaohenrongyifaxian,yinweitamenmeiyoubaohuerjiguandaodianyuanjiao。yidanfaxianduigaoyamingandeyinjiao,pojiezhejiukeyichangshikenengdeluojixinhaozuhelaijiadaobiedeyinjiaoshang,zhaochuyongyujinrugongchangceshihuobianchengmoshidebufen。 破解者也可用元器件的通信協議來找出設計者嵌入在軟件中的測試和更新用得隱藏功能。
xinpianzhizaoshangjingchangtigonggeihouqiceshiyongdeqianruyingjianceshijiekou。ruguozhexiejiekoudeanquanbaohumeiyoushidangsheji,pojiezhehenrongyiliyongtalaiduxiepianshangcunchuqi。zaizhinengkazhong,zhexieceshijiekoutongchangweiyuxinpiandianluzhiwai,bingzaiceshihoucongwulishangchuqu。 任ren何he安an全quan係xi統tong,不bu管guan軟ruan件jian和he硬ying件jian,在zai設she計ji上shang都dou可ke能neng有you缺que陷xian,對dui於yu破po解jie者zhe來lai說shuo都dou是shi機ji會hui,暴bao力li攻gong擊ji有you可ke能neng找zhao到dao它ta。小xiao心xin設she計ji安an全quan保bao護hu係xi統tong,進jin行xing適shi當dang的de評ping估gu,可ke以yi避bi免mian很hen多duo問wen題ti,並bing使shi得de這zhe些xie攻gong擊ji事shi實shi上shang不bu可ke行xing。
四、功耗分析(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采樣速度的模數轉換器。
這些獲得的參數可以用來區別處理器的不同指令並估計總線上同時翻轉的位數。 通(tong)過(guo)平(ping)均(jun)多(duo)次(ci)重(zhong)複(fu)同(tong)樣(yang)操(cao)作(zuo)的(de)電(dian)流(liu),即(ji)使(shi)是(shi)沒(mei)有(you)通(tong)過(guo)總(zong)線(xian)的(de)很(hen)小(xiao)信(xin)號(hao)也(ye)能(neng)區(qu)別(bie)開(kai)。有(you)些(xie)信(xin)號(hao)如(ru)移(yi)位(wei)狀(zhuang)態(tai)特(te)別(bie)有(you)用(yong),因(yin)為(wei)很(hen)多(duo)密(mi)碼(ma)的(de)密(mi)鑰(yao)產(chan)生(sheng)算(suan)法(fa)使(shi)用(yong)移(yi)位(wei)操(cao)作(zuo)來(lai)逐(zhu)一(yi)移(yi)出(chu)單(dan)個(ge)密(mi)鑰(yao)倒(dao)進(jin)位(wei)標(biao)誌(zhi)。即(ji)使(shi)狀(zhuang)態(tai)位(wei)的(de)變(bian)化(hua)不(bu)能(neng)直(zhi)接(jie)測(ce)量(liang),它(ta)們(men)通(tong)常(chang)會(hui)改(gai)變(bian)指(zhi)令(ling)次(ci)序(xu)或(huo)微(wei)碼(ma)的(de)執(zhi)行(xing),這(zhe)會(hui)導(dao)致(zhi)功(gong)耗(hao)的(de)明(ming)顯(xian)變(bian)化(hua)。

butongzhilingdaozhibutongjibiedezhilingjiemaheyunsuandanyuandehuodong,kebeiqingxidiqubiekai,guyunsuanbufennengbeituicechu。chuliqidebutongdanyuanzaishizhongyanxiangguandebutongshijianliyouduyoudekaiguanzhuangtai,nengbeigaopinyiqifenlichulai。
有多種不同的功耗分析技術用在破解密碼算法上。整個分析過程是相對簡單的,隻需要標準的現有的廉價儀器設備。 功耗分析技術主要有兩種:簡單功耗分析(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)。 功(gong)耗(hao)特(te)性(xing)當(dang)然(ran)包(bao)括(kuo)噪(zao)聲(sheng)部(bu)分(fen)。額(e)外(wai)的(de)噪(zao)聲(sheng)可(ke)以(yi)通(tong)過(guo)減(jian)少(shao)獲(huo)取(qu)信(xin)號(hao)的(de)探(tan)針(zhen)長(chang)度(du)並(bing)小(xiao)心(xin)使(shi)用(yong)測(ce)量(liang)儀(yi)器(qi)來(lai)降(jiang)低(di)它(ta)。測(ce)量(liang)接(jie)在(zai)地(di)線(xian)上(shang)的(de)電(dian)阻(zu)的(de)功(gong)耗(hao)有(you)一(yi)些(xie)優(you)勢(shi)。首(shou)先(xian),減(jian)少(shao)了(le)噪(zao)聲(sheng)電(dian)平(ping)。其(qi)次(ci),可(ke)以(yi)用(yong)示(shi)波(bo)器(qi)的(de)探(tan)頭(tou)直(zhi)接(jie)測(ce)量(liang)信(xin)號(hao),因(yin)為(wei)大(da)部(bu)分(fen)探(tan)針(zhen)站(zhan)有(you)公(gong)共(gong)的(de)地(di)線(xian)與(yu)外(wai)部(bu)電(dian)源(yuan)地(di)相(xiang)連(lian)。為(wei)了(le)增(zeng)加(jia)信(xin)噪(zao)比(bi),可(ke)以(yi)通(tong)過(guo)提(ti)高(gao)平(ping)均(jun)采(cai)樣(yang)數(shu)來(lai)獲(huo)得(de)。
有you源yuan探tan頭tou能neng降jiang低di輸shu入ru電dian容rong,增zeng加jia對dui輸shu入ru信xin號hao的de帶dai寬kuan。一yi種zhong方fang法fa是shi用yong高gao速su低di噪zao聲sheng的de運yun放fang來lai構gou建jian相xiang對dui簡jian單dan的de探tan頭tou,另ling一yi種zhong是shi用yong很hen短duan的de同tong軸zhou電dian纜lan直zhi連lian到dao示shi波bo器qi的de輸shu入ru端duan。在zai這zhe些xie情qing況kuang下xia,探tan頭tou的de輸shu入ru電dian容rong顯xian著zhu減jian少shao。
對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的電壓降,那可能中斷微控製器的正常操作。
jianshaozhegedianzukeyijiejuezhegewenti,danhuishidenanyishibiegonghaodeweixiaobiandong。shiyongbianyaqihou,buxuyaoshiyongangguideyouyuantantou,biaozhundewuyuantantoujiukeyigeichujihuxiangtongdejieguo。ruguoxinhaotaixiao,tiaojieercicedexianquanjiukeyizengjiazhenfu。bianyaqiyedandangwuyuanlvboqidejiaose,ruboxing,tongyangdechuliqizhilingduidianzuhebianyaqisuoceliangdaodeboxingyoubutongdeyingxiang。nakeyitongguoduihuodedexinhaojinxingchuli。weilegongjihuodechenggong,xuyaocaijishuqiandeyangben,ranhoukuaisufenxichulisuozhanxiandemimi。
最近,芯片設計上已考慮這種攻擊,並將使得這種攻擊方法更難獲得成功。
五、噪聲攻擊(Glitch attacks)
zaoshenggongjishikuaisugaibianshurudaoweikongzhiqidexinhao,yiyingxiangtadezhengchangyunxing。tongchangzaoshengshidiejiazaidianyuanshanghuoshizhongxinhaoshang,danzaoshengyekeyishiwaijiadeduanzandianchanghuodiancimaichong。zailixinpianbiaomianshubaiweimichufangzhilianggenjinshuzhen,ranhoujiashangshaoyu1微秒的數百伏電壓的窄脈衝,晶圓襯底會感應出一個電場,使得鄰近晶體管的閾值電壓發生變化。最近出現一種改進的方法:使用幾百圈金屬線繞在微探針的針尖構成一個小型電感。當電流進入線圈會產生磁場,針尖將集中磁力線。
每個晶體管和與它相連的線路構成有時延特性的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)(比正常的時鍾脈衝要短得多)或電源噪聲(電源電壓的快速波動)將jiang會hui影ying響xiang芯xin片pian裏li的de某mou些xie晶jing體ti管guan,導dao致zhi一yi個ge或huo多duo個ge觸chu發fa器qi進jin入ru錯cuo誤wu狀zhuang態tai。通tong過guo改gai變bian參can數shu,處chu理li器qi會hui被bei導dao致zhi執zhi行xing許xu多duo完wan全quan不bu同tong的de錯cuo誤wu指zhi令ling,有you時shi甚shen至zhi是shi不bu被bei微wei碼ma支zhi持chi的de。經jing管guan我wo們men不bu會hui預yu先xian知zhi道dao何he種zhong噪zao聲sheng會hui導dao致zhi何he種zhong芯xin片pian的de何he種zhong錯cuo誤wu,但dan它ta能neng相xiang當dang簡jian單dan地di進jin行xing係xi統tong的de搜sou索suo。
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約yue10V,會hui中zhong斷duan存cun儲chu器qi擦ca除chu操cao作zuo,但dan安an全quan熔rong絲si正zheng常chang完wan成cheng複fu位wei,這zhe使shi得de有you可ke能neng讀du出chu存cun儲chu器qi裏li的de內nei容rong。如ru此ci高gao壓ya需xu要yao謹jin慎shen使shi用yong,如ru果guo時shi間jian過guo長chang會hui損sun傷shang芯xin片pian。新xin版ban本ben的dePIC16F84A增加了防欠壓和過壓攻擊的能力。如果電源電壓低於3V或6V,通過編程接口的任意修改存儲器的操作會被立即中斷。
不是一直需要電源噪聲超過電源電壓範圍的規格。例如,PIC18F84A微控製器,保護機製可以阻止在芯片擦除操作開始後使用大於50mV的噪聲。那會導致中止程序存儲器的擦除操作但不會擦掉熔絲。
上述例子表明噪聲攻擊時無需特殊工具就有很好的效果。智能卡裏有時鍾監控電路但極少微控製器有。
六、數據保持能力分析(Data remanence)
處理器一般會把密鑰保存在靜態RAM裏,如果元器件被篡改就會掉電,RAM內容丟失,從而保護密鑰不被竊取。眾所周知的是在低於零下20度時,SRAM裏的內容會“冰凍”。很多元器件把溫度低於這個閾值視為發生篡改事件。我們做了一些實驗來確定現代SRAM數據保持能力與溫度的關係。我們的實驗表明傳統的思維不再有效。即使在高溫下,數據保持能力也是個問題。數據保持能力不僅僅對SRAM有影響,對DRAM, UV EPROM, EEPROM和閃存也有影響。結果是,仍然可以從已擦除的存儲器中獲得一些信息。
這會給安全設備帶來很多問題。 安全工程師都很關注斷電後SRAM器件能保持數據的時間。原因如下:henduochanpinshiyongmiyaohuoleisidefangfajinxingjiamihebiedeanquanxiangguandejisuan,xuyaobunengbeiduchuhuogaibian。zuipubiandejiejuefangfashibaanquanmiyaofangzaidaicuangaichuanganqideyishicunchuqizhong。yidanjiancedaofashengcuangai,yishichuanganqihuidiaodianhuoduanludaodi。danruguoshujubaoliushijiandayupojiezhedakaiyuanqijianbingduicunchuqishangdiandeshijian,nabaohujizhijiubeicuihuile。
在二十世紀八十年代,發現低溫能將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可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




