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