本申請實施例涉及智能設備,特別涉及一種基于預共享密鑰的認證方法、裝置和設備。
背景技術:
1、物聯(lián)網(wǎng)(internet?of?things,iot)即為物物相連的互聯(lián)網(wǎng),能夠實現(xiàn)物品與物品、人與物品之間的互連,設備可以通過接入物聯(lián)網(wǎng)與服務器進行信息交互。為了保證安全性,當設備發(fā)起接入請求時,服務器需要對設備進行認證,當認證通過時才允許設備接入物聯(lián)網(wǎng)。設備和服務器會預先存儲共同的預共享密鑰(pre?shared?key,psk),基于預共享密鑰的認證,都依賴于時變參數(shù)的參與。認證時,使用預共享密鑰對時間戳、序列號或隨機數(shù)進行密碼學運算后發(fā)送給認證方,認證方使用相同的預共享密鑰進行相同的運算,并利用時間戳、序列號、隨機數(shù)的判斷規(guī)則進行判斷,來證明被認證方擁有正確的預共享密鑰,從而判斷被認證方身份的合法性。
2、設備中的預共享密鑰無法抵抗逆向分析或動態(tài)掛鉤(hook),所以設備中使用預共享密鑰可能存在安全問題,而現(xiàn)有相關技術中提供的解決方案也無法解決設備中預共享密鑰的安全性問題。
技術實現(xiàn)思路
1、本申請實施例提供了一種基于預共享密鑰的認證方法、裝置和設備,本申請實施例還提供一種可讀存儲介質,以實現(xiàn)抵抗逆向分析或動態(tài)hook,提升預共享密鑰的安全性。
2、第一方面提供了一種基于預共享密鑰的認證方法,所述方法由設備執(zhí)行,包括:向第一服務器發(fā)送密鑰獲取請求;接收所述第一服務器發(fā)送的預共享密鑰的密文;其中,所述預共享密鑰的密文是使用設備側的密鑰對預共享密鑰的明文加密后獲得的;所述預共享密鑰的明文由所述設備從第二服務器獲?。粚λ鲱A共享密鑰的密文進行解密,獲得所述預共享密鑰的明文;根據(jù)所述預共享密鑰的明文,與第二服務器進行身份認證或加解密服務。
3、上述基于預共享密鑰的認證方法中,設備向第一服務器發(fā)送密鑰獲取請求之后,接收第一服務器發(fā)送的預共享密鑰的密文,然后對上述預共享密鑰的密文進行解密,獲得上述預共享密鑰的明文,進而根據(jù)上述預共享密鑰的明文,與第二服務器進行身份認證或加解密服務,從而可以實現(xiàn)通過有安全認證和鑒權機制的第一服務器,去存儲使用設備側的密鑰加密后的預共享密鑰的密文,從而大幅提升了該預共享密鑰的安全性,并且可以抵抗逆向分析或動態(tài)hook。并且,上述方法中,密鑰與密文分離(密鑰在設備側,密文在第一服務器側),且第一服務器不具備解密能力(因為第一服務器中沒有該預共享密鑰的密文的解密密鑰),從而可以避免預共享密鑰在第一服務器端泄露的風險。
4、其中一種可能的實現(xiàn)方式中,所述根據(jù)所述預共享密鑰的明文,與所述第二服務器進行身份認證或加解密服務包括:使用所述預共享密鑰的明文,或所述預共享密鑰的明文派生出來的密鑰,與所述第二服務器進行身份認證或加解密服務。
5、其中一種可能的實現(xiàn)方式中,所述向第一服務器發(fā)送密鑰獲取請求包括:向所述第一服務器發(fā)送認證請求;與所述第一服務器進行雙向認證;在所述雙向認證通過之后,向所述第一服務器發(fā)送密鑰獲取請求。
6、其中一種可能的實現(xiàn)方式中,所述對所述預共享密鑰的密文進行解密,獲得所述預共享密鑰的明文之后,還包括:將所述預共享密鑰的明文存儲到所述設備的安全硬件環(huán)境;或者使用所述設備的安全硬件環(huán)境中的密鑰對所述預共享密鑰的明文進行加密后,存儲到所述設備中。
7、其中一種可能的實現(xiàn)方式中,所述方法還包括:使用所述設備的安全硬件環(huán)境中存儲的所述預共享密鑰的明文,與所述第二服務器進行身份認證或加解密服務;或者,使用所述設備的安全硬件環(huán)境中的密鑰,對所述設備中加密存儲的預共享密鑰進行解密,獲得所述預共享密鑰的明文,使用所述預共享密鑰的明文與所述第二服務器進行身份認證或加解密服務。
8、其中一種可能的實現(xiàn)方式中,所述與所述第二服務器進行身份認證或加解密服務之后,還包括:如果身份認證未通過或解密失敗,則確定所述預共享密鑰已更新;重新執(zhí)行所述向第一服務器發(fā)送密鑰獲取請求的步驟及其后續(xù)步驟。
9、其中一種可能的實現(xiàn)方式中,所述接收所述第一服務器發(fā)送的預共享密鑰的密文之前,還包括:接收所述第一服務器發(fā)起的安全狀態(tài)檢測請求;將所述設備的安全狀態(tài)數(shù)據(jù)發(fā)送給所述第一服務器,以供所述第一服務器確定所述設備是否處于安全狀態(tài)。
10、其中一種可能的實現(xiàn)方式中,所述第一服務器發(fā)送的預共享密鑰的密文包括所述第一服務器在確定所述設備處于安全狀態(tài)之后發(fā)送的預共享密鑰的密文。
11、其中一種可能的實現(xiàn)方式中,所述第一服務器發(fā)送的預共享密鑰的密文包括:更新后的預共享密鑰的密文;其中,所述更新后的預共享密鑰的密文是由所述設備從所述第二服務器獲取更新后的預共享密鑰的明文,使用所述設備側的密鑰加密后保存到所述第一服務器中的。
12、第二方面提供一種基于預共享密鑰的認證裝置,該裝置包含在設備中,該裝置具有實現(xiàn)第一方面及第一方面的可能實現(xiàn)方式中設備行為的功能。功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應的軟件實現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應的模塊或單元。例如,發(fā)送模塊、接收模塊、加解密模塊和認證模塊等。
13、第三方面提供一種設備,包括:一個或多個處理器;存儲器;多個應用程序;以及一個或多個程序,其中上述一個或多個程序被存儲在上述存儲器中,上述一個或多個程序包括指令,當上述指令被上述設備執(zhí)行時,使得上述設備執(zhí)行第一方面提供的方法。
14、應當理解的是,本申請實施例的第二方面和第三方面與本申請實施例的第一方面的技術方案一致,各方面及對應的可行實施方式所取得的有益效果相似,不再贅述。
15、第四方面提供一種可讀存儲介質,上述可讀存儲介質中存儲有程序,當其在設備上運行時,使得設備執(zhí)行第一方面提供的方法。
16、第五方面提供一種程序,當上述程序被設備執(zhí)行時,用于執(zhí)行第一方面提供的方法。
17、在一種可能的設計中,第五方面中的程序可以全部或者部分存儲在與處理器封裝在一起的存儲介質上,也可以部分或者全部存儲在不與處理器封裝在一起的存儲器上。
1.一種基于預共享密鑰的認證方法,其特征在于,包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)所述預共享密鑰的明文,與所述第二服務器進行身份認證或加解密服務包括:
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述向第一服務器發(fā)送密鑰獲取請求包括:
4.根據(jù)權利要求1至3中任一項所述的方法,其特征在于,所述對所述預共享密鑰的密文進行解密,獲得所述預共享密鑰的明文之后,還包括:
5.根據(jù)權利要求4所述的方法,其特征在于,還包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述與所述第二服務器進行身份認證或加解密服務之后,還包括:
7.根據(jù)權利要求1至6中任一項所述的方法,其特征在于,所述接收所述第一服務器發(fā)送的預共享密鑰的密文之前,還包括:
8.根據(jù)權利要求7所述的方法,其特征在于,所述第一服務器發(fā)送的預共享密鑰的密文包括:所述第一服務器在確定所述設備處于安全狀態(tài)之后發(fā)送的預共享密鑰的密文。
9.根據(jù)權利要求1所述的方法,其特征在于,所述第一服務器發(fā)送的預共享密鑰的密文包括:更新后的預共享密鑰的密文;其中,所述更新后的預共享密鑰的密文是由所述設備從所述第二服務器獲取更新后的預共享密鑰的明文,使用所述設備側的密鑰加密后保存到所述第一服務器中的。
10.一種設備,其特征在于,包括: