專用SOC安全控制架構(gòu)的研究與設(shè)計(jì)
摘要:針對專用SoC芯片的安全問題,在描述芯片威脅模型與部署模型的基礎(chǔ)上,規(guī)劃了芯片資源的安全等級,設(shè)計(jì)了芯片的工作狀態(tài)及狀態(tài)轉(zhuǎn)移之間的約束條件和實(shí)現(xiàn)機(jī)制,給出了芯片運(yùn)行時的安全工作流程。對芯片的安全性分析表明,所設(shè)計(jì)的芯片系統(tǒng)能夠滿足機(jī)密性、完整性和可信性的應(yīng)用要求。
關(guān)鍵詞:專用片上系統(tǒng);控制架構(gòu);安全狀態(tài);敏感信息的度量
引言
為了滿足智能卡和可信計(jì)算應(yīng)用需求,設(shè)計(jì)實(shí)現(xiàn)了一款專用SoC芯片。該芯片由微處理器、程序和數(shù)據(jù)存儲器及管理模塊、安全邏輯模塊、密碼服務(wù)模塊、輔助功能模塊、I/0接口組成,能為各種安全應(yīng)用提供機(jī)密性、完整性和身份認(rèn)證等多種密碼服務(wù),以及數(shù)據(jù)存儲、訪問控制、安全計(jì)算等應(yīng)用。
專用SoC芯片的安全控制架構(gòu)設(shè)計(jì),首先應(yīng)對芯片的應(yīng)用環(huán)境進(jìn)行分析,得到芯片的威脅模型與部署模型,即芯片的潛在攻擊者和可能的攻擊方式,以及芯片的生產(chǎn)、運(yùn)輸、研發(fā)和使用等環(huán)節(jié)存在的風(fēng)險問題;其次是根據(jù)芯片安全要求與功能規(guī)范,通過軟硬件協(xié)同設(shè)計(jì)方式,設(shè)置相關(guān)硬件邏輯、狀態(tài)寄存器和參數(shù)存儲區(qū),并實(shí)現(xiàn)相關(guān)安全策略的軟件控制流程;最后對所設(shè)計(jì)的系統(tǒng)進(jìn)行安全性分析、仿真驗(yàn)證與FPGA測試。
1 芯片系統(tǒng)安全體系結(jié)構(gòu)設(shè)計(jì)
基于芯片系統(tǒng)的生產(chǎn)與應(yīng)用實(shí)際,根據(jù)受保護(hù)資產(chǎn)對芯片安全性影響重要程度和信息技術(shù)安全性評估準(zhǔn)則,芯片的受保護(hù)資產(chǎn)可設(shè)計(jì)為如下3種安全級別。
0級資產(chǎn):O層代碼的完整性與可信性,0層數(shù)據(jù)(LEVEL0)的機(jī)密性、完整性和可信性,以及芯片各模塊功能正確性。0級資產(chǎn)是芯片系統(tǒng)的安全基礎(chǔ),對任一項(xiàng)的保護(hù)失敗均將導(dǎo)致整個芯片系統(tǒng)拒絕提供任何服務(wù)。
1級資產(chǎn):1層代碼的完整性與可信性,1層數(shù)據(jù)(LEVEL1)的機(jī)密性、完整性和可信性。1級資產(chǎn)是系統(tǒng)運(yùn)行的核心控制態(tài)和2級資產(chǎn)的安全基礎(chǔ),對1級資產(chǎn)的保護(hù)失敗將禁止本層代碼及2層代碼的執(zhí)行。
2級資產(chǎn):2層代碼完整性與可信性,2層數(shù)據(jù)(LEVEL2)的機(jī)密性、完整性和可信性。2級資產(chǎn)是芯片系統(tǒng)最上層的受保護(hù)資產(chǎn),對本級資產(chǎn)的保護(hù)失敗會導(dǎo)致本層代碼被禁止運(yùn)行。2級資產(chǎn)在芯片系統(tǒng)中可以同時存在多個,但每一時刻只有1個投入運(yùn)行。
1.1 芯片系統(tǒng)安全狀態(tài)設(shè)計(jì)
芯片加電運(yùn)行后,通過執(zhí)行一系列的命令,獲得不同的安全權(quán)限,從而也處于某一特定的安全狀態(tài)。
ST1:出廠初始狀態(tài)。在信任制造商前提下,芯片在出廠初始狀態(tài)是可以信賴的。初始狀態(tài)是芯片的可信基。
ST2:芯片使能狀態(tài)。首次加電時,上電自檢及傳輸安全認(rèn)證通過后,芯片所處的狀態(tài)。芯片在驗(yàn)證各功能模塊正確,且。層代碼、數(shù)據(jù)完整性校驗(yàn)通過后,接收傳輸過程安全認(rèn)證命令,并利用開發(fā)商與制造商的共享秘密,在允許的認(rèn)證次數(shù)范圍內(nèi)對芯片進(jìn)行真實(shí)性認(rèn)證。
ST3:芯片激活狀態(tài)。處于使能狀態(tài)下的芯片,允許開發(fā)商通過用戶創(chuàng)建命令完成用戶創(chuàng)建。在這一過程中,芯片對開發(fā)商身份的合法性認(rèn)證依賴于傳輸安全認(rèn)證時的共享秘密。用戶創(chuàng)建完成后,置位芯片激活狀態(tài)標(biāo)識與所有權(quán)獲得標(biāo)識。再次啟動時,對開發(fā)商的身份合法性認(rèn)證依賴于輸入的共享秘密,以及開發(fā)商創(chuàng)建的用戶密鑰。
ST4:1層代碼下載允許狀態(tài)。為滿足芯片使用靈活性的要求,芯片的1層代碼可由開發(fā)商進(jìn)行配置。代碼下載需對下載命令的發(fā)起者進(jìn)行身份認(rèn)證,在允許認(rèn)證次數(shù)范圍內(nèi),若身份認(rèn)證正確,則置位1層代碼下載允許標(biāo)識,芯片進(jìn)入1層代碼(芯片操作系統(tǒng))下載允許狀態(tài)。
ST5:1層代碼下載完成狀態(tài)。在下載控制程序的控制下,完成1層代碼下載。下載完成后,下載控制程序調(diào)用SHA1模塊,對1層代碼進(jìn)行完整性度量與存儲,并與輸入的下載代碼完整性信息進(jìn)行比較。若完整性驗(yàn)證正確,則置位1層代碼使能標(biāo)識位。
ST6:1層代碼運(yùn)行狀態(tài)。芯片系統(tǒng)可以由ST3和ST5轉(zhuǎn)入1層代碼運(yùn)行狀態(tài)。在進(jìn)入此狀態(tài)前,需判斷1層代碼使能標(biāo)識是否有效,并在驗(yàn)證1層代碼及數(shù)據(jù)完整性正確后進(jìn)入代碼運(yùn)行狀態(tài),執(zhí)行相應(yīng)程序完成預(yù)定功能。
ST7:2層代碼(用戶應(yīng)用程序)下載允許狀態(tài)。2層代碼的下載與調(diào)用均在1層代碼監(jiān)控下完成。在1層代碼運(yùn)行狀態(tài)下,若用戶輸入2層代碼下載命令,1層代碼首先認(rèn)證代碼下載命令發(fā)起者身份。在允許的認(rèn)證次數(shù)范圍內(nèi),若身份認(rèn)證正確,則置位本層敏感信息存儲器中的2層代碼下載允許標(biāo)識位,芯片進(jìn)入2層代碼下載允許狀態(tài)。
ST8:2層代碼下載完成狀態(tài)。與1層代碼的下載過程相同,通過調(diào)用下載控制程序,完成2層代碼的下載。下載完成后,1層代碼對2層代碼進(jìn)行完整性度量與存儲,對比驗(yàn)證輸入的完整性信息。若完整性驗(yàn)證正確,置位LEVEL1中的2層代碼使能標(biāo)識位。
ST9:2層代碼運(yùn)行狀態(tài)。當(dāng)2層代碼和數(shù)據(jù)完整性驗(yàn)證正確后,芯片系統(tǒng)可以由ST6和ST8轉(zhuǎn)入2層代碼運(yùn)行狀態(tài)。當(dāng)2層代碼使能標(biāo)識有效時,芯片系統(tǒng)可以在ST6或ST8下,通過層次跳轉(zhuǎn)指令,進(jìn)入2層代碼運(yùn)行狀態(tài)。在ST6狀態(tài)下,芯片系統(tǒng)還可通過調(diào)用2層代碼來完成其相應(yīng)運(yùn)算與控制功能。與層次跳轉(zhuǎn)進(jìn)入ST9不同的是,通過調(diào)用2層代碼來完成其相應(yīng)功能時,在2層代碼執(zhí)行完畢后,芯片系統(tǒng)可以返回到ST6。而通過層次跳轉(zhuǎn)命令進(jìn)入ST9時,完成規(guī)定的功能后,芯片系統(tǒng)保持在ST9,或者通過系統(tǒng)復(fù)位返回ST3,不允許其返回ST6。
評論