芯片存儲電路的安全訪問控制方法
【專利摘要】本發(fā)明公開了一種芯片存儲電路的安全訪問控制方法,基于非易失性存儲電路進行分區(qū)訪問控制,每個分區(qū)單獨設(shè)計認證與訪問控制電路,認證與訪問控制電路均以狀態(tài)機的方式跳轉(zhuǎn),以輸出不同狀態(tài)下的認證與訪問控制信號,實現(xiàn)存儲電路的授權(quán)訪問。本發(fā)明方法采用身份認證和訪問控制認證兩級認證,兩級認證電路均由純硬件電路完成,具有更高的安全性。本發(fā)明可用于集成非易失性存儲器的ASIC芯片,SoC芯片,甚至帶有非易失性存儲器的其它電路系統(tǒng)中。
【專利說明】芯片存儲電路的安全訪問控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于芯片內(nèi)非易失性存儲電路安全防護設(shè)計領(lǐng)域,具體涉及一種芯片存儲電路的安全訪問控制方法。
【背景技術(shù)】
[0002]對于芯片而言,其最重要的保護對象通常都存儲于芯片非易失性存儲器中,如用戶敏感數(shù)據(jù)、軟件執(zhí)行代碼以及運行時產(chǎn)生的各種操作數(shù)據(jù)和系統(tǒng)狀態(tài)信息等等,因此非易失性存儲器是芯片安全防護的關(guān)鍵保護對象。對非易失性存儲器的保護重點是保證存儲電路的授權(quán)訪問和抗版圖剖析。本發(fā)明所描述的安全訪問控制電路正是實現(xiàn)對存儲電路的授權(quán)訪問。
[0003]所謂對存儲電路的授權(quán)訪問包括兩層含義,第一層含義是指對不同的角色,其擁有的訪問空間范圍以及相應(yīng)的訪問權(quán)限不同;第二層含義則是對同一個角色,在不同工作環(huán)境或時間段內(nèi),其所擁有的訪問權(quán)限也可能是不同的。部分電路由于其訪問角色及其權(quán)限較為單一,因此訪問控制電路較為簡單,只要能夠?qū)崿F(xiàn)對角色的識別,即能夠滿足授權(quán)訪問要求,這也是目前最常見的授權(quán)訪問控制電路的設(shè)計依據(jù)。這類電路僅對不同角色采取了身份認證措施,而其相應(yīng)的訪問權(quán)限則是固定的,不可更改,且每次上電后都需要重新進行認證,否則訪問權(quán)限將丟失。
[0004]角色的身份認證在不同的芯片載體中,其實現(xiàn)方式有所不同。對于SoC芯片,由于存在CPU資源可以使用,多數(shù)授權(quán)訪問控制電路采用了軟硬件相結(jié)合的處理方式,比如將認證碼讀入CPU,由CPU進行認證碼的比對,這種認證方式簡單易于實現(xiàn),但卻存在被軟件攻擊的風(fēng)險,攻擊軟件可以控制CPU進行虛假的比對,或者是強制比較通過,從而通過身份認證獲得相應(yīng)的訪問權(quán)限。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有技術(shù)的上述缺點,本發(fā)明提供了一種芯片存儲電路的安全訪問控制方法,對角色識別和訪問權(quán)限進行逐級認證,實現(xiàn)了訪問權(quán)限的可編程。操作者通過身份認證后,可以通過更新訪問控制碼,對操作權(quán)限進行靈活的控制,且掉電重啟無需重新認證,存儲電路操作權(quán)限與掉電前保持不變,因此本發(fā)明既增強了訪問權(quán)限控制的靈活性,也避免了重復(fù)的身份認證操作,同時由于采用兩級認證,相對于單純的身份認證其安全性亦有所增強。
[0006]本發(fā)明對認證碼的全程操作均是通過純硬件電路執(zhí)行,首先認證碼由內(nèi)部硬件讀取電路從片內(nèi)非易失性存儲器中讀出暫存,其次片內(nèi)認證碼與外部輸入認證碼的比較也通過純硬件電路實現(xiàn),最終根據(jù)比較結(jié)果輸出的控制信號也是以硬連線的方式直接對訪問控制電路進行控制,全程無軟件參與,因此有效地解決了抗軟件攻擊的問題。
[0007]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種芯片存儲電路的安全訪問控制方法,包括如下內(nèi)容: 一、對芯片存儲電路進行分區(qū);
二、對每一個單獨分區(qū)設(shè)置獨立的身份認證電路和訪問控制電路;
三、每一個單獨分區(qū)的訪問控制電路工作狀態(tài)跳轉(zhuǎn)流程:
芯片復(fù)位后,訪問控制電路默認處于空閑狀態(tài),在空閑狀態(tài)一旦檢測到使能信號,則進入訪問控制碼讀狀態(tài),訪問控制碼讀出后進入訪問控制碼比較狀態(tài),根據(jù)比較結(jié)果打開或關(guān)閉訪問控制開關(guān)信號,比較完成后訪問控制電路進入等待復(fù)位狀態(tài),之后一旦電路接收到復(fù)位或關(guān)閉使能信號,則重新進入空閑狀態(tài);
四、每一個單獨分區(qū)的身份認證電路工作狀態(tài)跳轉(zhuǎn)流程:
芯片復(fù)位后,身份認證電路處于空閑狀態(tài);一旦芯片接收到認證使能信號,身份認證電路便會進入認證碼讀狀態(tài),身份認證碼讀出后進入計數(shù)器判斷狀態(tài):如果認證不通過次數(shù)i <認證次數(shù)上限N,則進入認證碼輸入狀態(tài),否則,則進入永久鎖死狀態(tài);認證碼輸入完成后,電路進入認證碼比較狀態(tài),根據(jù)比較結(jié)果確定是否打開該寄存器和訪問控制寄存器的訪問權(quán)限開關(guān),比較完成后,電路等待復(fù)位或關(guān)閉使能信號,進而返回空閑狀態(tài)。
[0008]與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果是:采用了身份認證和訪問權(quán)限認證兩級認證,身份認證用以控制身份認證碼寄存器和訪問控制碼寄存器的訪問權(quán)限,訪問控制碼用以控制相應(yīng)存儲區(qū)電路的訪問權(quán)限;如此設(shè)計既提高訪問權(quán)限設(shè)置的靈活性,又提高了該授權(quán)訪問控制電路的安全性。而且,身份認證碼和訪問控制碼的讀電路與比較電路均由純硬件電路完成,避免了軟件讀取和比較操作帶來的軟件攻擊漏洞。
【專利附圖】
【附圖說明】
[0009]本發(fā)明將通過例子并參照附圖的方式說明,其中:
圖1是存儲電路分區(qū)不意圖;
圖2是認證與訪問控制電路示意圖;
圖3是訪問控制電路狀態(tài)跳轉(zhuǎn)示意圖;
圖4是身份認證電路狀態(tài)跳轉(zhuǎn)示意圖。
【具體實施方式】
[0010]本發(fā)明為芯片存儲電路提供了一種基于身份認證和訪問權(quán)限控制的純硬件安全防護解決方案,該發(fā)明通過采用身份認證和訪問控制碼認證兩級認證,同時采用純硬件電路實現(xiàn)身份認證和訪問控制碼的比對,既提高授權(quán)訪問控制的靈活性,也提高了其安全性。
[0011]本發(fā)明首先將存儲電路進行分區(qū),然后針對每個分區(qū)設(shè)置獨立的身份認證和訪問控制電路,完成身份認證碼和訪問控制碼的讀取和比較操作,以及輸出相應(yīng)的控制信號。身份認證通過后,操作者有權(quán)更新身份認證碼本身和改寫訪問控制碼,退出身份認證,甚至掉電重啟后訪問控制權(quán)限都不會改變,從而可以避免重復(fù)認證的尷尬。操作者需要改變訪問控制權(quán)限時,則需要重新認證并更新訪問控制碼。
[0012]芯片存儲電路的安全訪問控制方法,具體描述如下:
一、對芯片存儲電路進行分區(qū):
芯片存儲電路可根據(jù)其存儲內(nèi)容及其操作對象的不同,采用分區(qū)的概念,分別設(shè)定訪問控制策略。存儲電路的分區(qū)依據(jù)可以是芯片存儲內(nèi)容,也可以是芯片操作對象,還可以是操作權(quán)限級別等,設(shè)計者可根據(jù)應(yīng)用情況的不同選擇適當(dāng)或組合的分區(qū)方式。本發(fā)明以SoC芯片內(nèi)部FLASH存儲器為例,根據(jù)其存儲內(nèi)容的不同,將其主存儲區(qū)分為四個存儲區(qū):COS存儲區(qū),應(yīng)用程序存儲區(qū),關(guān)鍵數(shù)據(jù)存儲區(qū)和臨時數(shù)據(jù)存儲區(qū),如圖1所示。其中每個存儲區(qū)的大小可以根據(jù)具體應(yīng)用需求不同而不同。每一個存儲區(qū)同時配置有一組寄存器(由認證寄存器和訪問控制寄存器兩個寄存器組成),四組寄存器一般位于芯片F(xiàn)LASH存儲器的NVR (Non-Volatile Register)存儲區(qū)。
[0013]二、對每一個單獨分區(qū)設(shè)置獨立的身份認證和訪問控制電路:
該認證和訪問控制電路由一對寄存器和一對比較電路組成,其中:
1、寄存器值來自具有非易失特性的存儲器,即掉電不會丟失數(shù)據(jù),通??梢允褂闷瑑?nèi)非易失性存儲器的NVR存儲區(qū)存儲該值。一對寄存器分別為認證寄存器和訪問控制寄存器,認證寄存器用以存儲身份認證碼,訪問控制寄存器則用以存儲訪問控制碼。
[0014]2、一對比較電路分別是身份認證碼比較電路和訪問控制碼比較電路。訪問控制碼比較電路的輸入一個來自于訪問控制寄存器,一個來自于芯片內(nèi)固化的常數(shù),當(dāng)二者比較通過時,比較電路便會輸出相應(yīng)存儲區(qū)的讀或?qū)戦_關(guān)信號,比較不通過,則無法對相應(yīng)存儲區(qū)進行讀或?qū)懙牟僮?。讀或?qū)懖僮鲗傩匀Q于存儲區(qū)本身的屬性,如關(guān)鍵數(shù)據(jù)存儲區(qū)一般情況下只可寫不可讀。身份認證碼比較電路的輸入一個來自于認證寄存器,一個來自于片外輸入緩存,當(dāng)二者比較通過時,該寄存器本身和訪問控制寄存器將可以被讀寫,否則不可讀寫。身份認證碼比較電路包含一個比較計數(shù)器,用以計數(shù)認證碼比較次數(shù),可以設(shè)定一個比較次數(shù)上限(N),一旦超過該比較次數(shù)上限,則鎖死認證電路,認證寄存器和訪問控制寄存器將永不可更改。
[0015]以COS存儲區(qū)為例,身份認證和訪問控制電路如圖2所示,由兩部分電路組成:C0S認證電路和COS訪問控制電路。
[0016]COS認證電路包括認證碼讀電路、認證映射寄存器、認證碼輸入緩存電路、認證碼比較邏輯電路和寄存器訪問控制邏輯電路等,其中:認證碼讀電路、認證映射寄存器、認證碼比較邏輯電路、寄存器訪問控制邏輯電路依次連接;認證碼比較邏輯電路與認證碼輸入緩存電路連接;寄存器訪問控制邏輯電路與認證計數(shù)器連接。一旦芯片接收到認證使能信號,便會啟動認證碼讀操作,認證碼讀電路以FLASH存儲器的讀時序?qū)⒄J證碼從C0S_VER_REG中讀到認證映射寄存器中,同時用戶從片外輸入認證報文或摘要信息,如果是報文,芯片則將其經(jīng)算法電路處理后得到的摘要信息緩存至認證碼輸入緩存,如果是摘要信息,則直接緩存至認證碼輸入緩存,認證碼比較電路對C0S_VER_REG的值與認證碼輸入緩存值進行比較,比較結(jié)果輸出至寄存器訪問控制邏輯,該電路根據(jù)比較結(jié)果控制認證寄存器和訪問控制寄存器是否可以改寫。如果比較結(jié)果通過,則會開放認證寄存器和訪問控制寄存器的讀寫操作權(quán)限,用戶便可以更新二者了,否則認證寄存器和訪問控制寄存器處于不可操作狀態(tài)。此外認證電路包括有一個認證計數(shù)器,芯片每接收到一次認證使能信號,且認證不通過,計數(shù)器就會加1,直至計數(shù)至N (認證次數(shù)上限),電路將不再接受認證使能信號,且寄存器訪問控制邏輯將永久關(guān)閉C0S_VER_REG和C0S_CTR_REG的寫操作。
[0017]COS訪問控制電路包括訪問控制碼讀電路、訪問控制映射寄存器、訪問控制碼常數(shù)電路、訪問控制碼比較邏輯電路和存儲區(qū)訪問控制邏輯電路等,其中:訪問控制碼讀電路、訪問控制映射寄存器、訪問控制碼比較邏輯電路、存儲區(qū)訪問控制邏輯電路依次連接,訪問控制碼比較邏輯電路與訪問控制碼常數(shù)電路連接。正常工作狀態(tài)下,COS_CTR_REG的值與訪問控制碼常數(shù)是不等的,COS存儲區(qū)處于不可寫狀態(tài)。當(dāng)用戶需要更新芯片COS時,需要首先通過認證獲得C0S_CTR_REG的寫權(quán)限,然后將訪問控制碼寫入C0S_CTR_REG,之后啟動訪問控制比較操作。訪問控制碼讀電路首先以FLASH的讀操作時序?qū)⒃L問控制碼從C0S_CTR_REG讀至訪問控制映射寄存器,訪問控制碼比較邏輯對訪問控制映射寄存器和訪問控制碼常數(shù)進行比較,比較結(jié)果輸出至存儲區(qū)訪問控制邏輯,根據(jù)比較結(jié)果存儲區(qū)訪問控制邏輯可輸出相應(yīng)的控制信號,從而允許用戶獲得COS存儲區(qū)的讀寫權(quán)限。
[0018]三、每一個單獨分區(qū)的訪問控制電路工作狀態(tài)跳轉(zhuǎn)流程:
芯片復(fù)位后,訪問控制電路默認處于空閑狀態(tài),在空閑狀態(tài)一旦檢測到使能信號,則進入訪問控制碼讀狀態(tài),訪問控制碼讀出后進入訪問控制碼比較狀態(tài),根據(jù)比較結(jié)果打開或關(guān)閉訪問控制開關(guān)信號,比較完成后訪問控制電路進入等待復(fù)位狀態(tài),之后一旦電路接收到復(fù)位或關(guān)閉使能信號,則重新進入空閑狀態(tài)。
[0019]如圖3所示,訪問控制電路定義了 4種工作狀態(tài):空閑狀態(tài)、訪問控制碼讀狀態(tài)、訪問控制碼比較狀態(tài)和等待復(fù)位狀態(tài)。
[0020]以COS存儲區(qū)訪問控制電路為例,芯片復(fù)位后,訪問控制電路處于空閑狀態(tài)。一旦電路接收到比較使能信號,訪問控制電路便會進入訪問控制碼讀狀態(tài)。在該狀態(tài)下,訪問控制電路將會以FLASH的讀操作時序?qū)⒃L問控制碼從C0S_CTR_REG讀出到訪問控制映射寄存器,讀操作完成后,電路進入訪問控制碼比較狀態(tài),訪問控制碼比較電路對訪問控制映射寄存器與訪問控制碼常數(shù)進行比較,并輸出比較結(jié)果,比較完成后,電路進入等待復(fù)位狀態(tài),一旦電路接收到復(fù)位或關(guān)閉使能信號,則訪問控制映射寄存器被復(fù)位,比較結(jié)果不通過,COS存儲區(qū)訪問權(quán)限保持鎖死,電路進入空閑狀態(tài)。如果比較通過,操作者便可以在電路等待復(fù)位期間進行COS的更新操作,更新完成后,操作者進行復(fù)位操作,電路回歸空閑狀態(tài)。其狀態(tài)跳轉(zhuǎn)如圖3所示。
[0021]根據(jù)上述描述可見,訪問控制碼從讀出到與訪問控制碼常數(shù)進行比較再到輸出存儲訪問控制信號全部都是由硬件電路控制實現(xiàn),因此該電路可以抗惡意軟件攻擊,具有更強的安全防護能力。
[0022]四、每一個單獨分區(qū)的身份認證電路工作狀態(tài)跳轉(zhuǎn)流程:
芯片復(fù)位后,身份認證電路處于空閑狀態(tài)。當(dāng)用戶需要進行身份認證時,需要首先使能身份認證電路,身份認證電路接收到認證使能信號后,電路進入身份認證碼讀狀態(tài),身份認證碼讀出后進入計數(shù)器判斷狀態(tài),如果i≤N則進入認證碼輸入狀態(tài),否則,則表示身份認證碼比較超過限制次數(shù),電路進入永久鎖死狀態(tài)。認證碼輸入完成后,電路進入認證碼比較狀態(tài),根據(jù)比較結(jié)果確定是否打開該寄存器和訪問控制寄存器的訪問權(quán)限開關(guān),比較完成后,電路等待復(fù)位或關(guān)閉使能信號,進而返回空閑狀態(tài)。
[0023]如圖4所示,電路定義了 7種工作狀態(tài):空閑狀態(tài)、認證碼讀狀態(tài)、計數(shù)器判斷狀態(tài)、認證碼輸入狀態(tài)、認證碼比較狀態(tài)、等待復(fù)位狀態(tài)和認證電路鎖死狀態(tài)。
[0024]以COS存儲區(qū)身份認證電路為例,芯片復(fù)位后,身份認證電路處于空閑狀態(tài)。一旦芯片接收到認證使能信號,身份認證電路便會進入認證碼讀狀態(tài)。在該狀態(tài)下,身份認證電路將會以FLASH的讀操作時序?qū)⒄J證碼從C0S_VER_REG讀出到認證映射寄存器,讀操作完成后電路進入計數(shù)器判斷狀態(tài),如果N,表示尚未達到認證次數(shù)上限N,則允許用戶繼續(xù)嘗試輸入認證碼,電路進入認證碼輸入狀態(tài),即允許用戶向認證碼輸入緩存寫入認證碼,寫入完成后認證計數(shù)器自動加‘1’,電路進入認證碼比較狀態(tài),認證碼比較電路對認證映射寄存器與認證碼輸入緩存進行比較,并輸出比較結(jié)果,比較通過,計數(shù)器i清零,電路進入等待復(fù)位狀態(tài),比較失敗,計數(shù)器i加1,電路重新進入計數(shù)器判斷狀態(tài),如果i ( N,則電路再次進入認證碼輸入狀態(tài),否則,則表示N次認證比較均失敗,則認證電路進入鎖死狀態(tài),狀態(tài)不再跳轉(zhuǎn),認證電路永久鎖死。其狀態(tài)跳轉(zhuǎn)如圖4所示。
[0025]身份認證碼讀取、傳輸、比較以及寄存器訪問控制信號的生成同樣全部由硬件電路完成,期間沒有軟件的參與,因此該電路具有抗軟件攻擊的能力,安全性更高。
【權(quán)利要求】
1.一種芯片存儲電路的安全訪問控制方法,其特征在于: 一、對芯片存儲電路進行分區(qū); 二、對每一個單獨分區(qū)設(shè)置獨立的身份認證電路和訪問控制電路; 三、每一個單獨分區(qū)的訪問控制電路工作狀態(tài)跳轉(zhuǎn)流程: 芯片復(fù)位后,訪問控制電路默認處于空閑狀態(tài),在空閑狀態(tài)一旦檢測到使能信號,則進入訪問控制碼讀狀態(tài),訪問控制碼讀出后進入訪問控制碼比較狀態(tài),根據(jù)比較結(jié)果打開或關(guān)閉訪問控制開關(guān)信號,比較完成后訪問控制電路進入等待復(fù)位狀態(tài),之后一旦電路接收到復(fù)位或關(guān)閉使能信號,則重新進入空閑狀態(tài); 四、每一個單獨分區(qū)的身份認證電路工作狀態(tài)跳轉(zhuǎn)流程: 芯片復(fù)位后,身份認證電路處于空閑狀態(tài);一旦芯片接收到認證使能信號,身份認證電路便會進入認證碼讀狀態(tài),身份認證碼讀出后進入計數(shù)器判斷狀態(tài):如果認證不通過次數(shù)i <認證次數(shù)上限N,則進入認證碼輸入狀態(tài),否則,則進入永久鎖死狀態(tài);認證碼輸入完成后,電路進入認證碼比較狀態(tài),根據(jù)比較結(jié)果確定是否打開該寄存器和訪問控制寄存器的訪問權(quán)限開關(guān),比較完成后,電路等待復(fù)位或關(guān)閉使能信號,進而返回空閑狀態(tài)。
2.根據(jù)權(quán)利要求1所述的芯片存儲電路的安全訪問控制方法,其特征在于:對芯片存儲電路的分區(qū)依據(jù)包括芯片存儲內(nèi)容、芯片操作對象、操作權(quán)限級別。
3.根據(jù)權(quán)利要求1所述的芯片存儲電路的安全訪問控制方法,其特征在于:所述身份認證電路包括依次連接的認證碼讀電路、認證映射寄存器、認證碼比較邏輯電路和寄存器訪問控制邏輯電路;認證碼比較邏輯電路與認證碼輸入緩存電路連接;寄存器訪問控制邏輯電路與認證計數(shù)器連接。
4.根據(jù)權(quán)利要求1所述的芯片存儲電路的安全訪問控制方法,其特征在于:訪問控制電路包括依次連接的訪問控制碼讀電路、訪問控制映射寄存器、訪問控制碼比較邏輯電路、存儲區(qū)訪問控制邏輯電路;訪問控制碼比較邏輯電路與訪問控制碼常數(shù)電路連接。
【文檔編號】G06F21/31GK103714018SQ201310676334
【公開日】2014年4月9日 申請日期:2013年12月11日 優(yōu)先權(quán)日:2013年12月11日
【發(fā)明者】司煥麗 申請人:中國電子科技集團公司第三十研究所