天天看點

防篡改保護您的寶貴的基于mcu的系統IP

  基于mcu的設計通過将算法編碼到裝置中,使得添加專門的和有差別的功能變得更加容易。舊算法或完全新方法的一個新變化可以使成功的産品和失敗之間的差別。不幸的是,使用單片機也可以打開你的設計來逆向工程,一個競争對手竊取了你的努力工作并從你的創新中獲益。當然,律師可以介入,也許還會報複,但通常隻是在損害完成之後。一種更好的方法是保護您的設計不受常見硬體的幹擾,這些入侵被用來通路您的代碼并竊取您的寶貴IP。

  本文将描述一些常用的硬體“黑客”來通路您的有價值的設計IP。新的MCUs包括幾個關鍵的功能,可以用來設定一些困難的障礙,以防止硬體篡改。這些防篡改設計技術可以成為MCU設計人員技術“小包”的重要組成部分。

  晶片防篡改:管理模式

  MCUs最近的創新之一是包含了一個已經在标準cpu中使用了很多年的特性。最早期的防篡改功能之一,将使用者操作模式與監督操作模式(通常與cpu的作業系統模式相關聯)分離,在MCU裝置中出現。這種功能允許監控軟體在限制或取消通路權限較低的使用者程式時獲得受保護資源的特權通路。這使得黑客更難以通過使用者軟體代碼缺陷來控制系統。即使使用者bug可以用來獲得對MCU的控制,它仍然會被困在使用者模式中,而無法通路與配置、程式設計、調試和系統控制相關的最重要的系統元素。

  作為一個例證,Freescale Kinetis K60 MCU家族同時支援主管和使用者模式。這允許系統保留對配置外圍裝置的控制,通路受保護的記憶體空間,限制對系統代碼的重新程式設計,并限制對用于保護使用者資料的加密函數的通路。許多關鍵的mcu系統資源需要一個監視模式來通路配置寄存器。例如,多用途時鐘生成器(MCG)将對所有相關控制寄存器的寫入權限限制為主管模式(圖1)。這消除了未經授權篡改時鐘設定的可能性,一個硬體黑客試圖禁用系統操作的潛在攻擊向量。此外,管理者模式可以防止使用者代碼在不經意間通路系統資源,并可能為攻擊者提供友善的“後門”,以擷取其他受保護的資源。

  Freescale Kinetis k60mcu多用途時鐘發生器示意圖。

防篡改保護您的寶貴的基于mcu的系統IP

  圖1:Freescale Kinetis k60mcu多用途時鐘發生器的特點是對敏感控制寄存器的寫入通路

  許多其他外圍裝置和系統功能也有類似的通路保護。最敏感的元素,如閃存控制器,隻限制對控制和資料寄存器的寫入通路權限。閃存控制器中的緩存記憶體甚至可以防止未經授權的讀取,這樣黑客就不能“窺探”其他敏感資料。其他不那麼敏感的元素的通路要求也不那麼嚴格,但是即使是CAN總線控制寄存器也可以防止未經授權的寫入,因為您不希望黑客能夠控制您的汽車的刹車!

  篡改檢測功能

  無論你在保護你的設計方面有多深入,仍然有可能發生篡改。篡改檢測的幾種方法是可能的,而且通常很容易實作。例如,為了檢測闆級的篡改事件(例如硬體探測、提升信号跟蹤和電源變更),通常會在印刷電路闆的内部層中放置特殊的隐藏篡改檢測痕迹。如果攻擊者試圖鑽電路闆以擷取關鍵信号,則可以檢測到對隐藏痕迹的影響。另一種常見的方法是使用機械篡改檢測覆寫,它可以檢測攻擊者試圖通路封閉裝置的嘗試。

  大多數的篡改檢測方法都可以産生一個篡改檢測信号,然後由單片機來處理,通常會非常迅速,是以攻擊者幾乎沒有時間進行惡作劇。當檢測到篡改事件時,MCU可能采取的常見操作是快速記錄事件,然後重新設定系統,關閉對關鍵部分的權限,甚至删除敏感資訊。記錄事件可以是逐漸更新“懲罰”篡改生成的有效方法。如果篡改是一個重複發生的事件,那麼使用更嚴重的響應可能是謹慎的,可能會擦除代碼和敏感資料。如果這是第一次篡改事件,那麼一個不那麼嚴重的響應(可能隻是一個系統重置)可能更合适。如果日志将用于确定更新過程,那麼捕獲篡改事件的時間戳非常重要。

  一些MCUs包括監視事件輸入和生成用于日志記錄的時間戳的功能。例如,德州儀器MSP430FR5739 MCU有一個實時時鐘周邊(RTC), RTC_C,類似于其他RTC外圍裝置,如圖2所示。然而,RTC_C有一個額外的防篡改事件日志記錄功能。

  德州儀器MSP430定時器/計數器資源圖像。

防篡改保護您的寶貴的基于mcu的系統IP

  圖2:德州儀器MSP430定時器/計數器資源

  事件/篡改檢測時間戳可以監視兩個MCU輸入,并且當它變為活動時,會生成一個Tamper事件。這些輸入可能來自于開關,用于檢測是否移除防篡改保護罩、移除備用電池或任何數量的巧妙隐蔽的篡改檢測方法。當一個tamper事件被激活時,實時時鐘的值被捕獲,它可以作為日志記錄活動的一部分。該值可用于檢視篡改事件是否發生頻率增加,進而可以應用更新的懲罰。

  用事件監控記錄器篡改報告

  為了簡化捕獲和記錄篡改事件的過程,一些MCUs将更多的功能添加到tamper事件檢測和時間戳捕獲函數中。例如,NXP LPC1800 MCU有一個專用的事件螢幕/記錄外圍裝置,可以快速捕獲、記錄和響應tamper事件。如圖3中的框圖所示,NXP LPC1800監控了三個篡改事件輸入,并能捕獲事件的時間戳。時間戳存儲在第一個tamper事件和最後一個tamper事件中,這樣可以很容易地看到它們發生的時間。整個外圍裝置都是在備用電池電源領域運作的,RTC也是如此,這使得記錄事件成為可能,即使它們發生在斷電或斷電的情況下——這是黑客用來試圖繞過基于外殼的篡改檢測方案的一種常見方法。

  NXP LPC1800 MCU家族的框圖。

防篡改保護您的寶貴的基于mcu的系統IP

  圖3:NXP LPC1800 MCU家庭事件螢幕記錄框圖

  請注意,即使MCU處于低功率狀态,也可以生成中斷或喚醒事件。這就使得篡改事件可以快速響應,這樣黑客就有了最少的時間來攻擊系統,然後再使用懲罰。随着安全性和篡改檢測和預防變得越來越重要,希望将更多的特性添加到專門的tamper外圍裝置中,這樣設計就可以得到更少的開銷保護。

  參考設計為您指明道路

  對于MCU設計,了解篡改檢測和預防功能的最強大的方法之一是檢視參考設計。許多MCU供應商為他們的産品提供參考設計,在某些情況下,他們展示了先進的特性,例如篡改檢測和預防。僅舉一個例子,微晶片有一個能量計的參考設計,它非常接近于一個基于PIC18F單片機的完整系統。部分設計包括電源反轉、頻率幹擾、低電流、外部應用磁場檢測、防篡改檢測開關等。下面的圖4顯示了檢測到篡改事件時記錄的系統和篡改代碼清單。

  微晶片電能表參考設計圖像。

防篡改保護您的寶貴的基于mcu的系統IP

  圖4:微晶片能量表參考設計和防篡改特性(由凱利訊半導體提供)

  硬體的布局、原理圖和材料清單可以利用微晶片在參考設計中的大部分工作。該代碼也是可用的,可以作為您自己的篡改檢測和日志記錄方案的起點,以獲得Microchip PIC 18F基于mcu的設計。您還可以使用數字鍵參考設計庫,并搜尋“Tamper”,以便輕松地生成具有與Tamper相關的功能的參考設計清單。

  結論

  使用防篡改技術對于保護基于mcu系統的有價值的設計IP是至關重要的。在現代的MCU裝置中有幾種防篡改技術,它可以有效地阻礙甚至是最激進的硬體黑客。

繼續閱讀