專利名稱:基于雙向安全認證的數據下載方法及系統的制作方法
技術領域:
本發明涉及信息安全領域,具體而言,涉及一種基于雙向安全認證的數據下載方法及系統。
背景技術:
現有網絡信息安全領域可以實現由公私鑰生成模塊生成密鑰,通過公私鑰交換匹配生成不同的驗證參數,實現不同終端之間的認證過程。但現有的認證方式通常為單向安全認證,且在認證完成之后,對數據的安全下載并沒有提供一個完善的安全機制。目前針對相關技術的不同終端之間僅采用單向安全認證,導致安全認證機制和數據安全下載機制不完善的問題,目前尚未提出有效的解決方案。
發明內容
針對相關技術的不同終端之間僅采用單向安全認證,導致安全認證機制和數據安全下載機制不完善的問題,目前尚未提出有效的問題而提出本發明,為此,本發明的主要目的在于提供一種基于雙向安全認證的數據下載方法及系統,以解決上述問題。為了實現上述目的,根據本發明的一個方面,提供了一種基于雙向安全認證的數據下載方法,該方法包括第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果;在根據第二驗證結果確定第一終端為合法終端之后,第二終端將通過數字簽名算法加密處理過的數據下載至第一終端。進一步地,在第一終端通過對稱密鑰算法驗證第二終端之前,方法還包括獲取第一終端和第二終端的公私鑰對,并將第一終端公鑰、第二終端私鑰以及對稱密鑰KEY保存至第二終端,將第一終端私鑰和對稱密鑰KEY保存至安全芯片,安全芯片內置在第一終端之中。進一步地,第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果包括 第一終端將生成的第一隨機數發送至第二終端,第二終端根據對稱密鑰KEY對第一隨機數進行加密,以獲取第一驗證碼;在第一終端接收到第二終端返回的第一驗證碼之后,通過保存在安全芯片中的對稱密鑰KEY對第一驗證碼進行解密,以獲取解密結果;通過驗證解密結果與第一隨機數是否相同來獲取第二驗證結果,在相同的情況下,第一驗證結果為第二終端是第一終端的合法終端,在不相同的情況下,第一驗證結果為第二終端是非法終端。進一步地,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果包括第二終端將生成的第二隨機數發送給第一終端,第一終端根據安全芯片中保存的第一終端私鑰將第二隨機數進行簽名,以獲取第二驗證碼;在第二終端接收到第一終端返回的第二驗證碼之后,通過第二終端中的第一終端公鑰對第二驗證碼進行驗證,以獲取驗簽結果;通過驗證驗簽結果與第一終端私鑰是否匹配來獲取第二驗證結果,在匹配的情況下,第二驗證結果為第一終端是第二終端的合法終端,在不匹配的情況下,第二驗證結果為第一終端是非法終端。進一步地,第二終端將通過數字簽名算法加密處理過的數據下載至第一終端包括第二終端對數據進行哈希計算,以得到數字摘要;通過第二終端私鑰對數字摘要進行簽名,來獲取附加簽名信息;通過會話密鑰將附加了附加簽名信息的數據進行加密,以獲取安全數據,并將安全數據下載至第二終端。進一步地,在第二終端將通過數字簽名算法加密處理過的數據下載至第一終端之后,方法還包括第一終端獲取到會話密鑰和第二終端公鑰;使用獲取到的會話密鑰對安全數據進行解密,并使用獲取到的第二終端公鑰對該解密后的安全數據進行數字摘要驗證,在驗證通過的情況下,第一終端下載數據成功。 進一步地,在第一終端獲取到會話密鑰和第二終端公鑰之前,方法還包括第二終端生成會話密鑰,通過第二終端私鑰對會話密鑰進行簽名,以獲取簽名會話密鑰;通過對稱密鑰KEY對第二終端公鑰和簽名會話密鑰進行加密,并將得到的加密結果發送給第二終端。進一步地,第一終端獲取到會話密鑰和第二終端公鑰包括第一終端接收加密結果;第一終端通過安全芯片中的對稱密鑰KEY解密加密結果,以獲取第二終端公鑰和簽名會話密鑰;第二終端對簽名會話密鑰進行驗簽后,得到會話密鑰。為了實現上述目的,根據本發明的另一方面,提供了一種基于雙向安全認證的數據下載系統,該系統包括第一終端,發送數據下載請求;第二終端,接收數據下載請求,并在驗證第一終端和第二終端彼此為合法終端之后,將通過數字簽名算法加密處理過的數據下載至第一終端;其中,第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果; 在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果,根據第二驗證結果確定第一終端為合法終端。進一步地,第二終端保存第一終端公鑰、第二終端私鑰以及對稱密鑰KEY,系統還包括安全芯片,內置在第一終端之中,用于保存第一終端私鑰和對稱密鑰KEY。通過本發明,采用第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果;在根據第二驗證結果確定第一終端為合法終端之后,第二終端將通過數字簽名算法加密處理過的數據下載至第一終端,解決了相關現有技術的不同終端之間僅采用單向安全認證,導致安全認證機制和數據安全下載機制不完善的問題, 進而實現在不同終端之間創建雙向認證通道,以及安全下載,保護了交互數據的安全性和完整性的效果。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖1是根據本發明實施例的基于雙向安全認證的數據下載系統的結構示意圖;圖2是根據圖1所示實施例中終端設備驗證前端設備的示意圖;圖3是根據圖1所示實施例中前端設備驗證終端設備的示意圖;圖4是根據圖1所示實施例中前端設備下發數據的方法流程圖5是根據圖1所示實施例中后端設備驗證下發數據的方法流程圖;圖6是根據本發明實施例的基于雙向安全認證的數據下載方法的流程圖;圖7是根據圖6所示實施例中前端設備下發數據的功能示意圖。
具體實施例方式需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發明。圖1是根據本發明實施例的基于雙向安全認證的數據下載系統的結構示意圖。如圖1所示,該基于雙向安全認證的數據下載系統包括第一終端,發送數據下載請求;第二終端,接收數據下載請求,并在驗證第一終端和第二終端彼此為合法終端之后,將通過數字簽名算法加密處理過的數據下載至第一終端;其中,第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果,根據第二驗證結果確定第一終端為合法終端。本申請的上述實施例通過在第一終端和第二終端之間建立雙向認證通道,并在雙向認證成功之后完成安全下載的過程,這種基于雙向安全認證的安全下載系統完善了不同終端之間的安全認證機制和數據安全下載機制,保護了交互數據的安全性和完整性。本申請的上述實施例的系統還可以包括一個安全芯片,內置在第一終端之中,用于保存第一終端私鑰和對稱密鑰KEY,且在第二終端中保存第一終端公鑰、第二終端私鑰以及對稱密鑰KEY。該安全芯片內部設有密鑰處理機制,用于存放密鑰和產生密鑰。該實施例利用安全芯片的特有屬性來建立兩個終端之間的雙向認證通道,實現安全下載,這種基于安全芯片雙向認證的下載方法,其建立安全認證時通過對稱密鑰和非對稱密鑰機制,共同實現認證過程,并且是在建立安全認證的基礎上,實現了安全下載的過程。具體的,本發明上述系統中的第一終端為一個具有安全芯片,用來接收下載數據的終端設備,而第二終端為一個用來產生下載數據,并將數據下載至第一終端的前端設備, 即上述實例實現了終端設備和前端設備以雙向認證為基礎,實現安全下載的過程。其中,安全芯片作為可信任的安全設備,其內部包含特殊的密鑰處理機制,通過置入芯片標識等一些特征性信息,使安全芯片成為唯一且不可復制的安全設備。圖1所示的實施例在詳細實施過程如下首先,前端設備和終端設備生成公私鑰對,可以將前端設備的私鑰、對稱密鑰Key 和終端設備的公鑰保留在前端設備;終端安全芯片中存儲終端私鑰和對稱密鑰Key ;然后,如圖2所示,開始驗證終端設備是不是對應該前端設備的合法終端終端設備生成隨機數A發送給前端設備;前端設備利用對稱密鑰Key對隨機數A進行加密,生成 Key(A),并回傳給終端設備;終端設備利用對稱密鑰Key對Key(A)進行解密;終端設備驗證前端設備回傳的隨機數A是否與終端保存的隨機數A—致,如果一致,則終端設備驗證前端設備成功。在終端設備驗證前端設備成功之后,如圖3所示,開始驗證前端設備是不是對應該終端設備的合法終端前端設備自動生成隨機數B,發送給終端設備;終端設備收到前端設備發來的隨機數B后,終端設備用存儲于安全芯片的終端私鑰對隨機數B進行簽名,得到R(B),并回傳給前端設備,在前端設備收到終端設備回傳的R(B)后,用終端公鑰進行驗簽, 如果驗簽通過,表示前端驗證終端設備成功。此時,如圖4所示,在完成上述前端設備和后端設備的雙認證功能之后,前端設備在對終端設備進行軟件下發時,前端設備首先對軟件進行哈希計算得到數字摘要;然后前端設備用自己的私鑰對數字摘要進行簽名,并把簽名后的數字摘要附加在要下發的數據 (例如軟件)后面,用會話密鑰進行加密后,發送給終端用戶。最后,如圖5所示,終端設備接收下發的軟件后,終端設備用會話密鑰解密,用前端公鑰對數字摘要的簽名進行驗證;如果驗證通過,說明文件在傳輸過程中沒有被破壞。其中,終端設備獲取會話密鑰和前端公鑰的過程如下首先,在前端設備中自動生成一個會話密鑰,連同前端公鑰,用前端私鑰對會話密鑰進行簽名,再用終端設備對稱密鑰 Key加密前端公鑰和簽名后的會話密鑰并發送給終端設備。終端設備通過解密并驗簽后,得到明文的會話密鑰和前端公鑰。圖6是根據本發明實施例的基于雙向安全認證的數據下載方法的流程圖;圖7是根據圖6所示實施例中前端設備下發數據的功能示意圖。如圖6所示,該方法包括如下步驟步驟S102,第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果。步驟S104,在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果。步驟S106,在根據第二驗證結果確定第一終端為合法終端之后,第二終端將通過數字簽名算法加密處理過的數據下載至第一終端。本申請的上述實施例通過在第一終端和第二終端之間建立雙向認證通道,并在雙向認證成功之后完成安全下載的過程,這種基于雙向安全認證的安全下載系統完善了不同終端之間的安全認證機制和數據安全下載機制。具體的,本發明的方法實例中,第一終端可以為一個具有安全芯片,用來接收下載數據的終端設備,而第二終端可以為一個用來產生下載數據,并將數據下載至第一終端的前端設備,即上述實例實現了終端設備和前端設備以雙向認證為基礎本申請上述實施例中,在步驟S102第一終端通過對稱密鑰算法驗證第二終端之前,方法還包括獲取第一終端和第二終端的公私鑰對,并將第一終端公鑰、第二終端私鑰以及對稱密鑰KEY保存至第二終端,將第一終端私鑰和對稱密鑰KEY保存至安全芯片,安全芯片內置在第一終端之中。本申請上述實施例中的步驟S102第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果可以包括如下步驟第一終端將生成的第一隨機數發送至第二終端,第二終端根據對稱密鑰KEY對第一隨機數進行加密,以獲取第一驗證碼;在第一終端接收到第二終端返回的第一驗證碼之后,通過保存在安全芯片中的對稱密鑰KEY對第一驗證碼進行解密,以獲取解密結果;通過驗證解密結果與第一隨機數是否相同來獲取第二驗證結果, 在相同的情況下,第一驗證結果為第二終端是第一終端的合法終端,在不相同的情況下,第一驗證結果為第二終端是非法終端。本申請上述步驟S104 第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果包括第二終端將生成的第二隨機數發送給第一終端,第一終端根據安全芯片中保存的第一終端私鑰將第二隨機數進行簽名,以獲取第二驗證碼;在第二終端接收到第一終端返回的第二驗證碼之后,通過第二終端中的第一終端公鑰對第二驗證碼進行驗證,以獲取驗簽結果;通過驗證驗簽結果與第一終端私鑰是否匹配來獲取第二驗證結果,在匹配的情況下,第二驗證結果為第一終端是第二終端的合法終端,在不匹配的情況下,第二驗證結果為第一終端是非法終端。上述步驟S102和步驟S104的具體實施步驟,實現了終端設備利用對稱加密算法, 下發隨機數給前端設備,前端設備加密后回傳給終端設備,終端設備完成驗證前端設備。然后,前端設備采用非對稱加密算法,下發隨機數給終端設備,終端設備簽名后回傳給前端設備,前端設備完成驗證終端設備。從而實現雙向認證。前端設備和終端設備相互認證后建立了一種安全通道,保證前端和終端的安全交互。本申請上述實施例中,如圖7所示,步驟S106第二終端將通過數字簽名算法加密處理過的數據下載至第一終端可以包括如下實施方式第二終端(前端設備)對數據進行哈希計算,以得到數字摘要;通過第二終端私鑰對數字摘要進行簽名,來獲取附加簽名信息;通過會話密鑰將附加了附加簽名信息的數據進行加密,以獲取安全數據,并將安全數據下載至第二終端。上述步驟S106的具體實施步驟,可以實現前端設備下發軟件數據時首先經過安全通道的保護,然后前端設備對下發的軟件信息進行簽名,終端設備對前端設備下發的軟件信息進行驗證,使得終端設備能夠得到完整可靠的軟件信息。本申請的上述實施過程中,在第二終端將通過數字簽名算法加密處理過的數據下載至第一終端之后,方法還包括如圖7所示的實施方式第一終端(終端設備)獲取到會話密鑰和第二終端公鑰;使用獲取到的會話密鑰對安全數據進行解密,并使用獲取到的第二終端公鑰對該解密后的安全數據進行數字摘要驗證,在驗證通過的情況下,第一終端下載數據成功。本申請上述實施例中,在第一終端獲取到會話密鑰和第二終端公鑰之前,方法還包括第二終端生成會話密鑰,通過第二終端私鑰對會話密鑰進行簽名,以獲取簽名會話密鑰;通過對稱密鑰KEY對第二終端公鑰和簽名會話密鑰進行加密,并將得到的加密結果發
送給第二終端。優選地,第一終端獲取到會話密鑰和第二終端公鑰的步驟可以包括第一終端接收加密結果;第一終端通過安全芯片中的對稱密鑰KEY解密加密結果,以獲取第二終端公鑰和簽名會話密鑰;第二終端對簽名會話密鑰進行驗簽后,得到會話密鑰。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。本申請上述各個實施例的基于雙向安全認證的數據下載方法和系統可以應用于數字電視領域,例如在數字電視端從機頂盒下載電視數據時,可以首先驗證數字電視和機頂盒是不是經過雙向認證的合法終端(即此時數字電視可以為前端,機頂盒可以為終端), 在驗證他們都是彼此的合法終端之后,機頂盒可以下載安全數據(加密過的電視數據)至數字電視,供用戶觀看。其中,安全芯片可以安裝在機頂盒中。從以上的描述中,可以看出,本發明實現了如下技術效果本發明是基于安全芯片雙向認證的下載方法,該方法通過利用安全芯片內部的密鑰處理機制,實現雙向認證過程, 并保護交互數據的安全性和完整性。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種基于雙向安全認證的數據下載方法,其特征在于,包括 第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據所述第一驗證結果確定所述第二終端為合法終端之后,所述第二終端通過非對稱密鑰算法驗證所述第一終端,以獲取第二驗證結果;在根據所述第二驗證結果確定所述第一終端為合法終端之后,所述第二終端將通過數字簽名算法加密處理過的數據下載至所述第一終端。
2.根據權利要求1所述的方法,其特征在于,在第一終端通過對稱密鑰算法驗證第二終端之前,所述方法還包括獲取所述第一終端和所述第二終端的公私鑰對,并將第一終端公鑰、第二終端私鑰以及對稱密鑰KEY保存至第二終端,將第一終端私鑰和對稱密鑰KEY保存至安全芯片,所述安全芯片內置在所述第一終端之中。
3.根據權利要求2所述的方法,其特征在于,第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果包括所述第一終端將生成的第一隨機數發送至所述第二終端,所述第二終端根據所述對稱密鑰KEY對所述第一隨機數進行加密,以獲取第一驗證碼;在所述第一終端接收到所述第二終端返回的所述第一驗證碼之后,通過保存在所述安全芯片中的對稱密鑰KEY對所述第一驗證碼進行解密,以獲取解密結果;通過驗證所述解密結果與所述第一隨機數是否相同來獲取所述第二驗證結果,在相同的情況下,所述第一驗證結果為所述第二終端是所述第一終端的合法終端,在不相同的情況下,所述第一驗證結果為所述第二終端是非法終端。
4.根據權利要求3所述的方法,其特征在于,所述第二終端通過非對稱密鑰算法驗證所述第一終端,以獲取第二驗證結果包括所述第二終端將生成的第二隨機數發送給所述第一終端,所述第一終端根據所述安全芯片中保存的第一終端私鑰將所述第二隨機數進行簽名,以獲取第二驗證碼;在所述第二終端接收到所述第一終端返回的所述第二驗證碼之后,通過所述第二終端中的所述第一終端公鑰對所述第二驗證碼進行驗證,以獲取驗簽結果;通過驗證所述驗簽結果與所述第一終端私鑰是否匹配來獲取第二驗證結果,在匹配的情況下,所述第二驗證結果為所述第一終端是所述第二終端的合法終端,在不匹配的情況下,所述第二驗證結果為所述第一終端是非法終端。
5.根據權利要求4所述的方法,其特征在于,所述第二終端將通過數字簽名算法加密處理過的數據下載至所述第一終端包括所述第二終端對所述數據進行哈希計算,以得到數字摘要; 通過所述第二終端私鑰對所述數字摘要進行簽名,來獲取附加簽名信息; 通過會話密鑰將附加了所述附加簽名信息的數據進行加密,以獲取安全數據,并將所述安全數據下載至所述第二終端。
6.根據權利要求5所述的方法,其特征在于,在所述第二終端將通過數字簽名算法加密處理過的數據下載至所述第一終端之后,所述方法還包括所述第一終端獲取到所述會話密鑰和第二終端公鑰;使用獲取到的所述會話密鑰對所述安全數據進行解密,并使用獲取到的所述第二終端公鑰對該解密后的安全數據進行數字摘要驗證,在驗證通過的情況下,所述第一終端下載所述數據成功。
7.根據權利要求6所述的方法,其特征在于,在所述第一終端獲取到所述會話密鑰和第二終端公鑰之前,所述方法還包括所述第二終端生成所述會話密鑰,通過所述第二終端私鑰對所述會話密鑰進行簽名, 以獲取簽名會話密鑰;通過所述對稱密鑰KEY對所述第二終端公鑰和所述簽名會話密鑰進行加密,并將得到的加密結果發送給所述第二終端。
8.根據權利要求7所述的方法,其特征在于,所述第一終端獲取到所述會話密鑰和第二終端公鑰包括所述第一終端接收所述加密結果;所述第一終端通過所述安全芯片中的對稱密鑰KEY解密所述加密結果,以獲取所述第二終端公鑰和所述簽名會話密鑰;所述第二終端對所述簽名會話密鑰進行驗簽后,得到所述會話密鑰。
9.一種基于雙向安全認證的數據下載系統,其特征在于,包括第一終端,發送數據下載請求;第二終端,接收所述數據下載請求,并在驗證所述第一終端和所述第二終端彼此為合法終端之后,將通過數字簽名算法加密處理過的數據下載至所述第一終端;其中,所述第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據所述第一驗證結果確定所述第二終端為合法終端之后,所述第二終端通過非對稱密鑰算法驗證所述第一終端,以獲取第二驗證結果,根據所述第二驗證結果確定所述第一終端為合法終端。
10.根據權利要求9所述的系統,其特征在于,所述第二終端保存第一終端公鑰、第二終端私鑰以及對稱密鑰KEY,所述系統還包括安全芯片,內置在所述第一終端之中,用于保存第一終端私鑰和對稱密鑰KEY。
全文摘要
本發明公開了一種基于雙向安全認證的數據下載方法及系統。其中,該方法包括第一終端通過對稱密鑰算法驗證第二終端,以獲取第一驗證結果;在根據第一驗證結果確定第二終端為合法終端之后,第二終端通過非對稱密鑰算法驗證第一終端,以獲取第二驗證結果;在根據第二驗證結果確定第一終端為合法終端之后,第二終端將通過數字簽名算法加密處理過的數據下載至第一終端。通過本發明,能夠實現在不同終端之間創建雙向認證通道,以及安全下載,保護了交互數據的安全性和完整性。
文檔編號H04L9/32GK102413132SQ20111036403
公開日2012年4月11日 申請日期2011年11月16日 優先權日2011年11月16日
發明者劉利華, 張向輝, 李京娜, 湯俊峰, 鄭力錚, 陳鵬飛 申請人:北京數碼視訊軟件技術發展有限公司