<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 如何破解MCU的方法及其預防措施

          如何破解MCU的方法及其預防措施

          作者: 時間:2017-12-21 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/201712/373385.htm

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

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

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

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

            再來談幾種如何破解MCU方法及預防措施

            一、非侵入式攻擊

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

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

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

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

            防護與安全

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

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

            二、時序攻擊(Timing attacks)

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

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

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

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

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



          關鍵詞: MCU 嵌入式

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();