亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)交互方法及客戶端、服務器的制作方法

文檔序號:7892813閱讀:179來源:國知局
專利名稱:一種數(shù)據(jù)交互方法及客戶端、服務器的制作方法
技術領域
本申請涉及網(wǎng)絡通信技術領域,特別是涉及一種基于數(shù)據(jù)完整性及保密性的數(shù)據(jù)交互方法及客戶端、服務器。
背景技術
目前,大量的客戶端程序采用標準的HTTP協(xié)議與服務端進行通訊。HTTP是Hyper Text Transfer Protocol (超文本傳輸協(xié)議)的縮寫。它的發(fā)展是萬維網(wǎng)協(xié)會(World Wide Web Consortium)和 Internet 工作小組 IETF (InternetEngineering Task Force)合作的結果,他們最終發(fā)布了一系列的RFC (Request ForComments) ,RFC 1945定義了 HTTP/1. 0版本,其中最著名的就是RFC 2616。RFC 2616定義了今天普遍使用的一個版本——HTTP I. I。HTTP協(xié)議是用于從Wffff服務器傳輸超文本到本地瀏覽器的傳送協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。HTTP是一個應用層協(xié)議,由請求和響應構成,是一個標準的客戶端-服務器模型。HTTP是一個無狀態(tài)的協(xié)議??蛻舳艘话阋匀鐖DI所示的方式與服務器進行通訊客戶端向服務器發(fā)起一個HTTP請求,服務器接收到該HTTP請求后,再向該客戶端返回一個HTTP響應。上述請求與響應過程中的數(shù)據(jù)都存在偽造、竊取、重放與損壞的可能性。為了防止數(shù)據(jù)在傳輸過程中被竊取,一般采用HTTPS傳輸協(xié)議。HTTPS是Hypertext TransferProtocol Secure (超文本傳輸協(xié)議和SSL (Secure Sockets Layer安全傳輸協(xié)議)的組合)的縮寫,其主要思想是在不安全的網(wǎng)絡上創(chuàng)建一安全信道,并在使用適當?shù)募用芴准头掌髯C書可被驗證且可被信任時,對竊聽和中間人的攻擊提供合理地保護。HTTPS的信任繼承基于預先安裝在瀏覽器中的證書頒發(fā)機構(如VeriSign、Microsoft等)(意即“我信任證書頒發(fā)機構告訴我應該信任的”)。因此,一個到某網(wǎng)站的HTTPS連接可被信任,當且僅當用戶相信他們的瀏覽器正確實現(xiàn)了 HTTPS且安裝了正確的證書頒發(fā)機構;用戶相信證書頒發(fā)機構僅信任合法的網(wǎng)站;被訪問的網(wǎng)站提供了一個有效的證書,意即,它是由一個被信任的證書頒發(fā)機構簽發(fā)的(大部分瀏覽器會對無效的證書發(fā)出警告);該證書正確地驗證了被訪問的網(wǎng)站(如,訪問https://example時收到了給“Example Inc. ”而不是其它組織的證書);或者互聯(lián)網(wǎng)上相關的節(jié)點是值得信任的,或者用戶相信本協(xié)議的加密層(TLS或SSL)不能被竊聽者破壞。但是,單純地使用HTTPS技術加密客戶端與服務端之間的數(shù)據(jù)通訊,雖然解決了數(shù)據(jù)通路上的安全問題,但并不能解決請求的重放與客戶端計算機安全等問題。

發(fā)明內(nèi)容
本申請?zhí)峁┝艘环N數(shù)據(jù)交互方法及客戶端、服務器,以解決使用HTTPS技術無法解決請求的重放與客戶端計算機安全的問題。為了解決上述問題,本申請公開了一種數(shù)據(jù)交互方法,包括獲取來自服務端的時間戳;將用戶第一標識信息、時 間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端;獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù);使用所述認證數(shù)據(jù)訪問服務端。優(yōu)選地,所述獲取經(jīng)過服務端加密的認證數(shù)據(jù),包括通過服務端對所述校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù),其中所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù)。優(yōu)選地,所述根據(jù)用戶第一標識信息和時間戳生成校驗數(shù)據(jù),包括對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算,并將計算結果作為校驗數(shù)據(jù)。優(yōu)選地,所述用戶第一標識信息包括用戶信息及用戶信息的驗證串。優(yōu)選地,所述用戶第一標識信息在客戶端登錄后由服務端發(fā)送給該客戶端。優(yōu)選地,所述使用所述認證數(shù)據(jù)訪問服務端,包括將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口 ;當通過服務端對該認證數(shù)據(jù)的驗證后,調(diào)用服務端的相應功能接口。優(yōu)選地,所述使用所述認證數(shù)據(jù)訪問服務端,還包括將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要計算,并將計算結果發(fā)送給服務端的相應功能接口;當通過服務端對該計算結果的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。優(yōu)選地,所述用戶第二標識信息包括用戶ID。本申請還提供了一種數(shù)據(jù)交互方法,包括應客戶端請求發(fā)送時間戳到客戶端;從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證;驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端;接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。優(yōu)選地,所述對所述校驗數(shù)據(jù)進行驗證,包括對從客戶端接收的用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算;將計算結果與所述校驗數(shù)據(jù)進行比對,如果相同,則確認該客戶端合法;如果不同,則確認該客戶端非法。
優(yōu)選地,如果該客戶端合法,則所述對所述校驗數(shù)據(jù)進行驗證還包括確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。
優(yōu)選地,所述生成經(jīng)過加密的認證數(shù)據(jù),包括將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息;將用戶第二標識信息、所述時間戳及第一加密信息進行第二次加密計算,并將第二次計算結果作為所述經(jīng)過加密的認證數(shù)據(jù)。優(yōu)選地,所述第一次加密計算使用循環(huán)冗余校驗計算;所述第二次加密計算使用簽名加密計算、對稱加密計算或非對稱加密計算。優(yōu)選地,所述對所述認證數(shù)據(jù)進行驗證,包括使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息;將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算,并將第一次加密的計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。優(yōu)選地,如果未被篡改,則還包括確認所述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。優(yōu)選地,如果對認證數(shù)據(jù)的驗證通過,則還包括對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要計算;將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。本申請還提供了一種數(shù)據(jù)交互的客戶端,包括時間戳獲取模塊,用于獲取來自服務端的時間戳;校驗數(shù)據(jù)生成模塊,用于將用戶第一標識信息、時間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端;認證數(shù)據(jù)獲取模塊,用于獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù);功能調(diào)用模塊,用于使用所述認證數(shù)據(jù)訪問服務端。優(yōu)選地,所述認證數(shù)據(jù)獲取模塊當通過服務端對校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù)。優(yōu)選地,所述校驗數(shù)據(jù)生成模塊對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算,并將計算結果作為校驗數(shù)據(jù)。優(yōu)選地,所述用戶第一標識信息包括用戶信息及用戶信息的驗證串。優(yōu)選地,所述用戶第一標識信息在客戶端登錄后由服務端發(fā)送給該客戶端。優(yōu)選地,所述功能調(diào)用模塊將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口,當通過服務端對該認證數(shù)據(jù)的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。優(yōu)選地,所述功能調(diào)用模塊還用于將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要計算,并將計算結果發(fā)送給服務端的相應功能接口,當通過服務端對該計算結果的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。優(yōu)選地,所述用戶第二標識信息包括用戶ID。本申請還提供了一種數(shù)據(jù)交互的服務器,包括時間戳發(fā)送模塊,用于應客戶端請求發(fā)送時間戳到客戶端;校驗數(shù)據(jù)驗證模塊,用于從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證;認證數(shù)據(jù)生成模塊,用于驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端;認證數(shù)據(jù)驗證模塊,用于接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。優(yōu)選地,所述校驗數(shù)據(jù)驗證模塊包括信息-摘要計算子模塊,用于對從客戶端接收的用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算;比對子模塊,用于將計算結果與所述校驗數(shù)據(jù)進行比對,如果相同,則確認該客戶端合法;如果不同,則確認該客戶端非法。優(yōu)選地,如果該客戶端合法,則所述校驗數(shù)據(jù)驗證模塊還包括超時判定子模塊,用于確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。優(yōu)選地,所述認證數(shù)據(jù)生成模塊包括第一加密計算子模塊,用于將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息;第二加密計算子模塊,用于將用戶第二標識信息、所述時間戳及第一加密信息進行第二次加密計算,并將第二次計算結果作為所述經(jīng)過加密的認證數(shù)據(jù)。優(yōu)選地,所述第一次加密計算使用循環(huán)冗余校驗計算;所述第二次加密計算使用簽名加密計算、對稱加密計算或非對稱加密計算。優(yōu)選地,所述認證數(shù)據(jù)驗證模塊包括解密子模塊,用于使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行相應解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息; 加密計算子模塊,用于將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算;比對子模塊,用于將第一次加密的計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。優(yōu)選地,如果未被篡改,則所述認證數(shù)據(jù)驗證模塊還包括超時判定子模塊,用于確認所述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。優(yōu)選地,如果對認證數(shù)據(jù)的驗證通過,則還包括數(shù)據(jù)完整性驗證模塊,用于對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要計算,并將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。
與現(xiàn)有技術相比,本申請包括以下優(yōu)點首先,本申請結合使用了 HTTPS加密和改進的MD5 (Message-Digest Algorithmv5,信息-摘要算法第五版),同時采用了客戶端和服務端兩處加密,有效地規(guī)避了在“端”及“通路”上篡改和偽造數(shù)據(jù)的可能性。其次,通過時間戳來使用有效時間對接口調(diào)用進行時效性控制,有效地規(guī)避了對用戶請求錄制并大量重放導致數(shù)據(jù)破壞的危險。再次,傳輸數(shù)據(jù)的過程中對數(shù)據(jù)結合時間戳生成MD5,在保證數(shù)據(jù)完整性的同時,確保數(shù)據(jù)不被偽造。當然,實施本申請的任一產(chǎn)品不一定需要同時達到以上所述的所有優(yōu)點。


圖I是現(xiàn)有技術中客戶端與服務器通訊的示意圖;圖2是現(xiàn)有技術中典型的HTTPS通訊過程示意圖;圖3是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性的交互方法示意圖;圖4是本申請實施例所述客戶端在交互過程中的處理流程圖;圖5是本申請實施例所述服務端在交互過程中的處理流程圖;圖6是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性交互的客戶端結構圖;圖7是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性交互的服務器結構圖。
具體實施例方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明?,F(xiàn)有技術中,一個典型的HTTPS通訊過程如圖2所示其中,Client表示客戶端,Server表示服務器,客戶端與服務器之間的通訊步驟如下I、客戶端發(fā)送握手請求;2、服務端獲得SSL加密密鑰,包括公鑰及私鑰;3、服務端返回SSL加密公鑰;4、客戶端檢查公鑰有效性,如果公鑰有效,生成隨機KEY,并使用公鑰加密該隨機KEY ;如果公鑰無效,則顯示警告信息;5、客戶端發(fā)送加密KEY給服務端;6、服務端使用私鑰對加密KEY進行解密,獲得隨機KEY,并使用KEY對返回數(shù)據(jù)進行加密;7、服務端返回加密后的數(shù)據(jù);8、客戶端使用自己生成的隨機KEY對數(shù)據(jù)進行解密?;谝陨线^程,客戶端與服務端在通訊中的數(shù)據(jù)被加密,避免了數(shù)據(jù)在傳輸過程中被竊取。但是,單純地使用HTTPS技術加密客戶端與服務端之間的數(shù)據(jù)通訊,并不能解決請求的重放與客戶端計算機安全等問題例如,如果竊取者在客戶端所在計算機上使用類似“木馬”的相關技術,依然能夠?qū)⒖蛻舳伺c服務端間的數(shù)據(jù)解密并獲取。原因如下HTTPS在進行加密的過程中,客戶端需要生成“random Key” (隨機密鑰),并使用服務端響應的證書(公鑰)進行加密。這一過程對客戶端本身是透明的,因此使用木馬技術植入客戶端,完整的監(jiān)聽證書的獲取過程,在數(shù)據(jù)發(fā)出之前或接收之后,使用截獲的證書(公鑰)對數(shù)據(jù)進行加解密。換而言之,植入客戶端的木馬可以完全模擬客戶端來與服務端交互。再例如,如果攻擊者錄制并大量重放客戶端請求,可能導致服務端用戶數(shù)據(jù)損壞。原因如下對于客戶端的每次請求,都認為完成了一個特定的功能,如“記錄一條URL”、“上傳一個數(shù)據(jù)庫”等,這些功能與用戶的操作息息相關。使用了 HTTPS雖然數(shù)據(jù)本身被進行了加密,使得在鏈路上數(shù)據(jù)不會被竊取,但惡意的攻擊者可能會錄制同樣的數(shù)據(jù),并重復大量地將同樣的數(shù)據(jù)發(fā)送給服務端,服務端在不知情的狀況下接收并處理了“請求”,造成了數(shù)據(jù)的冗余、丟失甚至破壞。同理,惡意的攻擊者還可以錄制服務端響應,發(fā)送給客戶端,從而對客戶端造成影響?;谝陨蠈ΜF(xiàn)有技術的分析,本申請?zhí)岢鲆环N基于數(shù)據(jù)完整性及保密性的交互方法,結合使用了 HTTPS加密技術,并采用改進的MD5生成校驗,保證整個數(shù)據(jù)傳輸過程安全、穩(wěn)定;還使用服務端加密認證串,避免客戶端直接劫持數(shù)據(jù)的木馬,從而大大降低了偽造篡改數(shù)據(jù)的可能性,同時保證了數(shù)據(jù)傳輸?shù)恼_性、完整性。下面通過實施例對本申請所述方法的實現(xiàn)流程進行詳細說明。參照圖3,是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性的交互方法示意圖。步驟301,客戶端向服務端時間戳接口發(fā)送時間戳獲取請求;步驟302,服務端時間戳接口向客戶端返回時間戳;步驟303,客戶端將客戶數(shù)據(jù)QT串連同時間戳一起生成MD5校驗串,并將QT串、時間戳、MD5校驗串發(fā)送到服務端認證接口 ;步驟304,服務端認證接口對所述MD5校驗串進行驗證,并確認客戶端發(fā)送的時間戳在有效時間范圍內(nèi),然后生成加密的認證串并返回給客戶端;步驟305,客戶端使用所述認證串調(diào)用服務端的各功能接口,如圖中的服務端功能接口 I、服務端功能接口 2、服務端功能接口 3等。同時,客戶端還將傳輸數(shù)據(jù)進行MD5計算后一同發(fā)送。其中,服務端的時間戳接口、認證接口和功能接口可以設置在同一服務器上,也可以設置在不同服務器上,但都屬于服務端的接口。下面通過圖4和圖5,分別從客戶端和服務端兩個方面詳細解釋圖3的處理流程。對于客戶端 參照圖4所示,是本申請實施例所述客戶端在交互過程中的處理流程圖。步驟401,客戶端獲取來自服務端的時間戳;客戶端獲取時間戳的方式可以有多種,如下面列舉的三種(I)請求NTP網(wǎng)絡標準時間戳服務器;
NTP是Network Time Protocol的縮寫,表不網(wǎng)絡時間協(xié)議。該NTP網(wǎng)絡標準時間戳服務器提供準確的標準時間,從該服務器可以獲取到標準時間。詳細信息可參見以下網(wǎng)址http://support, ntp. org/bin/view/Servers/ffebHome(2)同步校準Windows系統(tǒng)時間,并獲取校準后的Windows系統(tǒng)時間作為時間戳;(3)專用接口提供Linux時間戳。例如,圖3中的服務端時間戳接口為專用接口,客戶端可以從該服務端時間戳接口獲取時間戳。為了降低獲取時間戳的難度,本實施例優(yōu)選采用上述第(3)種方式。
步驟402,將用戶第一標識信息和所述時間戳生成校驗數(shù)據(jù),并將所述用戶第一標識信息、時間戳及校驗數(shù)據(jù)發(fā)送到服務端;上述用戶第一標識信息包括用戶信息及用戶信息的驗證串,用戶第一標識信息可以表示為圖3所示的QT串。QT串是附帶了用戶的信息及用戶信息的驗證串的一段文本數(shù)據(jù),一般在客戶端登錄后由服務端發(fā)送給該客戶端。其中,用戶信息包括用戶登錄的用戶名、密碼等信息,用戶信息的驗證串是根據(jù)用戶名、密碼等用戶信息而生成。服務端在用戶登錄后生成QT串,并發(fā)給用戶。使用附帶了用戶信息及用戶信息驗證串的QT串來表示用戶第一標識信息,可以使用戶第一標識信息更復雜,增加了惡意攻擊者竊取的難度。當然,除用QT串表示用戶第一標識信息外,上述用戶第一標識信息也可以有其他表示形式。客戶端在獲取了時間戳之后,將用戶第一標識信息和所述時間戳生成校驗數(shù)據(jù),該生成方式可以有多種,如果采用md5算法,則生成的校驗數(shù)據(jù)為MD5校驗串MD5校驗串=md5 (時間戳+用戶第一標識信息+ (時間戳-I))如果所示用戶第一標識信息表示為QT串,則MD5校驗串=md5(時間戳+QT串+(時間戳-I))上述計算公式表示的含義是對用戶第一標識信息(如QT串)、時間戳及時間戳減I的值進行信息-摘要(md5)計算,并將計算結果(MD5校驗串)作為校驗數(shù)據(jù)。md5是對數(shù)據(jù)的一種哈希散列算法,在數(shù)據(jù)發(fā)生變更時,此md5值一定隨之變化,即理論上不存在兩份不同的數(shù)據(jù)但其md5 —致的情況。因此使用對數(shù)據(jù)的md5進行驗證能夠保證數(shù)據(jù)在傳輸過程中不會損壞。而且,md5是公開算法,故直接附加對數(shù)據(jù)的md5很容易被破解;攻擊者篡改數(shù)據(jù)后,依照公開的算法,同樣生成一個附加的校驗,導致服務端校驗失去了意義。因此,本申請實施例在選擇md5算法的時候,是對“時間戳+QT串+(時間戳-I)”進行md5,即使攻擊者知道采用md5算法,但很難知道對哪些具體的數(shù)據(jù)采用md5。所以,本實施例是一種優(yōu)選的方式,大大增加了攻擊者竊取、偽造的難度。當然,除md5算法外,也可以采用其他加密算法對用戶第一標識信息(QT串)和時間戳進行加密處理。然后,客戶端將該校驗數(shù)據(jù)(MD5校驗串)、用戶第一標識信息(QT串)和時間戳發(fā)送給服務端認證接口,以獲取經(jīng)過加密的認證數(shù)據(jù)。步驟403,獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù);
其中,所述獲取經(jīng)過加密的認證數(shù)據(jù),具體包括當該客戶端通過服務端對校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù)。服務端對客戶端校驗數(shù)據(jù)的驗證包括第一,對客戶端合法性的驗證;第二,對時間戳是否超時的驗證。具體的驗證過程可參見圖5的服務端說明,在此略。客戶端從服務端獲取的認證數(shù)據(jù)包含所述時間戳和防篡改的加密信息,其中,所述防篡改的加密信息是將用戶第二標識信息和所述時間戳經(jīng)過加密計算得到,即上述的加密數(shù)據(jù)。其中,用戶第二標識信息可以是用戶唯一 ID。具體的生成認證數(shù)據(jù)的過程可參見圖5的服務端說明,在此略。步驟404,客戶端使用所述認證數(shù)據(jù)訪問服務端,如調(diào)用服務端的各功能接口。具體的,客戶端在需要調(diào)用某個服務端的功能接口時,將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口,并且當通過服務端對該認證數(shù)據(jù)的驗證后,該客戶端才能調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。具體的數(shù)據(jù)操作如為用戶記錄收藏夾、郵件地址等操作。服務端對認證數(shù)據(jù)的具體驗證可參見圖5的服務端說明,在此略。此外,優(yōu)選地,在功能調(diào)用過程中,為了保證數(shù)據(jù)傳輸中數(shù)據(jù)的完整性,確保數(shù)據(jù)不被偽造,客戶端使用所述認證數(shù)據(jù)調(diào)用服務端的各功能接口,還可以包括客戶端將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要(md5)計算,并將計算結果發(fā)送給服務端的相應功能接口,當通過服務端對該計算結果的驗證后,該客戶端調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。具體的,客戶端也可以對要傳輸?shù)牟僮鲾?shù)據(jù)按照以下公式進行md5計算,生成MD5數(shù)據(jù)校驗串MD5數(shù)據(jù)校驗串=md5 (時間戳+操作數(shù)據(jù)+ (時間戳-I))然后,客戶端將所述MD5數(shù)據(jù)校驗串、操作數(shù)據(jù)、時間戳一起發(fā)給服務端,由服務端進行數(shù)據(jù)完整性的驗證,具體的驗證過程可參見圖5的服務端說明,在此略。對于服務端參照圖5所示,是本申請實施例所述服務端在交互過程中的處理流程圖。步驟501,應客戶端請求發(fā)送時間戳到客戶端;對應客戶端的處理步驟401,可以采用三種方式向客戶端返回時間戳,但優(yōu)選地,可以通過服務端提供的專用接口(服務端時間戳接口)發(fā)送時間戳。步驟502,服務端從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證;如前所述,所述用戶第一標識信息可以表示為QT串,如果客戶端對用戶第一標識信息和時間戳采用md5計算,則所述包含用戶第一標識信息和時間戳的校驗數(shù)據(jù)為MD5校驗串。
服務端對所述校驗數(shù)據(jù)(MD5校驗串)進行驗證,具體包括以下子步驟服務端采用與客戶端同樣的方式,對客戶端發(fā)來的用戶第一標識信息(QT串)、時間戳及時間戳減I的值進行信息-摘要(md5)計算,并將計算結果與所述客戶端發(fā)來的校驗數(shù)據(jù)(MD5校驗串)進行比對,如果兩者相同,則確認該客戶端合法;如果兩者不同,則確認該客戶端非法。
進一步地,如果該客戶端合法,則服務端對所述校驗數(shù)據(jù)進行的驗證還包括服務端確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。其中,所述確認時間戳是否在有效時間范圍內(nèi),具體是指確認客戶端發(fā)來的時間戳與服務端當前時間相差是否在有效時間范圍內(nèi)。所述時間戳用于防止對接口調(diào)用的重放,如果客戶端發(fā)來的時間戳與服務端當前時間相差超出了有效時間范圍,表示存在請求重放的可能性,因此驗證不通過。當服務端確認客戶端合法,并確認客戶端發(fā)送的時間戳在有效時間范圍內(nèi),則所述對校驗數(shù)據(jù)(MD5校驗串)的驗證通過;如果兩者中任何一個不通過,則最終的驗證也不會通過。
步驟503,驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端,所述認證數(shù)據(jù)包含對所述時間戳和用戶第二標識信息生成的加密數(shù)據(jù);服務端生成經(jīng)過加密的認證數(shù)據(jù),具體包括以下子步驟子步驟1,服務端將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息;其中,所述用戶第二標識信息可以為用戶ID,用戶ID是系統(tǒng)為了標識用戶而分配的數(shù)字或字符,因為用戶ID簡短,加密計算時計算量小,計算簡單,但用戶第二標識信息也可以使用其他能夠唯一標識用戶身份的信息,如用戶登錄使用的用戶名等信息。此外,用戶第二標識信息還可以為上述的用戶第一標識信息,如QT串,但QT串較長,加密時計算較復雜。所述第一加密信息即指防篡改的加密信息。子步驟2,服務端將用戶第二標識信息、所述時間戳及所述第一加密信息進行第二次加密計算,并將第二次計算結果作為經(jīng)過加密的認證數(shù)據(jù)。其中,所述第一次加密計算可以為循環(huán)冗余校驗計算(CRC32);所述第二次加密計算可以為RSA非對稱加密計算,或者為其他的非對稱加密計算,或者為簽名加密計算、對稱加密計算等。相應的,上述兩個子步驟的計算可通過以下公式表示認證串=RSA加密(用戶唯一 ID+時間戳+CRC32(用戶唯一 ID+時間戳))其中,用戶唯一 ID是一種標識用戶的信息,但不是標識用戶的唯一信息,即還可通過其他信息來標識用戶。經(jīng)過CRC32計算得到的是防篡改的加密信息,經(jīng)過RSA加密得到的認證串即指上述的認證數(shù)據(jù)。當然,上述的第一次加密計算不限定于CRC32,第二次加密計算也不限定于RSA。進一步優(yōu)選地,為了便于進行純文本傳輸,服務端再將認證串轉(zhuǎn)換為對應的16進制HEX文本串,然后再返回給客戶端。步驟504,接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。當服務端的功能接口被客戶端調(diào)用時,服務端對客戶端發(fā)來的認證數(shù)據(jù)進行校驗,以確認認證數(shù)據(jù)未被改動,以及認證數(shù)據(jù)中的時間戳在有效時間范圍內(nèi),然后執(zhí)行相關功能。服務端對認證數(shù)據(jù)的驗證具體可包括以下子步驟
子步驟1,服務端使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行相應解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息;子步驟2,服務端將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算,并將第一次加密的計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。如果未被篡改,則服務端對所述認證數(shù)據(jù)進行驗證還可以包括服務端確認所 述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。如前所述,如果客戶端采用如下的計算公式認證串=RSA加密(用戶唯一 ID+時間戳+CRC32(用戶唯一 ID+時間戳))那么,服務器首先使用RSA解密認證串獲得用戶唯一 ID、時間戳及CRC32加密信息。然后,使用CRC32算法計算用戶唯一 ID和時間戳的CRC32,如果計算結果與解密獲得的CRC32相同,則證明數(shù)據(jù)沒有被篡改。如果數(shù)據(jù)未被篡改,則服務端繼續(xù)判定時間戳與服務器當前時間的差距范圍是否在有效時間范圍內(nèi)。上述時間戳的判定通過,則客戶端的請求合法,服務端會使用用戶唯一 ID為用戶提供實際的服務,如記錄收藏夾、郵件地址等。此外,如前所述,在功能調(diào)用過程中,為了保證數(shù)據(jù)傳輸中數(shù)據(jù)的完整性,確保數(shù)據(jù)不被偽造,客戶端還可以將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要(md5)計算,并將計算結果發(fā)送過來。同時,客戶端還將操縱數(shù)據(jù)和時間戳也發(fā)送過來。針對此,服務端如果對認證數(shù)據(jù)的驗證通過,則還可以包括以下處理步驟服務端對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要(md5)計算,并將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。綜上所述,本申請實施例結合使用了 HTTPS加密和改進的MD5,同時采用了客戶端和服務端兩處加密,有效地規(guī)避了在“端”及“通路”上篡改和偽造數(shù)據(jù)的可能性。而且,通過時間戳來使用有效時間對接口調(diào)用進行時效性控制,有效地規(guī)避了對用戶請求錄制并大量重放導致數(shù)據(jù)破壞的危險。并且,傳輸數(shù)據(jù)的過程中對數(shù)據(jù)結合時間戳生成MD5,在保證數(shù)據(jù)完整性的同時,確保數(shù)據(jù)不被偽造。需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請所必需的?;谏鲜龇椒▽嵤├恼f明,本申請還提供了一種基于數(shù)據(jù)完整性及保密性交互的客戶端實施例和服務器實施例,下面分別通過圖6和圖7進行說明。參照圖6,是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性交互的客戶端結構圖。所述客戶端可以包括以下模塊
時間戳獲取模塊10,用于獲取來自服務端的時間戳;校驗數(shù)據(jù)生成模塊20,用于將用戶第一標識信息、時間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端;認證數(shù)據(jù)獲取模塊30,用于獲取服務端經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù);功能調(diào)用模塊40,用于使用所述認證數(shù)據(jù)訪問服務端。其中,所述認證數(shù)據(jù)獲取模塊30當通過服務端對校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù)。優(yōu)選地,所述校驗數(shù)據(jù)生成模塊20對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算,并將計算結果作為校驗數(shù)據(jù)。優(yōu)選地,所述用戶第一標識信息包括用戶信息及用戶信息的驗證串。優(yōu)選地,所述用戶第一標識信息在客戶端登錄后由服務端發(fā)送給該客戶端。優(yōu)選地,所述加密數(shù)據(jù)是將用戶第二標識信息和所述時間戳經(jīng)過加密計算得到。其中,所述用戶第二標識信息可以為用戶唯一 ID。優(yōu)選地,所述功能調(diào)用模塊40將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口,當通過服務端對該認證數(shù)據(jù)的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。優(yōu)選地,為了保證數(shù)據(jù)傳輸過程中數(shù)據(jù)的完整性,所述功能調(diào)用模塊40還用于將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要計算,并將計算結果發(fā)送給服務端的相應功能接口,當通過服務端對該計算結果的驗證后,該客戶端調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。優(yōu)選地,為了降低獲取難度,所述時間戳獲取模塊10從服務端時間戳接口獲取所述時間戳。其中,所述服務端時間戳接口為服務端提供的專用接口。參照圖7,是本申請實施例所述一種基于數(shù)據(jù)完整性及保密性交互的服務器結構圖。所述服務器可以包括以下模塊時間戳發(fā)送模塊11,用于應客戶端請求發(fā)送時間戳到客戶端;校驗數(shù)據(jù)驗證模塊21,用于從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證;認證數(shù)據(jù)生成模塊31,用于驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端; 認證數(shù)據(jù)驗證模塊41,用于接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。優(yōu)選地,所述校驗數(shù)據(jù)驗證模塊21可以包括以下子模塊信息-摘要計算子模塊,用于對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算;比對子模塊,用于將計算結果與所述校驗數(shù)據(jù)進行比對,如果相同,則確認該客戶端合法;如果不同,則確認該客戶端非法。優(yōu)選地,如果該客戶端合法,則所述校驗數(shù)據(jù)驗證模塊21還可以包括超時判定子模塊,用于確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。 優(yōu)選地,所述認證數(shù)據(jù)生成模塊31可以包括第一加密計算子模塊,用于將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息;第二加密計算子模塊,用于將用戶第二標識信息、所述時間戳及第一加密信息進行第二次加密計算,并將第二次計算結果作為經(jīng)過加密的認證數(shù)據(jù)。優(yōu)選地,所述第一次加密計算可以為循環(huán)冗余校驗計算;所述第二次加密計算可以為RSA非對稱加密計算。優(yōu)選地,所述認證數(shù)據(jù)驗證模塊41可以包括以下子模塊解密子模塊,用于使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行相應解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息;加密計算子模塊,用于將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算;比對子模塊,用于將計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。優(yōu)選地,如果未被篡改,則所述認證數(shù)據(jù)驗證模塊41還可以包括超時判定子模塊,用于確認所述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。優(yōu)選地,如果對認證數(shù)據(jù)的驗證通過,則所述服務器還可以包括數(shù)據(jù)完整性驗證模塊51,用于對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要計算,并將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。對于上述客戶端和服務器的實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見圖4和圖5所示方法實施例的部分說明即可。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本申請實施例可以實施在任何支持圖形處理、互聯(lián)網(wǎng)內(nèi)容擷取和渲染的裝置(或多個裝置)上。這些裝置包括但不限于個人計算機、集群服務器、移動電話、工作站、嵌入式系統(tǒng)、游戲機、電視、機頂盒,或任何其它支持計算機圖形和內(nèi)容顯示的計算裝置。這些裝置可以包括但不限于擁有執(zhí)行和儲存指令的一個或多個處理器和存儲器的裝置。這些裝置可以包括軟件、固件和硬件。軟件可以包括一個或多個應用程序和操作系統(tǒng)。硬件可以包括但不限于處理器、存儲器及顯示器。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。以上對本申請所提供的一種基于數(shù)據(jù)完整性及保密性的交互方法及客戶端、服務器,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本申請的 限制。
權利要求
1.一種數(shù)據(jù)交互方法,其特征在于,包括 獲取來自服務端的時間戳; 將用戶第一標識信息、時間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端; 獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù); 使用所述認證數(shù)據(jù)訪問服務端。
2.根據(jù)權利要求I所述的方法,其特征在于,所述獲取經(jīng)過服務端加密的認證數(shù)據(jù),包括 通過服務端對所述校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù),其中所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù)。
3.根據(jù)權利要求I所述的方法,其特征在于,所述根據(jù)用戶第一標識信息和時間戳生成校驗數(shù)據(jù),包括 對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算,并將計算結果作為校驗數(shù)據(jù)。
4.根據(jù)權利要求I或3所述的方法,其特征在于 所述用戶第一標識信息包括用戶信息及用戶信息的驗證串。
5.根據(jù)權利要求I或3所述的方法,其特征在于 所述用戶第一標識信息在客戶端登錄后由服務端發(fā)送給該客戶端。
6.根據(jù)權利要求I所述的方法,其特征在于,所述使用所述認證數(shù)據(jù)訪問服務端,包括 將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口; 當通過服務端對該認證數(shù)據(jù)的驗證后,調(diào)用服務端的相應功能接口。
7.根據(jù)權利要求6所述的方法,其特征在于,所述使用所述認證數(shù)據(jù)訪問服務端,還包括 將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要計算,并將計算結果發(fā)送給服務端的相應功能接口; 當通過服務端對該計算結果的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。
8.根據(jù)權利要求I所述的方法,其特征在于所述用戶第二標識信息包括用戶ID。
9.一種數(shù)據(jù)交互方法,其特征在于,包括 應客戶端請求發(fā)送時間戳到客戶端; 從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證; 驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端; 接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。
10.根據(jù)權利要求9所述的方法,其特征在于,所述對所述校驗數(shù)據(jù)進行驗證,包括 對從客戶端接收的用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算;將計算結果與所述校驗數(shù)據(jù)進行比對,如果相同,則確認該客戶端合法;如果不同,則確認該客戶端非法。
11.根據(jù)權利要求10所述的方法,其特征在于,如果該客戶端合法,則所述對所述校驗數(shù)據(jù)進行驗證還包括 確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。
12.根據(jù)權利要求9所述的方法 ,其特征在于,所述生成經(jīng)過加密的認證數(shù)據(jù),包括 將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息; 將用戶第二標識信息、所述時間戳及第一加密信息進行第二次加密計算,并將第二次計算結果作為所述經(jīng)過加密的認證數(shù)據(jù)。
13.根據(jù)權利要求12所述的方法,其特征在于 所述第一次加密計算使用循環(huán)冗余校驗計算; 所述第二次加密計算使用簽名加密計算、對稱加密計算或非對稱加密計算。
14.根據(jù)權利要求12所述的方法,其特征在于,所述對所述認證數(shù)據(jù)進行驗證,包括 使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息; 將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算,并將第一次加密的計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。
15.根據(jù)權利要求14所述的方法,其特征在于,如果未被篡改,則還包括 確認所述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。
16.根據(jù)權利要求9或15所述的方法,其特征在于,如果對認證數(shù)據(jù)的驗證通過,則還包括 對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要計算; 將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。
17.一種數(shù)據(jù)交互的客戶端,其特征在于,包括 時間戳獲取模塊,用于獲取來自服務端的時間戳; 校驗數(shù)據(jù)生成模塊,用于將用戶第一標識信息、時間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端; 認證數(shù)據(jù)獲取模塊,用于獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù); 功能調(diào)用模塊,用于使用所述認證數(shù)據(jù)訪問服務端。
18.根據(jù)權利要求17所述的客戶端,其特征在于 所述認證數(shù)據(jù)獲取模塊當通過服務端對校驗數(shù)據(jù)的驗證后,從服務端獲取經(jīng)過加密的認證數(shù)據(jù)。
19.根據(jù)權利要求17所述的客戶端,其特征在于所述校驗數(shù)據(jù)生成模塊對用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算,并將計算結果作為校驗數(shù)據(jù)。
20.根據(jù)權利要求17或19所述的客戶端,其特征在于 所述用戶第一標識信息包括用戶信息及用戶信息的驗證串。
21.根據(jù)權利要求17或19所述的客戶端,其特征在于 所述用戶第一標識信息在客戶端登錄后由服務端發(fā)送給該客戶端。
22.根據(jù)權利要求17所述的客戶端,其特征在于 所述功能調(diào)用模塊將所述認證數(shù)據(jù)發(fā)送給服務端的相應功能接口,當通過服務端對該認證數(shù)據(jù)的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。
23.根據(jù)權利要求22所述的客戶端,其特征在于 所述功能調(diào)用模塊還用于將要傳輸?shù)牟僮鲾?shù)據(jù)結合所述時間戳進行信息-摘要計算,并將計算結果發(fā)送給服務端的相應功能接口,當通過服務端對該計算結果的驗證后,調(diào)用服務端的相應功能接口執(zhí)行數(shù)據(jù)操作。
24.根據(jù)權利要求17所述的客戶端,其特征在于 所述用戶第二標識信息包括用戶ID。
25.一種數(shù)據(jù)交互的服務器,其特征在于,包括 時間戳發(fā)送模塊,用于應客戶端請求發(fā)送時間戳到客戶端; 校驗數(shù)據(jù)驗證模塊,用于從客戶端接收包含用戶第一標識信息和時間戳的校驗數(shù)據(jù),以及所述用戶第一標識信息和時間戳,并對所述校驗數(shù)據(jù)進行驗證; 認證數(shù)據(jù)生成模塊,用于驗證通過后,生成經(jīng)過加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù),并將所述認證數(shù)據(jù)發(fā)送給客戶端; 認證數(shù)據(jù)驗證模塊,用于接收客戶端發(fā)來的認證數(shù)據(jù),并對所述認證數(shù)據(jù)進行驗證。
26.根據(jù)權利要求25所述的服務器,其特征在于,所述校驗數(shù)據(jù)驗證模塊包括 信息-摘要計算子模塊,用于對從客戶端接收的用戶第一標識信息、時間戳及時間戳減I的值進行信息-摘要計算; 比對子模塊,用于將計算結果與所述校驗數(shù)據(jù)進行比對,如果相同,則確認該客戶端合法;如果不同,則確認該客戶端非法。
27.根據(jù)權利要求26所述的服務器,其特征在于,如果該客戶端合法,則所述校驗數(shù)據(jù)驗證模塊還包括 超時判定子模塊,用于確認客戶端發(fā)來的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。
28.根據(jù)權利要求25所述的服務器,其特征在于,所述認證數(shù)據(jù)生成模塊包括 第一加密計算子模塊,用于將用戶第二標識信息和所述時間戳進行第一次加密計算,并將第一次計算結果作為第一加密信息; 第二加密計算子模塊,用于將用戶第二標識信息、所述時間戳及第一加密信息進行第二次加密計算,并將第二次計算結果作為所述經(jīng)過加密的認證數(shù)據(jù)。
29.根據(jù)權利要求28所述的服務器,其特征在于 所述第一次加密計算使用循環(huán)冗余校驗計算; 所述第二次加密計算使用簽名加密計算、對稱加密計算或非對稱加密計算。
30.根據(jù)權利要求28所述的服務器,其特征在于,所述認證數(shù)據(jù)驗證模塊包括 解密子模塊,用于使用對應的解密計算對客戶端發(fā)來的認證數(shù)據(jù)進行相應解密,解密后獲得用戶第二標識信息、所述時間戳及所述第一加密信息; 加密計算子模塊,用于將解密獲得的用戶第二標識信息和所述時間戳進行所述的第一次加密計算; 比對子模塊,用于將第一次加密的計算結果與所述第一加密信息進行比對,如果相同,則確認所述第一加密信息未被篡改;如果不同,則確認所述第一加密信息已被篡改。
31.根據(jù)權利要求30所述的服務器,其特征在于,如果未被篡改,則所述認證數(shù)據(jù)驗證模塊還包括 超時判定子模塊,用于確認所述解密獲得的時間戳是否在有效時間范圍內(nèi),如果是,則驗證通過;如果超時,則驗證不通過。
32.根據(jù)權利要求25或31所述的服務器,其特征在于,如果對認證數(shù)據(jù)的驗證通過,則還包括 數(shù)據(jù)完整性驗證模塊,用于對客戶端傳來的操作數(shù)據(jù)和所述時間戳進行信息-摘要計算,并將計算結果與客戶端傳來的信息-摘要計算結果進行比對,如果相同,則所述操作數(shù)據(jù)在傳輸過程中未被篡改;如果不同,則所述操作數(shù)據(jù)在傳輸過程中已被篡改。
全文摘要
本申請?zhí)峁┝艘环N數(shù)據(jù)交互方法及客戶端、服務器,以解決使用HTTPS技術無法解決請求的重放與客戶端計算機安全的問題。所述方法包括獲取來自服務端的時間戳;將用戶第一標識信息、時間戳和根據(jù)所述用戶第一標識信息、時間戳生成的校驗數(shù)據(jù)發(fā)送到服務端;獲取經(jīng)過服務端加密的認證數(shù)據(jù),所述認證數(shù)據(jù)包含對該時間戳和用戶第二標識信息生成的加密數(shù)據(jù);使用所述認證數(shù)據(jù)訪問服務端。本申請結合使用HTTPS加密和改進的MD5,同時采用客戶端和服務端兩處加密,有效規(guī)避了在“端”及“通路”上篡改和偽造數(shù)據(jù)的可能性。而且,通過時間戳來使用有效時間對接口調(diào)用進行時效性控制,有效地規(guī)避了對用戶請求錄制并大量重放導致數(shù)據(jù)破壞的危險。
文檔編號H04L29/08GK102624740SQ20121009132
公開日2012年8月1日 申請日期2012年3月30日 優(yōu)先權日2012年3月30日
發(fā)明者任寰, 吳浩, 張鵬翼 申請人:奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1