本發(fā)明涉及通信領(lǐng)域,尤其涉及一種終端的sim卡鎖數(shù)據(jù)的保護方法及系統(tǒng)。
背景技術(shù):
運營商通過全球用戶識別卡(universalsubscriberidentitymodule,usim)內(nèi)的相關(guān)信息,來限制可采用所述usim的終端所允許使用的國家、注冊的網(wǎng)絡(luò)、子網(wǎng)、集團網(wǎng)絡(luò)等配置,其實現(xiàn)的原理為:通過將usim中存儲的相關(guān)信息與終端中存儲的相關(guān)信息進行比對,通過比對結(jié)果來判斷當前終端是否為定制設(shè)備以及是否允許活動于當前網(wǎng)絡(luò)。sim卡鎖(simlock)是一種用來保護usim的相關(guān)信息的軟件鎖,為保障usimlock這種軟件鎖所涉及的數(shù)據(jù)信息的安全性,需要將simlock數(shù)據(jù)涉及到的關(guān)鍵信息(如白名單、軟件鎖狀態(tài)等)保護起來,以防被黑客通過非法軟件或者刷機的方式篡改。
目前,有兩種方法保護所述simlock數(shù)據(jù):第一種:將用rsa私鑰加密后的simlock數(shù)據(jù)存儲于cp側(cè),rsa公鑰硬編碼在ap側(cè),每一次系統(tǒng)開機,由啟動加載程序(universalbootloader,uboot)將rsa公鑰傳遞給cp,由cp完成對simlock數(shù)據(jù)的校驗。第二種:將用rsa私鑰加密后的simlock數(shù)據(jù)存儲于ap側(cè),在第二次開機過程中,由uboot將simlock數(shù)據(jù)發(fā)送至cp側(cè),并由cp側(cè)重新加密并作進一步存儲。
但是,如果采用上述的方法保護所述simlock數(shù)據(jù),會造成simlock數(shù)據(jù)安全性及保護方法的通用性低下。
技術(shù)實現(xiàn)要素:
本發(fā)明解決的問題是如何提高sim卡鎖數(shù)據(jù)的安全性及通用性。
為解決上述問題,本發(fā)明實施例提供了一種終端的sim卡鎖數(shù)據(jù)的保護方法,所述終端包括通信處理器,所述方法包括:通過加解鎖工具將所述sim卡鎖數(shù)據(jù)傳輸并存儲至所述通信處理器的第一存儲區(qū)域。
可選地,通過硬編碼方式或軟編碼方式存儲所述sim卡鎖數(shù)據(jù)。
可選地,在將所述sim卡鎖數(shù)據(jù)傳輸至所述通信處理器之前,還包括:通過所述加解鎖工具將公鑰傳輸并存儲至所述通信處理器;所述通信處理器采用所述公鑰對所述加解鎖工具鑒權(quán)并鑒權(quán)通過。
可選地,所述通信處理器采用所述公鑰對所述加解鎖工具鑒權(quán),包括:所述通信處理器檢測所述公鑰是否與所述加解鎖工具所持有的私鑰匹配;當確定所述公鑰與所述sim卡鎖數(shù)據(jù)的來源方所持有的私鑰匹配時,所述通信處理器確定通過對所述解鎖工具的鑒權(quán)。
可選地,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)。
可選地,在所述加解鎖工具向所述通信處理器發(fā)送所述sim卡鎖數(shù)據(jù)之前,還包括:所述加解鎖工具通過與所述公鑰匹配的私鑰對所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)進行加密,生成第一密文,并將所述第一密文發(fā)送至所述通信處理器;所述通信處理器采用所述公鑰對所述第一密文進行解密;當成功完成對所述第一密文的解密后,所述通信處理器生成第一加密密鑰,并利用所述第一加密密鑰及所述公鑰對解密后的所述第一密文進行雙層加密,生成第二密文,并發(fā)送至所述加解鎖工具;所述加解鎖工具將所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)替換為所述第二密文。
可選地,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)及動態(tài)數(shù)據(jù)。
可選地,在所述通信處理器存儲所述sim卡鎖數(shù)據(jù)之前,還包括:所述加解鎖工具采用所述私鑰對所述動態(tài)數(shù)據(jù)進行加密及對所述靜態(tài)數(shù)據(jù)進行簽名,并發(fā)送至所述通信處理器;所述通信處理器對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解密,并對驗證后的簽名及解密后的動態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲。
可選地,所述加解鎖工具采用所述私鑰對所述動態(tài)數(shù)據(jù)進行加密及對所述靜態(tài)數(shù)據(jù)進行簽名,并發(fā)送至所述通信處理器;包括:所述加解密工具對所述動態(tài)數(shù)據(jù)進行加密生成第三密文,對所述靜態(tài)數(shù)據(jù)進行簽名,生成第一簽名值,并將所述第三密文及攜帶有所述第一簽名值的所述靜態(tài)數(shù)據(jù)發(fā)送至所述通信處理器。
可選地,所述通信處理器對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解 密,并對驗證后的簽名及解密后的動態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲,包括:所述通信處理器對所述第一簽名值進行校驗,并對所述第三密文進行解密;當通過對所述第一簽名值的校驗及完成對所述第三密文的解密后,所述通信處理器生成第二加密密鑰,并利用所述第二加密密鑰對所述第一簽名值進行加密,生成第四密文,并利用所述第二加密密鑰對所述動態(tài)數(shù)據(jù)進行簽名,生成第二簽名值,存儲解密后的所述靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)、所述第二簽名值及所述第四密文。
可選地,所述加解鎖工具將公鑰傳輸并存儲至所述通信處理器之前,還包括:所述通信處理器確定與所述加解鎖工具數(shù)據(jù)交互的唯一性。
可選地,所述通信處理器確定與所述加解鎖工具數(shù)據(jù)交互的唯一性,包括:通過所述加解鎖工具將隨機數(shù)傳輸并存儲至所述通信處理器的第二存儲區(qū)域;其中:所述第二存儲區(qū)域內(nèi)的數(shù)據(jù)不可更改;所述加解密工具采用所述隨機數(shù)及所述公鑰進行運算,得到第一運算值,并對所述第一運算值進行加密得到第一加密值,將所述第一加密值及所述公鑰共同發(fā)送至所述通信處理器;所述通信處理器對所述公鑰進行加密得到第二加密值,并判斷所述第一加密值與所述第二加密值是否相同;當所述第一加密值與所述第二加密值相同時,所述通信處理器確定與所述加解鎖工具數(shù)據(jù)交互唯一。
可選地,所述第一存儲區(qū)域中的數(shù)據(jù)可更改。
可選地,所述終端還包括應(yīng)用處理器,所述通信處理器與所述加解鎖工具的數(shù)據(jù)交互通過所述應(yīng)用處理器進行透傳。
本發(fā)明實施例提供了一種sim卡鎖數(shù)據(jù)的保護系統(tǒng),所述系統(tǒng)包括:加解鎖工具及與其耦接的終端,其中:所述終端,包括:通信處理器,所述通信處理器適于接收所述加解鎖工具傳輸?shù)膕im卡鎖數(shù)據(jù),并將所述sim卡鎖數(shù)據(jù)存儲至第一存儲區(qū)域;所述加解鎖工具,適于將所述sim卡鎖數(shù)據(jù)傳輸至所述終端的通信處理器。
可選地,所述通信處理器適于通過硬編碼方式或軟編碼方式存儲所述sim卡鎖數(shù)據(jù)。
可選地,所述加解鎖工具在將所述sim卡鎖數(shù)據(jù)傳輸至所述通信處理器 之前,還適于將公鑰傳輸并存儲至所述通信處理器;
所述通信處理器還適于采用所述公鑰對所述加解鎖工具鑒權(quán)并鑒權(quán)通過。
可選地,所述通信處理器適于檢測所述公鑰是否與所述加解鎖工具所持有的私鑰匹配,當確定所述公鑰與所述sim卡鎖數(shù)據(jù)的來源方所持有的私鑰匹配時,確定通過對所述解鎖工具的鑒權(quán)。
可選地,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)。
可選地,所述加解鎖工具,還適于在向所述通信處理器發(fā)送所述sim卡鎖數(shù)據(jù)之前,通過與所述公鑰匹配的私鑰對所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)進行加密,生成第一密文,并將所述第一密文發(fā)送至所述通信處理器;所述通信處理器,還適于采用所述公鑰對所述第一密文進行解密;當成功完成對所述第一密文的解密后,生成第一加密密鑰,并利用所述第一加密密鑰及所述公鑰對解密后的所述第一密文進行雙層加密,生成第二密文,并發(fā)送至所述加解鎖工具,以使得所述加解鎖工具將所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)替換為所述第二密文。
可選地,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)及動態(tài)數(shù)據(jù)。
可選地,所述加解鎖工具,還適于在所述通信處理器存儲所述sim卡鎖數(shù)據(jù)之前,采用所述私鑰對所述動態(tài)數(shù)據(jù)進行加密及對所述靜態(tài)數(shù)據(jù)進行簽名,并發(fā)送至所述通信處理器;所述通信處理器,還適于對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解密,并對驗證后的簽名及解密后的動態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲。
可選地,所述加解鎖工具,適于對所述動態(tài)數(shù)據(jù)進行加密生成第三密文,對所述靜態(tài)數(shù)據(jù)進行簽名,生成第一簽名值,并將所述第三密文及攜帶有所述第一簽名值的所述靜態(tài)數(shù)據(jù)發(fā)送至所述通信處理器。
可選地,所述通信處理器還適于對所述第一簽名值進行校驗,并對所述第三密文進行解密;當通過對所述第一簽名值的校驗及完成對所述第三密文的解密后,生成第二加密密鑰,并利用所述第二加密密鑰對所述第一簽名值進行加密,生成第四密文,并利用所述第二加密密鑰對所述動態(tài)數(shù)據(jù)進行簽名,生成第二簽名值,存儲解密后的所述靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)、所述第二簽 名值及所述第四密文。
可選地,所述通信處理器,還適于在所述加解鎖工具將公鑰傳輸并存儲至所述通信處理器之前,確定與所述加解鎖工具數(shù)據(jù)交互的唯一性。
可選地,所述第一存儲區(qū)域中的數(shù)據(jù)可更改。
可選地,所述終端還包括應(yīng)用處理器,適于將所述通信處理器與所述加解鎖工具的之間的數(shù)據(jù)透傳。
可選地,所述通信處理器,還適于與所述加解鎖工具通過密文傳輸所述終端的身份標識碼數(shù)據(jù),并將所述身份標識碼數(shù)據(jù)存儲于所述第一存儲區(qū)域。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案具有以下優(yōu)點:
通過通信處理器可以從外部的加解鎖工具獲取sim卡鎖數(shù)據(jù),可以不依賴應(yīng)用處理器,并且由于數(shù)據(jù)存儲在通信處理器中,從而使得該方法可以適用于功能機及數(shù)據(jù)卡等產(chǎn)品,故可以提高該simlock卡鎖數(shù)據(jù)保護方法的通用性。并且,通信處理器的源碼數(shù)據(jù)并非開放內(nèi)容,也就是說,通信處理器中的數(shù)據(jù)不易篡改,故將數(shù)據(jù)存儲在通信處理器中,也可以提高數(shù)據(jù)保護的安全性。
進一步,在通信處理器接收來自加解鎖工具的sim卡鎖數(shù)據(jù)之前,通過所述通信處理器采用公鑰對加解鎖工具鑒權(quán)并通過,避免其它非特定的加解鎖工具對所述sim卡鎖數(shù)據(jù)進行更改后向所述通信處理器傳輸,從而可以進一步地提高數(shù)據(jù)的安全性。
進一步,通過通信處理器在接收所述數(shù)據(jù)之前,與加解鎖工具進行交互,把所述加解鎖工具中的sim卡鎖數(shù)據(jù)靜態(tài)數(shù)據(jù)替換為所述加解鎖工具無法識別的密文,可以避免對所述加解鎖中的靜態(tài)數(shù)據(jù)進行修改,從而可以進一步地提高數(shù)據(jù)的安全性。
進一步,加解鎖工具將公鑰傳輸并存儲至所述通信處理器之前,通過所述通信處理器確定與所述加解鎖工具數(shù)據(jù)交互的唯一性,可以避免對所述公鑰的隨意設(shè)置,從而可以進一步提高數(shù)據(jù)的安全性。
附圖說明
圖1是本發(fā)明本發(fā)明實施例中一種sim卡鎖數(shù)據(jù)的保護方法的流程示意圖;
圖2是本發(fā)明實施例中一種sim卡鎖數(shù)據(jù)的保護系統(tǒng)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例中一種加解鎖工具與通信處理器之間數(shù)據(jù)交互的信令圖;
圖4是本發(fā)明實施例中一種終端對sim卡鎖數(shù)據(jù)的校驗的流程示意圖。
具體實施方式
運營商通過全球用戶識別卡(universalsubscriberidentitymodule,usim)內(nèi)的相關(guān)信息,來限制可采用所述usim的終端所允許使用的國家、注冊的網(wǎng)絡(luò)、子網(wǎng)、集團網(wǎng)絡(luò)等配置,其實現(xiàn)的原理為:通過將usim中存儲的相關(guān)信息與終端中存儲的相關(guān)信息進行比對,通過比對結(jié)果來判斷當前終端是否為定制設(shè)備以及是否允許活動于當前網(wǎng)絡(luò)。
sim卡鎖(simlock)是一種用來保護usim的相關(guān)信息的軟件鎖,為保障usimlock這種軟件鎖所涉及的數(shù)據(jù)信息的安全性,需要將simlock數(shù)據(jù)涉及到的關(guān)鍵信息(如白名單、軟件鎖狀態(tài)等)保護起來,以防被黑客通過非法軟件或者刷機的方式篡改。
目前,有兩種方法保護所述simlock數(shù)據(jù):第一種:將用rsa私鑰加密后的simlock數(shù)據(jù)存儲于cp側(cè),rsa公鑰硬編碼在ap側(cè),每一次系統(tǒng)開機,由開放源碼(universalbootloader,uboot)將rsa公鑰傳遞給cp,由cp完成對simlock數(shù)據(jù)的校驗。第二種:將用rsa私鑰加密后的simlock數(shù)據(jù)存儲于ap側(cè),在第二次開機過程中,由uboot將simlock數(shù)據(jù)發(fā)送至cp側(cè),并由cp側(cè)重新加密并作進一步存儲。
但是,如果采用上述的方法保護所述simlock數(shù)據(jù),會造成simlock數(shù)據(jù)安全性及保護方法的通用性低下。
為解決上述問題,本發(fā)明實施例提供了終端的sim卡鎖數(shù)據(jù)的保護方法,通過通信處理器可以從外部的加解鎖工具獲取sim卡鎖數(shù)據(jù),可以不依賴應(yīng)用處理器,并且由于數(shù)據(jù)存儲在通信處理器中,從而使得該方法可以適用于 功能機及數(shù)據(jù)卡等產(chǎn)品,故可以提高該simlock卡鎖數(shù)據(jù)保護方法的通用性,而且通信處理器的源碼數(shù)據(jù)并非開放內(nèi)容,也就是說,通信處理器中的數(shù)據(jù)不易篡改,故將數(shù)據(jù)存儲在通信處理器中,也可以提高數(shù)據(jù)保護的安全性。
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。
以下提供了本發(fā)明實施例中的一種終端的sim卡鎖數(shù)據(jù)的保護方法,如圖1所示,所述終端包括通信處理器,以下結(jié)合圖1對所述方法進行分步驟詳細介紹:
s11:加解鎖工具將所述sim卡鎖數(shù)據(jù)發(fā)送至通信處理器。
為了避免任意的加解鎖工具與終端的數(shù)據(jù)交互或者對sim卡鎖數(shù)據(jù)進行篡改,以提高數(shù)據(jù)的安全性,在具體實施中,在將所述sim卡鎖數(shù)據(jù)傳輸至所述通信處理器之前,可以通過所述加解鎖工具將公鑰傳輸并存儲至所述通信處理器,進而所述通信處理器采用所述公鑰對所述加解鎖工具鑒權(quán)并鑒權(quán)通過。
由于加解鎖工具在獲取所述公鑰同時,會獲取到與所述公鑰匹配的私鑰,故在具體實施中,所述通信處理器可以檢測所述公鑰是否與所述加解鎖工具所持有的私鑰匹配,如果確定所述公鑰與所述sim卡鎖數(shù)據(jù)的來源方所持有的私鑰匹配時,可以確定通過對所述解鎖工具的鑒權(quán)。需要說明的是,所述私鑰可以存儲于所述加解鎖工具或者加密狗,亦或客戶服務(wù)器,以增強私鑰的安全性,但是無論私鑰存儲于何處,所述加解鎖工具均可獲取所述私鑰。所述私鑰存儲的位置,并不對本發(fā)明的保護范圍構(gòu)成任何限制。
為了確定與所述加解鎖工具數(shù)據(jù)交互的唯一性,在本發(fā)明一實施例中,當所述加解鎖工具將公鑰傳輸并存儲至所述通信處理器之前,可以通過所述加解鎖工具將隨機數(shù)傳輸并加密存儲至所述通信處理器的第二存儲區(qū)域;其中:所述第二存儲區(qū)域內(nèi)的數(shù)據(jù)不可更改。
所述加解密工具采用所述隨機數(shù)及所述公鑰進行運算,得到第一運算值,并對所述第一運算值進行加密得到第一加密值,將所述第一加密值及所述公鑰共同發(fā)送至所述通信處理器;所述通信處理器對所述公鑰進行加密得到第 二加密值,并判斷所述第一加密值與所述第二加密值是否相同;當所述第一加密值與所述第二加密值相同時,所述通信處理器確定與所述加解鎖工具數(shù)據(jù)交互的唯一性。
需要說明的是,所述通信處理器有多種方式從加解鎖工具處獲取所述sim卡鎖數(shù)據(jù),比如可以直接從所述加解鎖工具處獲取所述sim卡鎖數(shù)據(jù),這樣一來,由于數(shù)據(jù)的獲取以及數(shù)據(jù)的存儲均獨立地在所述通信處理器處完成,故可以避免對終端中的其它部件的依賴,從而可以提高數(shù)據(jù)保護方法的通用性以及數(shù)據(jù)的安全性。
還比如,也可以通過所述終端中包括的應(yīng)用處理器來獲得所述sim卡鎖數(shù)據(jù),并且在獲得所述sim卡鎖數(shù)據(jù)的過程中,所述應(yīng)用處理器只是一個透傳的作用,并不對從所述加解鎖工具處獲得的數(shù)據(jù)做任何處理。這樣一來,可以提高數(shù)據(jù)的安全性。
所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù),所述靜態(tài)數(shù)據(jù)非常重要,為了避免人為破壞或惡意軟件修改,故在本方明一實施例中,所述加解鎖工具向所述通信處理器發(fā)送所述sim卡鎖數(shù)據(jù)之前,還可以通過與所述通信處理器進行交互,以使得所述靜態(tài)數(shù)據(jù)不可被所述加解鎖工具所修改。
具體地,首先由所述加解鎖工具通過與所述公鑰匹配的私鑰對所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)進行加密,生成第一密文,并將所述第一密文發(fā)送至所述通信處理器,接著所述通信處理器采用所述公鑰對所述第一密文進行解密,進而當成功完成對所述第一密文的解密后,所述通信處理器可以生成第一加密密鑰,并利用所述第一加密密鑰及所述公鑰對解密后的所述第一密文進行雙層加密,生成第二密文,并發(fā)送至所述加解鎖工具,然后所述加解鎖工具將所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)替換為所述第二密文。這樣一來,由于所述加解鎖工具無法獲知所述第一加密密鑰,并且也無法獲知所述靜態(tài)數(shù)據(jù)的加密方法,故可以提高靜態(tài)數(shù)據(jù)的安全性。
s12:通信處理器將所述sim卡鎖數(shù)據(jù)存儲至第一存儲區(qū)域。
在具體實施中,通信處理器可以有多種方式將接收到的所述sim卡鎖數(shù)據(jù)存儲在所述第一存儲區(qū)域中。比如可以通過硬編碼方式存儲所述sim卡鎖 數(shù)據(jù),還可以通過軟編碼方式存儲所述數(shù)據(jù)。
為了提高所述sim卡鎖數(shù)據(jù)的可定制性,也就是可以對所述sim卡鎖中的數(shù)據(jù)進行合理的修改,在本發(fā)明一實施例中,所述第一存儲區(qū)域中的數(shù)據(jù)可以被修改,也就是說,所述第一存儲區(qū)域可以是一個可被多次修改數(shù)據(jù)的區(qū)域。
由于所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)及動態(tài)數(shù)據(jù),為了綜合考慮數(shù)據(jù)的安全性及數(shù)據(jù)傳輸?shù)男?,在具體實施中,在所述通信處理器存儲所述sim卡鎖數(shù)據(jù)之前,所述加解鎖工具還可以采用所述私鑰對所述動態(tài)數(shù)據(jù)進行加密及對所述靜態(tài)數(shù)據(jù)進行簽名,并發(fā)送至所述通信處理器,進而所述通信處理器對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解密,并對驗證后的簽名及解密后的動態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲。
在本發(fā)明一實施例中,所述加解密工具可以對所述動態(tài)數(shù)據(jù)進行加密生成第三密文,對所述靜態(tài)數(shù)據(jù)進行簽名,生成第一簽名值,并將所述第三密文及攜帶有所述第一簽名值的所述靜態(tài)數(shù)據(jù)發(fā)送至所述通信處理器,以實現(xiàn)對所述動態(tài)數(shù)據(jù)的加密及對所述靜態(tài)數(shù)據(jù)進行的簽名。
在本發(fā)明另一實施例中,所述通信處理器對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解密,并對驗證后的簽名及解密后的動態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲。
具體過程可以依次為:所述通信處理器首先對所述第一簽名值進行校驗,并對所述第三密文進行解密,進而若通過對所述第一簽名值的校驗及完成對所述第三密文的解密后,可以生成第二加密密鑰,并利用所述第二加密密鑰對所述第一簽名值進行加密,生成第四密文,并利用所述第二加密密鑰對所述動態(tài)數(shù)據(jù)進行簽名,生成第二簽名值,存儲解密后的所述靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)、所述第二簽名值及所述第四密文。
為使得本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下提供了本發(fā)明實施例中的一種sim卡鎖數(shù)據(jù)的保護系統(tǒng),如圖2所示,所述系統(tǒng)可以包括:加解鎖工具1及與其耦接的終端2,其中:
所述終端2,包括:通信處理器21,所述通信處理器21適于接收所述加 解鎖工具1傳輸?shù)膕im卡鎖數(shù)據(jù),并將所述sim卡鎖數(shù)據(jù)存儲至第一存儲區(qū)域;
所述加解鎖工具1,適于將所述sim卡鎖數(shù)據(jù)傳輸至所述終端2的通信處理器21。
在具體實施中,所述通信處理器21適于通過硬編碼方式或軟編碼方式存儲所述sim卡鎖數(shù)據(jù)。
在具體實施中,所述加解鎖工具1在將所述sim卡鎖數(shù)據(jù)傳輸至所述通信處理器21之前,還適于將公鑰傳輸并存儲至所述通信處理器21;所述通信處理器21還適于采用所述公鑰對所述加解鎖工具1鑒權(quán)并鑒權(quán)通過。
在具體實施中,所述通信處理器21適于檢測所述公鑰是否與所述加解鎖工具1所持有的私鑰匹配,當確定所述公鑰與所述sim卡鎖數(shù)據(jù)的來源方所持有的私鑰匹配時,確定通過對所述解鎖工具的鑒權(quán)。
在具體實施中,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)。
在具體實施中,在向所述通信處理器21發(fā)送所述sim卡鎖數(shù)據(jù)之前,所述加解鎖工具1還適于通過與所述公鑰匹配的私鑰對所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)進行加密,生成第一密文,并將所述第一密文發(fā)送至所述通信處理器21;
所述通信處理器21還適于采用所述公鑰對所述第一密文進行解密;當成功完成對所述第一密文的解密后,生成第一加密密鑰,并利用所述第一加密密鑰及所述公鑰對解密后的所述第一密文進行雙層加密,生成第二密文,并發(fā)送至所述加解鎖工具1,以使得所述加解鎖工具1將所述sim卡鎖數(shù)據(jù)中的靜態(tài)數(shù)據(jù)替換為所述第二密文。
在具體實施中,所述sim卡鎖數(shù)據(jù)包括靜態(tài)數(shù)據(jù)及動態(tài)數(shù)據(jù)。
在具體實施中,在所述通信處理器21存儲所述sim卡鎖數(shù)據(jù)之前,所述加解鎖工具1還適于采用所述私鑰對所述動態(tài)數(shù)據(jù)進行加密及對所述靜態(tài)數(shù)據(jù)進行簽名,并發(fā)送至所述通信處理器21;所述通信處理器21還適于對所述簽名進行驗證及對所述動態(tài)數(shù)據(jù)進行解密,并對驗證后的簽名及解密后的動 態(tài)數(shù)據(jù)再次進行加密及簽名,并存儲。
在具體實施中,所述加解鎖工具1適于對所述動態(tài)數(shù)據(jù)進行加密生成第三密文,對所述靜態(tài)數(shù)據(jù)進行簽名,生成第一簽名值,并將所述第三密文及攜帶有所述第一簽名值的所述靜態(tài)數(shù)據(jù)發(fā)送至所述通信處理器21。
在具體實施中,所述通信處理器21還適于對所述第一簽名值進行校驗,并對所述第三密文進行解密;當通過對所述第一簽名值的校驗及完成對所述第三密文的解密后,生成第二加密密鑰,并利用所述第二加密密鑰對所述第一簽名值進行加密,生成第四密文,并利用所述第二加密密鑰對所述動態(tài)數(shù)據(jù)進行簽名,生成第二簽名值,存儲解密后的所述靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)、所述第二簽名值及所述第四密文。
在具體實施中,在所述加解鎖工具1將公鑰傳輸并存儲至所述通信處理器21之前,所述通信處理器21還適于確定與所述加解鎖工具1數(shù)據(jù)交互的唯一性。
在具體實施中,所述通信處理器21還適于接收來自所述加解鎖工具1的隨機數(shù),并存儲至所述通信處理器21的第二存儲區(qū)域;其中:所述第二存儲區(qū)域內(nèi)的數(shù)據(jù)不可更改。
所述加解密工具還適于采用所述隨機數(shù)及所述公鑰進行運算,得到第一運算值,并對所述第一運算值進行加密得到第一加密值,將所述第一加密值及所述公鑰共同發(fā)送至所述通信處理器21;所述通信處理器21還適于對所述公鑰進行加密得到第二加密值,并判斷所述第一加密值與所述第二加密值是否相同;當所述第一加密值與所述第二加密值相同時,所述通信處理器21確定與所述加解鎖工具1數(shù)據(jù)交互的唯一性。
在具體實施中,所述第一存儲區(qū)域中的數(shù)據(jù)可更改。
在具體實施中,所述終端2還包括應(yīng)用處理器22,所述通信處理器21與所述加解鎖工具1的數(shù)據(jù)交互通過所述應(yīng)用處理器22進行透傳。
為使得本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,下面提供了本發(fā)明實施例中的一種加解鎖工具與通信處理器之間數(shù)據(jù)交互的信令圖,如圖3所示,以下參考圖3,分步驟地對本發(fā)明實施例中的sim卡鎖數(shù)據(jù)的保護方法進行 詳細介紹:
s301:向通信處理器32發(fā)送隨機數(shù)n1。
需要說明的是,本文涉及到的工具可以為加解鎖工具31,并且考慮到不同的產(chǎn)品形態(tài)對于方法的通用性要求,所述加解鎖工具31可以在終端處于校準模式下和正常模式下進行數(shù)據(jù)的寫入,從而可以使得本發(fā)明的方案可以全部由通信處理器32側(cè)完成。
在具體實施中,所述加解鎖工具31可以通過加密狗生成一對rsa(ronrivest、adishamir、leon1ardadleman)密鑰,分別為公鑰(publickey,pk)及私鑰(secretkey,sk),其中sk由simlock定制的客戶保存,pk可以傳輸至通信處理器32并存儲。
由于所述pk非常重要,為了防止pk的隨意設(shè)定,保證該操作的唯一性,所述加解鎖工具31在pk發(fā)送之前,可以首先生成128bit(或者256bit)的隨機數(shù)n1,進而可以將所述隨機數(shù)n1發(fā)送給通信處理器32。
可以理解的是,所述隨機數(shù)n1所占的字節(jié)數(shù),并不對本發(fā)明構(gòu)成限制,本領(lǐng)域技術(shù)人員也可以生成其它字節(jié)數(shù)的隨機數(shù)n1。
s302:通信處理器32將所述隨機數(shù)n1存儲于可重編程的硬件電路中。
在具體實施中,通信處理器32可以將所述隨機數(shù)n1存儲于可重編程的硬件電路中。
在本發(fā)明一實施例中,所述可重編程的硬件電路可以為電編程熔絲(efuse)。所述efuse中的數(shù)據(jù)不可被更改,通過通信處理器32將所述隨機數(shù)n1存儲于efuse中,可以提高數(shù)據(jù)交互的安全性。
可以理解的是,如果所述通信處理器32成功接收到所述隨機數(shù)n1,會向所述加解鎖工具31發(fā)送確認接收信息,在此對此過程不再贅述。
s303:將(pk,m1)發(fā)送至通信處理器32。
在具體實施中,所述加解鎖工具31在成功發(fā)送隨機數(shù)n1之后,可以對所述公鑰及隨機數(shù)n1執(zhí)行求散列及求和的運算,得到(hash(pk)+n1),進而通過高級加密標準(advancedencryptionstandard,aes)的方式對所述 (hash(pk)+n1)進行加密,生成數(shù)據(jù)m1(所述aes加密的密鑰可以由通信處理器32與加解鎖工具31協(xié)商約定)。然后所述加解鎖工具31可以將(pk,m1)發(fā)送至通信處理器32。
s304:生成m2,校驗m1,若校驗通過后,生成加密數(shù)據(jù)spk,并保存pk及spk。
在具體實施中,通信處理器32可以根據(jù)約定好的aes密鑰及之前存儲的隨機數(shù)n1,來對收到的pk進行再次加密,并生成加密數(shù)據(jù)m2,然后比較m1和m2,如果m1和m2相同,說明pk發(fā)送成功,也就是確保了通信處理器32與加解鎖工具31數(shù)據(jù)交互的唯一性。
并且通信處理器32成功接收pk之后,可以通過通信處理器32的設(shè)備標識碼(useridentification,uid),生成新的aes密碼(key),在此操作中,由于每一顆芯片,也就是每個通信處理器32的uid理論上是不相同的,故就可以確保aeskey的唯一性,從而對pk的安全性也帶來了一定保障,然后通過aes算法對pk進行加密,生成加密數(shù)據(jù)spk,可以將(pk,spk)存儲起來。
在本發(fā)明一實施例中,可以將所述(pk,spk)存儲于n1v某塊區(qū)域。當然,根據(jù)實際需要,本領(lǐng)域技術(shù)人員也可以將其存儲在通信處理器32的其它的區(qū)域。
s305:發(fā)送鑒權(quán)請求。
為了提高數(shù)據(jù)的安全性,在具體實施中,所述通信處理器32可以對所述加解鎖工具31進行鑒權(quán),故所述加解鎖工具31可以向通信處理器32發(fā)送鑒權(quán)請求。如果所述加解鎖工具31通過通信處理器32的鑒權(quán),才能夠進行數(shù)據(jù)讀寫操作;如果所述加解鎖工具31未通過通信處理器32的鑒權(quán),可以不繼續(xù)與所述加解鎖工具31之間的數(shù)據(jù)交互,或者不接收來自所述加解鎖工具31的數(shù)據(jù)。
s306:生成隨機數(shù)n2,利用pk加密,生成密文m1。
在具體實施中,當通信處理器32接收到該來自加解鎖工具31的鑒權(quán)請求之后,可以生成隨機數(shù)n2,然后使用存儲的pk對n2進行加密,生成密 文m1。
s307:將密文m1回傳給工具。
s308:通過sk解密m1,獲取隨機數(shù)n2,并用sk對n2進行加密,生成密文m2。
在具體實施中,加解鎖工具31在成功收到密文m1之后,可以通過加密狗獲取到之前所生成的與pk匹配的sk,接著使用sk對密文m1進行解密,并將解密后得到的數(shù)據(jù)n2重新使用sk加密,生成密文m2。
s309:將m2發(fā)送給通信處理器32。
s310:解密獲得n3,對比n2與n3,確認鑒權(quán)結(jié)果。
在具體實施中,通信處理器32在收到密文m2之后,可以通過存儲的pk對m2進行解密,還原得出隨機數(shù)n3,然后對n3與n2進行比較,根據(jù)比較結(jié)果確認是否通過對加解鎖工具31的鑒權(quán)。如果n3與n2相同,可以通過對所述加解鎖工具31的鑒權(quán),否則,不通過對所述加解鎖工具31的鑒權(quán)。
需要說明的是,無論所述通信處理器32是否通過對所述加解鎖工具31的鑒權(quán),均會通知所述加解鎖工具31鑒權(quán)結(jié)果,此處對通知的流程不做任何限定,故在此不再贅述。
可以理解的是,在所述加解鎖工具31通過了通信處理器32的鑒權(quán)后,可以繼續(xù)執(zhí)行s311;反之,二者不再繼續(xù)交互。
s311:發(fā)送密文m3。
需要說明的是,simlock數(shù)據(jù)包括兩部分:靜態(tài)數(shù)據(jù)及動態(tài)數(shù)據(jù)。其中靜態(tài)數(shù)據(jù)是指如pin/puk(請補充)的加密數(shù)據(jù)、靜態(tài)數(shù)據(jù)段的簽名等,在終端出廠之后,理論上是不會再改變,除非人為破壞或惡意軟件修改,而且靜態(tài)部分數(shù)據(jù)是由設(shè)備軟件開發(fā)或者生產(chǎn)商通過私鑰簽名之后保存在終端設(shè)備中,一旦數(shù)據(jù)改動,會直接導(dǎo)致開機數(shù)據(jù)校驗無法通過,進而無法正常使用終端的通信功能,故靜態(tài)數(shù)據(jù)也可以被稱為客戶定制數(shù)據(jù)。
同時,動態(tài)數(shù)據(jù)是指在手機的使用過程中,需要動態(tài)變化的數(shù)據(jù)內(nèi)容,如解鎖次數(shù)的遞減和恢復(fù)、simlock的狀態(tài)位變化等,這部分數(shù)據(jù)又可以稱 為用戶數(shù)據(jù)。
在具體實施中,作為simlock靜態(tài)數(shù)據(jù)的重要組成部分,pin/puk的數(shù)據(jù)也是simlock整個數(shù)據(jù)段的最關(guān)鍵內(nèi)容,為了防止該部分數(shù)據(jù)被重新刷寫,而最終導(dǎo)致simlock數(shù)據(jù)的破解,對這部分數(shù)據(jù)的處理,在配置之前,可以由通信處理器32對該部分數(shù)據(jù)進行加密之后,再交給工具處理。
在本發(fā)明一實施例中,加解鎖工具31可以將simlock數(shù)據(jù)中的pin/puk數(shù)據(jù)通過rsask加密,生成密文m3,進而發(fā)送至通信處理器32。
s312:對m3解密后再加密,生成m4。
在具體實施中,通信處理器32正確地接收到密文m3之后,可以通過rsapk對密文m3進行解密,成功解密之后,通信處理器32可以通過uid生成aeskey,對解密后的pin/puk進行aes和rsapk的雙層加密,生成密文m4。
s313:將m4返回給工具。
s314:將m4替換simlock數(shù)據(jù)中的靜態(tài)數(shù)據(jù)。
在具體實施中,加解鎖工具31在收到密文m4之后,可以將密文m4置于simlock數(shù)據(jù)中的靜態(tài)數(shù)據(jù)的對應(yīng)位置。這樣一來,由于加解鎖數(shù)據(jù)無法獲知所述aes密碼,并且無法獲知通信處理器32對靜態(tài)數(shù)據(jù)的加密方式,則無法對靜態(tài)數(shù)據(jù)進行任何篡改。
s315:對靜態(tài)數(shù)據(jù)簽名,得到s1;對動態(tài)數(shù)據(jù)加密,生成m5。
為了更好的保護simlock的靜態(tài)數(shù)據(jù),防止被惡意篡改,在具體實施中,可以在進行simlock數(shù)據(jù)寫入之前,使用rsask對于simlock靜態(tài)數(shù)據(jù)進行簽名。
這樣一來,在通信處理器32每次開機之前會對該簽名進行驗證,一旦靜態(tài)數(shù)據(jù)遭到破壞,會直接導(dǎo)致簽名校驗失敗,然后無法正常使用終端通信功能。并且由于simlock整塊數(shù)據(jù)區(qū)域較大,如果實現(xiàn)密文傳輸,需要進行分段加密傳輸,為了避免數(shù)據(jù)拆分重組可能造成的方案實現(xiàn)的復(fù)雜性,在具體實施中,可以采用簽名和密文混合發(fā)送方式傳送所述simlock數(shù)據(jù)。
在本發(fā)明一實施例中,加解鎖工具31在pin/puk被密文配置之后,可以使用rsask對simlock靜態(tài)數(shù)據(jù)進行簽名,生成簽名s1,然后將s1置于simlock數(shù)據(jù)中,等待發(fā)送。由于simlock中動態(tài)數(shù)據(jù)區(qū)較小,故加解鎖工具31可以直接使用rsask對該部分數(shù)據(jù)進行加密,生成密文m5。
s316:將(simlock靜態(tài)數(shù)據(jù),s1,m5)發(fā)送給通信處理器32。
s317:對m5進行解密及對s1進行校驗,若成功解密及校驗之后,對s1再加密,生成m6;對動態(tài)數(shù)據(jù)簽名,生成s2。
在具體實施中,通信處理器32正確地收到數(shù)據(jù)之后,可以使用rsapk對simlock動態(tài)數(shù)據(jù)m5進行解密,并且對s1進行校驗。如果通信處理器32對m5成功解密及對s1成功校驗之后,可以通過uid生成aeskey,進而對simlock動態(tài)數(shù)據(jù)進行簽名,生成簽名值s2,并對s1進行aes再加密,生成m6。
最后通信處理器32可以將成功解密后的simlock靜態(tài)數(shù)據(jù)、m6、simlock動態(tài)數(shù)據(jù)及s2更新到nv對應(yīng)位置。由于nv上的數(shù)據(jù)可以更改,如果后續(xù)用戶需要對simlock中的數(shù)據(jù)進行修改,可以按照從s301-s317的流程重新將所述數(shù)據(jù)寫入nv中,從而可以提高數(shù)據(jù)的可定制性。
在具體實施中,在simlock數(shù)據(jù)寫入的同時,還可以執(zhí)行imei數(shù)據(jù)的寫入。所述過程包括:首先生成密文m7:加解鎖工具31通過rsask對imei數(shù)據(jù)進行加密,生成密文m7,并將m7直接發(fā)送給通信處理器32。
通信處理器32成功收到m7之后,通過rsapk對m7進行解密,并將解密后的imei數(shù)據(jù)通過aes重新加密,生成密文m8;aeskey同樣采用uid生成,最終通信處理器32可以將m8更新到nv對應(yīng)位置。
可以理解的是,如果終端中還包括應(yīng)用處理器時,simlock數(shù)據(jù)的整個存儲操作全部可以在通信處理器32側(cè)完成,應(yīng)用處理器只負責simlock數(shù)據(jù)的透傳。
為使得本領(lǐng)域技術(shù)人員更好地理解和實現(xiàn)本發(fā)明,以下還提供了采用本發(fā)明實施例中的sim卡鎖數(shù)據(jù)的保護方法后,在通信處理器的下次啟動時,終端所涉及的安全檢驗步驟,如圖4所示:
s41:獲取rsapk,并校驗rsapk是否有效。
在具體實施中,通信處理器再次啟動時,終端可以獲取rsapk,并校驗rsapk的有效性。
當確定rsapk有效時,可以執(zhí)行s42;反之,執(zhí)行s43。
s42:對simlock數(shù)據(jù)校驗。
在具體實施中,所述終端可以獲取simlock相關(guān)數(shù)據(jù),并通過aes&rsa算法,結(jié)合uid生成的密鑰,對simlock數(shù)據(jù)校驗,以確定simlock是否被篡改。
如果所述simlock數(shù)據(jù)已經(jīng)被篡改,可以執(zhí)行s43;反之,可以執(zhí)行s44。
s43:限制終端的使用權(quán)限。
在具體實施中,為了避免對終端執(zhí)行破壞性的操作或者用戶的信息的安全,可以限制終端的使用權(quán)限,比如只是允許使用緊急呼叫等功能。
s44:繼續(xù)完成協(xié)議棧的開機流程。
在具體實施中,如果確定pk以及simlock數(shù)據(jù)均是無誤的,可以繼續(xù)完成協(xié)議棧的開機流程,以使得終端可以正常使用。
通過上述開機流程安全檢驗流程可知,采用本發(fā)明實施例中的sim卡鎖數(shù)據(jù)的保護方法,每次開機時,通信處理器會對sim卡鎖數(shù)據(jù)進行多次校驗,一旦發(fā)生所述數(shù)據(jù)被篡改或者出現(xiàn)公鑰的篡改等異常,可以限制終端的使用權(quán)限,因此本發(fā)明實施例中的sim卡鎖數(shù)據(jù)的保護方法,可以提高數(shù)據(jù)保護的安全性。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于以計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:rom、ram、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當以權(quán)利要求所限定的范圍為準。