本發(fā)明涉及智能設(shè)備安全技術(shù)領(lǐng)域,尤其涉及一種基于硬件加密的防刷機(jī)系統(tǒng)及方法。
背景技術(shù):
當(dāng)前智能硬件產(chǎn)品中,一般包含硬件和軟件兩部分,存在三種可能損壞設(shè)計(jì)者或者用戶利益的風(fēng)險(xiǎn)。第一種,很多公司沒(méi)有自己的生產(chǎn)制造工廠,將生成制造交給第三方代工廠,公司做完產(chǎn)品設(shè)計(jì),將PCB原理圖和相對(duì)應(yīng)的軟件代碼交由代工廠生成并燒錄程序,設(shè)計(jì)公司對(duì)代工廠的實(shí)際生產(chǎn)數(shù)量無(wú)法嚴(yán)格控制,可能出現(xiàn)代工廠將原始未修改的軟件運(yùn)行在其盜版的硬件上,俗稱抄板,比如代工廠多生產(chǎn)硬件,而使用原始軟件,最終形成產(chǎn)品,損害設(shè)計(jì)公司的利益;第二種,將其他軟件運(yùn)行在原始硬件上,俗稱刷機(jī),比如定制機(jī)上刷通用版本的軟件或私人定制版本軟件,損害運(yùn)營(yíng)商的利益;第三種,在存在用戶信息的原始硬件上恢復(fù)默認(rèn)設(shè)置或刷成默認(rèn)系統(tǒng),也稱為刷機(jī),比如手機(jī)被盜后,通過(guò)刷機(jī)去除用戶密碼等,損害用戶的利益。
當(dāng)前針對(duì)防抄板,可以使用CPU或存儲(chǔ)設(shè)備的產(chǎn)品序列號(hào)或硬件加密芯片,其中,使用加密芯片更加靈活和安全。針對(duì)防刷機(jī),可以檢測(cè)用戶的使用習(xí)慣或借助硬件中固化的程序?qū)ν獠砍绦蜻M(jìn)行檢測(cè)或使用用戶密鑰來(lái)關(guān)閉刷機(jī)通路等,其中,使用用戶密鑰的方式更通用。當(dāng)前防抄板和防刷機(jī)技術(shù)都是單獨(dú)進(jìn)行,沒(méi)有兼?zhèn)鋬煞N功能的低成本裝置。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的之一在于提供基于硬件加密的防刷機(jī)系統(tǒng),其能同時(shí)實(shí)現(xiàn)防刷機(jī)和防抄板的功能。
本發(fā)明的目的之二在于提供基于硬件加密的防刷機(jī)方法,其能夠同時(shí)實(shí)現(xiàn)防刷機(jī)和防抄板的功能,利用加密芯片的AES解密模塊對(duì)軟件進(jìn)行驗(yàn)證,以硬件信號(hào)輸出對(duì)軟件的驗(yàn)證結(jié)果,以此作為對(duì)開(kāi)關(guān)模塊的控制信號(hào)。
本發(fā)明的目的之一采用以下技術(shù)方案實(shí)現(xiàn):
一種基于硬件加密的防刷機(jī)系統(tǒng),包括主機(jī)、加密芯片和開(kāi)關(guān)模塊;所述加密芯片包括接收模塊、AES解密模塊、處理模塊、隨機(jī)數(shù)生成模塊、輸出模塊、OTP模塊、密鑰訪問(wèn)模塊和存儲(chǔ)模塊;所述接收模塊、密鑰訪問(wèn)模塊和輸出模塊均與主機(jī)連接;所述OTP模塊、處理模塊和AES解密模塊均與密鑰訪問(wèn)模塊連接;所述OTP模塊、接收模塊和處理模塊均與AES解密模塊連接;所述開(kāi)關(guān)模塊、隨機(jī)數(shù)生成模塊和輸出模塊與處理模塊連接,隨機(jī)數(shù)生成模塊與輸出模塊連接,所述存儲(chǔ)模塊與密鑰訪問(wèn)模塊連接;
所述隨機(jī)數(shù)生成模塊用于生成一隨機(jī)數(shù),并將該隨機(jī)數(shù)通過(guò)輸出模塊發(fā)送至主機(jī)以及處理模塊;所述主機(jī)用于根據(jù)來(lái)自隨機(jī)數(shù)生成模塊的隨機(jī)數(shù)和存儲(chǔ)于主機(jī)中的密鑰生成密文,或根據(jù)主機(jī)產(chǎn)生的隨機(jī)數(shù)和存儲(chǔ)于主機(jī)中的密鑰生成密文;所述接收模塊用于將來(lái)自主機(jī)的啟動(dòng)信號(hào)和密文發(fā)送至AES解密模塊,使AES解密模塊獲取OTP模塊或存儲(chǔ)模塊的密鑰,并結(jié)合密文生成相應(yīng)的解密數(shù)據(jù)并發(fā)送至處理模塊;所述處理模塊用于將解密數(shù)據(jù)和隨機(jī)數(shù)進(jìn)行比對(duì)。
優(yōu)選的,還包括I2C接口,所述接收模塊、密鑰訪問(wèn)模塊和輸出模塊均通過(guò)I2C接口與主機(jī)連接。I2C為一種通信接口,用于加密芯片與主機(jī)通信,采用I2C協(xié)議。
優(yōu)選的,所述開(kāi)關(guān)模塊包括電源開(kāi)關(guān)、顯示開(kāi)關(guān)和數(shù)據(jù)通路開(kāi)關(guān)中的一種或多種。
本發(fā)明的目的之二采用以下技術(shù)方案實(shí)現(xiàn):
一種基于硬件加密的防刷機(jī)方法,應(yīng)用于本發(fā)明目的之一所述的基于硬件加密的防刷機(jī)系統(tǒng),包括如下步驟:
步驟一:接收模塊接收來(lái)自主機(jī)的啟動(dòng)信號(hào)和密文,啟動(dòng)信號(hào)為抄板信號(hào)或刷機(jī)信號(hào),密文為防刷機(jī)密文或防抄板密文;
當(dāng)密文為防抄板密文,且啟動(dòng)信號(hào)為抄板信號(hào)時(shí),執(zhí)行步驟二;
當(dāng)密文為防刷機(jī)密文,且啟動(dòng)信號(hào)為刷機(jī)信號(hào)時(shí),執(zhí)行步驟六;
步驟二:接收模塊將防抄板密文發(fā)送至AES解密模塊;
步驟三:AES解密模塊從OTP模塊中讀取防抄板密鑰,并根據(jù)防抄板密文和防抄板密鑰生成第一解密數(shù)據(jù),發(fā)送第一解密數(shù)據(jù)至處理模塊;
步驟四:處理模塊通過(guò)輸出模塊將第一解密數(shù)據(jù)發(fā)送至主機(jī);
步驟五:主機(jī)根據(jù)第一解密數(shù)據(jù)控制程序的運(yùn)行狀態(tài);
步驟六:隨機(jī)數(shù)生成模塊生成第二隨機(jī)數(shù)并發(fā)送至處理模塊,AES解密模塊通過(guò)密鑰訪問(wèn)模塊讀取存儲(chǔ)模塊中的防刷機(jī)密鑰;
步驟七:AES解密模塊根據(jù)防刷機(jī)密鑰和防刷機(jī)密文得到第二解密數(shù)據(jù),并發(fā)送該第二解密數(shù)據(jù)至處理模塊;
步驟八:處理模塊判斷第二解密數(shù)據(jù)與第二隨機(jī)數(shù)是否相同,若是,則通過(guò)處理模塊輸出啟動(dòng)信號(hào)至開(kāi)關(guān)模塊,否則,通過(guò)處理模塊輸出關(guān)閉信號(hào)至開(kāi)關(guān)模塊。
優(yōu)選的,執(zhí)行步驟一之前還包括如下步驟:
步驟A:主機(jī)通過(guò)輸出模塊接收來(lái)自隨機(jī)數(shù)生成模塊發(fā)送的第二隨機(jī)數(shù);
步驟B:主機(jī)根據(jù)存儲(chǔ)于主機(jī)中的防抄板密鑰和主機(jī)中生成的第一隨機(jī)數(shù)生成防抄板密文,以及根據(jù)存儲(chǔ)于主機(jī)中的防刷機(jī)密鑰和第二隨機(jī)數(shù)生成防刷機(jī)密文。
優(yōu)選的,步驟一中,所述啟動(dòng)信號(hào)還可以為刷機(jī)更新信號(hào),密文還可以為刷機(jī)更新密文,當(dāng)啟動(dòng)信號(hào)為刷機(jī)更新信號(hào),且密文為刷機(jī)更新密文時(shí),執(zhí)行如下步驟:
步驟九:隨機(jī)數(shù)生成模塊生成第三隨機(jī)數(shù)并發(fā)送至處理模塊,AES解密模塊通過(guò)密鑰訪問(wèn)模塊讀取存儲(chǔ)模塊中的防刷機(jī)密鑰;
步驟十:AES解密模塊根據(jù)防刷機(jī)密鑰和更新密文得到第三解密數(shù)據(jù),并發(fā)送該第三解密數(shù)據(jù)至處理模塊;
步驟十一:處理模塊判斷第三解密數(shù)據(jù)與第三隨機(jī)數(shù)是否相同,若是,則輸出可寫(xiě)控制信號(hào)至處理模塊,使處理模塊通過(guò)密鑰訪問(wèn)模塊設(shè)置存儲(chǔ)模塊為可寫(xiě)狀態(tài),否則,輸出不可寫(xiě)控制信號(hào)至處理模塊,使處理模塊通過(guò)密鑰訪問(wèn)模塊設(shè)置存儲(chǔ)模塊為不可寫(xiě)狀態(tài)。
優(yōu)選的,所述防刷機(jī)密文由主機(jī)根據(jù)存儲(chǔ)于主機(jī)中的防刷機(jī)密鑰和第三隨機(jī)數(shù)生成。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:
本發(fā)明能夠同時(shí)實(shí)現(xiàn)防刷機(jī)和防抄板的功能,利用加密芯片的AES解密模塊對(duì)軟件進(jìn)行驗(yàn)證,以硬件信號(hào)輸出對(duì)軟件的驗(yàn)證結(jié)果,以此作為對(duì)開(kāi)關(guān)模塊的控制,當(dāng)驗(yàn)證通過(guò)時(shí),控制開(kāi)關(guān)模塊為開(kāi)啟,當(dāng)驗(yàn)證不通過(guò)時(shí),控制開(kāi)關(guān)模塊為關(guān)閉。
附圖說(shuō)明
圖1為本發(fā)明的基于硬件加密的防刷機(jī)系統(tǒng)的模塊結(jié)構(gòu)圖;
圖2為本發(fā)明的基于硬件加密的防刷機(jī)方法的流程圖。
具體實(shí)施方式
下面,結(jié)合附圖以及具體實(shí)施方式,對(duì)本發(fā)明做進(jìn)一步描述:
參見(jiàn)圖1,本發(fā)明提供一種基于硬件加密的防刷機(jī)系統(tǒng),其包括主機(jī)、加密芯片和開(kāi)關(guān)模塊;所述加密芯片包括接收模塊、AES解密模塊、處理模塊、隨機(jī)數(shù)生成模塊、輸出模塊、OTP模塊、密鑰訪問(wèn)模塊和存儲(chǔ)模塊;所述接收模塊、密鑰訪問(wèn)模塊和輸出模塊均與主機(jī)連接;所述OTP模塊、處理模塊和AES解密模塊均與密鑰訪問(wèn)模塊連接;所述OTP模塊、接收模塊和處理模塊均與AES解密模塊連接;所述開(kāi)關(guān)模塊、隨機(jī)數(shù)生成模塊和輸出模塊與處理模塊連接,隨機(jī)數(shù)生成模塊與輸出模塊連接,所述存儲(chǔ)模塊與密鑰訪問(wèn)模塊連接。
主機(jī)為運(yùn)行程序的處理器系統(tǒng),如單片機(jī)、嵌入式系統(tǒng)、SOC等。主機(jī)與加密芯片之間可以通過(guò)I2C接口連接,也就是接收模塊、密鑰訪問(wèn)模塊和輸出模塊均通過(guò)I2C接口與主機(jī)連接。
隨機(jī)數(shù)生成模塊用于生成一隨機(jī)數(shù),并將該隨機(jī)數(shù)通過(guò)輸出模塊發(fā)送至主機(jī)以及處理模塊;在本發(fā)明中,使用的是偽隨機(jī)序列發(fā)生算法,其輸入序列為內(nèi)部時(shí)鐘計(jì)數(shù)器。主機(jī)用于根據(jù)來(lái)自隨機(jī)數(shù)生成模塊的隨機(jī)數(shù)和存儲(chǔ)于主機(jī)中的密鑰生成密文,另外主機(jī)內(nèi)部本身也可以生成隨機(jī)數(shù),因而主機(jī)也可以根據(jù)主機(jī)產(chǎn)生的隨機(jī)數(shù)和存儲(chǔ)于主機(jī)中的密鑰生成密文;所述接收模塊用于將來(lái)自主機(jī)的啟動(dòng)信號(hào)和密文發(fā)送至AES解密模塊,當(dāng)AES解密模塊接收到啟動(dòng)信號(hào)和密文時(shí),獲取OTP模塊或存儲(chǔ)模塊的密鑰,獲取方式為直接獲取或者通過(guò)密鑰訪問(wèn)模塊獲取,之后結(jié)合密文生成相應(yīng)的解密數(shù)據(jù)并發(fā)送至處理模塊;處理模塊用于將解密數(shù)據(jù)和隨機(jī)數(shù)進(jìn)行比對(duì)。AES解密模塊使用的是AES128bit算法。
OTP模塊為one time program,即一次可編程存儲(chǔ),用于存儲(chǔ)防抄板密鑰、芯片的序列號(hào)以及防刷機(jī)密鑰可編程使能信號(hào)。OTP模塊只能編程一次,且需要在高壓下進(jìn)行,在正常工作電壓下不能編程,防抄板密鑰不能被外部讀取。存儲(chǔ)模塊用于存儲(chǔ)防刷機(jī)密鑰,其為可多次編程存儲(chǔ),可以在正常工作電壓下讀寫(xiě),防刷機(jī)密鑰不能被外部讀取。防刷機(jī)密鑰只有在硬件防刷機(jī)可編程使能信號(hào)有效或存儲(chǔ)模塊為可寫(xiě)狀態(tài)時(shí)才能被設(shè)置。防刷機(jī)可編程使能信號(hào)用于防刷機(jī)密鑰的初始設(shè)置。密鑰訪問(wèn)模塊與主機(jī)連接,主機(jī)通過(guò)密鑰訪問(wèn)模塊可更新防刷機(jī)密鑰。
開(kāi)關(guān)模塊包括電源開(kāi)關(guān)、顯示開(kāi)關(guān)和數(shù)據(jù)通路開(kāi)關(guān)中的一種或多種。這些開(kāi)關(guān)模塊當(dāng)在lock=1的狀態(tài)下,表示打開(kāi)這些開(kāi)關(guān)模塊,當(dāng)在lock=0的狀態(tài)下,表示關(guān)閉這些開(kāi)關(guān)模塊,通過(guò)處理模塊控制lock=1或lock=0。
另外一方面,參見(jiàn)圖2,本發(fā)明提供基于硬件加密的防刷機(jī)方法,其應(yīng)用于上述提供的基于硬件加密的防刷機(jī)系統(tǒng),包括如下步驟:
步驟S1:接收模塊接收來(lái)自主機(jī)的啟動(dòng)信號(hào)和密文,啟動(dòng)信號(hào)為抄板信號(hào)、刷機(jī)信號(hào)或更新信號(hào)中的一種,密文為防刷機(jī)密文、防抄板密文或更新密文中的一種;
當(dāng)密文為防抄板密文,且啟動(dòng)信號(hào)為抄板信號(hào)時(shí),執(zhí)行步驟S2;
當(dāng)密文為防刷機(jī)密文,且啟動(dòng)信號(hào)為刷機(jī)信號(hào)時(shí),執(zhí)行步驟S6;
當(dāng)密文為更新密文,且啟動(dòng)信號(hào)為更新信號(hào)時(shí),執(zhí)行步驟S9;
步驟S2:接收模塊將防抄板密文發(fā)送至AES解密模塊;
步驟S3:AES解密模塊從OTP模塊中讀取防抄板密鑰,并根據(jù)防抄板密文和防抄板密鑰生成第一解密數(shù)據(jù),發(fā)送第一解密數(shù)據(jù)至處理模塊;
步驟S4:處理模塊通過(guò)輸出模塊將第一解密數(shù)據(jù)發(fā)送至主機(jī);
步驟S5:主機(jī)根據(jù)第一解密數(shù)據(jù)控制程序的運(yùn)行狀態(tài);這里的程序指的是發(fā)生抄板行為時(shí)所運(yùn)行的程序。程序的運(yùn)行狀態(tài)包括運(yùn)行或停止運(yùn)行。
對(duì)于上述步驟S2至步驟S5為防抄板驗(yàn)證流程,實(shí)際上主機(jī)會(huì)生成一隨機(jī)數(shù),定義為第一隨機(jī)數(shù),并且主機(jī)內(nèi)存儲(chǔ)有與加密芯片OTP模塊中所存儲(chǔ)的防抄板密鑰一樣的防抄板密鑰,主機(jī)根據(jù)防抄板密鑰和第一隨機(jī)數(shù)生成密文,之后主機(jī)將密文寫(xiě)入加密芯片中并等待加密芯片解密完成,之后主機(jī)從加密芯片中讀回解密的結(jié)果,也就是解密數(shù)據(jù),比較解密數(shù)據(jù)是否與第一隨機(jī)數(shù)相同,如果是,就將程序繼續(xù)運(yùn)行,否則,停止該程序的運(yùn)行。
步驟S6:隨機(jī)數(shù)生成模塊生成第二隨機(jī)數(shù)并發(fā)送至處理模塊,AES解密模塊通過(guò)密鑰訪問(wèn)模塊讀取存儲(chǔ)模塊中的防刷機(jī)密鑰;
步驟S7:AES解密模塊根據(jù)防刷機(jī)密鑰和防刷機(jī)密文得到第二解密數(shù)據(jù),并發(fā)送該第二解密數(shù)據(jù)至處理模塊;
步驟S8:處理模塊判斷第二解密數(shù)據(jù)與第二隨機(jī)數(shù)是否相同,若是,則通過(guò)處理模塊輸出啟動(dòng)信號(hào)至開(kāi)關(guān)模塊,否則,通過(guò)處理模塊輸出關(guān)閉信號(hào)至開(kāi)關(guān)模塊。
步驟S6至步驟S8為防刷機(jī)流程,實(shí)際上,隨機(jī)數(shù)生成模塊生成的第二隨機(jī)數(shù)也會(huì)通過(guò)輸出模塊發(fā)送至主機(jī),主機(jī)內(nèi)部存儲(chǔ)有與加密芯片中一致的防刷機(jī)密鑰,主機(jī)根據(jù)第二隨機(jī)數(shù)和防刷機(jī)密鑰生成防刷機(jī)密文,并發(fā)送至加密芯片,執(zhí)行步驟S6至步驟S7的流程。設(shè)置加密芯片上電時(shí)lock=0,保證在沒(méi)有經(jīng)過(guò)刷機(jī)驗(yàn)證之前,開(kāi)關(guān)模塊不能正常工作,同時(shí)防止主機(jī)繞過(guò)隨機(jī)數(shù)生成。啟動(dòng)信號(hào)也就是刷機(jī)請(qǐng)求。處理模塊判斷到第二解密數(shù)據(jù)與第二隨機(jī)數(shù)相同時(shí),才設(shè)置lock=1,使開(kāi)關(guān)模塊工作,并且加密芯片接收刷機(jī)命令,執(zhí)行刷機(jī)操作。
步驟S9:隨機(jī)數(shù)生成模塊生成第三隨機(jī)數(shù)并發(fā)送至處理模塊,AES解密模塊通過(guò)密鑰訪問(wèn)模塊讀取存儲(chǔ)模塊中的防刷機(jī)密鑰;
步驟S10:AES解密模塊根據(jù)防刷機(jī)密鑰和更新密文得到第三解密數(shù)據(jù),并發(fā)送該第三解密數(shù)據(jù)至處理模塊;
步驟S11:處理模塊判斷第三解密數(shù)據(jù)與第三隨機(jī)數(shù)是否相同,若是,則輸出可寫(xiě)控制信號(hào)至處理模塊,使處理模塊通過(guò)密鑰訪問(wèn)模塊設(shè)置存儲(chǔ)模塊為可寫(xiě)狀態(tài),否則,輸出不可寫(xiě)控制信號(hào)至處理模塊,使處理模塊通過(guò)密鑰訪問(wèn)模塊設(shè)置存儲(chǔ)模塊為不可寫(xiě)狀態(tài)。
步驟S9至步驟S11為密鑰更新流程,實(shí)際上,隨機(jī)數(shù)生成模塊所生成的第三隨機(jī)數(shù)也會(huì)通過(guò)輸出模塊發(fā)送至主機(jī)中,主機(jī)是根據(jù)該第三隨機(jī)數(shù)和自身存儲(chǔ)的更新密鑰生成更新密文,并寫(xiě)入至加密芯片中。加密芯片接收到主機(jī)的更新密文后啟動(dòng)解密操作,得到第三解密數(shù)據(jù),處理模塊判斷第三解密數(shù)據(jù)與第三隨機(jī)數(shù)是否一致,若一致的情況下,則控制存儲(chǔ)模塊為可寫(xiě),主機(jī)通過(guò)密鑰訪問(wèn)模塊發(fā)送新密鑰至存儲(chǔ)模塊,也就是此時(shí)可以對(duì)存儲(chǔ)模塊存儲(chǔ)的密鑰進(jìn)行更新。
對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。