漏斗型考量防護需求層級 IoT終端裝置安全有保障

2017-01-03
隨著近年來物聯網(Internet of Things)相關應用興起,有關物聯網的議題如雨後春筍般浮上檯面,這當中有關資安的議題正是被廣泛討論的其中一項。雖然資安問題看起來非常龐大與複雜,但實際上有些做法與規範可以參考過去網路發展的經驗,並以其為基礎進而發展成完善的管理機制。
要實現完整的物聯網安全要考慮的是一個從端到端(End-to-end)的整體系統問題,如以此觀點出發,物聯網的資安問題就可稍微收斂為「針對物聯網節點裝置的完善資安考量」。本文將從物聯網節點裝置端出發,分析並探討物聯網環境中端點裝置所採用的微控制器(MCU)晶片架構設計該如何因應日益嚴峻的聯網環境的安全需求。

安全基礎

一般來說,資訊傳輸過程的安全考慮是為了滿足三項需求,分別是隱密性(Confidentiality)、完整性(Integrity)與正當性(Authenticity)。茲將其所代表的需求意義說明如(表1):

表1 資訊傳輸的安全需求主要項目說明

表1中的三項安全需求必須同時滿足,無論任何一項有缺失都將造成資安問題。當然這些年來,許多資安技術發展目的在促進達成上述目標,其中有些技術已發展成熟,有些則持續演進中。密碼學應用是最常被提到的例子,密碼演算法(Cryptography Algorithms)是現代資訊與通訊科技的安全基石,以其為基礎開發而成的各項加解密功能在資通領域中扮演了非常重要的角色。

加密與解密(Encryption/Decryption)演算法功能是建構隱密性的重要元件,如:對稱式加解密的AES、DES/3DES,非對稱式的RSA、ECC等演算法,這些技術衍生的應用讓資訊在傳遞過程免於被輕易地或原封不動地攔截與解讀。

雜湊(Hashing)功能則是為了實現資訊的「完整性」,如SHA、MDx等雜湊函式,可以確保資料的任何更動都能被辨識出;因為當資料發生變動,即非原始資料型態,則其根據原始資料所計算出的檢查碼也就會不一樣。「正當性」的達成,則是結合了加解密演算與雜湊函式方法,配合以密鑰(Secret Key)服務加解密過程的方式實現,例如以PKI(Public Key Infrastructure)為基礎的標準。

至此,我們大致說明了以密碼學為基礎達成資通訊安全的基本做法,然隨著產業的發展,建構在這些基礎之上的產業安全標準逐漸產生,如:Secure Http Connections(https)、Secure Payment Transactions(EMV-based Standards)、Secure Over-the-air Software Upgrade等協定,各協定代表各產業所關心的資通訊安全規範,訂定符合個別產業要求的標準,以促進個別產業的安全發展。

平台安全

介紹至此,我們可以瞭解既有的網路與物聯網產業發展已經非常重視資通訊的安全議題;因此筆者認為物聯網安全議題重點很可能會落在越來越多的聯網裝置上,當這些裝置被廣泛設置完成後,將不會需要太多人為操作,其對於安全性的要求,包括資通訊安全、功能運作安全等都將會面臨新的挑戰。因此,討論物聯網安全相關議題時,我們必須從系統架構探討起,亦即包含了資通訊的安全基礎實施做法與裝置的整體設計是否稱得上是一個安全平台等問題。

本文所要重點探討的是MCU安全平台,其所涵蓋範圍甚廣,如有關MCU本身實體的資訊安全防護能力、MCU內部記憶體的封閉性、密鑰儲存的隱密性與對抗電磁分析竊取資訊的有效做法,更甚者如智慧型手持裝置的軟體保護都需要考慮。因此,我們可依照物聯網之系統特性,將前述MCU安全風險議題分類成以下三個面向:

甲、發起安全攻擊的連網與否:攻擊時必須實際接觸到裝置或是可透過網路發起攻擊。

乙、發起安全攻擊的成本高低:攻擊發起端的配備為一台帶Wi-Fi的筆記型電腦或必須用實驗室的精良設備。

丙、遭受攻擊後的結果:只會影響到單個節點裝置或是影響整個網路。

因此當我們要設計一個安全的物聯網系統節點裝置時,上述的三個面向可以幫助我們評估要投入多少資源及所能達成的安全防護等級。

威脅與攻擊

經由前述的說明,可以知道在選用MCU做產品設計階段時,對於資訊安全防護的考量可以是根據終端產品應用需求的不同,制定不同層級的晶片安全防護要求標準。若以現今商業市場上的應用來說,金融行業的相關卡類應用可以說是對晶片安全防護要求等級最高,而傳統上的聯網裝置,諸如手機、桌上型電腦、筆記型電腦與平板等上網裝置,對於晶片之安全防護要求則因使用者操作環境、作業系統的複雜度,還有必須兼顧處理器的效能表現,所以主要仰賴以軟體層級的技術達成安全防護的需求。

因此,也許我們可以把新興的物聯網晶片安全防護需求定義在上述的兩者之間,那麼將可分析出實際上的安全防護需求涵蓋內容。如果根據OWASP(Open Web Application Security Project)組織所整理的內容做研判,物聯網最可能引起資安與實體安全防護問題的疑慮之前十項為:

.Insecure Web Interface(不安全的網路界面)

.Insufficient Authentication/Authorization(認證/授權不足)

.Insecure Network Services(不安全的網路服務)

.Lack of Transport Encryption(缺乏傳輸加密機制)

.Privacy Concerns(隱私權防護不足)

.Insecure Cloud Interface(不安全的雲介面)

.Insecure Mobile Interface(不安全的行動設備介面)

.Insufficient Security Configurability(安全配置不足)

.Insecure Software/Firmware(不安全的軟體/韌體)

.Poor Physical Security(不安全的硬體設備)

可以看出,上述的觀點仍將物聯網安全著重在連網議題上,因此列舉互聯網裝置相關的資安問題,主要的原因在於多數的物聯網裝置,特別是終端節點,大部分只配備了簡單的資源來進行感測與資料傳輸工作,而伴隨著雲端運算與大數據的興起,許多關鍵性的資料儲存與計算都會回到雲端,故終端節點的安全防護需求程度,是建構物聯網系統需要審慎考量的議題。

晶片架構

2016年10月份ARMCortex-M23(圖1)和Cortex-M33。這兩款處理器都是基於ARM v8-M架構的新型CPU,最大的特色亮點便是把過去在Cortex-A系列才有配備的TrustZone技術整合進來,此技術較現行通用MCU更能建構深層的安全運算架構,若以ARM官方的分類,嵌入式系統(Embedded System)安全等級的考量如(表2):

圖1 ARM Cortex-M23 Processor SystemBlock Diagram

表2 ARM Embedded System Security Requirement Table

Application Level Security(應用級防護)

檢視現今市場上的處理器(CPU、MPU、MCU等),幾乎所有的處理器皆可以支援此等級的安全需求,因其本質上為軟體所提供的安全機制,只要系統開發者在撰寫程式時設計好本地系統(Local Processor System)與遠端系統(Remote/Cloud System)的安全機制,便能實現此一安全等級。

Privilege Level Security(進階型防護)

這個等級將系統程式(如OS Kernel)與應用程式在執行時分類成Privileged和un-Privileged狀態,如此一來程式在執行的時候處理器便有了不同的狀態,藉此可以讓處理器所附的記憶體管理單元(MMU)或記憶體保護單元(MPU)發揮作用,防止錯誤程式或惡意程式找到系統設計上的漏洞,進而引發MCU誤動作或惡意破壞系統的正常運行。這種做法很像是開了一份黑名單給管理單元來預防破壞的惡意程式,只要符合黑名單條件的狀況,保護單元會發出警告,甚至強制停止系統運行以免造成不必要的困擾。

TrustZone Security(TrustZone防護)

此等級防護目標為終極上將軟體運行在不同的處理器區域上,如此便預告了程式設計時需考慮到最終會在哪個處理器區域(Zone)運作,最常用的分類是安全區(Secure)和非安全區(non-Secure),相較前述的等級,增加了對系統更多的保護,由於實際上切割運行處理器,使安全區和非安全區的軟體間互動受到嚴格控管,像是開了一份白名單,唯有符合白名單條件才能讓兩區軟體互動,是更嚴謹的系統安全規則。儘管實際上的做法未必都有實體的不同處理器區域,但TrustZone可視為實踐了系統安全設計上運用白名單規則來防範惡意程式的一種方式。

Anti-tampering Security(防竄改防護)

這一類的安全晶片大部分實際上是針對特定用途所設計的晶片,考量的是MCU本身對實體攻擊(Physical Attack)的防護,其考量的出發點是因為設計者無法控管MCU產品的使用環境,且所要保護的機密資料量(如個資)不大,所以進行實體防護,諸如MCU線路布局設計、訊號不可偵測性、整體軟體運作速度調整防止比對等,由於多種電子攻擊防範技術的考慮,MCU設計的複雜度無法太高,否則容易產生更多漏洞。雖安全防護技術對物聯網產品來說還是有其必須性,但是否兼顧現實功能設計多樣化的需求,且遠端聯網的控制,本地端是否需要有如此重要機密資料而需要到如此等級的安全防護,尚有進一步的探討空間。

漏斗型的設計思維

綜觀上述的說明,新唐科技提出了一個可應用於物聯網系統安全設計的「漏斗型安全設計思維」(圖2),讓系統設計者思考自己的MCU應用系統需要提供的安全防護等級,除能保證自身產品設計上的安全品質,更可在MCU應用系統領域裡實現由TrustZone所支援的更加安全的二次開發(Multiple Libraries/Multiple Parities Development),同時兼顧聯網裝置在設計功能上多樣性需求的彈性。

圖2 物聯網環境MCU應用系統安全設計思維

(本文作者為新唐科技微控制器應用事業群技術經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!