通信安全加強方法、裝置、通信方法及用戶終端與流程
2023-11-09 20:36:47
本發明涉及網絡通信領域,具體而言,涉及一種通信安全加強方法、裝置、通信方法及用戶終端。
背景技術:
https(hypertexttransferprotocoloversecuresocketlayer)是http的安全版,即在http協議下進入ssl協議,其加密的詳細內容需要ssl。
目前,大多數作業系統使用https協議進行網絡通信。但是使用https進行通信需要龐大的公共證書鏈。在龐大的公共證書鏈中包含了多個伺服器的證書,因此,其中的證書容易出現問題。在公共證書鏈中的證書出現問題的情況下,即便是實用https協議進行通信,也會存在被中間者攻擊的可能性。
技術實現要素:
有鑑於此,本發明的目的在於提供一種通信安全加強方法、裝置、通信方法及用戶終端,以改善上述缺陷。
為了實現上述目的,本發明採用的技術方案如下:
第一方面,本發明實施例提供了一種通信安全加強方法,所述方法包括:獲取第一套接字;獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書;將所述第二套接字設置為通信模塊的默認套接字。
第二方面,本發明實施例提供了一種通信安全加強裝置,所述裝置包括:套接字獲取模塊、套接字初始化模塊以及通信連接設定模塊,其中,所述套接字獲取模塊用於獲取第一套接字;所述套接字初始化模塊用於獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書;所述通信連接設定模塊用於將所述第二套接字設置為通信模塊的默認套接字。
第三方面,本發明實施例提供了一種通信方法,所述方法包括:向伺服器發送會話請求;接收所述伺服器根據所述會話請求返回的伺服器證書;判斷所述伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中,所述自定義證書鏈中的證書為目標伺服器證書;若是,與所述伺服器進行通信。
第四方面,本發明實施例提供了一種用戶終端,所述用戶終端包括存儲器和處理器,所述存儲器耦接到所述處理器,所述存儲器存儲指令,當所述指令由所述處理器執行時使所述處理器執行以下操作:用戶終端向伺服器發送會話請求;所述用戶終端接收所述伺服器根據所述會話請求返回的伺服器證書;所述用戶終端判斷所述伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中,所述自定義證書鏈中的證書為目標伺服器證書;若是,則所述用戶終端與所述伺服器進行通信。
本發明實施例的有益效果是:
本發明實施例與現有技術相比,通過獲取自定義證書鏈對套接字初始化得到初始化後的套接字,並且自定義證書鏈中的證書為目標伺服器證書,再將初始化後的套接字設置為通信模塊的默認套接字。使通信模塊的默認套接字中的證書鏈為自定義證書鏈,且自定義證書鏈中的證書為目標伺服器證書,從而使與目標伺服器的通信過程中被中間者攻擊的可能性降低,增強通信過程的安全性。
為使本發明的上述目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附附圖,作詳細說明如下。
附圖說明
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
圖1示出了本發明實施例提供的伺服器與用戶終端進行交互的示意圖;
圖2示出了本發明較佳實施例提供的用戶終端的方框示意圖;
圖3示出了本發明第一實施例提供的通信安全加強方法的流程圖;
圖4示出了本發明第一實施例提供的通信安全加強方法的步驟s120的流程圖;
圖5示出了本發明第二實施例提供的通信安全加強裝置的結構框圖;
圖6示出了本發明第三實施例提供的通信方法的流程圖;
圖7示出了本發明第四實施例提供的通信裝置的流程圖。
具體實施方式
下面將結合本發明實施例中附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發明的實施例的詳細描述並非旨在限制要求保護的本發明的範圍,而是僅僅表示本發明的選定實施例。基於本發明的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨後的附圖中不需要對其進行進一步定義和解釋。同時,在本發明的描述中,術語「第一」、「第二」等僅用於區分描述,而不能理解為指示或暗示相對重要性。
如圖1所示,是本申請伺服器200與用戶終端100進行交互的示意圖。所述伺服器200通過網絡與一個或多個用戶終端100進行通信連接,以進行數據通信或交互。所述伺服器200可以是網絡伺服器、資料庫伺服器等。所述用戶終端100可以是個人電腦(personalcomputer,pc)、平板電腦、智慧型手機、個人數字助理(personaldigitalassistant,pda)等。
圖2示出了一種可應用於本發明實施例中的用戶終端的結構框圖。如圖2所示,用戶終端100包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設接口108、射頻模塊110、音頻模塊112、顯示單元114等。這些組件通過一條或多條通訊總線/信號線116相互通訊。
存儲器102可用於存儲軟體程序以及模塊,如本發明實施例中的瀏覽器下載任務管理方法及裝置對應的程序指令/模塊,處理器106通過運行存儲在存儲器102內的軟體程序以及模塊,從而執行各種功能應用以及數據處理,如本發明實施例提供的瀏覽器下載任務管理方法。
存儲器102可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、快閃記憶體、或者其他非易失性固態存儲器。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進行。
外設接口108將各種輸入/輸出裝置耦合至處理器106以及存儲器102。在一些實施例中,外設接口108,處理器106以及存儲控制器104可以在單個晶片中實現。在其他一些實例中,他們可以分別由獨立的晶片實現。
射頻模塊110用於接收以及發送電磁波,實現電磁波與電信號的相互轉換,從而與通訊網絡或者其他設備進行通訊。
音頻模塊112向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
顯示單元114在用戶終端100與用戶之間提供一個顯示界面。具體地,顯示單元114向用戶顯示視頻輸出,這些視頻輸出的內容可包括文字、圖形、視頻及其任意組合。
可以理解,圖1所示的結構僅為示意,用戶終端100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以採用硬體、軟體或其組合實現。
第一實施例
請參見圖3,圖3示出了本發明第一實施例提供的通信安全加強方法的流程圖,該通信安全加強方法應用於用戶終端。該通信安全加強方法包括:
步驟s110:獲取第一套接字。
用戶終端獲取第一套接字,第一套接字為未被初始化證書鏈的套接字。
在本發明實施例中,該通信安全加強方法可以應用於android應用https網絡通信,第一套接字可以為ssl套接字,並且,本實施例中也主要以此為例進行說明。可以理解的,本實施例提供的方法並不限定於android應用https網絡通信。
具體的,獲取第一套接字可以是:獲取繼承作業系統底層默認套接字類的類作為所述第一套接字。
具體的,用戶終端可以構造一個類,如classc,對android作業系統底層類sslsocketfactory(ssl套接字)進行重載。重載後的套接字類classc為未被初始化證書鏈的狀態。
步驟s120:獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書。
android系統的https通信模塊構建在ssl套接字的基礎上,而ssl傳輸協議中需要數字證書用於用戶終端與伺服器之間進行身份的驗證。為達到與目標伺服器通信的目的,需要對第一套接字進行初始化,使第一套接字中的證書鏈信息為與目標伺服器通信對應的證書鏈信息。
在本發明實施例中,由於現有的使用https進行網絡通信的通信方法中,需要利用公共證書鏈進行身份驗證,而公共證書鏈中包括有較多的伺服器證書。公共證書鏈中,與目標伺服器通信不相關的伺服器證書容易出現問題,導致被中間者攻擊。
因此,可以獲取自定義證書鏈對第一套接字進行初始化,且自定義證書鏈中的證書為目標伺服器的證書,不包括與目標伺服器通信不相關的伺服器證書。其中,目標伺服器為用戶終端需求與之通信的伺服器。
具體的,請參見圖4,獲取自定義證書鏈可以包括:
步驟s121:獲取目標伺服器證書。
用戶終端可以對目標伺服器證書進行獲取。目標伺服器證書可以為根證書機構頒發的https伺服器的證書certa。所述目標伺服器證書的格式可以是der或者cer,即https伺服器的證書certa的保存格式可以為der或者cer。
在本發明實施例中,可以將獲取到的目標伺服器證書存儲於作業系統的應用目錄中。
具體的,可以將獲取到的目標伺服器證書存儲於應用目錄assets子目錄中。存儲於assets子目錄的文件需要assetmanager以字節流的形式讀取。assets子目錄存放目標伺服器證書可以便於伺服器證書的讀取。當然,具體的應用目錄在本發明實施例中並不作為限定,獲取到的目標伺服器證書也可以存儲於其他應用目錄中,例如res子目錄等。
在本發明實施例中,將目標伺服器證書存儲於應用目錄中,可以避免在通信時應用通過網絡從伺服器獲取證書的其他安全風險。
需要說明的是,本步驟中獲取的目標伺服器證書可以是一個伺服器證書,也可以為多個伺服器證書。目標伺服器證書的具體個數,可以根據目標伺服器的個數確定,在本發明實施例中並不作為限定。
步驟s122:通過所述目標伺服器證書構建自定義證書鏈使所述自定義證書鏈中的證書為目標伺服器證書。
在本發明實施例中,可以通過獲取的目標伺服器證書構建自定義證書鏈,使自定義證書鏈中包括有目標伺服器證書,並且自定義證書鏈中的證書為目標伺服器證書。
具體的,所述通過所述目標伺服器證書構建自定義證書鏈,可以為:將作業系統的默認證書鏈結構中的證書設置為所述目標伺服器證書,獲得所述自定義證書鏈。
在本發明實施例中,可以通過將作業系統的默認證書鏈結構,即原作業系統中的公共證書鏈結構中的伺服器證書替換為在步驟s121中獲取的目標伺服器證書。且可以將目標伺服器證書設置為作業系統默認證書鏈的證書入口。
可以理解的是,通過獲取的目標伺服器證書構建的自定義證書鏈中僅包括有目標伺服器證書。並且,將自定義證書鏈中的證書為目標伺服器證書,可以使自定義證書鏈用於網絡通信時,能夠使用戶終端與目標伺服器完成身份驗證。
在獲得自定義證書鏈後,可以將第一套接字的證書鏈初始化為自定義證書鏈,獲得到第二套接字。從而使獲得的第二套接字中的證書鏈為自定義證書鏈。
在本發明實施例中,與第一套接字對應,第二套接字也可以為ssl套接字。
步驟s130:將所述第二套接字設置為通信模塊的默認套接字。
在獲得第二套接字後,可以將第二套接字設置為通信模塊的默認套接字。從而,使通信模塊中的默認套接字為第二套接字,並且其第二套接字中的證書鏈為自定義證書鏈,自定義證書鏈中包括目標伺服器證書,以便於與目標伺服器之間的網絡通信。
其中,通信模塊為用於用戶終端作業系統的應用程式與伺服器之間通信鏈路的模塊,在本發明實施例中,通信模塊可以為https通信模塊httpsurlconnection。
當然,在本發明實施例中,所述將所述第二套接字設置為通信模塊的默認套接字之後,還可以包括:
使用默認套接字為所述第二套接字的通信模塊與目標伺服器進行通信。
在將第二套接字設置為通信模塊的默認套接字之後,可以使用該通信模塊進行與目標伺服器之間的數據傳輸。用戶終端在使用默認套接字為所述第二套接字的通信模塊與目標伺服器進行通信時,用戶終端與伺服器之間的身份驗證過程中,由於用戶終端的系統中通信模塊的默認套接字為第二套接字,其證書鏈中的為證書為目標伺服器證書的自定義證書鏈,從而有效避免被中間者攻擊。
第二實施例
本發明第二實施例提供了一種通信安全加強裝置300,如圖5所示,該通信安全加強裝置300包括:套接字獲取模塊310、套接字初始化模塊320以及通信連接設定模塊330。其中,套接字獲取模塊310用於獲取第一套接字;套接字初始化模塊320用於獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書;通信連接設定模塊330用於將所述第二套接字設置為通信模塊的默認套接字。
在本發明實施例中,套接字初始化模塊320包括證書獲取單元以及自定義證書鏈獲取單元。其中,證書獲取單元用於獲取目標伺服器證書;自定義證書鏈獲取單元用於通過所述目標伺服器證書構建自定義證書鏈使所述自定義證書鏈中的證書為目標伺服器證書。
進一步的,所述自定義證書鏈獲取單元包括證書鏈設置子單元。證書鏈設置子單元用於將作業系統的默認證書鏈結構中的證書設置為所述目標伺服器證書,獲得所述自定義證書鏈。
在本發明實施例中,證書獲取單元獲取的模板伺服器證書存儲於作業系統的應用目錄中。
在本發明實施例中,所述套接字獲取模塊310包括類獲取單元。類獲取單元用於獲取繼承作業系統底層默認套接字類的類作為所述第一套接字。
在本發明實施例中,套接字獲取模塊310獲取的第一套接字以及套接字初始化模塊320獲得的第二套接字可以為ssl套接字。通信連接設定模塊330設置的通信模塊可以為https通信模塊。
第三實施例
如圖6示出了本發明第三實施例提供的一種通信方法的流程圖。該通信方法可以應用於用戶終端,請參見圖6,該通信方法包括:
步驟s210:向伺服器發送會話請求。
用戶終端可以向伺服器發送會話請求,以開始用戶終端與伺服器之間的網絡通信連接。
步驟s220:接收所述伺服器根據所述會話請求返回的伺服器證書。
用戶終端在發送會話請求給伺服器後,伺服器會根據會話請求返回伺服器證書至用戶終端。用戶終端可以對伺服器根據會話請求返回的伺服器證書進行接收,從而獲取到伺服器返回的證書。
步驟s230:判斷所述伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中,所述自定義證書鏈中的證書為目標伺服器證書。
用戶終端在接收伺服器返回的伺服器證書後,可以對該伺服器證書進行判斷。具體的,用戶終端可以判斷該伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中。在本發明實施例中,用戶終端作業系統的通信模塊中,套接字對應的證書鏈為自定義證書鏈,並且自定義證書鏈中的證書為目標伺服器證書。
步驟s240:若是,與所述伺服器進行通信。
如果伺服器返回的伺服器證書存在於通信模塊的默認套接字的自定義證書鏈中,說明用戶終端所獲得的伺服器證書為目標伺服器的證書,向用戶終端返回伺服器證書的伺服器為目標伺服器,則用戶終端與伺服器進行通信。如果伺服器返回的伺服器證書不存在於通信模塊的默認套接字的自定義證書鏈中,說明向用戶終端返回伺服器證書的伺服器可能不是目標伺服器,可以不與伺服器進行通信。進一步的,若判斷結果為伺服器返回的伺服器證書不存在於通信模塊的默認套接字的自定義證書鏈中,用戶終端還可以發出提示消息,以提示用戶是否繼續進行通信連接,或者終端此次通信。
另外,在本實施例中,還可以包括將通信模塊的默認套接字設置為證書鏈為自定義證書鏈的套接字。具體的,可以包括:獲取第一套接字;獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書;將所述第二套接字設置為通信模塊的默認套接字。
進一步的,在本發明實施例中,該通信方法還可以包括:獲取通信模塊的默認套接字的自定義證書鏈。
具體的,獲取通信模塊的默認套接字的自定義證書鏈可以是:獲取目標伺服器證書;通過所述目標伺服器證書構建自定義證書鏈使所述自定義證書鏈中的證書為目標伺服器證書。
其中,自定義證書鏈為作業系統的默認證書鏈結構中的證書設置為目標伺服器證書後的證書鏈。並且,目標伺服器證書存儲於作業系統的應用目錄中。
第四實施例
本發明第四實施例提供了一種通信裝置400,如圖7所示,該通信裝置400包括請求發送模塊410、證書接收模塊420、證書判斷模塊430以及通信建立模塊440。其中,
請求發送模塊410用於向伺服器發送會話請求;證書接收模塊420用於接收所述伺服器根據所述會話請求返回的伺服器證書;證書判斷模塊430用於判斷所述伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中,所述自定義證書鏈中的證書為目標伺服器證書;通信建立模塊440用於與所述伺服器進行通信。
該通信裝置還可以包括套接字獲取模塊、套接字初始化模塊以及通信連接設定模塊。其中,套接字獲取模塊用於獲取第一套接字;套接字初始化模塊用於獲取自定義證書鏈並將所述第一套接字的證書鏈初始化為所述自定義證書鏈,獲得第二套接字,所述自定義證書鏈中的證書為目標伺服器證書;通信連接設定模塊用於將所述第二套接字設置為通信模塊的默認套接字。
該通信裝置還可以包括證書獲取模塊以及自定義證書鏈獲取模塊。其中,證書獲取模塊用於獲取目標伺服器證書;證書鏈獲取模塊用於通過所述目標伺服器證書構建自定義證書鏈使所述自定義證書鏈中的證書為目標伺服器證書。
第五實施例
本發明第五實施例提供了一種用戶終端100,如圖2所示,所述用戶終端100包括存儲器101和處理器103。所述存儲器101耦接到所述處理器103,所述存儲器101存儲指令,當所述指令由所述處理103器執行時使所述處理器103執行以下操作:用戶終端100向伺服器發送會話請求;所述用戶終端100接收所述伺服器根據所述會話請求返回的伺服器證書;所述用戶終端100判斷所述伺服器證書是否存在於通信模塊的默認套接字的自定義證書鏈中,所述自定義證書鏈中的證書為目標伺服器證書;若是,則所述用戶終端100與所述伺服器進行通信。
綜上所述,本發明實施例提供的通信安全加強方法、裝置、通信方法及用戶終端,首先獲取第一套接字;然後獲取定義證書鏈並將第一套接字的證書鏈初始化為自定義證書鏈,獲得第二套接字,並且自定義證書鏈中的證書為目標伺服器證書;最後將第二套接字設置為通信模塊的默認套接字。其中,自定義證書鏈,為通過目標伺服器證書構建自定義證書鏈使自定義證書鏈中的證書為目標伺服器證書。使通信模塊的默認套接字中的證書鏈為自定義證書鏈,且自定義證書鏈中的證書為目標伺服器證書。從而使用戶終端與伺服器進行通信的過程中,通過判斷伺服器返回的證書是否存在於通信模塊的默認套接字的自定義證書鏈中,判斷返回證書的伺服器是否是目標伺服器,從而確定是否與伺服器進行通信,使通信過程中被中間者攻擊的可能性降低,增強通信過程的安全性。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,也可以通過其它的方式實現。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據本發明的多個實施例的裝置、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現方式中,方框中所標註的功能也可以以不同於附圖中所標註的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與計算機指令的組合來實現。
另外,在本發明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟體功能模塊的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬碟、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光碟等各種可以存儲程序代碼的介質。需要說明的是,在本文中,諸如第一和第二、另一等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨後的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應所述以權利要求的保護範圍為準。