本發(fā)明涉及數(shù)據(jù)傳輸領域,尤其涉及一種數(shù)據(jù)安全交互方法和系統(tǒng)。
背景技術:
進入21世紀以來,各種安全事件層出不窮,中國的國家安全正變得日益復雜;中國國家密碼安全局和中國中央人民銀行針對金融行業(yè)的安全問題,聯(lián)手推出基于SM2/SM3/SM4算法的中國國密標準及認證,逐步要求金融行業(yè)的自助設備及系統(tǒng)必須通過國密認證。
目前市場上正在使用的ATM機正在使用的部件大多不支持國密算法,而各種部件升級到支持國密算法既需要時間、也涉及硬件改造的成本。
技術實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種數(shù)據(jù)安全交互方法和系統(tǒng),旨在使現(xiàn)有ATM設備低成本且快速地符合國密認證。
為實現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)安全交互系統(tǒng),包括終端、終端側安全裝置、服務端和服務端側安全裝置,所述終端與所述服務端之間進行經加密的數(shù)據(jù)交互,其中,
所述終端側安全裝置包括終端側接收端口、終端側安全芯片和終端側發(fā)送端口,所述終端側接收端口用于接收所述終端的數(shù)據(jù),所述終端側安全芯片用于對所述數(shù)據(jù)進行加密或解密,所述終端側發(fā)送端口用于將加密或解密后的所述數(shù)據(jù)發(fā)回所述終端;
所述服務側安全裝置包括服務側接收端口、服務側安全芯片和服務側發(fā)送端口,所述服務側接收端口用于從所述服務端接收數(shù)據(jù),所述服務側安全芯片用于對所述數(shù)據(jù)進行解密或加密,所述服務側發(fā)送端口用于將解密或加密后的所述數(shù)據(jù)發(fā)回所述服務端。
優(yōu)選地,所述終端側安全芯片和服務端側安全芯片通過SM4算法對所述數(shù)據(jù)進行加密和解密操作。
優(yōu)選地,所述終端側安全芯片包括終端側加密模塊和終端側解密模塊,其中:
所述終端側加密模塊,用于將終端發(fā)送給服務端的數(shù)據(jù)進行加密;
所述終端側解密模塊,用于將發(fā)送給所述終端的經服務端側安全芯片加密的所述數(shù)據(jù)進行解密。
優(yōu)選地,所述服務端側安全芯片包括服務端側解密模塊和服務端側加密模塊,其中:
所述服務端側解密模塊,用于將發(fā)送給所述服務端的經終端側安全芯片加密的所述數(shù)據(jù)進行解密;
所述服務端側加密模塊,用于加密所述服務端發(fā)送給所述終端的數(shù)據(jù)。
優(yōu)選地,所述終端側加密模塊包括數(shù)據(jù)加密單元和MAC計算單元,其中:
所述數(shù)據(jù)加密單元,用于加密終端發(fā)送給服務端的數(shù)據(jù);
所述MAC計算單元,用于對所述終端發(fā)送給所述服務端的通信數(shù)據(jù)進行MAC計算。
優(yōu)選地,所述服務端側解密模塊包括MAC校驗單元和數(shù)據(jù)解密單元,其中:
所述MAC校驗單元,用于對發(fā)送給所述服務端的經MAC計算的通信數(shù)據(jù)進行校驗;
所述數(shù)據(jù)解密單元,用于在校驗成功后,將經終端側安全裝置加密的所述數(shù)據(jù)進行解密。
為實現(xiàn)上述目的,本發(fā)明還提供一種數(shù)據(jù)安全交互方法,所述數(shù)據(jù)安全交互方法包括以下步驟:
終端側安全裝置將終端發(fā)送給服務端的數(shù)據(jù)進行加密;
服務端側安全裝置將發(fā)送給所述服務端的經加密的所述數(shù)據(jù)進行解密,并加密所述服務端發(fā)送給所述終端的數(shù)據(jù);
終端側安全裝置將發(fā)送給所述終端的經加密的所述數(shù)據(jù)進行解密。
優(yōu)選地,所述終端側安全裝置和服務端側安全裝置通過SM4算法對所述數(shù)據(jù)進行加密和解密操作。
優(yōu)選地,所述將終端發(fā)送給服務端的數(shù)據(jù)進行加密包括:
加密終端發(fā)送給服務端的數(shù)據(jù);
對所述終端發(fā)送給所述服務端的通信數(shù)據(jù)進行MAC計算。
優(yōu)選地,所述將發(fā)送給所述服務端的經加密的所述數(shù)據(jù)進行解密包括:
對發(fā)送給所述服務端的經MAC計算的通信數(shù)據(jù)進行校驗;
在校驗成功后,將經加密的所述數(shù)據(jù)進行解密。
本發(fā)明通過終端側安全裝置將終端發(fā)送給服務端的數(shù)據(jù)進行加密;服務端側安全裝置將發(fā)送給所述服務端的經加密的所述數(shù)據(jù)進行解密,并加密所述服務端發(fā)送給所述終端的數(shù)據(jù);終端側安全裝置將發(fā)送給所述終端的經加密的所述數(shù)據(jù)進行解密。使得所述終端與所述服務端之間傳輸?shù)臄?shù)據(jù)都是經過加密的,并且各自一側都能夠解密讀取數(shù)據(jù),保證了所述終端與所述服務端之間數(shù)據(jù)交互的安全性。
附圖說明
圖1為本發(fā)明數(shù)據(jù)安全交互方法第一實施例的流程示意圖;
圖2為本發(fā)明數(shù)據(jù)安全交互方法第二實施例的流程示意圖;
圖3為本發(fā)明數(shù)據(jù)安全交互方法第三實施例中SM4算法的示意圖;
圖4為本發(fā)明數(shù)據(jù)安全交互方法第四實施例的流程示意圖;
圖5為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第一實施例中終端側與服務端側之間數(shù)據(jù)安全交互示意圖;
圖6a為圖5中終端側方案一的功能模塊示意圖;
圖6b為圖5中終端側方案二的功能模塊示意圖;
圖7a為圖5中服務端側方案一的功能模塊示意圖;
圖7b為圖5中服務端側方案二的功能模塊示意圖;
圖7c為圖5中服務端側方案三的功能模塊示意圖;
圖8為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第一實施例中終端側安全裝置的功能模塊示意圖;
圖9為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第一實施例中服務端側安全裝置的功能模塊示意圖;
圖10為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第三實施例中終端側安全芯片的細化功能模塊示意圖;
圖11為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第三實施例中服務端側安全芯片的細化功能模塊示意圖;
圖12為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第四實施例中終端側加密模塊的細化功能模塊示意圖;
圖13為本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第四實施例中服務端側解密模塊的系統(tǒng)功能模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種所述數(shù)據(jù)安全交互方法,請參閱圖1,在一實施例中,該數(shù)據(jù)安全交互方法包括以下步驟:
步驟S10,終端側安全裝置將終端發(fā)送給服務端的數(shù)據(jù)進行加密;
本發(fā)明實施例提供的數(shù)據(jù)安全交互方法應用于現(xiàn)有ATM機中,將符合國密算法的安全裝置與所述ATM機結合,以使ATM機符合國密算法,保證ATM機數(shù)據(jù)交互的安全性。所述終端為用戶使用ATM機的軟件操作系統(tǒng),具體地,可以為ATM的軟件開發(fā)工具包(Software Development Kit,SDK)或是基于WOSA/XFS標準的SP驅動。所述服務端為ATM機中的硬件設備,至少包括密碼鍵盤、出鈔模塊、讀卡器。
本發(fā)明實施例中,所述終端發(fā)給所述服務端的數(shù)據(jù)為操作指令,所述服務端發(fā)送給所述終端的數(shù)據(jù)為執(zhí)行結果。
所述終端將發(fā)送給所述服務端的操作指令發(fā)給所述終端側安全裝置,所述終端側安全裝置對所述操作指令進行加密后發(fā)回給所述終端,所述終端將經加密后的所述操作指令發(fā)給所述服務端。其中所述終端側安全裝置為操作系統(tǒng)中本身具備國密功能的密碼鍵盤驅動或者是額外增加的一個國密安全模塊,例如ZT130,所述國密安全模塊ZT130類似于銀行支付中的USB-Key,能夠對發(fā)出的數(shù)據(jù)進行加密。
步驟S20,服務端側安全裝置將發(fā)送給所述服務端的經加密的所述數(shù)據(jù)進行解密,并加密所述服務端發(fā)送給所述終端的數(shù)據(jù);
所述服務端側安全裝置設置于所述服務端與所述終端的連接之間、之后或為本身具備國密算法的服務端的硬件設備,例如密碼鍵盤。本實施例中以所述服務端側安全裝置設置于所述服務端與所述終端的連接之后為例進行說明。
所述服務端接收所述經終端側安全裝置加密后的所述操作指令后轉發(fā)給所述服務端側安全裝置,所述服務端側安全裝置將經加密的所述操作指令解密后將明文數(shù)據(jù)發(fā)送給所述服務端。所述服務端根據(jù)明文數(shù)據(jù)得出執(zhí)行結果后發(fā)送給所述服務端側安全裝置,所述服務端側安全裝置將所述執(zhí)行結果進行加密后發(fā)回所述服務端,所述服務端將經所述服務端側安全裝置加密的所述執(zhí)行結果轉發(fā)給所述終端。
步驟S30,終端側安全裝置將發(fā)送給所述終端的經加密的所述數(shù)據(jù)進行解密。
所述終端接收所述服務端發(fā)出的執(zhí)行結果并轉發(fā)給所述終端側安全裝置,所述終端側安全裝置對經加密的所述執(zhí)行結果解密后發(fā)回所述終端。
本實施例中,通過終端側安全裝置將終端發(fā)送給服務端的操作指令進行加密;服務端側安全裝置將發(fā)送給所述服務端的經加密的所述操作指令進行解密,并加密所述服務端發(fā)送給所述終端的所述服務端根據(jù)解密后的所述操作指令得出的執(zhí)行結果;終端側安全裝置將發(fā)送給所述終端的經加密的所述執(zhí)行結果進行解密。使得所述終端與所述服務端之間傳輸?shù)臄?shù)據(jù)都是經過加密的,并且各自一側都能夠解密讀取數(shù)據(jù),保證了所述終端與所述服務端之間數(shù)據(jù)交互的安全性。
進一步地,請參閱圖2,基于本發(fā)明數(shù)據(jù)安全交互方法第一實施例,在本發(fā)明數(shù)據(jù)安全交互方法第二實施例中,上述步驟S10之前還包括:
步驟S40,終端側安全裝置和服務端側安全裝置進行初始化;
使用專門的初始化設備或初始化軟件發(fā)送命令使得所述服務端的硬件生成用于簽名驗簽和密鑰協(xié)商的公私鑰對,并在驗簽成功后保存。
步驟S50,所述終端側安全裝置與所述服務端側安全裝置之間進行公鑰相互交換;
在初始化完成后,將所述終端側安全裝置內的公鑰導入所述服務端側安全裝置并驗簽,在驗簽成功后保存該公鑰,將所述服務端側安全裝置內的公鑰導入所述終端側安全裝置并驗簽,在驗簽成功后保存公鑰。
初始化操作和交換公鑰操作僅在首次使用所述終端側安全裝置和所述服務端側安全裝置時進行,除恢復出廠設置等特殊情況外在之后的正常使用過程中不再發(fā)生。
步驟S60,利用交換后的所述公鑰對所述終端側安全裝置與所述服務端側安全裝置之間進行身份認證;具體地,包括:
步驟S61,所述終端側安全裝置發(fā)送生成隨機數(shù)指令到所述服務端側安全裝置;
步驟S62,所述服務端側安全裝置響應所述隨機數(shù)指令而生成16字節(jié)的隨機數(shù)R1,并將所述R1返回給所述終端側安全裝置;
步驟S63,所述終端側安全裝置生成16字節(jié)的隨機數(shù)R2,并用簽名私鑰對R1+R2進行簽名,并把終端側安全裝置的簽名結果發(fā)送至所述服務端側安全裝置;
步驟S64,所述服務端側安全裝置在收到所述終端側的簽名結果后校驗所述隨機數(shù)R1的正確性,并使用公鑰驗簽,若所述隨機數(shù)R1正確且所述驗簽成功,則用私鑰對R1+R2進行簽名,并將服務端側的簽名結果發(fā)回所述終端側安全裝置;
步驟S65,所述終端側安全裝置在收到所述服務端側的簽名結果后校驗所述隨機數(shù)R2的正確性,并使用公鑰進行驗簽,若所述隨機數(shù)R2正確且所述驗簽成功,則所述終端側安全裝置和所述服務端側安全裝置的身份認證成功。
本實施例中,步驟S60僅僅為身份認證的一種方法,并不對本發(fā)明的其他身份認證方法構成限定。
上述初始化操作、公鑰交換操作和身份認證操作采用SM2算法進行公鑰和私鑰之間的簽名和驗簽,從而完成終端側安全裝置和服務端側安全裝置之間的認證。
步驟70,協(xié)商所述終端側安全裝置與所述服務端側安全裝置之間的密鑰,并確定出交互過程中所使用的密鑰;
通過所述終端側安全裝置隨機生成16字節(jié)的通信密鑰,并加密后發(fā)送給所述服務端側安全裝置,所述服務端側安全裝置解密后得到所述通信密鑰。該步驟在設定一天一次或者在每次方法使用前進行一次,根據(jù)實際需求而定。
進一步地,基于本發(fā)明數(shù)據(jù)安全交互方法的第一實施例,本發(fā)明數(shù)據(jù)安全交互方法的第三實施例中,上述所述終端側安全裝置和服務端側安全裝置均通過SM4算法對所述數(shù)據(jù)進行加密和解密操作。
SM4算法是一個分組算法,其中包括非線性變換S盒,以及由移位異或構成的線性變換。除了256字節(jié)的S盒之外,還定義了另外兩組參數(shù)FK以及CK?;具^程是首先把16字節(jié)密鑰按照4字節(jié)一組分成4組,然后根據(jù)密鑰擴展算法,生成32組4字節(jié)輪密鑰;再把輸入的16字節(jié)數(shù)據(jù)也按照4字節(jié)一組分成4組然后進行循環(huán)運算,具體流程圖請參閱圖3。該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序,此算法采用非線性迭代結構,每次迭代由一個輪函數(shù)給出,其中輪函數(shù)由一個非線性變換和線性變換復合而成,非線性變換由S盒所給出,因此大大提高了算法的安全性。
本實施例中,所述終端側安全裝置和所述服務端側安全裝置采用SM4算法來對所述操作指令和所述執(zhí)行結果進行加密和解密操作,既能符合國密認證的標準又能夠大大提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>
進一步地,請參閱圖4,基于本發(fā)明數(shù)據(jù)安全交互方法終端側實施例,在本發(fā)明數(shù)據(jù)安全交互方法第四實施例中,上述步驟S10包括:
步驟S11,加密終端發(fā)送給服務端的數(shù)據(jù);
步驟S12,對所述終端發(fā)送給所述服務端的通信數(shù)據(jù)進行MAC計算。
MAC(Message Authentication Code,消息驗證碼)的計算方式有兩種,一種是利用已有的加密算法進行加密;另一種是使用專門的MAC算法,在計算散列值時將密鑰和數(shù)據(jù)同時作為輸入,并采用二次散列迭代的方式計算。
進一步地,上述步驟S20包括:
步驟S21,對發(fā)送給所述服務端的經MAC計算的通信數(shù)據(jù)進行校驗;
在發(fā)送數(shù)據(jù)之前,終端側安全裝置首先使用通信雙方協(xié)商好的散列函數(shù)計算其摘要值。在雙方共享的會話密鑰作用下,由摘要值獲得MAC。之后,它和數(shù)據(jù)一起被發(fā)送。服務端側安全裝置收到報文后,首先利用會話密鑰還原摘要值,同時利用散列函數(shù)在本地計算所收到數(shù)據(jù)的摘要值,并將這兩個數(shù)據(jù)進行比對。若兩者相等,則報文通過認證。
步驟S22,在校驗成功后,將經加密的所述數(shù)據(jù)進行解密;
步驟S23,加密所述服務端發(fā)送給所述終端的數(shù)據(jù)。
本實施例中,終端側安全裝置加密終端發(fā)送給服務端的數(shù)據(jù),包括對所述終端發(fā)送給所述服務端的通信數(shù)據(jù)進行MAC計算;服務端側安全裝置對發(fā)送給所述服務端的經MAC計算的通信數(shù)據(jù)進行校驗,在校驗成功后,將經加密的所述數(shù)據(jù)進行解密。使得所述終端和所述服務端在數(shù)據(jù)傳輸過程中對MAC進行校驗,能夠判斷出數(shù)據(jù)是否被篡改,有利于數(shù)據(jù)的認證和完整性保障。
本發(fā)明還提供一種數(shù)據(jù)安全交互系統(tǒng),參閱圖5至圖7,在第一實施例中,數(shù)據(jù)安全交互系統(tǒng),包括終端10、終端側安全裝置20、服務端30和服務端側安全裝置10,所述終端10與所述服務端30之間進行加密的操作指令和加密的執(zhí)行結果的數(shù)據(jù)交互,其中,
請參閱圖8,所述終端側安全裝置20包括終端側接收端口21、終端側安全芯片23和終端側發(fā)送端口25,所述終端側接收端口21用于接收所述終端10的數(shù)據(jù),所述終端側安全芯片23用于對所述數(shù)據(jù)進行加密或解密,所述終端側發(fā)送端口25用于將加密或解密后的所述數(shù)據(jù)發(fā)回所述終端10;
本發(fā)明實施例中,所述終端發(fā)給所述服務端的數(shù)據(jù)為操作指令,所述服務端發(fā)送給所述終端的數(shù)據(jù)為執(zhí)行結果。
本發(fā)明實施例提供的數(shù)據(jù)安全交互系統(tǒng)應用于現(xiàn)有ATM機中,將符合國密算法的安全裝置與所述ATM機結合,以使ATM機符合國密算法,保證ATM機數(shù)據(jù)交互的安全性。所述終端為用戶使用ATM機的軟件操作系統(tǒng),具體地,可以為ATM的軟件開發(fā)工具包(Software Development Kit,SDK)或是基于WOSA/XFS標準的SP驅動。所述服務端為ATM機中的硬件設備,至少包括密碼鍵盤、出鈔模塊、讀卡器。
所述終端將發(fā)送給所述服務端的操作指令發(fā)給所述終端側安全裝置,所述終端側安全裝置對所述操作指令進行加密后發(fā)回給所述終端,所述終端將經加密后的所述操作指令發(fā)給所述服務端。其中所述終端側安全裝置為操作系統(tǒng)中本身具備國密功能的密碼鍵盤驅動或者是額外增加的一個國密安全模塊,例如ZT130,所述國密安全模塊ZT130類似于銀行支付中的USB-Key,能夠對發(fā)出的數(shù)據(jù)進行加密。
請參閱圖9,所述服務側安全裝置40包括服務側接收端口41、服務側安全芯片43和服務側發(fā)送端口45,所述服務側接收端口41用于從所述服務端30接收數(shù)據(jù),所述服務側安全芯片43用于對所述數(shù)據(jù)進行解密或加密,所述服務側發(fā)送端口45用于將解密或加密后的所述數(shù)據(jù)發(fā)回所述服務端30。
所述服務端側安全裝置40設置于所述服務端30與所述終端10的連接之間、之后或為本身具備國密算法的服務端30的硬件設備,例如密碼鍵盤。其中所述服務端側安全裝置40為硬件設備中本身具備國密功能的密碼鍵盤或者是額外增加一個國密安全模塊,例如ZT128國密模塊。本實施例中以所述服務端側安全裝置40為額外增加的國密安全模塊,并設置于所述服務端30與所述終端10的連接之后為例進行說明。
所述服務端接收所述經終端側安全裝置加密后的所述操作指令后轉發(fā)給所述服務端側安全裝置,所述服務端側安全裝置將經加密的所述操作指令解密后將明文數(shù)據(jù)發(fā)送給所述服務端。所述服務端根據(jù)明文數(shù)據(jù)得出執(zhí)行結果后發(fā)送給所述服務端側安全裝置,所述服務端側安全裝置將所述執(zhí)行結果進行加密后發(fā)回所述服務端,所述服務端將經所述服務端側安全裝置加密的所述執(zhí)行結果轉發(fā)給所述終端。
本實施例中,通過終端側安全裝置將終端發(fā)送給服務端的操作指令進行加密;服務端側安全裝置將發(fā)送給所述服務端的經加密的所述操作指令進行解密,并加密所述服務端發(fā)送給所述終端的所述服務端根據(jù)解密后的所述操作指令得出的執(zhí)行結果;終端側安全裝置將發(fā)送給所述終端的經加密的所述執(zhí)行結果進行解密。使得所述終端與所述服務端之間傳輸?shù)臄?shù)據(jù)都是經過加密的,并且各自一側都能夠解密讀取數(shù)據(jù),保證了所述終端與所述服務端之間數(shù)據(jù)交互的安全性。
進一步地,基于本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第一實施例,本發(fā)明的數(shù)據(jù)安全交互系統(tǒng)第二實施例中,所述終端側安全芯片113和服務端側安全芯片313通過SM4算法對所述數(shù)據(jù)進行加密和解密操作。
SM4算法是一個分組算法,其中包括非線性變換S盒,以及由移位異或構成的線性變換。除了256字節(jié)的S盒之外,還定義了另外兩組參數(shù)FK以及CK。基本過程是首先把16字節(jié)密鑰按照4字節(jié)一組分成4組,然后根據(jù)密鑰擴展算法,生成32組4字節(jié)輪密鑰;再把輸入的16字節(jié)數(shù)據(jù)也按照4字節(jié)一組分成4組然后進行循環(huán)運算,具體流程圖請參閱圖3。該算法的分組長度為128比特,密鑰長度為128比特。加密算法與密鑰擴展算法都采用32輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序,此算法采用非線性迭代結構,每次迭代由一個輪函數(shù)給出,其中輪函數(shù)由一個非線性變換和線性變換復合而成,非線性變換由S盒所給出,因此大大提高了算法的安全性。
本實施例中,所述終端側安全裝置采用SM4算法來對所述操作指令和所述執(zhí)行結果進行加密和解密操作,既能符合國密認證的標準又能夠大大提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>
進一步地,基于本發(fā)明數(shù)據(jù)安全交互系統(tǒng)的第一實施例,本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第三實施例中,請參閱圖10,所述終端側安全芯片23包括終端側加密模塊231和終端側解密模塊235,其中:
所述終端側加密模塊231,用于將終端10發(fā)送給服務端30的數(shù)據(jù)進行加密;
所述終端10將發(fā)送給所述服務端30的操作指令發(fā)給所述終端側安全裝置20,所述終端側安全裝置20中的所述終端側加密模塊231對所述操作指令進行加密后發(fā)回給所述終端10,所述終端10將經加密后的所述操作指令發(fā)給所述服務端30。
所述終端側解密模塊235,用于將發(fā)送給所述終端10的經服務端側安全芯片43加密的所述數(shù)據(jù)進行解密。
所述終端10接收所述服務端30發(fā)出的執(zhí)行結果后轉發(fā)給所述終端側安全裝置20,所述終端側安全裝置20中的所述終端側解密模塊235對經服務端側安全裝置40加密的所述執(zhí)行結果解密后發(fā)回所述終端10。
請參閱圖11,所述服務端側安全芯片43包括服務端側解密模塊431和服務端側加密模塊435,其中:
所述服務端側解密模塊431,用于將發(fā)送給所述服務端30的經終端側安全芯片23加密的所述數(shù)據(jù)進行解密;
所述服務端側加密模塊435,用于加密所述服務端30發(fā)送給所述終端10的數(shù)據(jù)。
所述服務端30接收所述經終端側安全裝置20加密后的所述操作指令后轉發(fā)給所述服務端側安全裝置40,所述服務端側安全裝置40將經加密的所述操作指令解密后將明文數(shù)據(jù)發(fā)送給所述服務端30。所述服務端30根據(jù)明文數(shù)據(jù)得出執(zhí)行結果后發(fā)送給所述服務端側安全裝置40,所述服務端側安全裝置40將所述執(zhí)行結果進行加密后發(fā)回所述服務端30,所述服務端30將經所述服務端側安全裝置40加密的所述執(zhí)行結果轉發(fā)給所述終端10。
本實施例中,通過終端側安全裝置將終端發(fā)送給服務端的操作指令進行加密;終端側安全裝置將發(fā)送給所述終端的經加密的所述執(zhí)行結果進行解密。服務端側安全裝置將終端發(fā)送給服務端的經加密的操作指令進行解密;服務端側安全裝置將發(fā)送給所述終端的所述執(zhí)行結果進行加密。使得所述終端與所述服務端之間傳輸?shù)臄?shù)據(jù)都是經過加密的,并且各自一側都能夠解密讀取數(shù)據(jù),保證了所述終端與所述服務端之間數(shù)據(jù)交互的安全性。
進一步地,基于本發(fā)明數(shù)據(jù)安全交互系統(tǒng)的第三實施例,本發(fā)明數(shù)據(jù)安全交互系統(tǒng)第四實施例中,請參閱圖12,所述終端側加密模塊231包括數(shù)據(jù)加密單元232和MAC計算單元233,其中:
所述數(shù)據(jù)加密單元232,用于加密終端10發(fā)送給服務端30的數(shù)據(jù);
所述MAC計算單元233,用于對所述終端10發(fā)送給所述服務端30的通信數(shù)據(jù)進行MAC計算。
MAC的計算方式有兩種,一種是利用已有的加密算法進行加密;另一種是使用專門的MAC算法,在計算散列值時將密鑰和數(shù)據(jù)同時作為輸入,并采用二次散列迭代的方式計算。
在發(fā)送數(shù)據(jù)之前,終端側安全裝置20首先使用通信雙方協(xié)商好的散列函數(shù)計算其摘要值。在雙方共享的會話密鑰作用下,由摘要值獲得MAC。之后,它和數(shù)據(jù)一起被發(fā)送。
請參閱圖13,所述服務端側解密模塊431包括MAC校驗單元432和數(shù)據(jù)解密單元433,其中:
所述MAC校驗單元432,用于對發(fā)送給所述服務端30的經MAC計算的通信數(shù)據(jù)進行校驗;
服務端側安全裝置40收到報文后,首先利用會話密鑰還原摘要值,同時利用散列函數(shù)在本地計算所收到數(shù)據(jù)的摘要值,并將這兩個數(shù)據(jù)進行比對。若兩者相等,則報文通過認證。
所述數(shù)據(jù)解密單元433,用于在校驗成功后,將經加密的所述數(shù)據(jù)進行解密。
本實施例中,終端側安全裝置20加密終端10發(fā)送給服務端30的數(shù)據(jù),包括對所述終端10發(fā)送給所述服務端30的通信數(shù)據(jù)進行MAC計算,服務端側安全裝置40解密終端10發(fā)送給服務端30的經終端側安全裝置20加密的數(shù)據(jù),其中包括對所述終端10發(fā)送給所述服務端30的通信數(shù)據(jù)進行MAC校驗,在校驗成功后才加密的數(shù)據(jù)進行解密。因MAC具備驗證數(shù)據(jù)是否完整的功能,所以采用對MAC一端計算,另一端校驗的方式能夠判斷出數(shù)據(jù)是否被篡改,有利于數(shù)據(jù)的認證和完整性保障。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。