Page 1 of 1

【技術專欄】安全性產品生命週期管理 Product Life Cycle Management

Posted: 27 Jul 2021, 17:45
by NuvotonMarcom
安全的產品,在產品的設計、開發、組裝一直到送到用戶手上,都必須要完整的考量其安全,並進行有效的管理,這便是產品生命週期管理。

以MCU這類產品而言,其產品生命週期可以分為晶片製造商(Vendor)、原廠出廠狀態(OEM)、產品佈署(Deployed)狀態與退料審查(RMA)狀態。
產品生命週期管理.png
產品生命週期管理.png (19.07 KiB) Viewed 6170 times

晶片製造商(Vendor)狀態
MCU在晶片廠生產製造出來,經過測試、原廠設置後,就可以送給產品製造商,進行產品的開發與製造。
以M2354為例,原廠出廠時晶片具有不可更改且唯一的身分碼(UID),也可以根據客戶需求設置UCID。此時MCU不含韌體與密鑰,可以進行讀取、燒錄或除錯等等操作。

原廠出廠(OEM)狀態
在OEM狀態下的MCU,需要能夠用來開發產品韌體,也需要能夠在產品韌體開發完成後,讓工廠能夠燒錄產品韌體,所以此時的MCU是呈現開放狀態,能夠讀取、燒寫內部資料與進行程序的開發與除錯,包含基於信任根(Root of Trust)機制的安全開機流程,在此時都是關閉的,並且可以根據開發的不同階段,一一打開。
以M2354為例,此時客戶可以用NuLink ICE進行韌體的開發與除錯,確認沒問題之後,就可以將密鑰寫入晶片當中,之後MCU將會啟動信任根基機制,強制執行安全開機認證流程,所有非經授權的韌體都將不允許被執行,也可以啟動Debug Protection Mechanism (DPM)機制,開啟除錯功能的授權機制,以限制對讀取、燒錄與除錯功能的存取。

產品佈署(Deployed)狀態
產品的的韌體開發完成,並在產線組裝完成後,進入產品佈署狀態,就可以送到市場上販售,最終到達消費者的手上,此時為了保護用戶資料的安全,產品的安全機制都會打開,這包括了安全開機流程、禁止讀取、燒寫與除錯介面等等,所有非經授權的操作都是不允許的。
然而,為了能夠讓產品必要時,進入退料審查的狀態,以符合故障分析等需求,因此特別允許在原廠設置的授權條件符合的情況下,可以讓MCU進入退料審查狀態。

退料審查(RMA)狀態
當產品出現問題,需要進行分析時,可能會需要對MCU進行讀取、寫入、除錯等操作,為了避免用戶的資料因此洩露,即使擁有原廠的授權,能夠進入RMA狀態。對M2354而言,其在進入RMA狀態的同時,也會強制將MCU內部的所有資料清除,而晶片內的密鑰也會因此失效,以兼顧用戶的資料安全與RMA需求,並且在RMA狀態的除錯,仍受到DPM的管理,禁止任何非授權的存取。

值得注意的是,產品生命週期內的所有的狀態都是單向且不可逆的,以M2354的產品生命週期管理機制為例,在Vendor/OEM狀態下,晶片可以讀取、燒寫與除錯,且只能往Deployed狀態更改,在Deployed狀態下會強制打開相關的安全機制,禁止一切非授權的存取,且只能往RMA狀態變化,而進入RMA狀態,則是會強制清除用戶資料,並且讓晶片內部的密鑰無效化之後才能進行其他的授權操作,以避免任何可能的安全漏洞。一旦進入RMA狀態,就表示該晶片已經進入生命周期的尾聲,此時MCU再也無法更改狀態,也無法再次使用在產品上,因為MCU內部失效的密鑰將造成所有韌體都無法通過安全開機的認證。

傳統的MCU對於安全性的設計,通常是設計成所謂的LOCK機制,目的是讓產品出貨時,能夠鎖住內部的記憶體,以避免被盜取韌體來製作所謂的盜版,所以安全機制就只有鎖定與非鎖定狀態。然而,一個真正完整的安全性產品,則必須對整個產品生命週期的安全,都有縝密的規劃,從一開始的唯一身分碼,開發除錯時的便利性與安全性,到產品上市的安全性,一直到最後產品退回原廠時的分析處裡,每一個階段都要確保其使用的需求與安全,才能夠真正防堵在各個階段所面臨的安全威脅,因此產品生命週期的管理,是安全MCU產品必不可少的功能。