PWR-MX480-1600-?DC-S:1層代碼下載允許狀態(tài)。為滿足芯片使用靈活性的要求,芯片的1層代碼可由開發(fā)商進行配置。PWR-MX480-1600-?DC-S代碼下載需對下載命令的發(fā)起者進行身份認證,在允許認證次數(shù)范圍內(nèi),若身份認證正確,則置位1層代碼下載允許標識,芯片進入1層代碼(芯片操作系統(tǒng))下載允許狀態(tài)。
ST5:1層代碼下載完成狀態(tài)。在下載控制程序的控制下,完成1層代碼下載。下載完成后,下載控制程序調(diào)用SHA1模塊,對1層代碼進行完整性度量與存儲,并與輸入的下載代碼完整性信息進行比較。若完整性驗證正確,則置位1層代碼使能標識位。
ST6:1層代碼運行狀態(tài)。芯片系統(tǒng)可以由ST3和ST5轉(zhuǎn)入1層代碼運行狀態(tài)。在進入此狀態(tài)前,需判斷1層代碼使能標識是否有效,并在驗證1層代碼及數(shù)據(jù)完整性正確后進入代碼運行狀態(tài),執(zhí)行相應程序完成預定功能。
ST7:2層代碼(用戶應用程序)下載允許狀態(tài)。2層代碼的下載與調(diào)用均在1層代碼監(jiān)控下完成。在1層代碼運行狀態(tài)下,若用戶輸入2層代碼下載命令,1層代碼首先認證代碼下載命令發(fā)起者身份。在允許的認證次數(shù)范圍內(nèi),若身份認證正確,則置位本層敏感信息存儲器中的2層代碼下載允許標識位,芯片進入2層代碼下載允許狀態(tài)。
ST8:2層代碼下載完成狀態(tài)。與1層代碼的下載過程相同,通過調(diào)用下載控制程序,完成2層代碼的下載。下載完成后,1層代碼對2層代碼進行完整性度量與存儲,對比驗證輸入的完整性信息。若完整性驗證正確,置位LEVEL1中的2層代碼使能標識位。
ST9:2層代碼運行狀態(tài)。當2層代碼和數(shù)據(jù)完整性驗證正確后,芯片系統(tǒng)可以由ST6和ST8轉(zhuǎn)入2層代碼運行狀態(tài)。當2層代碼使能標識有效時,芯片系統(tǒng)可以在ST6或ST8下,通過層次跳轉(zhuǎn)指令,進入2層代碼運行狀態(tài)。在ST6狀態(tài)下,芯片系統(tǒng)還可通過調(diào)用2層代碼來完成其相應運算與控制功能。與層次跳轉(zhuǎn)進入ST9不同的是,通過調(diào)用2層代碼來完成其相應功能時,在2層代碼執(zhí)行完畢后,芯片系統(tǒng)可以返回到ST6。而通過層次跳轉(zhuǎn)命令進入 ST9時,完成規(guī)定的功能后,芯片系統(tǒng)保持在ST9,或者通過系統(tǒng)復位返回ST3,不允許其返回ST6。
1.2 狀態(tài)位與控制參數(shù)設(shè)置
為實現(xiàn)上述各狀態(tài)之間的正常跳轉(zhuǎn),芯片系統(tǒng)需要設(shè)置相應的狀態(tài)位與控制參數(shù),以寄存芯片運行時的控制信息和工作狀態(tài)。狀態(tài)位與控制參數(shù)設(shè)置是芯片安全體系結(jié)構(gòu)建立的基礎(chǔ),基于芯片的權(quán)限狀態(tài)劃分,參照TPM與ATMELSC系列安全芯片對狀態(tài)位與控制參數(shù)的配置,將LEVEL0作為SoC芯片狀態(tài)位與控制參數(shù)的存儲區(qū),其具體設(shè)置如表1所列。
表1 LEVEL0狀態(tài)位與控制參數(shù)配置表
在表1中,OTP(One Time Programmer)區(qū)是一次性編程區(qū),用于芯片一次性設(shè)置的權(quán)限標識與狀態(tài)留證。STATE為系統(tǒng)狀態(tài)標識,用于標識芯片當前的權(quán)限狀態(tài)信息。OTP 與STATE中各位的作用與位的對應關(guān)系如表2所示,其中各位均為高電平有效。
表2 OTP與STATE中狀態(tài)位功能表
PWR-MX480-1600-?DC-S為制造商與開發(fā)商的共享秘密,M_PUBKEY為制造商公鑰,SN為產(chǎn)品序列號,它們共同用于芯片的傳輸過程安全認證。 EK(Endors- ement Key)為芯片系統(tǒng)的身份認證密鑰對,在實際應用過程中,芯片通過調(diào)用EK私鑰對數(shù)據(jù)進行簽名,以表明自身的合法身份。AIK(Attes-tation Identity Key)為開發(fā)商身份認證密鑰對,在用戶身份創(chuàng)建過程中由片內(nèi)隨機數(shù)與RSA算法IP核生成,用于用戶的身份認證。PCR(Pla-tform. Configuration Register)是平臺配置完整性寄存區(qū)。為滿足SoC芯片在進行FPGA測試時對芯片系統(tǒng)的硬件規(guī)模限制,暫時為芯片系統(tǒng)配置了8個PCR,每個 PCR寄存器為20個字節(jié)。除PCR6和PCR7外,其余各PCR寄存器存儲信息的表達式如下所示。
PCR0 = SHA1(DOWNLOAD)
PCR1 = SHA1(LEVEL0)
PCR2 = SHA1(COS)
PCR3 = SHA1(APPLI)
PCR4 = SHA1(LEVEL1)
PCR5 = SHA1(LEVEL2)
DIR(Data Integrity Register)是芯片系統(tǒng)的數(shù)據(jù)完整性寄存器,寄存芯片內(nèi)部數(shù)據(jù)與代碼的完整性信息,具體設(shè)計時,為芯片系統(tǒng)配置了3個DIR,分別存儲三個層次的數(shù)據(jù)與代碼的完整性,各DIR寄存器存儲信息的表達式如下。
DIR0 = SHA1(PCR0||PCR1)
DIR1 = SHA1(DIR1||PCR2||PCR4)
DIR2 = SHA1(DIR1||DIR2||PCR3||PCR5)
PWR-MX480-1600-?DC-S為用戶與芯片系統(tǒng)的共享認證秘密,在用戶創(chuàng)建時通過相應命令輸入,完成用戶的身份合法性驗證。ERROR_SIG為認證錯誤次數(shù)寄存器,用于芯片系統(tǒng)對字典攻擊的防護。ATTACK_EVI是攻擊留證寄存器,對芯片系統(tǒng)所遭受的物理攻擊次數(shù)與方式進行寄存。
?