<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 想破解MCU?有何難

想破解MCU?有何難

作者: 時(shí)間:2018-10-22 來(lái)源:網(wǎng)絡(luò ) 收藏

  時(shí)序攻擊可用在安全保護是基于密碼的微控制器,或使用確定數字的卡或密碼來(lái)進(jìn)行訪(fǎng)問(wèn)控制的系統,如達拉斯的iButton產(chǎn)品。這些系統中共有的風(fēng)險是輸入的連續數字在數據庫進(jìn)行再次校驗。

本文引用地址:http://dyxdggzs.com/article/201810/393175.htm

  首先明白是什么——即結構與組成

 ?、瘢褐醒胩幚砥鰿PU,包括運算器、控制器和寄存器組。是內部的核心部件,由運算部件和控制部件兩大部分組成。前者能完成數據的算術(shù)邏輯運算、位變量處理和數據傳送操作,后者是按一定時(shí)序協(xié)調工作,是分析和執行指令的部件。

 ?、颍捍鎯ζ?,包括ROM和RAM。ROM程序存儲器,的工作是按事先編制好的程序一條條循序執行的,ROM程序存儲器即用來(lái)存放已編的程序(系統程序由制造廠(chǎng)家編制和寫(xiě)入)。存儲數據掉電后不消失。ROM又分為片內存儲器和片外(擴展)存儲器兩種。

  RAM數據存儲器,在程序運行過(guò)程中可以隨時(shí)寫(xiě)入數據,又可以隨時(shí)讀出數據。存儲數據在掉電后不能保持。RAM也分為片內數據存儲器和片外(擴展)存儲器兩種。

 ?、螅狠斎?、輸出I/O接口,與外部輸入、輸出(電路)設備相連接。PO/P1/P2/P3等數字I/O接口,內部電路含端口鎖存器、輸出驅動(dòng)器和輸入緩沖器等電路。其中PO為三態(tài)雙向接口,P1/P2/P3數字I/O端口,內部驅動(dòng)器為“開(kāi)路集電極”輸出電路,應用時(shí)內部或外部電路接有上拉電阻。每個(gè)端口均可作為數字信號輸入或輸出口,并具有復用功能(指端口功能有第一功能、第二功能甚至數個(gè)功能,在應用中可靈活設置)。

  MCU器件,除數字I/O端口外,還有ADC模擬量輸入、輸出端口,輸入信號經(jīng)內部A/D轉換電路,變換為數字(頻率)信號,再進(jìn)行處理;對輸出模擬量信號,則先經(jīng)D/A轉換后,再輸出至外部電路。

  再來(lái)談幾種如何破解MCU方法

  一、非侵入式攻擊

  不需要對元器件進(jìn)行初始化。攻擊時(shí)可以把元器件放在測試電路中分析,也可單獨連接元器件。一旦成功,這種攻擊很容易普及,并且重新進(jìn)行攻擊不需要很大的開(kāi)銷(xiāo)。另外,使用這種攻擊不會(huì )留下痕跡。因此,這被認為是對任意元器件的硬件安全最大的威脅。同時(shí),通常需要很多時(shí)間和精力來(lái)尋找對特定元器件的非侵入式攻擊方法。這通常對元器件進(jìn)行反向工程,包括反匯編軟件和理解硬件版圖。

  非侵入式攻擊可以是被動(dòng)的或主動(dòng)的。被動(dòng)攻擊,也叫側面攻擊,不會(huì )對被攻擊元器件發(fā)生作用,但通常是觀(guān)察它的信號和電磁輻射。如功耗分析和時(shí)鐘攻擊。主動(dòng)攻擊,如窮舉攻擊和噪聲攻擊,特點(diǎn)是將信號加到元器件上,包括電源線(xiàn)。

  一個(gè)簡(jiǎn)單的非侵入式攻擊可以是復制一個(gè)上電配置的基于SRAM的FPGA。接上配置芯片用的JATG接口,用示波器或邏輯分析儀,捕捉所有信號。然后可以通過(guò)分析波形并回復獨有的命令。

  只使用到一半的FPGA資源時(shí),可以輕微改變數據流來(lái)偽裝盜版的事實(shí)。配置時(shí)留下一點(diǎn)空間而不影響元器件的運行。JTAG接口在發(fā)送信號時(shí)序時(shí)也有一些自由,故盜版的波形可以設置成看上去與原始信號不一樣的。另外,破解者可以在上傳時(shí)交換行地址,給人的印象是完全不同的設計。

  含糊與安全

  半導體制造商給大客戶(hù)提供了增強產(chǎn)品防破解能力的措施:包裝上的客戶(hù)印字代替了標準的芯片型號。這給人的印象是產(chǎn)品是由定制的集成電路設計的。眾所周知,ASIC提供了很好地保護措施來(lái)防止多種攻擊,只有極少數經(jīng)驗豐富且裝備精良的破解者才有可能成功破解。這會(huì )使很多潛在的破解者望而卻步。但一個(gè)信心堅定的破解者會(huì )嘗試用簡(jiǎn)單的方法確定芯片是不是真的ASIC。最簡(jiǎn)單的方法是觀(guān)察連接到電源,地,時(shí)鐘,復位,串口或別的接口的引腳。與數據庫中被懷疑的微控制器相比較,這種結果非??煽?,每種微控制器都有自己的引腳特點(diǎn)。一旦發(fā)現相似的,就把它放在通用燒寫(xiě)器上嘗試讀出結果。

  另一個(gè)簡(jiǎn)單的方法是限制訪(fǎng)問(wèn)程序存儲器。通常用在智能卡中,但一些微控制器中也用到。這不是很可靠且實(shí)用的方法。當然在智能卡中用得很好,所有的客戶(hù)被與芯片制造商迫簽署不擴散協(xié)議。但微控制器極少這樣,能被通用燒寫(xiě)器燒寫(xiě)的微控制器世界上很多公司都能提供。即使文件中沒(méi)有燒寫(xiě)的規格,用低成本的示波器幾個(gè)小時(shí)就可以套出需要的波形。如果微控制器不被特殊通用燒寫(xiě)器所支持,仍然可以通過(guò)從制造商購買(mǎi)開(kāi)發(fā)板來(lái)獲得直接完整的協(xié)議。

  二、時(shí)序攻擊(TIming attacks)

  一些安全相關(guān)的操作使用輸入的值和密鑰,由半導體芯片執行不同的時(shí)間來(lái)比較。小心的時(shí)序測量和分析就能恢復出密鑰。這個(gè)方法最早在1996年的文獻上提到。稍后這種攻擊成功破解了實(shí)際的RSA簽名的智能卡。

  為了攻擊成功,需要收集裝置的信息,與處理時(shí)間整合比較,如問(wèn)答延遲(quesTIon-answer delay)。很多密碼算法容易受到時(shí)序攻擊,主要原因是軟件來(lái)執行算法。那包括執行適時(shí)跳過(guò)需要的分支和操作條件;使用緩存;不固定時(shí)間處理指令如倍頻和分頻;還有大量的其他原因。結果就是執行能力典型地取決于密鑰和輸入的數據。

  為防止此類(lèi)攻擊可以使用盲簽名(Blinding signatures)技術(shù)。這個(gè)方法是利用選定的隨機數與輸入數據混合來(lái)防止破解者知道輸入數據的數學(xué)運算法則。

  時(shí)序攻擊可用在安全保護是基于密碼的微控制器,或使用確定數字的卡或密碼來(lái)進(jìn)行訪(fǎng)問(wèn)控制的系統,如達拉斯的iButton產(chǎn)品。這些系統中共有的風(fēng)險是輸入的連續數字在數據庫進(jìn)行再次校驗。系統需經(jīng)常檢查輸入到數據庫的密鑰的每個(gè)字節,一旦發(fā)現不正確的字節就會(huì )立即停止,然后切換到下一個(gè)直到最后一個(gè)。所以破解者很容易測量出輸入最后一個(gè)密鑰倒請求另一個(gè)的時(shí)間,并得出發(fā)現的密鑰相似度。嘗試相對小的數字,有可能找到匹配的密鑰。

  為防止這些攻擊,設計者需要小心計算處理器的周期。當密碼進(jìn)行比較時(shí)確保正確和錯誤的時(shí)間是一樣的,例如:飛思卡爾的68HC08微控制器的內部存儲器載入模塊在輸入正確的八字節密碼后可以訪(fǎng)問(wèn)內部閃存。為達到正確和錯誤的密碼都處理相同的時(shí)間,程序中增加了額外的空操作指令。這對時(shí)序攻擊提供了很好的保護。一些微控制器有內部阻容振蕩器,那樣處理器的工作頻率與電壓和芯片的溫度相關(guān)。這使得時(shí)序分析很困難,攻擊時(shí)需要穩定元器件的溫度并減少電源線(xiàn)上的噪聲和電壓波動(dòng)。一些智能卡有內部隨機時(shí)鐘信號使得攻擊時(shí)測量時(shí)間延遲無(wú)效。

  三、窮舉攻擊(也稱(chēng)暴力攻擊Brute force attacks)

  暴力對于半導體硬件和密碼來(lái)說(shuō)是另一種意思。對于密碼,暴力攻擊是對系統嘗試數量眾多的密鑰。通常是使用高速計算機來(lái)尋找匹配的密鑰。 一個(gè)例子是微控制器中的密碼保護設置。以TI的MSP430為例,密碼本身長(cháng)度為32字節(256位),抵擋暴力攻擊已經(jīng)足夠了。但密碼分配在與處理器中斷矢量相同的存儲器地址。那么,首先減少存儲器內矢量一直指向的區域。然后當軟件被更新時(shí),只有小部分的密碼被修改,因為大部分中斷子程序指向的矢量是相同的地址。

  結果是,如果破解者知道早前密碼中的一個(gè),就很容易做系統的搜索,在合理的時(shí)間內找到正確的密碼。 暴力攻擊也可用在A(yíng)SIC或CPLD的硬件設計來(lái)實(shí)現。這種情況下,破解者使用所有可能的邏輯組合到元器件可能的輸入端并觀(guān)察所有輸出。這種方法也稱(chēng)為黑箱分析(Black-box analysis),因為破解者不知道被測試元器件的情況。通過(guò)所有可能的信號組合,嘗試獲得元器件的功能。這種方法對相對小的邏輯器件很有效。另一個(gè)問(wèn)題是破解者使用的ASIC或CPLD有觸發(fā)器,故輸出將可能是當前狀態(tài)或輸入的狀態(tài)。但如果預先檢查并分析信號,搜索的范圍可以顯著(zhù)減少。例如,時(shí)鐘輸入,數據總線(xiàn)和一些控制信號是很容易認出的。

  另一種可能的暴力攻擊,對很多半導體芯片有效,是將外部高壓信號(通常是兩倍于電源電壓)加到芯片引腳上,來(lái)試圖進(jìn)入工廠(chǎng)測試或編程模式。事實(shí)上,這些引腳用數字萬(wàn)用表很容易發(fā)現,因為它們沒(méi)有保護二極管到電源腳。一旦發(fā)現對高壓敏感的引腳,破解者就可以嘗試可能的邏輯信號組合來(lái)加到別的引腳上,找出用于進(jìn)入工廠(chǎng)測試或編程模式的部分。 破解者也可用元器件的通信協(xié)議來(lái)找出設計者嵌入在軟件中的測試和更新用得隱藏功能。

  芯片制造商經(jīng)常提供給后期測試用得嵌入硬件測試接口。如果這些接口的安全保護沒(méi)有適當設計,破解者很容易利用它來(lái)讀寫(xiě)片上存儲器。在智能卡中,這些測試接口通常位于芯片電路之外,并在測試后從物理上除去。 任何安全系統,不管軟件和硬件,在設計上都可能有缺陷,對于破解者來(lái)說(shuō)都是機會(huì ),暴力攻擊有可能找到它。小心設計安全保護系統,進(jìn)行適當的評估,可以避免很多問(wèn)題,并使得這些攻擊事實(shí)上不可行。



關(guān)鍵詞: MCU

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>