本發(fā)明實(shí)施例涉及信息安全領(lǐng)域,特別是涉及一種基于安全引擎的角色權(quán)限控制方法、裝置及安全芯片。
背景技術(shù):
現(xiàn)如今,會(huì)議室的智能電視、智能化的加熱和空調(diào)系統(tǒng)、互聯(lián)網(wǎng)連接的電燈、用于控制生產(chǎn)過(guò)程的智能設(shè)備、智能手表和健身器材幾乎可以說(shuō)是無(wú)處不在。而這些還僅僅只是現(xiàn)在物聯(lián)網(wǎng)(internetofthings,iot)的非常小的一部分,在更大的部分,幾乎所有的物理對(duì)象都能夠被智能化的連接到網(wǎng)絡(luò)。
隨著物聯(lián)網(wǎng)的快速發(fā)展,其安全問(wèn)題日漸突出。電子設(shè)備由于性能的限制和為了用戶(hù)使用的便利,往往使用簡(jiǎn)單的口令式的安全防護(hù)方法,因此引入芯片級(jí)的安全防護(hù)機(jī)制和采用完善的安全管理方法十分必要。
但發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),電子設(shè)備常常需要被不同級(jí)別、不同角色的用戶(hù)訪(fǎng)問(wèn),不同用戶(hù)對(duì)該設(shè)備不同的功能或資源應(yīng)有不同的訪(fǎng)問(wèn)權(quán)限,這樣,既能保證不同職責(zé)的人員比如廠(chǎng)家、維修人員、擁有者、租客、安全管理員等可方便地訪(fǎng)問(wèn)聯(lián)網(wǎng)設(shè)備,又能保證隱私信息不被泄露,及防止設(shè)備不被不良人員控制。
綜上,有必要提供一種基于安全引擎的角色權(quán)限控制方法,以保證電子設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例主要解決的技術(shù)問(wèn)題是提供一種基于安全引擎的角色權(quán)限控制方法、裝置及安全芯片,用戶(hù)對(duì)電子設(shè)備發(fā)出的任何控制命令都需進(jìn)行身份驗(yàn)證,能夠保證電子設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例采用的一個(gè)技術(shù)方案是:提供一種安全芯片,包括:
至少一個(gè)處理器、安全引擎;
以及與至少一個(gè)處理器及安全引擎通信連接的存儲(chǔ)器;
其中,存儲(chǔ)器存儲(chǔ)有可被至少一個(gè)處理器和安全引擎執(zhí)行的指令,可被至少一個(gè)處理器執(zhí)行的指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠執(zhí)行:
接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名;
可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎能夠執(zhí)行:
讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證;
如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限。
可選地,存儲(chǔ)器包括:外圍存儲(chǔ)器及安全引擎內(nèi)置存儲(chǔ)器,可被至少一個(gè)處理器執(zhí)行的指令存儲(chǔ)于外圍存儲(chǔ)器,可被安全引擎執(zhí)行的指令存儲(chǔ)于內(nèi)置存儲(chǔ)器。
可選地,可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎還能夠執(zhí)行:
監(jiān)測(cè)處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,使角色名稱(chēng)的角色權(quán)限鎖打開(kāi);
功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,指令被執(zhí)行后,使角色名稱(chēng)的角色權(quán)限生效。
可選地,可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎還能夠執(zhí)行:
管理與角色名稱(chēng)具有對(duì)應(yīng)的功能入口表,功能入口表包括角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口;
監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
可選地,可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎還能夠執(zhí)行:
當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,使角色名稱(chēng)的角色權(quán)限失效。
可選地,可被至少一個(gè)處理器執(zhí)行的指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器在接收控制命令前還能夠執(zhí)行:
接收發(fā)送控制命令的請(qǐng)求;
可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎還能夠執(zhí)行:
根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),其中,控制命令還包括指定隨機(jī)數(shù)。
可選地,可被安全引擎執(zhí)行的指令被安全引擎執(zhí)行,以使安全引擎還能夠執(zhí)行:
生成指定隨機(jī)數(shù)后,啟動(dòng)超時(shí)檢測(cè);
如果超過(guò)預(yù)設(shè)時(shí)限,使角色名稱(chēng)的角色權(quán)限失效。
本發(fā)明實(shí)施例還提供一種基于安全引擎的角色權(quán)限控制方法,應(yīng)用于安全芯片,方法包括:
接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名;
讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證;
如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限。
可選地,方法還包括:
監(jiān)測(cè)安全芯片的處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,角色名稱(chēng)的角色權(quán)限鎖打開(kāi);
功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,指令被執(zhí)行后,角色名稱(chēng)的角色權(quán)限生效。
可選地,方法還包括:
管理與角色名稱(chēng)具有對(duì)應(yīng)的功能入口表,功能入口表包括角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口;
監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
可選地,方法還包括:
當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,角色名稱(chēng)的角色權(quán)限失效。
可選地,方法還包括:
在接收控制命令前接收發(fā)送控制命令的請(qǐng)求;
根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),控制命令還包括指定隨機(jī)數(shù)。
可選地,方法還包括:
生成指定隨機(jī)數(shù)后,啟動(dòng)超時(shí)檢測(cè);
如果超過(guò)預(yù)設(shè)時(shí)限,角色名稱(chēng)的角色權(quán)限失效。
本發(fā)明實(shí)施例還提供一種基于安全引擎的角色權(quán)限控制裝置,應(yīng)用于安全芯片,包括:
控制命令接收單元,用于接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名;
簽名驗(yàn)證單元,用于讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證;
存儲(chǔ)保護(hù)單元,用于如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)對(duì)應(yīng)的角色權(quán)限。
可選地,存儲(chǔ)保護(hù)單元,還用于:
監(jiān)測(cè)安全芯片的處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,使角色名稱(chēng)的角色權(quán)限鎖打開(kāi);
功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,指令被執(zhí)行后,使角色名稱(chēng)的角色權(quán)限生效。
可選地,裝置還包括:
角色權(quán)限管理單元,用于管理與角色名稱(chēng)對(duì)應(yīng)的功能入口表,功能入口表包括角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口;
存儲(chǔ)保護(hù)單元,還用于:
監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
可選地,存儲(chǔ)保護(hù)單元,還用于:
當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,使角色名稱(chēng)的角色權(quán)限失效。
可選地,控制命令接收單元,還用于:
在接收控制命令前接收發(fā)送控制命令的請(qǐng)求;
裝置還包括:
隨機(jī)數(shù)生成單元,根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),控制命令還包括指定隨機(jī)數(shù)。
可選地,裝置還包括:
超時(shí)檢測(cè)單元,用于生成指定隨機(jī)數(shù)后,啟動(dòng)超時(shí)檢測(cè);
如果超過(guò)預(yù)設(shè)時(shí)限,使角色名稱(chēng)的角色權(quán)限失效。
本發(fā)明實(shí)施例還提供一種電子設(shè)備,包括:
如權(quán)利要求1-7任一項(xiàng)的安全芯片。
本發(fā)明實(shí)施例的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明實(shí)施例的安全芯片通過(guò)接收控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證,如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限,即對(duì)物聯(lián)網(wǎng)設(shè)備接收的任何控制命令都進(jìn)行身份驗(yàn)證,保證了設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹。顯而易見(jiàn)地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例的一種安全芯片的功能結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例的一種安全芯片的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例的一種基于安全引擎的角色權(quán)限控制方法的流程圖;
圖4是本發(fā)明另一實(shí)施例的一種基于安全引擎的角色權(quán)限控制方法的流程圖;
圖5是本發(fā)明又一實(shí)施例的一種基于安全引擎的角色權(quán)限控制方法的流程圖;
圖6是本發(fā)明實(shí)施例的一種基于安全引擎的角色權(quán)限控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例
下面將結(jié)合附圖對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
此外,下面所描述的本發(fā)明不同實(shí)施方式中所涉及的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互結(jié)合。
物聯(lián)網(wǎng)是指通過(guò)各種信息傳感設(shè)備,實(shí)時(shí)采集任何需要監(jiān)控、連接、互動(dòng)的物體或過(guò)程等各種需要的信息,與互聯(lián)網(wǎng)結(jié)合形成的一個(gè)巨大網(wǎng)絡(luò),其目的是實(shí)現(xiàn)物與物、物與人,所有的物品與網(wǎng)絡(luò)的連接,方便識(shí)別、管理和控制。簡(jiǎn)而言之,物聯(lián)網(wǎng)就是“物物相連的互聯(lián)網(wǎng)”。
在本實(shí)施例中,物聯(lián)網(wǎng)設(shè)備往往是具有通信功能的微型計(jì)算機(jī)設(shè)備,具備中央處理器、存儲(chǔ)器、輸入裝置和/或輸出裝置,集成了嵌入式計(jì)算、控制技術(shù)、人工智能技術(shù)等,如智能路由器、智能網(wǎng)關(guān)、智能家電和傳感器等凡是可以通過(guò)網(wǎng)絡(luò)遠(yuǎn)程控制的電子設(shè)備。上述電子設(shè)備通過(guò)信息傳感設(shè)備,按約定的協(xié)議與互聯(lián)網(wǎng)連接起來(lái),進(jìn)行信息交換和通訊,實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理。
圖1示出了本發(fā)明實(shí)施例的安全芯片的功能結(jié)構(gòu)示意圖,該安全芯片可應(yīng)用于物聯(lián)網(wǎng)設(shè)備,具備安全功能和控制功能,如圖1所示,該安全芯片包括處理器,與處理器連接的安全引擎,以及相應(yīng)的存儲(chǔ)裝置和輸入輸出接口,其中安全引擎包括各安全引擎功能模塊和內(nèi)置的ram和rom。
用戶(hù)對(duì)物聯(lián)網(wǎng)設(shè)備發(fā)送的任何控制命令,都要基于安全芯片內(nèi)置的安全引擎進(jìn)行身份驗(yàn)證。在發(fā)送控制命令前,安全引擎的隨機(jī)數(shù)產(chǎn)生單元生成一指定隨機(jī)數(shù),控制命令包括該指定隨機(jī)數(shù)、命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名。安全芯片接收控制命令并將控制命令存儲(chǔ)于用戶(hù)空間;安全引擎的簽名驗(yàn)證單元從用戶(hù)空間讀入控制命令,一邊讀一邊計(jì)算數(shù)字摘要,一邊轉(zhuǎn)存至內(nèi)置ram,簽名驗(yàn)證單元再根據(jù)角色名稱(chēng)在密鑰管理單元中查找與角色名稱(chēng)對(duì)應(yīng)的公鑰,并由公鑰解密角色簽名,并與計(jì)算得到的數(shù)字摘要進(jìn)行對(duì)比,相同則驗(yàn)證通過(guò),不相同則驗(yàn)證失敗。
簽名驗(yàn)證通過(guò)后,安全引擎的存儲(chǔ)保護(hù)單元監(jiān)測(cè)處理器讀取指令的地址,內(nèi)置rom存儲(chǔ)有調(diào)用物聯(lián)網(wǎng)設(shè)備各種功能的統(tǒng)一入口地址和出口地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,并且一直順序執(zhí)行到打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,角色名稱(chēng)的角色權(quán)限生效。
角色權(quán)限管理單元中每個(gè)角色名稱(chēng)具有對(duì)應(yīng)的功能入口表,功能入口表包括該角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口,且功能入口表上被屏蔽的功能其入口表項(xiàng)為無(wú)效值。當(dāng)角色權(quán)限正式生效之后,該表項(xiàng)被角色權(quán)限管理單元取出,以使該角色使用其權(quán)限范圍內(nèi)的功能。
當(dāng)存儲(chǔ)保護(hù)單元監(jiān)測(cè)到處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,角色名稱(chēng)的角色權(quán)限失效。角色權(quán)限失效之后,安全引擎才能接受下一個(gè)控制命令的驗(yàn)證請(qǐng)求。
其中,安全引擎內(nèi)置的ram和rom也可以放在安全芯片共享的flash和ram空間,由存儲(chǔ)保護(hù)單元指定給安全引擎使用,成為安全引擎的專(zhuān)用存儲(chǔ)空間,其它模塊包括處理器無(wú)法使用。
需要說(shuō)明的是,各安全引擎功能模塊,如簽名驗(yàn)證單元、存儲(chǔ)保護(hù)單元等可以使用數(shù)字電路實(shí)現(xiàn),也可以使用內(nèi)嵌于安全引擎的獨(dú)立處理單元和內(nèi)嵌代碼實(shí)現(xiàn)。
請(qǐng)參閱圖2,圖2為本發(fā)明實(shí)施例公開(kāi)的一種安全芯片的結(jié)構(gòu)示意圖,該安全芯片可用于物聯(lián)網(wǎng)設(shè)備,該安全芯片100包括:一個(gè)或多個(gè)處理器101(圖2中以一個(gè)處理器101為例)、安全引擎102以及與至少一個(gè)處理器101及安全引擎102通信連接的存儲(chǔ)器。
存儲(chǔ)器作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊。存儲(chǔ)器可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤(pán)存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。
在本實(shí)施例中,存儲(chǔ)器包括外圍存儲(chǔ)器1031及安全引擎內(nèi)置存儲(chǔ)器1032。在其他實(shí)施例中,安全引擎內(nèi)置存儲(chǔ)器1032的功能也可以由外圍存儲(chǔ)器1031來(lái)實(shí)現(xiàn),該外圍存儲(chǔ)器1031的部分空間被指定給安全引擎使用,成為安全引擎的專(zhuān)用存儲(chǔ)單元。
外圍存儲(chǔ)器1031存儲(chǔ)有可被至少一個(gè)處理器101執(zhí)行的指令,可被至少一個(gè)處理器101執(zhí)行的指令被至少一個(gè)處理器101執(zhí)行,以使至少一個(gè)處理器101能夠執(zhí)行:
接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名;
內(nèi)置存儲(chǔ)器1032存儲(chǔ)有可被安全引擎執(zhí)行102的指令,可被安全引擎102執(zhí)行的指令被安全引擎102執(zhí)行,以使安全引擎102能夠執(zhí)行:
讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證;
如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限。
可以理解,如果安全引擎內(nèi)置存儲(chǔ)器1032的功能由外圍存儲(chǔ)器1031來(lái)實(shí)現(xiàn),則可被安全引擎執(zhí)行102的指令存儲(chǔ)于外圍存儲(chǔ)器1031中。
可選地,可被安全引擎102執(zhí)行的指令被安全引擎102執(zhí)行,以使安全引擎102還能夠執(zhí)行:
監(jiān)測(cè)處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,使角色名稱(chēng)的角色權(quán)限鎖打開(kāi);
功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,該指令被執(zhí)行后,使角色名稱(chēng)的角色權(quán)限生效。在本實(shí)施例中,功能調(diào)用的統(tǒng)一入口地址存儲(chǔ)于安全引擎的內(nèi)置存儲(chǔ)器1032。
在其他實(shí)施例中,如果功能調(diào)用的統(tǒng)一入口地址不包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,當(dāng)安全引擎檢測(cè)到處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址時(shí),使角色名稱(chēng)的角色權(quán)限生效。
可選地,可被安全引擎102執(zhí)行的指令被安全引擎102執(zhí)行,以使安全引擎102還能夠執(zhí)行:
管理著與角色名稱(chēng)對(duì)應(yīng)的功能入口表,功能入口表包括角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口。
監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒;
當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,使角色名稱(chēng)的角色權(quán)限失效。同樣地,功能調(diào)用的統(tǒng)一出口地址也存儲(chǔ)于安全引擎的內(nèi)置存儲(chǔ)器1032。
可選地,可被至少一個(gè)處理器101執(zhí)行的指令被至少一個(gè)處理器101執(zhí)行,以使至少一個(gè)處理器101在接收控制命令前還能夠執(zhí)行:
接收發(fā)送控制命令的請(qǐng)求;
可被安全引擎102執(zhí)行的指令被安全引擎102執(zhí)行,以使安全引擎102還能夠執(zhí)行:
根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),其中,控制命令還包括指定隨機(jī)數(shù);
生成指定隨機(jī)數(shù)后,啟動(dòng)超時(shí)檢測(cè);
如果超過(guò)預(yù)設(shè)時(shí)限,使角色名稱(chēng)的角色權(quán)限失效。
本實(shí)施例提供的安全芯片包括至少一個(gè)處理器、安全引擎以及與至少一個(gè)處理器及安全引擎通信連接的存儲(chǔ)器,其中,安全引擎能夠?qū)刂泼畹慕巧灻M(jìn)行簽名驗(yàn)證,如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限,通過(guò)該安全芯片對(duì)物聯(lián)網(wǎng)設(shè)備接收的任何控制命令都進(jìn)行身份驗(yàn)證,保證了設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
本發(fā)明實(shí)施例還提供一種電子設(shè)備,包括如上所述的安全芯片100,如智能路由器、智能網(wǎng)關(guān)、智能家電等。
請(qǐng)參閱圖3,圖3為本發(fā)明實(shí)施例公開(kāi)的一種基于安全引擎的角色權(quán)限控制方法,應(yīng)用于安全芯片,該安全芯片可用于物聯(lián)網(wǎng)設(shè)備,該安全芯片包括至少一個(gè)處理器、安全引擎以及與至少一個(gè)處理器及安全引擎通信連接的存儲(chǔ)器,該方法具體包括:
步驟201:接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名。
在本實(shí)施例中,用戶(hù)對(duì)物聯(lián)網(wǎng)設(shè)備發(fā)出的控制命令,控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名,安全芯片接收對(duì)電子設(shè)備發(fā)送的控制命令,并將控制命令存儲(chǔ)于用戶(hù)空間。
其中,角色簽名指的是使用與角色名稱(chēng)對(duì)應(yīng)的私鑰對(duì)控制命令作數(shù)字簽名,如果角色簽名使用的私鑰存在物聯(lián)網(wǎng)設(shè)備的私有服務(wù)器上,由該私有服務(wù)器對(duì)用戶(hù)進(jìn)行身份認(rèn)證之后確認(rèn)其角色名稱(chēng),使用與該角色名稱(chēng)對(duì)應(yīng)的私鑰對(duì)用戶(hù)的控制命令作數(shù)字簽名,并轉(zhuǎn)發(fā)該控制命令;如果角色簽名使用的私鑰存在物聯(lián)網(wǎng)設(shè)備的私有控制設(shè)備上,由該私有控制設(shè)備使用與該角色對(duì)應(yīng)的私鑰對(duì)用戶(hù)的控制命令作數(shù)字簽名,直接發(fā)送控制命令。
步驟202:讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證。
可選地,安全引擎從用戶(hù)空間中讀取上述控制命令,一邊讀一邊計(jì)算上述控制命令的數(shù)字摘要,一邊轉(zhuǎn)存至安全引擎的內(nèi)置ram或安全引擎專(zhuān)用的ram;根據(jù)控制命令中的角色名稱(chēng)查找對(duì)應(yīng)的公鑰,采用該公鑰解密角色簽名,并與計(jì)算得到的數(shù)字摘要進(jìn)行對(duì)比,相同則簽名驗(yàn)證通過(guò),不相同則簽名驗(yàn)證失敗。
其中,安全引擎的功能模塊管理著角色密鑰,即與角色名稱(chēng)對(duì)應(yīng)的私鑰和公鑰,當(dāng)角色密鑰需要擴(kuò)展和修改時(shí),可將加密的角色密鑰放入安全芯片的內(nèi)嵌flash單元中,芯片啟動(dòng)時(shí)角色密鑰被解密后再裝載到安全引擎功能模塊。
本實(shí)施例采用非對(duì)稱(chēng)密鑰的數(shù)字簽名方案,既可以方便密鑰管理,又提高了簽名驗(yàn)證的安全性??梢岳斫?,為了簡(jiǎn)化計(jì)算,也可以采用對(duì)稱(chēng)密鑰,對(duì)控制命令用對(duì)稱(chēng)密鑰進(jìn)行加解密,并對(duì)比數(shù)字摘要進(jìn)行簽名驗(yàn)證。其中,角色簽名驗(yàn)證方案可以全部使用數(shù)字電路實(shí)現(xiàn),也可以使用內(nèi)嵌于安全引擎的獨(dú)立處理單元和內(nèi)嵌代碼實(shí)現(xiàn)。
步驟203:如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限。
本實(shí)施例通過(guò)接收對(duì)物聯(lián)網(wǎng)設(shè)備發(fā)送的控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證,如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限,即對(duì)物聯(lián)網(wǎng)設(shè)備接收的任何控制命令都進(jìn)行身份驗(yàn)證,保證了設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
請(qǐng)參閱圖4,圖4為本發(fā)明另一實(shí)施例公開(kāi)的一種基于安全引擎的角色權(quán)限控制方法,應(yīng)用于安全芯片,該安全芯片可用于物聯(lián)網(wǎng)設(shè)備,該安全芯片包括至少一個(gè)處理器、安全引擎以及與至少一個(gè)處理器及安全引擎通信連接的存儲(chǔ)器,該方法具體包括:
步驟301:接收發(fā)送控制命令的請(qǐng)求,根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù)。
在本實(shí)施例中,用戶(hù)對(duì)物聯(lián)網(wǎng)設(shè)備發(fā)出的任何控制命令必須先向該物聯(lián)網(wǎng)設(shè)備申請(qǐng)一串隨機(jī)數(shù),安全芯片在接收到發(fā)送控制命令的請(qǐng)求后安全芯片的安全引擎根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),隨后發(fā)送的控制命令中必須包含該指定隨機(jī)數(shù)。
步驟302:接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、指定隨機(jī)數(shù)、角色名稱(chēng)和角色簽名。
用戶(hù)對(duì)物聯(lián)網(wǎng)設(shè)備發(fā)出的控制命令,控制命令包括命令名稱(chēng)、命令參數(shù)、指定隨機(jī)數(shù)、角色名稱(chēng)和及角色簽名。
步驟303:讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證。
步驟304:如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限。
步驟305:監(jiān)測(cè)安全芯片的處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,角色名稱(chēng)的角色權(quán)限鎖打開(kāi);功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,該指令被執(zhí)行后,角色名稱(chēng)的角色權(quán)限生效。
如果簽名驗(yàn)證通過(guò),安全引擎監(jiān)測(cè)安全芯片的處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,角色名稱(chēng)的角色權(quán)限鎖打開(kāi)。進(jìn)一步地,為了防止指令流水線(xiàn)讀取指令之后未真正執(zhí)行代碼,功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,該指令被執(zhí)行后,角色名稱(chēng)的角色權(quán)限正式生效。
在其他實(shí)施例中,如果功能調(diào)用的統(tǒng)一入口地址不包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,當(dāng)安全引擎監(jiān)測(cè)到處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址時(shí),角色名稱(chēng)的角色權(quán)限生效。
在實(shí)際應(yīng)用中,功能調(diào)用的統(tǒng)一入口地址可以存儲(chǔ)于安全引擎內(nèi)置的rom或安全引擎專(zhuān)用的rom。
步驟306:監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
角色名稱(chēng)具有對(duì)應(yīng)的功能入口表,功能入口表包括該角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口,且功能入口表上被屏蔽的功能其入口表項(xiàng)為無(wú)效值。在本實(shí)施例中,安全引擎功能模塊管理與角色名稱(chēng)對(duì)應(yīng)的功能入口表。
角色名稱(chēng)的角色權(quán)限生效后,安全引擎監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
另一方面,角色名稱(chēng)的角色權(quán)限生效后,角色名稱(chēng)獲得獨(dú)立的堆??臻g,該堆??臻g位于系統(tǒng)的內(nèi)核空間,接收控制命令的統(tǒng)一入口也將從用戶(hù)空間切換到堆??臻g。如此,能有效抵御惡意用戶(hù)的窺探,也能防止質(zhì)量低劣的用戶(hù)程序的侵害,從而使系統(tǒng)運(yùn)行得更穩(wěn)定可靠。
步驟307:當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,角色名稱(chēng)的角色權(quán)限失效。
安全引擎監(jiān)測(cè)到處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址后,角色名稱(chēng)的角色權(quán)限失效,且接收控制命令的統(tǒng)一入口將切換回用戶(hù)空間,即該角色名稱(chēng)對(duì)用戶(hù)空間的訪(fǎng)問(wèn)權(quán)限在角色權(quán)限生效時(shí)取消,在角色權(quán)限失效時(shí)恢復(fù)。安全引擎接受下一個(gè)控制命令的驗(yàn)證請(qǐng)求。
與功能調(diào)用的統(tǒng)一入口地址一樣,功能調(diào)用的統(tǒng)一出口地址也存儲(chǔ)于安全引擎內(nèi)置的rom或安全引擎專(zhuān)用的rom。
本實(shí)施例根據(jù)與角色名稱(chēng)對(duì)應(yīng)的功能入口表,監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在上特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒,有效地保證了物聯(lián)網(wǎng)設(shè)備里的隱私信息不被泄露或更改,和物聯(lián)網(wǎng)設(shè)備被不良人員控制。
請(qǐng)參閱圖5,圖5為本發(fā)明又一實(shí)施例公開(kāi)的一種基于安全引擎的角色權(quán)限控制方法,該方法還包括:
步驟401:接收發(fā)送控制命令的請(qǐng)求,根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),啟動(dòng)超時(shí)檢測(cè)。
當(dāng)生成一指定隨機(jī)數(shù)后,安全引擎啟動(dòng)超時(shí)檢測(cè),超時(shí)檢測(cè)的閾值可由物聯(lián)網(wǎng)設(shè)備的管理人員自行設(shè)定,或者為一固定值。
步驟402:如果檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,角色名稱(chēng)的角色權(quán)限失效。
如果安全引擎檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,角色名稱(chēng)的角色權(quán)限失效。進(jìn)一步地,在再次接受控制命令前,需重新生成一指定隨機(jī)數(shù),重新對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證。
可以理解,在實(shí)際應(yīng)用中,當(dāng)生成一指定隨機(jī)數(shù)后,安全引擎便啟動(dòng)了超時(shí)檢測(cè),如果檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,即使角色名稱(chēng)的角色權(quán)限還未生效,也必須重新生成一指定隨機(jī)數(shù),重新對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證。
如,當(dāng)在接收控制命令并存儲(chǔ)的步驟中,或者在讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證的步驟中,檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,取消對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證,需重新生成一指定隨機(jī)數(shù),重新對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證。
本實(shí)施例生成一指定隨機(jī)數(shù)后,通過(guò)啟動(dòng)超時(shí)檢測(cè),如果檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,角色名稱(chēng)的角色權(quán)限失效,避免受到復(fù)制攻擊。
本發(fā)明實(shí)施例進(jìn)一步公開(kāi)一種基于安全引擎的角色權(quán)限控制裝置,應(yīng)用于安全芯片,該安全芯片可用于物聯(lián)網(wǎng)設(shè)備,該安全芯片包括至少一個(gè)處理器、安全引擎以及與至少一個(gè)處理器及安全引擎通信連接的存儲(chǔ)器,如圖6所示,該裝置500包括:
控制命令接收單元510,用于接收控制命令并存儲(chǔ),控制命令包括命令名稱(chēng)、命令參數(shù)、角色名稱(chēng)和角色簽名。
簽名驗(yàn)證單元520,用于讀取控制命令,對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證,其中,簽名驗(yàn)證單元520還包括密鑰管理單元,該密鑰管理單元管理著角色密鑰,即與角色名稱(chēng)對(duì)應(yīng)的私鑰和公鑰。
存儲(chǔ)保護(hù)單元530,用于如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)對(duì)應(yīng)的角色權(quán)限。
本實(shí)施例通過(guò)控制命令接收單元510接收控制命令存儲(chǔ),簽名驗(yàn)證單元520對(duì)控制命令的角色簽名進(jìn)行簽名驗(yàn)證,存儲(chǔ)保護(hù)單元530如果簽名驗(yàn)證通過(guò),確定角色名稱(chēng)的角色權(quán)限,即對(duì)物聯(lián)網(wǎng)設(shè)備接收的任何控制命令都進(jìn)行身份驗(yàn)證,保證了設(shè)備在被多個(gè)用戶(hù)訪(fǎng)問(wèn)情況下仍能保持足夠的安全強(qiáng)度。
可選地,存儲(chǔ)保護(hù)單元530,還用于:
監(jiān)測(cè)安全芯片的處理器讀取指令的地址,當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一入口地址,使角色名稱(chēng)的角色權(quán)限鎖打開(kāi);
功能調(diào)用的統(tǒng)一入口地址包含打開(kāi)角色名稱(chēng)的角色權(quán)限的指令,該指令被執(zhí)行后,使角色名稱(chēng)的角色權(quán)限生效。
可選地,該裝置500還包括:
角色權(quán)限管理單元540,用于管理與角色名稱(chēng)對(duì)應(yīng)的功能入口表,功能入口表包括角色名稱(chēng)可操作功能的入口地址,以及可訪(fǎng)問(wèn)的特定的存儲(chǔ)空間和輸入輸出接口;
則進(jìn)一步地,存儲(chǔ)保護(hù)單元530,還用于:
監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器訪(fǎng)問(wèn)的地址在特定的存儲(chǔ)空間和輸入輸出接口范圍內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒。
可選地,存儲(chǔ)保護(hù)單元530,還用于:
當(dāng)處理器讀取指令的地址為功能調(diào)用的統(tǒng)一出口地址,使角色名稱(chēng)的角色權(quán)限失效。
本實(shí)施例通過(guò)角色權(quán)限管理單元540管理與角色名稱(chēng)對(duì)應(yīng)的功能入口表,存儲(chǔ)保護(hù)單元530監(jiān)測(cè)處理器根據(jù)功能入口表進(jìn)行功能調(diào)用,當(dāng)處理器讀取指令的地址在特定的存儲(chǔ)空間和輸入輸出接口內(nèi),訪(fǎng)問(wèn)有效,否則將引發(fā)異常提醒,有效地保證了物聯(lián)網(wǎng)設(shè)備里的隱私信息不被泄露或更改,和防止物聯(lián)網(wǎng)設(shè)備被不良人員控制。
可選地,控制命令接收單元510,還用于:
在接收控制命令前接收發(fā)送控制命令的請(qǐng)求;
則進(jìn)一步地,該裝置500還包括:
隨機(jī)數(shù)生成單元550,用于根據(jù)請(qǐng)求生成一指定隨機(jī)數(shù),其中,控制命令還包括指定隨機(jī)數(shù)。
可選地,該裝置500還包括:
超時(shí)檢測(cè)單元560,用于生成指定隨機(jī)數(shù)后,啟動(dòng)超時(shí)檢測(cè);
如果超過(guò)預(yù)設(shè)時(shí)限,使角色名稱(chēng)的角色權(quán)限失效。
本實(shí)施例在隨機(jī)數(shù)生成單元550根據(jù)請(qǐng)求生成一指定隨機(jī)后,通過(guò)超時(shí)檢測(cè)單元560啟動(dòng)超時(shí)檢測(cè),如果檢測(cè)到超過(guò)預(yù)設(shè)時(shí)限,角色名稱(chēng)的角色權(quán)限失效,避免受到復(fù)制攻擊。
需要說(shuō)明的是,由于本發(fā)明實(shí)施例的裝置實(shí)施例與方法實(shí)施例基于相同的發(fā)明構(gòu)思,方法實(shí)施例中的技術(shù)內(nèi)容同樣適用于裝置實(shí)施例,因此,裝置實(shí)施例中與方法實(shí)施例相同的技術(shù)內(nèi)容在此不再贅述。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
通過(guò)以上的實(shí)施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施例可借助軟件加通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)相關(guān)技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;在本發(fā)明的思路下,以上實(shí)施例或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,步驟可以以任意順序?qū)崿F(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡(jiǎn)明,它們沒(méi)有在細(xì)節(jié)中提供;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的范圍。