本申請涉及通信技術(shù)領(lǐng)域,尤其涉及一種建立安全加密信道的方法及設(shè)備。
背景技術(shù):
目前,利用用戶終端操作網(wǎng)上銀行、進行電商交易、富媒體(Rich Communication Suit,RCS)通訊等場景越來越普遍,公共場所的Wi-Fi網(wǎng)絡(luò)可能是惡意的,而惡意Wi-Fi網(wǎng)絡(luò)對網(wǎng)絡(luò)消息的監(jiān)聽和攔截將非常容易,即使安全Wi-Fi網(wǎng)絡(luò)或運營商數(shù)據(jù)網(wǎng)絡(luò)也存在網(wǎng)絡(luò)消息被監(jiān)聽、攔截的可能。
例如,某用戶登錄某電商網(wǎng)站進行網(wǎng)上購物,完成交易的過程中,需要用戶輸入支付賬號、密碼等敏感信息,從用戶操作的終端,到電商網(wǎng)站服務(wù)器或支付服務(wù)器間的網(wǎng)絡(luò)是不可靠的,有可能被黑客監(jiān)聽、攔截,因而泄露賬號、密碼等信息,導(dǎo)致用戶的經(jīng)濟損失。因此,用戶終端與服務(wù)器之間需要協(xié)商得到一個用于加密的秘鑰,對通信內(nèi)容進行加密,目前在實際應(yīng)用中,存在兩種建立安全加密信道的方案,一種方案是采用密鑰交換算法得到雙方通信的密鑰,用于對通信內(nèi)容加密,這種密鑰交換方案無法解決中間人攻擊的問題,無法保證通信的安全性;另一種方案是采用公私鑰及證書得到雙方通信的密鑰,用于對通信內(nèi)容加密,這種方案中,通信的一方需要向權(quán)威的證書頒發(fā)中心(Certificate Authority,CA)申請證書,這需要支付一定費用,通常證書有一定有效期,需要定期更換,證書更新麻煩。
鑒于上述問題,亟需一種新的建立安全加密信道的方案,既能夠抵御中間人攻擊,還能夠降低CA認(rèn)證的必要性,以減少費用避免繁瑣的問題。
技術(shù)實現(xiàn)要素:
本申請實施例提供一種建立安全加密信道的方法及設(shè)備,以抵御中間人攻擊,并降低CA認(rèn)證的必要性。
本申請實施例提供的具體技術(shù)方案如下:
第一方面,本申請實施例提供一種建立安全加密信道的方法,包括:
第一設(shè)備與第二設(shè)備建立第一通信通道;
所述第一設(shè)備生成第一密鑰和第一標(biāo)識,所述第一標(biāo)識和所述第一密鑰唯一對應(yīng);
所述第一設(shè)備將所述第一密鑰拆分為N個部分,N為大于等于2的正整數(shù);
所述第一設(shè)備將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至第二設(shè)備,X為小于N的正整數(shù)。
這樣,由于第一設(shè)備與第二設(shè)備之間建立安全加密信道使用的第一密鑰的各個部分可以通過至少兩個通信通道進行傳輸,此時中間人攻擊時需要同時監(jiān)聽所有的通信通道,難度大大增加,從而能夠有效避免中間人攻擊的問題,大幅提升密鑰傳輸?shù)陌踩?,而且降低了CA認(rèn)證的必要性,避免CA認(rèn)證的繁瑣操作。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至第二設(shè)備,包括:
在N為2時,所述第一設(shè)備將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備,所述第二通信通道與所述第一通信通道不同。
這種設(shè)計中,將第一密鑰通過2個通信通道傳輸,此時中間人攻擊時需要同時監(jiān)聽該2個通信通道,難度大大增加,使得攻擊人可能只掌握部分的通信密鑰,從而能夠有效避免中間人攻擊的問題,同時降低CA認(rèn)證的必要,更重要的是這種設(shè)計方式的實施難度較低,便于推廣。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備生成第一密鑰包括:
所述第一設(shè)備選擇第一私鑰,利用與所述第二設(shè)備協(xié)商確定的密鑰交換算法對所述第一私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到所述第一密鑰。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備之后,還包括:
所述第一設(shè)備接收所述第二設(shè)備發(fā)送的第二密鑰,所述第二密鑰為所述第二設(shè)備基于自身選擇的第二私鑰,利用與所述第一設(shè)備協(xié)商確定的所述密鑰交換算法對所述第二私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到的;
所述第一設(shè)備利用所述第一私鑰和所述第二密鑰運算得到目標(biāo)密鑰;
所述第一設(shè)備利用所述目標(biāo)密鑰對發(fā)送至所述第二設(shè)備的通信內(nèi)容進行加密。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備之前,還包括:
所述第一設(shè)備在所述第二設(shè)備獲取到包括第一公鑰、第一私鑰的證書后,下載得到所述第一公鑰。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備,包括:
所述第一設(shè)備將所述第一密鑰的第一部分和第二部分利用所述第一公鑰加密;
所述第一設(shè)備將加密后的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和加密后的第二部分通過第二通信通道發(fā)送至第二設(shè)備。
結(jié)合第一方面,一種可能的設(shè)計中,所述第一設(shè)備將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備之后,還包括:
所述第一設(shè)備利用所述第一密鑰對發(fā)送至所述第二設(shè)備的通信內(nèi)容進行加密。
第二方面,本申請實施例一種建立安全加密信道的方法,包括:
第二設(shè)備接收第一設(shè)備通過不同通信通道發(fā)送的部分密鑰和對應(yīng)的唯一標(biāo)識;
所述第二設(shè)備將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰;
所述第二設(shè)備基于所述第一密鑰對通信內(nèi)容進行加密。
這樣,第二設(shè)備能夠基于部分密鑰傳輸時各自對應(yīng)的唯一標(biāo)識,將各部分密鑰拼接成完整的第一密鑰,保證傳輸?shù)牡谝幻荑€的完整性,從而利用第一密鑰實現(xiàn)安全加密,抵御中間人攻擊。
結(jié)合第二方面,一種可能的設(shè)計中,所述第二設(shè)備基于所述第一密鑰對通信內(nèi)容進行加密,包括:
所述第二設(shè)備基于自身選擇的私鑰和所述第一密鑰運算得到目標(biāo)密鑰;
所述第二設(shè)備利用所述目標(biāo)密鑰對發(fā)送至所述第一設(shè)備的通信內(nèi)容進行加密。
結(jié)合第二方面,一種可能的設(shè)計中,所述第二設(shè)備將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰,包括:
所述第二設(shè)備將唯一標(biāo)識相同的部分密鑰利用所述第二設(shè)備本地存儲的私鑰解密后,將所述部分密鑰拼接成第一密鑰。
結(jié)合第二方面,一種可能的設(shè)計中,所述第二設(shè)備基于所述第一密鑰對通信內(nèi)容進行加密,包括:
所述第二設(shè)備利用所述第一密鑰對發(fā)送至所述第一設(shè)備的通信內(nèi)容進行加密。
第三方面,本申請實施例提供一種建立安全加密信道的設(shè)備,包括:
處理單元,用于與對端設(shè)備建立第一通信通道;生成第一密鑰和第一標(biāo)識,所述第一標(biāo)識和所述第一密鑰唯一對應(yīng);將所述第一密鑰拆分為N個部分,N為大于等于2的正整數(shù);
通信單元,用于將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至對端設(shè)備,X為小于N的正整數(shù)。
結(jié)合第三方面,一種可能的設(shè)計中,所述通信單元具體用于:
在N為2時,將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備,所述第二通信通道與所述第一通信通道不同。
結(jié)合第三方面,一種可能的設(shè)計中,所述處理單元具體用于:
選擇第一私鑰,利用與所述對端設(shè)備協(xié)商確定的密鑰交換算法對所述第一私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到所述第一密鑰。
結(jié)合第三方面,一種可能的設(shè)計中,所述通信單元將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之后,還用于:
接收所述對端設(shè)備發(fā)送的第二密鑰,所述第二密鑰為所述對端設(shè)備基于自身選擇的第二私鑰,利用與所述第一設(shè)備協(xié)商確定的所述密鑰交換算法對所述第二私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到的;
所述處理單元,還用于利用所述第一私鑰和所述第二密鑰運算得到目標(biāo)密鑰;利用所述目標(biāo)密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
結(jié)合第三方面,一種可能的設(shè)計中,所述通信單元將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之前,還用于:
在所述對端設(shè)備獲取到包括第一公鑰、第一私鑰的證書后,下載得到所述第一公鑰。
結(jié)合第三方面,一種可能的設(shè)計中,所述通信單元具體用于:
將所述第一密鑰的第一部分和第二部分利用所述第一公鑰加密;
將加密后的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和加密后的第二部分通過第二通信通道發(fā)送至對端設(shè)備。
結(jié)合第三方面,一種可能的設(shè)計中,所述處理單元還用于:
在所述通信單元將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之后,利用所述第一密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
基于同一發(fā)明構(gòu)思,由于該設(shè)備解決問題的原理以及有益效果可以參見上述第一方面和第一方面的各可能的實施方式以及所帶來的有益效果,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
第四方面,本申請實施例提供一種建立安全加密信道的設(shè)備,包括:
通信單元,用于接收對端設(shè)備通過不同通信通道發(fā)送的部分密鑰和對應(yīng)的唯一標(biāo)識;
處理單元,用于將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰;基于所述第一密鑰對通信內(nèi)容進行加密。
結(jié)合第四方面,一種可能的設(shè)計中,所述處理單元具體用于:
基于選擇的私鑰和所述第一密鑰運算得到目標(biāo)密鑰;
利用所述目標(biāo)密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
結(jié)合第四方面,一種可能的設(shè)計中,所述處理單元具體用于:
將唯一標(biāo)識相同的部分密鑰利用所述第二設(shè)備本地存儲的私鑰解密后,將所述部分密鑰拼接成第一密鑰。
結(jié)合第四方面,一種可能的設(shè)計中,所述處理單元具體用于:
利用所述第一密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
基于同一發(fā)明構(gòu)思,由于該設(shè)備解決問題的原理以及有益效果可以參見上述第二方面和第二方面的各可能的實施方式以及所帶來的有益效果,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
第五方面,本申請實施例提供一種設(shè)備,包括:存儲器,所述存儲器中存儲有程序指令;收發(fā)器;至少一個處理器,用于執(zhí)行所述程序指令以實現(xiàn):與對端設(shè)備建立第一通信通道;生成第一密鑰和第一標(biāo)識,所述第一標(biāo)識和所述第一密鑰唯一對應(yīng);將所述第一密鑰拆分為N個部分,N為大于等于2的正整數(shù);通過所述收發(fā)器將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至第二設(shè)備,X為小于N的正整數(shù)。所述處理器調(diào)用存儲在所述存儲器中的指令以實現(xiàn)上述第一方面的方法設(shè)計中的方案,由于該設(shè)備解決問題的實施方式以及有益效果可以參見上述第一方面和第一方面的各可能的方法的實施方式以及有益效果,因此該設(shè)備的實施可以參見上述方法的實施,重復(fù)之處不再贅述。
第六方面,本申請實施例提供一種設(shè)備,包括:存儲器,所述存儲器中存儲有程序指令;收發(fā)器;至少一個處理器,用于執(zhí)行所述程序指令以實現(xiàn):通過所述收發(fā)器接收對端設(shè)備通過不同通信通道發(fā)送的部分密鑰和對應(yīng)的唯一標(biāo)識;將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰;基于所述第一密鑰對通信內(nèi)容進行加密。所述處理器調(diào)用存儲在所述存儲器中的指令以實現(xiàn)上述第二方面的方法設(shè)計中的方案,由于該設(shè)備解決問題的實施方式以及有益效果可以參見上述第二方面和第二方面的各可能的方法的實施方式以及有益效果,因此該設(shè)備的實施可以參見上述方法的實施,重復(fù)之處不再贅述。
第七方面,本申請實施例提供一種計算機存儲介質(zhì),所述存儲介質(zhì)為非易失性計算機可讀存儲介質(zhì),所述非易失性計算機可讀存儲介質(zhì)存儲有至少一個程序,每個所述程序包括上述第一方面方法設(shè)計方案所涉及所用的計算機軟件指令,所述指令當(dāng)被具有處理器、存儲器和收發(fā)器的設(shè)備執(zhí)行時使所述設(shè)備執(zhí)行上述第一方面和第一方面的方法設(shè)計。
第八方面,本申請實施例提供一種計算機存儲介質(zhì),所述存儲介質(zhì)為非易失性計算機可讀存儲介質(zhì),所述非易失性計算機可讀存儲介質(zhì)存儲有至少一個程序,每個所述程序包括上述第二方面方法設(shè)計方案所涉及所用的計算機軟件指令,所述指令當(dāng)被具有處理器、存儲器和收發(fā)器的設(shè)備執(zhí)行時使所述設(shè)備執(zhí)行上述第二方面和第二方面的方法設(shè)計。
附圖說明
圖1為采用密鑰交換算法建立加密通信的流程示意圖;
圖2為得到通信使用的密鑰的過程示意圖;
圖3為采用公私鑰及證書方法建立加密通信的流程示意圖;
圖4為本申請實施例中的建立安全加密信道的方法流程圖;
圖5為本申請實施例中一種應(yīng)用場景下建立安全加密信道的方法流程圖;
圖6為本申請實施例中另一種應(yīng)用場景下建立安全加密信道的方法流程圖;
圖7為本申請實施例中一種建立安全加密信道的設(shè)備結(jié)構(gòu)圖;
圖8為本申請實施例中一種建立安全加密信道的設(shè)備結(jié)構(gòu)圖;
圖9為本申請實施例中一種建立安全加密信道的設(shè)備結(jié)構(gòu)圖;
圖10為本申請實施例中一種建立安全加密信道的設(shè)備結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行描述。
目前在實際應(yīng)用中,存在兩種建立安全加密信道的方案,
第一種密鑰交換方案中A與B采用密鑰交換算法建立加密通信的具體流程可參閱圖1所示,具體包括以下步驟:
步驟10、A與B建立普通通信通道,例如建立傳輸控制協(xié)議(Transmission Control Protocol,TCP)鏈接。
步驟11、A與B協(xié)商、交換公開內(nèi)容,如交換算法,算法所需的公開內(nèi)容。
步驟12、A選擇私鑰Xa,需要說明的是,Xa不需要在網(wǎng)上發(fā)送,僅保存在A本地。
步驟13、A用交換算法對公開內(nèi)容與Xa進行運算,得到Y(jié)a,將Ya發(fā)送給B。
步驟14、B選擇私鑰Xb,需要說明的是,Xb不需要在網(wǎng)上發(fā)送,僅保存在B本地。
步驟15、B用交換算法對公開內(nèi)容與Xb進行運算,得到Y(jié)b,將Yb發(fā)送給A。
步驟16、A以Xa、Yb作為參數(shù),運算得到密鑰(key)。
步驟17、B以Xb、Ya作為參數(shù),運算得到密鑰(key),交換算法可以保證A計算得到的key與B計算得到的key是相同的。
步驟18、A、B雙方用key對通信內(nèi)容進行加密。
針對上述過程,存在被監(jiān)聽、攔截的可能,例如第三方C可以冒充B與A通信,冒充A與B通信,得到通信使用的密鑰,從而掌握A、B通信的全部內(nèi)容,具體如圖2所示。
步驟21、C與A協(xié)商得到key1。
步驟22、C與B協(xié)商得到key2
步驟23、C收到A發(fā)的消息時用key1解開得到明文,再用key2加密發(fā)給B。
步驟24、C收到B發(fā)的消息時用key2解開得到明文,在用key1加密發(fā)給A。
由此可知,第一種密鑰交換方案無法解決中間人攻擊的問題,無法保證通信的安全性。
第二種密鑰交換方案中A與B采用公私鑰及證書方法建立加密通信的具體流程可參閱圖3所示,具體包括以下步驟:
步驟30、B提供自己的身份信息到證書頒發(fā)中心(Certificate Authority,CA)申請證書。
步驟31、CA驗證B身份后,頒發(fā)證書,包含一對公鑰、私鑰、身份信息以及對B身份的數(shù)字簽名。
步驟32、B將私鑰保存在B本地,公鑰、身份信息、簽名可以公開下載、傳輸。
步驟33、A與B建立普通通信通道,例如建立TCP鏈接。
步驟34、A下載得到B的公鑰,以及B的身份信息、簽名。
步驟35、A通過簽名到CA驗證證書確實是CA頒發(fā),如果A信任此CA,則A信任B。
步驟36、A生成隨機秘鑰key。
步驟37、A將生成的隨機秘鑰key用B的公鑰加密后發(fā)送給B。
步驟38、B用私鑰解密得到key.
步驟39、A、B加密后續(xù)通信內(nèi)容
需要說明的是,1)上述交互過程僅為關(guān)鍵流程,實際協(xié)議還有一些補充細(xì)節(jié),如安全套接層(Secure Sockets Layer,SSL)/安全傳輸層協(xié)議(Transport Layer Security,TLS),還有加密算法協(xié)商,A、B交換各自生成的隨機數(shù),用隨機數(shù)+key生成實際用于加密通信內(nèi)容的秘鑰等;2)某些場景下,B也可以要求對A的身份進行認(rèn)證,即A也提供數(shù)字證書;3)也可以不借助權(quán)威CA,通信一方或雙方直接預(yù)置對方的公鑰;4)也可以省略S35的身份認(rèn)證過程;5)、證書身份認(rèn)證也可與前面D-H等秘鑰交換算法配合使用。
由此可知,向權(quán)威CA申請證書需要支付一定費用;通常證書有一定有效期,需要定期更換,證書/公鑰更新麻煩;還需要通信對方信任CA;在預(yù)置對方證書或公鑰時需要類似的數(shù)字簽名手段證明軟件未被攻擊者篡改,存在證書/公鑰傳遞麻煩的問題;若省略證書身份認(rèn)時則無法避免中間人攻擊。
鑒于上述兩種建立安全加密信道的方案中存在的問題,本申請實施例提供一種新的建立安全加密信道的方法及設(shè)備,既能夠抵御中間人攻擊,還能夠降低CA認(rèn)證的必要性。其中,方法和裝置是基于同一發(fā)明構(gòu)思的,由于方法及裝置解決問題的原理相似,因此裝置與方法的實施可以相互參見,重復(fù)之處不再贅述。
參閱圖4所示,本申請實施例提供的建立安全加密信道的方法流程圖,具體包括的步驟如下:
步驟41:第一設(shè)備與第二設(shè)備建立第一通信通道。
實際應(yīng)用中,第一設(shè)備通常為終端設(shè)備,第二設(shè)備通常為應(yīng)用服務(wù)器,或者,第一設(shè)備與第二設(shè)備均為終端設(shè)備,可選的,第一通信通道為普通通信通道,如TCP鏈接的通信通道。
步驟42:第一設(shè)備生成第一密鑰和第一標(biāo)識,所述第一標(biāo)識和所述第一密鑰唯一對應(yīng)。
值得一提的是,第一設(shè)備生成的第一秘鑰一般是字符串形式,可選的,可以采用二進制字符串,八進制字符串或十六進制字符串表示,采用不同加密算法生成的第一密鑰的長度不一。
第一設(shè)備生成的第一標(biāo)識是全局唯一標(biāo)識(Universally Unique Identifier,UUID),通常用數(shù)字表示,UUID能夠保證對在同一時空中的任何一個第一設(shè)備來說都是唯一的??蛇x的,本申請實施例中的UUID按照開放軟件基金會(OSF)制定的標(biāo)準(zhǔn)來計算生成,采用了以太網(wǎng)卡地址、納秒級時間、芯片標(biāo)識(ID)碼和其他可能的數(shù)字。示例性的,UUID由以下幾部分的組合:
(1)當(dāng)前日期和時間,UUID的第一個部分與時間有關(guān),如果第一設(shè)備在某一時刻生成一個UUID之后,過幾秒之后又生成一個UUID,則第一個部分不同,其余相同。
(2)時鐘序列。
(3)全局唯一的IEEE機器識別號,如果第一設(shè)備中安裝有網(wǎng)卡,從網(wǎng)卡的(MAC)地址獲得,如果沒有網(wǎng)卡以其他方式獲得。
需要說明的是,以上只是一種示例性的UUID的組成部分,也可以采用其他方式進行組合,不具體限定,只要能夠保證全局唯一即可。
步驟43:第一設(shè)備將所述第一密鑰拆分為N個部分,N為大于等于2的正整數(shù)。
較佳的,第一設(shè)備將所述第一密鑰拆分為2個部分,分別是第一部分和第二部分。
具體的,所述第一設(shè)備在拆分第一密鑰時可以從第一密鑰的任意位置拆分,可選的,所述第一設(shè)備基于各通信通道的通信長度限制,來拆分第一密鑰,或者預(yù)先設(shè)定各通信通道對應(yīng)的密鑰長度約束條件,按照預(yù)設(shè)的約束條件對第一密鑰進行拆分。
步驟44:第一設(shè)備將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至第二設(shè)備,X為小于N的正整數(shù)。
當(dāng)?shù)谝辉O(shè)備將所述第一密鑰拆分為2個部分時,第一設(shè)備將第一密鑰的第一部分和第一標(biāo)識通過所述第一通信通道發(fā)送至第二設(shè)備,并將第一標(biāo)識和第一密鑰的第二部分通過第二通信通道發(fā)送至第二設(shè)備,所述第二通信通道與所述第一通信通道不同。
例1,第一設(shè)備生成的第一秘鑰用十六進制字符串表示,為82a0359a55871902b04c23f56134d757,共16字節(jié),拆分的兩個部分分別是82a0359a55871902b04c23f5和6134d757,將第一部分和第一標(biāo)識通過第一通信通道發(fā)送至第二設(shè)備,其中第一部分在前第一標(biāo)識在后,將第一標(biāo)識和第二部分通過第二通信通道發(fā)送至第二設(shè)備,其中第一標(biāo)識在前第一部分在后。
當(dāng)?shù)谝辉O(shè)備將所述第一密鑰拆分為至少3個部分時,第一設(shè)備在發(fā)送第一密鑰的每個部分和第一標(biāo)識時,還需要發(fā)送該部分密鑰對應(yīng)的拆分序號,該拆分序號用于描述該部分密鑰在第一密鑰中所在的位置關(guān)系,從而使第二設(shè)備基于該拆分序號和對應(yīng)的第一標(biāo)識將各部分密鑰進行完整準(zhǔn)確的拼接。
例2,同樣采用上面例1中的第一密鑰82a0359a55871902b04c23f56134d757,第一設(shè)備將該密鑰拆分為3個部分,分別是82a0359a55871902b0、4c23f5、6134d757,對應(yīng)的拆分序號分別是(01)、(02)和(03),此時,可以將第一部分、第一標(biāo)識和對應(yīng)的拆分序號(01)通過第一通信通道發(fā)送至第二設(shè)備;將第一標(biāo)識、第二部分和對應(yīng)的拆分序號(02)通過第二通信通道發(fā)送至第二設(shè)備;將第一標(biāo)識、第三部分和對應(yīng)的拆分序號(03)通過第三通信通道發(fā)送至第二設(shè)備,可選的,第一部分、第二部分、第三部分中任意兩個部分所采用的通信通道也可以相同,只要不完全相同即可。
步驟45:第二設(shè)備接收到第一設(shè)備通過不同通信通道發(fā)送的部分密鑰和對應(yīng)的唯一標(biāo)識后,將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰。
步驟46:第二設(shè)備基于所述第一密鑰對發(fā)送至第一設(shè)備的通信內(nèi)容進行加密。
由于第一密鑰的各個部分可以通過至少兩個通信通道進行傳輸,此時中間人攻擊時需要同時監(jiān)聽所有的通信通道,難度大大增加,從而能夠有效避免中間人攻擊的問題,大幅提升密鑰傳輸?shù)陌踩?,而且降低了CA認(rèn)證的必要性,避免CA認(rèn)證的繁瑣操作。
下面通過兩個實際應(yīng)用場景來詳細(xì)說明4中的方法,這里以將第一密鑰拆分為2個部分進行說明
場景一
場景一為用戶打開手機應(yīng)用與應(yīng)用服務(wù)器之間進行在線交易時,采用密鑰交換算法建立加密通信的過程,具體流程可參閱圖5所示。此時A為安裝有應(yīng)用的手機上,B該應(yīng)用的應(yīng)用服務(wù)器。
50、A與B建立第一通信通道,如建立TCP鏈接。
51、A與B協(xié)商、交換公開內(nèi)容,如交換算法,算法所需的公開內(nèi)容。
52、A隨機選擇第一私鑰Xa,Xa不需要在網(wǎng)上發(fā)送,僅保存在A本地,用商定的交換算法對公開內(nèi)容與Xa進行運算,得到第一密鑰Ya,并生成一個全局唯一標(biāo)識即第一標(biāo)識,例如為UUID1。
53、A將Ya拆分成兩部分,將Ya的第一部分通過步驟50建立的第一通信通道,發(fā)送給B,同時攜帶前面生成的UUID1。
54、A將Ya的第二部分通過第二通信通道發(fā)送給B,同時攜帶前面生成的UUID1,可選的,第二通信通道為短信通道,短信被叫號碼即B的號碼,此時應(yīng)用服務(wù)器相當(dāng)于服務(wù)提供商(Service Provider,SP),可以通過短信的接收與提交(short message peer to peer,SMPP)/中國移動點對點協(xié)議(ChinaMobile Peer to Peer,CMPP)等協(xié)議標(biāo)準(zhǔn)與短信網(wǎng)關(guān)或短信中心對接,而不需要在應(yīng)用服務(wù)器上安裝客戶識別模塊(Subscriber Identification Module,SIM)卡,此時B的通信號碼可以預(yù)置在A的應(yīng)用軟件中,也可以在步驟51中協(xié)商確定加密算法時由B告知。
55、短信中心/短信網(wǎng)關(guān)依據(jù)被叫號碼,將短信通過SMPP/CMPP等協(xié)議標(biāo)準(zhǔn)轉(zhuǎn)發(fā)給B。
56、B接受到Y(jié)a的第二部分和Ya的第一部分,通過UUID1將其關(guān)聯(lián),并拼接成完整的Ya。
57、B隨機選擇第二私鑰Xb,用商定的交換算法對公開內(nèi)容與Xb進行運算,得到第二密鑰Yb,將Yb發(fā)送給A。
58、A以Xa、Yb作為參數(shù),運算得到目標(biāo)密鑰(key1)
59、B以Xb、Ya作為參數(shù),運算得到key1
510、A、B雙方用key1對通信內(nèi)容進行加密。
需要說明的是,場景一中,針對的是A將第一密鑰拆分為兩個部分來詳細(xì)說明加密流程,在實際應(yīng)用中,可選的也可以將第一密鑰拆分為更多個部分,通過第一通信通道或第二通信通道或其他通信通道發(fā)送至B,過程類似,在此不再贅述。
場景二
場景二為用戶打開手機應(yīng)用與應(yīng)用服務(wù)器之間進行在線交易時,采用公私鑰及證書方法建立加密通信的過程,具體流程可參閱圖6所示。此時A為安裝有應(yīng)用的手機上,B該應(yīng)用的應(yīng)用服務(wù)器。
60、B向CA申請證書或自己生成證書,證書中包含私鑰、公鑰、身份信息以及對B身份的簽名,將私鑰保存在B本地,公鑰、身份信息、簽名可以公開下載、傳輸。
61、A與B建立第一通信通道,例如建立如TCP鏈接。
需要說明的是,步驟60與步驟61的執(zhí)行順序不具體限定,可以先執(zhí)行步驟60再執(zhí)行步驟61;也可以先執(zhí)行步驟61再執(zhí)行步驟60;或者同時執(zhí)行。
62、A、B雙方協(xié)商確定加密算法、密碼交換算法,A下載得到到公鑰、B身份信息、簽名。
63、A驗證B的身份,實際應(yīng)用中可以依據(jù)實際應(yīng)用的情況選擇是否需要驗證B的身份,在不需要驗證B的身份時,步驟63可以不執(zhí)行。
64、A隨機生成第一密鑰key1,并生成一個全局唯一標(biāo)識即第一標(biāo)識,例如UUID1。
65、A將key1拆分成兩部分,將第一部分用B的公鑰加密后通過第一通信通道,發(fā)送給B,同時攜帶前面生成的UUID1。
66、A將key1的第二部分用B的公鑰加密后通過第二通信通道發(fā)送給B,同時攜帶前面生成的UUID1,可選的,第二通信通道為短信通道,短信被叫號碼即B的號碼,此時應(yīng)用服務(wù)器相當(dāng)于SP)可以通過短信的SMPP/CMPP等協(xié)議標(biāo)準(zhǔn)與短信網(wǎng)關(guān)或短信中心對接,而不需要在應(yīng)用服務(wù)器上安裝SIM卡,此時B的通信號碼可以預(yù)置在A的應(yīng)用軟件中,也可以在步驟51中協(xié)商確定加密算法時由B告知。
67、短信中心/短信網(wǎng)關(guān)依據(jù)被叫號碼,將短信通過SMPP/CMPP等協(xié)議標(biāo)準(zhǔn)轉(zhuǎn)發(fā)給B。
68、B接受到Y(jié)a的第二部分和Ya的第一部分后,UUID1將其關(guān)聯(lián),分別用本地私鑰解密后,拼接成完整的key1。
69、A、B雙方用key1對通信內(nèi)容加密。
基于上述實施例,如圖7所示,為本申請實施例提供的建立安全加密信道的設(shè)備結(jié)構(gòu)示意圖。該設(shè)備700可包括手機、平板電腦、個人數(shù)字助理(Personal Digital Assistant,PDA)、銷售終端(Point of Sales,POS)、車載電腦、臺式電腦、筆記本、服務(wù)器等,可以用于執(zhí)行圖1-圖6所示的方法中第一設(shè)備或設(shè)備A的執(zhí)行過程,該設(shè)備700包括:處理單元710和通信單元711,其中:
處理單元710,用于與對端設(shè)備建立第一通信通道;生成第一密鑰和第一標(biāo)識,所述第一標(biāo)識和所述第一密鑰唯一對應(yīng);將所述第一密鑰拆分為N個部分,N為大于等于2的正整數(shù);
通信單元711,用于將所述第一密鑰的X個部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的剩余部分通過其他通信通道發(fā)送至對端設(shè)備,X為小于N的正整數(shù)。
可選的,所述通信單元711具體用于:
在N為2時,將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備,所述第二通信通道與所述第一通信通道不同。
可選的,所述處理單元710具體用于:
選擇第一私鑰,利用與所述對端設(shè)備協(xié)商確定的密鑰交換算法對所述第一私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到所述第一密鑰。
可選的,所述通信單元711將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之后,還用于:
接收所述對端設(shè)備發(fā)送的第二密鑰,所述第二密鑰為所述對端設(shè)備基于自身選擇的第二私鑰,利用與所述第一設(shè)備協(xié)商確定的所述密鑰交換算法對所述第二私鑰與所述密鑰交換算法的公開內(nèi)容進行運算得到的;
所述處理單元710,還用于利用所述第一私鑰和所述第二密鑰運算得到目標(biāo)密鑰;利用所述目標(biāo)密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
可選的,所述通信單元711將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之前,還用于:
在所述對端設(shè)備獲取到包括第一公鑰、第一私鑰的證書后,下載得到所述第一公鑰。
可選的,所述通信單元711具體用于:
將所述第一密鑰的第一部分和第二部分利用所述第一公鑰加密;
將加密后的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和加密后的第二部分通過第二通信通道發(fā)送至對端設(shè)備。
可選的,所述處理單元710還用于:
在所述通信單元711將所述第一密鑰的第一部分和所述第一標(biāo)識通過所述第一通信通道發(fā)送至對端設(shè)備,并將所述第一標(biāo)識和所述第一密鑰的第二部分通過第二通信通道發(fā)送至對端設(shè)備之后,利用所述第一密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
本申請實施例上述涉及的設(shè)備700,可以是獨立的部件,也可以是集成于其他部件中,例如本發(fā)明實施例提供的上述設(shè)備700可以是現(xiàn)有通信網(wǎng)絡(luò)中的終端,也可以是集成于終端內(nèi)的部件。
需要說明的是,本發(fā)明實施例中的設(shè)備700的各個單元的功能實現(xiàn)以及交互方式可以進一步參照相關(guān)方法實施例的描述,在此不再贅述。
另外,以上各“單元”可以通過特定應(yīng)用集成電路(application-specific integrated circuit,ASIC),執(zhí)行一個或多個軟件或固件程序的處理器和存儲器,集成邏輯電路,和/或其他可以提供上述功能的器件來實現(xiàn)。
由于該設(shè)備700解決問題的實施方式以及有益效果可以參見本發(fā)明方法實施例的實施方式以及有益效果,因此該設(shè)備700的實施可以參見方法的實施,重復(fù)之處不再贅述。
基于相同發(fā)明構(gòu)思,本申請實施例還提供一種設(shè)備,如圖8所示。該設(shè)備800包括存儲器801、收發(fā)器803以及至少一個處理器802;各部件通過總線連接。
存儲器801用于存儲計算機可執(zhí)行程序代碼,所述程序代碼包括指令;當(dāng)處理器802執(zhí)行所述指令時,所述指令使所述設(shè)備執(zhí)行本申請方法實施例的建立安全加密信道的方法中第一設(shè)備的執(zhí)行過程;例如:本申請方法實施例圖4中步驟41、42、43、44的方法。由于該設(shè)備解決問題的實施方式以及有益效果可以參見上述方法的實施方式以及所帶來的有益效果,因此該設(shè)備的實施可以參見上述方法的實施,重復(fù)之處不再贅述。
基于上述實施例,如圖9所示,為本申請實施例提供的建立安全加密信道的設(shè)備結(jié)構(gòu)示意圖。該設(shè)備900可包括手機、平板電腦、PDA、POS、車載電腦、臺式電腦、筆記本、服務(wù)器等,可以用于執(zhí)行圖1-圖6所示的方法中第二設(shè)備或設(shè)備B的執(zhí)行過程,該設(shè)備900包括:處理單元910和通信單元911,其中:
通信單元911,用于接收對端設(shè)備通過不同通信通道發(fā)送的部分密鑰和對應(yīng)的唯一標(biāo)識;
處理單元910,用于將唯一標(biāo)識相同的部分密鑰拼接成第一密鑰;基于所述第一密鑰對通信內(nèi)容進行加密。
選的,所述處理單元910具體用于:
基于選擇的私鑰和所述第一密鑰運算得到目標(biāo)密鑰;
利用所述目標(biāo)密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
可選的,所述處理單元910具體用于:
將唯一標(biāo)識相同的部分密鑰利用所述第二設(shè)備本地存儲的私鑰解密后,將所述部分密鑰拼接成第一密鑰。
可選的,所述處理單元910具體用于:
利用所述第一密鑰對發(fā)送至所述對端設(shè)備的通信內(nèi)容進行加密。
本申請實施例上述涉及的設(shè)備900,可以是獨立的部件,也可以是集成于其他部件中,例如本發(fā)明實施例提供的上述設(shè)備900可以是現(xiàn)有通信網(wǎng)絡(luò)中的應(yīng)用服務(wù)器,也可以是集成于所述服務(wù)器內(nèi)的部件。
需要說明的是,本發(fā)明實施例中的設(shè)備900的各個單元的功能實現(xiàn)以及交互方式可以進一步參照相關(guān)方法實施例的描述,在此不再贅述。
另外,以上各“單元”可以通過特定應(yīng)用集成電路(application-specific integrated circuit,ASIC),執(zhí)行一個或多個軟件或固件程序的處理器和存儲器,集成邏輯電路,和/或其他可以提供上述功能的器件來實現(xiàn)。
由于該設(shè)備900解決問題的實施方式以及有益效果可以參見本發(fā)明方法實施例的實施方式以及有益效果,因此該設(shè)備900的實施可以參見方法的實施,重復(fù)之處不再贅述。
基于同一發(fā)明構(gòu)思,本申請實施例還提供一種設(shè)備1000,該設(shè)備1000用于執(zhí)行上述圖4的建立安全加密信道方法實施例中第二設(shè)備的執(zhí)行過程,如圖10所示,該設(shè)備1000包括處理器1002、存儲器1001、收發(fā)器1003,執(zhí)行本發(fā)明方案的程序代碼保存在存儲器1001中,用于指令處理器1002與所述收發(fā)器1003配合執(zhí)行圖4所示的建立安全加密信道的方法。
可以理解的是,本申請實施例上述設(shè)備800和設(shè)備1000中涉及的處理器可以是一個通用中央處理器(CPU),微處理器,特定應(yīng)用集成電路application-specific integrated circuit(ASIC),或一個或多個用于控制本發(fā)明方案程序執(zhí)行的集成電路。
所述收發(fā)器可以是能夠?qū)崿F(xiàn)收發(fā)功能的實體模塊,以便與其他設(shè)備或通信網(wǎng)絡(luò)通信。
存儲器,如RAM,保存有操作系統(tǒng)和執(zhí)行本發(fā)明方案的程序。操作系統(tǒng)是用于控制其他程序運行,管理系統(tǒng)資源的程序。存儲器可以是只讀存儲器read-only memory(ROM)或可存儲靜態(tài)信息和指令的其他類型的靜態(tài)存儲設(shè)備,隨機存取存儲器random access memory(RAM)或者可存儲信息和指令的其他類型的動態(tài)存儲設(shè)備,也可以是磁盤存儲器。
這些存儲器、收發(fā)器可以通過總線與處理器相連接,或者也可以通過專門的連接線分別與處理器連接。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。