專用SOC安全控制架構(gòu)的研究與設(shè)計(jì)
②當(dāng)OTP.1=0時(shí),芯片系統(tǒng)僅允許傳輸過程安全認(rèn)證命令的輸入與執(zhí)行。開發(fā)商通過傳輸安全認(rèn)證命令,在允許的認(rèn)證次數(shù)范圍內(nèi),對(duì)芯片的真實(shí)性進(jìn)行認(rèn)證。若認(rèn)證正確,芯片由初始狀態(tài)ST1轉(zhuǎn)移至使能狀態(tài)ST2,并置位芯片使能標(biāo)識(shí)OTP.1,等待用戶創(chuàng)建命令的輸入。若芯片真實(shí)性認(rèn)證錯(cuò)誤,芯片系統(tǒng)保持在初始狀態(tài)。當(dāng)認(rèn)證次數(shù)超出允許次數(shù)時(shí),OTP.6被置位,芯片被鎖死。
③當(dāng)OTP.1=1時(shí),芯片系統(tǒng)僅允許用戶創(chuàng)建命令的輸入與執(zhí)行。初次啟動(dòng)時(shí),開發(fā)商通過用戶創(chuàng)建命令,完成AIK與USER_AUTH的創(chuàng)建。用戶創(chuàng)建完成后,置位OTP.O與STATE.2,進(jìn)入芯片激活狀態(tài)ST3。在允許的認(rèn)證次數(shù)范圍內(nèi),若用戶創(chuàng)建失敗,芯片保持在ST2。當(dāng)STAT-E.1=1 時(shí),開發(fā)商可以通過用戶創(chuàng)建命令,更新AIK和USER_AUTH,完成用戶身份的重建。當(dāng)認(rèn)證次數(shù)超出允許范圍時(shí),0TP.5被置位,芯片被鎖死。
④當(dāng)OTP.O=1時(shí),開發(fā)商可以獲得低層代碼和系統(tǒng)資源所提供的服務(wù)功能,如SHA1雜湊值計(jì)算、對(duì)稱數(shù)據(jù)加解密、RSA數(shù)據(jù)簽名與認(rèn)證、以及隨機(jī)數(shù)生成等一系列密碼服務(wù)功能等。當(dāng)需要對(duì)芯片系統(tǒng)進(jìn)行1層代碼下載時(shí),用戶輸入代碼下載命令,芯片系統(tǒng)首先驗(yàn)證下載命令發(fā)起者身份,若身份驗(yàn)證正確,置位 STATE.7,進(jìn)入ST4。
⑤當(dāng)STATE.7=1時(shí),芯片在下載控制程序控制下,將1層代碼下載到對(duì)應(yīng)存儲(chǔ)器COS區(qū)。系統(tǒng)調(diào)用SHA1模塊度量下載代碼的完整性,存儲(chǔ)于 LELVE0存儲(chǔ)器的PCR2中,并與輸入的完整性信息進(jìn)行對(duì)比驗(yàn)證。若完整性驗(yàn)證通過,置位STATE.6,并復(fù)位STATE.7,進(jìn)入ST5,否則返回ST3。此外,因突發(fā)因素導(dǎo)致下載過程中斷,也會(huì)使芯片系統(tǒng)返回ST3。在系統(tǒng)返回ST3時(shí),復(fù)位STATE.7。
⑥當(dāng)STATE.6=1時(shí),通過層次跳轉(zhuǎn)命令,芯片系統(tǒng)進(jìn)入ST6,用戶可以獲得1層代碼的相應(yīng)功能。由ST6返回到ST3只有斷電或者系統(tǒng)復(fù)位兩種方式。
⑦在1層代碼運(yùn)行狀態(tài)下,若需要進(jìn)行2層代碼下載,則用戶輸入符合1層代碼編碼格式的代碼下載命令。1層代碼驗(yàn)證下載命令發(fā)起者身份,驗(yàn)證通過后,置位STATE’.7,進(jìn)入ST7。若不需要代碼下載,則在ST6運(yùn)行。
⑧完成2層代碼下載過程同⑤,對(duì)2層代碼進(jìn)行完整性度量與驗(yàn)證,若驗(yàn)證通過,置位STATE’.6,進(jìn)入ST8,否則返回ST6。
⑨通過層次跳轉(zhuǎn)命令或功能調(diào)用命令,芯片系統(tǒng)可進(jìn)入ST9,獲得2層代碼相應(yīng)功能。當(dāng)采用層次跳轉(zhuǎn)命令進(jìn)入ST9時(shí),芯片系統(tǒng)保持在ST9狀態(tài),僅能夠通過系統(tǒng)復(fù)位,返回ST3。當(dāng)采用功能調(diào)用命令進(jìn)入ST9時(shí),只能執(zhí)行2層代碼中部分功能且執(zhí)行完畢后,將返回到ST6狀態(tài)。
3 專用SoC芯片安全性分析
3.1 攻擊防護(hù)分析
在芯片的硬件安全結(jié)構(gòu)設(shè)計(jì)中,篡改響應(yīng)機(jī)制能夠?qū)榷ü裟P椭械奈锢砉暨M(jìn)行安全防護(hù);結(jié)合安全邏輯模塊中的越界檢測(cè)部件,信息交互機(jī)制能夠防止攻擊者對(duì)芯片的緩沖區(qū)溢出攻擊;此外,信息交互機(jī)制還能夠?qū)φZ義攻擊、字典攻擊以及重放攻擊進(jìn)行防護(hù);芯片系統(tǒng)的單向分級(jí)啟動(dòng)模式、以及代碼下載時(shí)的身份認(rèn)證,各安全級(jí)別之間的“防火墻”設(shè)計(jì),使得芯片系統(tǒng)能夠抵抗惡意代碼的攻擊。
3.2 工作過程安全性分析
①代碼的可信性:首先,由于制造商被無條件信任,芯片在出廠初始狀態(tài)真實(shí)可信,因而內(nèi)嵌代碼是可信的。在經(jīng)過傳輸過程被開發(fā)商獲得后,芯片的使用需要通過對(duì)芯片的傳輸過程進(jìn)行驗(yàn)證,在驗(yàn)證正確后,芯片的來源被確認(rèn),此時(shí),內(nèi)嵌代碼保持了其可信性。以內(nèi)嵌代碼為可信基,在對(duì)1層代碼與2層代碼進(jìn)行下載時(shí),均需要認(rèn)證下載命令發(fā)起者的身份。因而,下載的1層代碼與2層代碼均能夠保證其來源真實(shí)性。
②代碼的完整性:在信賴制造商前提下,內(nèi)嵌代碼可作為整個(gè)芯片系統(tǒng)的可信基?;谶@一信任基礎(chǔ),通過啟動(dòng)過程中對(duì)內(nèi)嵌代碼、芯片操作系統(tǒng)、用戶應(yīng)用程序的完整性驗(yàn)證,使得芯片系統(tǒng)僅在代碼完整性正確情況下,才能夠正常運(yùn)行,從而保證了代碼的完整性。
③數(shù)據(jù)可信性:由于LEVEL0的數(shù)據(jù)僅能夠由制造商與Q層代碼操作,傳輸安全機(jī)制保證了芯片的可信性,從而可知LEVEL0的數(shù)據(jù)是可信的。1層與2層敏感數(shù)據(jù)與運(yùn)行臨時(shí)數(shù)據(jù)的可信性由本層的代碼可信性保證。當(dāng)本層代碼可信時(shí),數(shù)據(jù)的來源被認(rèn)為是可信的。
④數(shù)據(jù)完整性:由完整性認(rèn)證機(jī)制可知,其被認(rèn)證數(shù)據(jù)對(duì)象在每次合法改變時(shí),均將及時(shí)修改相應(yīng)的數(shù)據(jù)完整性檢驗(yàn)信息,且每次啟動(dòng)時(shí),均需進(jìn)行完整性認(rèn)證,因而數(shù)據(jù)完整性可得到保證。
⑤功能部件的正確性:功能部件的正確性通過芯片系統(tǒng)每次啟動(dòng)時(shí)的功能自檢,以及根據(jù)應(yīng)用需要每次調(diào)用功能部件執(zhí)行相應(yīng)檢測(cè)功能來保證。
結(jié)語
提供密碼服務(wù)和數(shù)據(jù)存儲(chǔ)功能的專用SoC芯片設(shè)計(jì)的關(guān)鍵是,在芯片功能正確的前提下,確保芯片內(nèi)部敏感信息的機(jī)密性與完整性,以及運(yùn)行狀態(tài)的可信性。本文為專用SoC的安全設(shè)計(jì)提供了一個(gè)可供參考的模型,也為進(jìn)一步研究動(dòng)態(tài)數(shù)據(jù)完整性度量和可信應(yīng)用服務(wù)提供了一個(gè)基礎(chǔ)平臺(tái)。
本文引用地址:http://www.ex-cimer.com/article/195145.htm
評(píng)論