本地儲存的數據分為兩類,一類是運行時執行的應用程式,另一類是運行期間使用的本地數據。應用程式包含製造商的知識或IP,因此設備製造商需要防範其知識被竊取、再利用或抄襲。數據通常儲存在設備上,可以傳輸到另一個相同的設備,並在其中進行更新,因為所有設備都具有相同的屬性。而本地數據會在最終環境中設置設備或在設備運行期間儲存。不同設備包含不同的數據,更新頻率通常高於應用代碼。保護這類數據的原因多半基於考慮設備用戶,因為數據中可能包含用戶環境的敏感資訊。儘管保護數據的動機不同,但保護數據免遭外部存取是這類型數據的強制要求。
聯網需求影響安全風險
裝置聯網與否對安全實施方案的級別選擇而言,是一個非常重要的問題。對於沒有任何連接、獨立運行的設備,發生的攻擊可能只會來自於直接的實體存取。雖然實體存取所帶來的風險,就製造商保護設備內部的IP而言,仍舊是個問題,但用戶數據則不容易受其影響,因為攻擊者通常無法直接存取設備中的數據。
下一級連接則是在本地封閉網路中運行的設備,它們不會連接網際網路,因此攻擊者必須先存取封閉網路,然後才能攻擊設備,但設備同樣需要抵禦外部存取,避免成為進入封閉網路的入口。最後是直接連接到網際網路的設備,它們需要最高級別的安全實施方案,因為潛在攻擊者不再局限於本地連接,而是遍及全球,攻擊力道無法估量。此外,這一類攻擊會越來越多。
依裝置聯網與否選擇安全應用類型
為了更具體地說明這個主題,以下假設一個完全虛構但足夠真實的案例,其反映真實應用的安全需求。以裝有指紋感測器的門鎖為例,透過刷指紋可以進入公司大樓的限制區域。這個感測器採用非常聰明的演算法,能夠在設備中儲存50個最常用的用戶指紋,而占用的記憶體極低。這是最能吸引市場客戶的特色。對於其他使用者,設備透過公司Wi-Fi網路連接到伺服器,對比已儲存指紋,需要更多時間才能准許進入,由此可見,內部儲存的數據是強大優勢。Wi-Fi網路還需要存取網際網路,才能接受製造商對設備進行無線更新。
作為設備製造商,必須設計一個確保應用安全的方案(圖1),而安全方案依照裝置是否有聯網需求可分為兩類。第一類要保護的數據是指紋演算法的IP。這是設備本身的價值所在,應防止任何攻擊者透過直接連接或數據連接存取設備。設備接入網路時,僅保護設備中的MCU免遭讀出、複製或重新程式設計是不夠的,必須同時保護IP,以免攻擊者連接記憶體後轉印IP。
第二類必須注意的數據是用戶數據,即本例中的已儲存指紋和網路存取數據。如上所述,如果只能透過物理方式存取設備,攻擊者會更難獲取用戶數據。透過網際網路連接存取則更容易獲取數據,因此需要加強針對攻擊的安全防護,協助保護使用者數據及其網路,並且設備內部必須實施安全方案才能形成完整的安全設置(圖2)。
兩種IP保護級別
根據前述的範例,保護已儲存的數據有幾個安全前提。為了聚焦於數據安全,在假設所用設備具有安全措施的前提下進行討論。就IP保護而言,可以執行幾種保護級別,這取決於所選的安全方案和定義的保護範圍。首先,裝置中使用的MCU必須能夠防範不必要的偵錯存取和重新設計程式。實現這種關鍵保護的方法有很多種,需要對比不同的執行方法做出判斷。不同的供應商使用不同的保護方法,這些方法也具備不同的安全能力,選擇時須注意該方案不只防止裝置被意外篡改,且需確保安全。
下一級是使用能夠支援不同存取區域的MCU,可以是信任或不受信任的MCU,這樣可避免MCU的核心直接存取IP,防止數據輕易地被轉存。這一級別同樣有不同的解決方案。最常見的是可以用於上述目的的記憶體保護單元(MPU)方案或基於Arm微控制器的TrustZone方案。最後,以加密方式將IP儲存在設備上,可以加強物理攻擊的防禦,因為非揮發性記憶體中並沒有可讀數據的IP,無法透過封裝或電子顯微鏡分析來讀出IP。因此,儲存在MCU中的加密密鑰也必須防止讀出、從CPU直接存取,且加強安全儲存以避免讀出金鑰和加密IP,進而存取機密資訊。如果以加密形式儲存演算法,必須在設備RAM中解密和執行。這是儲存IP最安全的方法,但需要將儲存演算法的RAM納入MPU的可信範圍。
限制MCU存取/演算法加密
確認安全類型與IP保護級別後,需要考慮最終客戶儲存在設備中的數據安全。在前述範例中,已儲存的指紋數據能夠加速相應區域的存取,而且存取客戶網路時,有利於連接到儲存所有指紋數據的伺服器,這樣製造商也可以方便未來進行韌體更新。基本上,相同安全措施可以重複應用,因為該操作是針對設備中儲存的IP執行。進一步決定運行中的強制性安全實施方案級別,設備應防止數據讀出或程式重新設計,避免安裝任何透過網路向攻擊者提供數據的惡意軟體。此外,區分受信任和不受信任記憶體區域也很有幫助,因為這樣可以限制MCU存取記憶體數據的可能性,有助於提高攻擊難度並加強保護。
最後,數據加密是強制性措施,同時對性能產生負面影響。所有已儲存指紋必須先解密,演算法才能開始運算,因此須事先考慮外掛程式的性能影響。另一方面,直接接觸客戶大樓內的設備可能很難,如果這種外掛程式是強制性的,則需要考慮實體存取。只要攻擊者無法接觸此演算法,面對已儲存指紋數據的裝置就無計可施。如果透過網路存取的數據則不同,針對性能的負面影響幾乎為零,因為一天只需要運行一、兩次,但如果能直接接觸設備,以未加密數據形式讀取網路存取代碼,就能取得客戶網路的完整存取權限,造成無法預期的危險。另外須要強調,儲存加密密鑰時的安全級別必須高於數據本身,以避免對加密數據進行任何不必要的存取。
選擇可滿足安全需求之MCU
如何執行安全防護以及採用何種程度的安全方案,始終取決於應用、預期攻擊者以及攻擊者對受保護設備或數據的存取形式。這意謂著面對每種安全方案,開發團隊必須在專案初期就詳細考慮,決定哪種MCU能夠滿足所有的安全防護需要。未來隨著動態數據功能的增加或無線安全編程的發展,安全需求會越來越高。
(本文作者Markus Vomfelde為瑞薩物聯網和基礎設施營業單位資深經理;Brad Rex為瑞薩物聯網和基礎設施營業單位資深產品行銷經理;Zachary Ellis為瑞薩物聯網基礎設施營業單位資深行銷專員)