專利名稱:服務(wù)請求的發(fā)送/處理方法和裝置、客戶端及服務(wù)端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及服務(wù)請求的發(fā)送/處理方法、服務(wù)請求的發(fā)送/處理裝置、客戶端及服務(wù)端。
背景技術(shù):
目前,大型企業(yè)網(wǎng)之間的應(yīng)用集成服務(wù)日益復(fù)雜,傳統(tǒng)的點對點式的系統(tǒng)集成顯得捉襟見肘。為了解決這一問題,人們提出了企業(yè)服務(wù)總線(enterprise service bus,簡稱ESB)的概念,即組成企業(yè)網(wǎng)的各個子系統(tǒng)以類似于接插件的方式接入一個公共的信息平臺,彼此之間相對獨立,由調(diào)度引擎進行統(tǒng)一的數(shù)據(jù)調(diào)度,以高效整合數(shù)據(jù)和業(yè)務(wù)流程。按照著名的IT研究與顧問咨詢機構(gòu)Gartner公司所給的定義,企業(yè)服務(wù)總線是一種體系結(jié)構(gòu),利用企業(yè)的Web服務(wù)、消息中間件、智能路由和轉(zhuǎn)換技術(shù)實現(xiàn),是傳統(tǒng)中間技術(shù)與XML、 Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物,ESB提供了網(wǎng)絡(luò)中最基本的連接中樞。企業(yè)服務(wù)總線技術(shù)的目標是以標準化的方式實現(xiàn)企業(yè)應(yīng)用集成,完成企業(yè)間應(yīng)用系統(tǒng)的互聯(lián)、互通和互操作,其中的標準化工作包括連接器標準化、管理標準化、業(yè)務(wù)消息標準化和消息標準化等。在實際應(yīng)用中,企業(yè)服務(wù)總線與客戶端之間若要以請求報文和應(yīng)答報文的形式進行消息交換時,為了保證消息安全,需要對消息進行加密,常用的加密算法包括對稱加密算法和非對稱加密算法。其中,對稱加密算法中由于使用的密鑰只有一個,收發(fā)端雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密,因此,對稱加密算法的加解密效率較高,但一旦該密鑰被盜取或泄漏,將使安全性降低。而非對稱加密算法由于需要兩個密鑰公開密鑰和私有密鑰。其中,公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公開密鑰才能解密。因此,相比于對稱加密算法,非對稱加密算法的安全性更高,但是加解密效率較低。無論是采用對稱加密算法還是非對稱加密算法,在客戶端向企業(yè)服務(wù)總線發(fā)送請求報文時都可能會出現(xiàn)服務(wù)請求重演的問題,而企業(yè)服務(wù)總線需要分辨并摒棄重演的服務(wù)請求。其中,所述服務(wù)請求的重演是指客戶端實際上只發(fā)送了一次請求報文,且該請求報文已經(jīng)過序列化處理以及加密處理,但在傳輸過程中,該加密后的請求報文被該客戶端以外的第三方應(yīng)用截獲后再次向企業(yè)服務(wù)總線發(fā)送服務(wù)請求,從而造成加密后的請求報文重發(fā)問題?,F(xiàn)有技術(shù)中,在消息采用非對稱加密算法加密時,通常利用隨機密鑰來避免服務(wù)請求重演問題。具體地,在客戶端生成隨機密鑰,采用非對稱加密算法對該隨機密鑰進行加密生成加密后的隨機密鑰,并利用該隨機密鑰對經(jīng)過序列化處理的請求報文進行加密生成加密后序列化信息,然后將加密后的隨機密鑰和加密后的序列化信息發(fā)送至企業(yè)服務(wù)總線。由于在客戶端是通過隨機密鑰對請求報文進行加密的,且每次生成的隨機密鑰都不相同,因此如果企業(yè)服務(wù)總線第二次收到相同的加密后的請求報文,即認為該請求報文發(fā)生重演,從而摒棄重演的請求報文。但是,在實際應(yīng)用中,服務(wù)提供者向企業(yè)服務(wù)總線提供的服務(wù)與服務(wù)請求者適于處理的服務(wù)通常是采用不同的編程語言實現(xiàn)的,在處理這種跨語言服務(wù)時,非對稱加密算法會出現(xiàn)不通用的問題。雖然采用對稱加密算法不會出現(xiàn)跨語言服務(wù)不通用的問題,但是現(xiàn)有技術(shù)中對于采用對稱加密算法時的服務(wù)請求重演問題,還沒有較好的解決方案。更多關(guān)于企業(yè)服務(wù)總線與客戶端之間請求報文和應(yīng)答報文的技術(shù)方案可以參考公開號為CN 101184056A,發(fā)明名稱為“一種分布式企業(yè)服務(wù)總線消息交換方法”中國專利申請文件。
發(fā)明內(nèi)容
本發(fā)明解決的問題是在客戶端和服務(wù)端采用對稱加密算法對服務(wù)請求進行加解密時,避免請求報文重演問題,以提高服務(wù)端與客戶端信息傳遞的安全性。為解決上述問題,本發(fā)明實施例提供了一種服務(wù)請求的發(fā)送方法,包括確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間;基于所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息;在原始密鑰中加入所述 隨機值以形成新密鑰;利用所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息;將所述加密服務(wù)請求、所述加密時間信息和所述時間序列發(fā)送至服務(wù)端??蛇x地,所述時間信息還包括時間差值;所述確定客戶端發(fā)送服務(wù)請求的時間信息包括根據(jù)所述當前時間和所述時間差值確定所述時間信息,其中所述時間差值是由所述服務(wù)端反饋獲得。可選地,所述基于所述時間信息分別生成時間序列和隨機值包括通過預(yù)設(shè)算法對所述時間信息進行處理以確定所述時間序列;依照預(yù)設(shè)規(guī)則對所述時間信息或者對所述時間序列進行處理以確定所述隨機值??蛇x地,所述服務(wù)請求包括請求對象,所述請求對象已經(jīng)過序列化處理??蛇x地,所述序列化處理包括二進制序列化處理、JSON序列化處理以及可擴展標記語言序列化處理中的任一種。可選地,所述服務(wù)端為企業(yè)服務(wù)總線?;谏鲜龇?wù)請求的發(fā)送方法,本發(fā)明實施例還提供了一種服務(wù)請求的發(fā)送裝置,包括時間確定裝置,用于確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間;信息生成裝置,用于基于所述時間確定裝置確定的所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息;密鑰形成裝置,用于在原始密鑰中加入所述信息生成裝置生成的所述隨機值以形成新密鑰;加密裝置,用于利用所述密鑰形成裝置形成的所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息;發(fā)送裝置,用于將經(jīng)由所述加密裝置生成的所述加密服務(wù)請求和所述加密時間信息以及經(jīng)由所述信息生成裝置生成的所述時間序列發(fā)送至服務(wù)端。本發(fā)明實施例還提供了一種客戶端,包括上述服務(wù)請求的發(fā)送裝置。本發(fā)明實施例還提供了一種服務(wù)請求的處理方法,包括接收采用上述服務(wù)請求的發(fā)送方法發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列;根據(jù)所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息;若所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息;若所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求??蛇x地,還包括將所述時間差值反饋至所述客戶端??蛇x地,還包括若所述發(fā)送時間信息與接收時間信息的時間差值不在預(yù)設(shè)時間范圍內(nèi),則確定所述服務(wù)請求無效??蛇x地,還包括若所述解密時間信息與所述發(fā)送時間信息不匹配,則確定所述服務(wù)請求無效。可選地,所述根據(jù)所述時間序列確定發(fā)送時間信息包括通過所述預(yù)設(shè)算法的逆算法對所述時間序列進行處理以確定所述發(fā)送時間信息。
·
可選地,所述根據(jù)所述時間序列確定所述新密鑰包括依照所述預(yù)設(shè)規(guī)則對所述時間序列進行處理以得到所述隨機值;在原始密鑰中加入所述隨機值以確定所述新密鑰。可選地,所述服務(wù)端為企業(yè)服務(wù)總線。可選地,所述預(yù)設(shè)時間范圍為1-3分鐘?;谏鲜龇?wù)請求的處理方法,本發(fā)明實施例還提供了一種服務(wù)請求的處理裝置,包括請求接收裝置,用于接收采用上述服務(wù)請求的發(fā)送裝置發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列;信息處理裝置,用于根據(jù)所述請求接收裝置接收到的所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息;信息解密裝置,用于在所述信息處理裝置處理得到的所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息;請求解密裝置,用于在所述信息解密裝置生成的所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。本發(fā)明實施例還提供了一種服務(wù)端,包括上述服務(wù)請求的處理裝置。與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案具有以下有益效果根據(jù)本技術(shù)方案提供的服務(wù)請求的發(fā)送方法及發(fā)送裝置,在客戶端發(fā)送服務(wù)請求時,首先確定時間信息,其中時間信息至少包括當前時間。進一步地,對所述時間信息進行處理生成時間序列和隨機值,其中隨機值將加入到原始密鑰中作為原始密鑰的隨機部分,從而形成新密鑰。然后,利用該新密鑰分別對服務(wù)請求和時間信息進行加密,并將加密服務(wù)請求、加密時間信息和時間序列一起發(fā)送至服務(wù)端。這樣在利用對稱加密算法對服務(wù)請求進行加密的基礎(chǔ)上,由于在原始密鑰中加入了與時間信息相關(guān)的隨機值后形成新密鑰,那么不同時間從客戶端發(fā)出的服務(wù)請求通過該新密鑰加密后形成的加密服務(wù)請求都不相同,從而在服務(wù)端處理服務(wù)請求時,基于與時間因素相關(guān)的信息可以避免服務(wù)請求重演的問題,提高信息傳輸?shù)陌踩?。根?jù)本技術(shù)方案提供的服務(wù)請求的處理方法和處理裝置,接收客戶端發(fā)送的加密服務(wù)請求、加密時間信息和時間序列,根據(jù)時間序列可以確定客戶端加密所使用的新密鑰和客戶端發(fā)送服務(wù)請求的發(fā)送時間信息。然后,服務(wù)端通過對比所述發(fā)送時間信息與服務(wù)端接收到服務(wù)請求的接收時間信息之間的時間差值是否在預(yù)設(shè)時間范圍內(nèi)確定該服務(wù)請求是否發(fā)生重傳,即服務(wù)請求是否重演,從而提高信息傳輸?shù)陌踩?。然后,在確定該服務(wù)請求沒有重演時,利用所述新密鑰解密所述加密時間信息生成解密時間信息,通過比較解密時間信息與所述發(fā)送時間信息是否匹配確定服務(wù)請求在傳輸過程中是否被篡改,進一步提高了信息傳輸?shù)陌踩浴_M一步地,服務(wù)端還將所確定的時間差值反饋至客戶端,當客戶端下次向服務(wù)端發(fā)送服務(wù)請求時,則將根據(jù)該時間差值與發(fā)送服務(wù)請求的當前時間來確定時間信息,這樣可以保持客戶端與服務(wù)端的時間同步。
圖I是本發(fā)明的一種服務(wù)請求的發(fā)送方法的具體實施方式
的流程示意圖;圖2是本發(fā)明的一種服務(wù)請求的發(fā)送裝置的具體實施例的結(jié)構(gòu)示意圖;圖3是本發(fā)明的一種服務(wù)請求的處理方法的具體實施方式
的流程示意圖; 圖4是本發(fā)明的一種服務(wù)請求的處理裝置的具體實施例的結(jié)構(gòu)示意圖。
具體實施例方式針對現(xiàn)有技術(shù)的問題,發(fā)明人經(jīng)過研究,提供了一種服務(wù)請求的發(fā)送方法、服務(wù)請求的發(fā)送裝置以及客戶端。相應(yīng)地,還提供了一種服務(wù)請求的處理方法、服務(wù)請求的處理裝置以及服務(wù)端。本技術(shù)方案解決了在客戶端和服務(wù)端采用對稱加密算法對服務(wù)請求進行加解密時,避免請求報文重演的問題,以提高服務(wù)端與客戶端的信息傳遞的安全性。為使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式
做詳細的說明。在以下描述中闡述了具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實施方式
的限制。如圖I所示的是本發(fā)明的一種服務(wù)請求的發(fā)送方法的具體實施方式
的流程示意圖。參考圖1,所述服務(wù)請求的發(fā)送方法包括步驟Sll :確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間;步驟S12 :基于所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息;步驟S13 :在原始密鑰中加入所述隨機值以形成新密鑰;步驟S14 :利用所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息;步驟S15 :將所述加密服務(wù)請求、所述加密時間信息和所述時間序列發(fā)送至服務(wù)端。在具體實施例中,如步驟Sll所述,當客戶端作為服務(wù)消費者需要向服務(wù)端發(fā)送服務(wù)請求時,確定發(fā)送服務(wù)請求的時間信息。具體來說,當客戶端是首次向服務(wù)端發(fā)出服務(wù)請求,只需要根據(jù)客戶端的當前時間確定所述時間信息即可,這是因為客戶端與服務(wù)端尚未作時間同步,客戶端并不知道服務(wù)端的時間信息,因此只能確定本地的當前時間。進一步地,當客戶端再次向服務(wù)端發(fā)出服務(wù)請求,所述時間信息可能還包括時間差值,因為當客戶端第一次向服務(wù)端發(fā)出服務(wù)請求后,服務(wù)端將根據(jù)接收到該服務(wù)請求的時間與客戶端發(fā)送服務(wù)的時間進行對比確定時間差值,并將該時間差值反饋至客戶端。也就是服務(wù)端與客戶端作時間同步,因此當客戶端再次向服務(wù)端發(fā)出服務(wù)請求時,將根據(jù)當前時間和所述時間差值來確定所述時間信息。這樣客戶端發(fā)送服務(wù)請求的時間(即發(fā)送時間)與服務(wù)端接收到該服務(wù)請求的時間(即接收時間)近似相同,因為發(fā)送時間與接收時間之間的差值基本上就是服務(wù)請求的傳輸時間,而在網(wǎng)絡(luò)狀態(tài)較好的情況下傳輸速度也較快,所需的傳輸時間相應(yīng)也很短。在本實施例中,所述服務(wù)請求包括請求對象,且該請求對象已經(jīng)過序列化處理。本領(lǐng)域技術(shù)人員理解,所述序列化處理是指獲取該請求對象并將其狀態(tài)信息轉(zhuǎn)換為可存儲或可傳輸形式的過程。在進行序列化處理期間,所述請求對象將其當前狀態(tài)寫入到臨時或持久性存儲區(qū),以便后續(xù)可以通過從存儲區(qū)中讀取或反序列化該請求對象的狀態(tài),重新創(chuàng)建該請求對象。其中,所述序列化處理可以是二進制序列化處理、也可以是JS0N( JavaScriptObject Notation)序列化處理、還可以是可擴展標記語言(XML)序列化處理。上述序列化處理的具體過程可以采用現(xiàn)有技術(shù)的技術(shù)方案來實現(xiàn),在此不再贅述。 如步驟S12所述,基于所述時間信息分別生成時間序列和隨機值。具體地,根據(jù)步驟S11所確定的時間信息是普通的時間表述方式,例如,3:20p. m、15:20等常用的表示時間的形式。由于客戶端后續(xù)需要將所述時間信息發(fā)送至服務(wù)端,那么為了保證傳輸過程的安全性,需要對所述時間信息進行處理。這個處理過程相當于是對所述時間信息進行加密,將原先的時間信息經(jīng)過預(yù)設(shè)的處理方式加密后形成一段字符串。在本實施例中,將通過預(yù)設(shè)算法對所述時間信息進行處理以確定時間序列。在一個具體實例中,首先將一天的時間以分鐘為單位進行劃分,從而分成1440 (即24X60)分鐘;然后,設(shè)定一個起始點,例如,以6:00作為起始點,即6:00的序列為0001、6:01的序列
為0002........5:59的序列為1440,依此類推,從而形成一組時間序列,根據(jù)上述預(yù)設(shè)算
法就可以將所確定的時間信息轉(zhuǎn)換成該組時間序列中對應(yīng)的具體時間序列。但在實際應(yīng)用中,并不限于上述處理方式,所述預(yù)設(shè)算法可以由客戶端自定義,例如,將一天的時間以30秒為單位進行劃分,或者通過調(diào)整起始點的設(shè)置等都可以改變所述時間信息對應(yīng)的時間序列,在此不再贅述。需要說明的是,上述預(yù)設(shè)算法在客戶端與服務(wù)端之間是一致的,但除了該客戶端和服務(wù)端以外的第三方應(yīng)用無法獲知該預(yù)設(shè)算法,這樣也就提高了時間序列在傳輸過程中的安全性。因為即使該時間序列被第三方應(yīng)用截獲,由于第三方應(yīng)用并不知曉該預(yù)設(shè)算法,所以無法根據(jù)該時間序列推算出相對應(yīng)的具體時間。進一步地,客戶端還將根據(jù)所述時間信息確定隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息。在本實施例中,客戶端可以依照預(yù)設(shè)規(guī)則對所述時間信息進行處理以確定所述隨機值,例如,首先基于一天的時間生成一組隨機值序列,例如以分鐘為單位進行劃分,即該組隨機序列由1440 (24X60)分鐘對應(yīng)的隨機數(shù)值組成,例如0:00對應(yīng)的隨機數(shù)值
為abc0001、0:01對應(yīng)的隨機數(shù)值為abc0002、......>23:59對應(yīng)的隨機數(shù)值為abcl440 ;
然后,在相鄰兩個隨機數(shù)值之間設(shè)置一個預(yù)定值,每個預(yù)定值對應(yīng)一個順序號,該順序號可以是根據(jù)序號順序?qū)?yīng)一個質(zhì)數(shù)。例如,隨機數(shù)值abcOOOl和隨機數(shù)值abc0002之間的預(yù)定值為1000,對應(yīng)的順序號為質(zhì)數(shù)2 ;隨機數(shù)值abc0002和隨機數(shù)值abc0003之間
的預(yù)定值為1001,對應(yīng)的順序號為質(zhì)數(shù)3,......,依此類推。這樣所述隨機值序列為
abc00012abc00023abc00035.......因此,根據(jù)當前的時間信息即可從所述隨機值序列中得到相應(yīng)的隨機數(shù)值和順序號,并將隨機數(shù)值和順序號作為所述隨機值,例如所述時間信息為0:05,則對應(yīng)于該隨機值序列的隨機值為llabc0006。如果所述時間信息是精確到秒的時間,則可以根據(jù)四舍五入的原則確定其對應(yīng)的隨機值,例如0:0539對應(yīng)于該隨機序列的隨機值為13abc0007,0:0515對應(yīng)于該隨機序列的隨機值為llabc0006。在其他實施例中,客戶端也可以依照預(yù)設(shè)規(guī)則對所述時間序列進行處理以確定所述隨機值,例如,可以直接將上文通過預(yù)設(shè)算法對所述時間信息進行處理后得到的時間序列作為所述隨機值。又例如,也可以將每個時間序列對應(yīng)的一個質(zhì)數(shù)作為隨機值,具體來說,根據(jù)上文所生成的時間序列一天的時間中,6:00的序列為0001、6:01的序列為
0002、......>5:59的序列為1440,進一步地,按照質(zhì)數(shù)的順序?qū)⑿蛄械捻樞蜣D(zhuǎn)換成相應(yīng)的
質(zhì)數(shù),0001對應(yīng)的質(zhì)數(shù)為2、0002對應(yīng)的質(zhì)數(shù)為3、0003對應(yīng)的質(zhì)數(shù)為5、0004對應(yīng)的質(zhì)數(shù)為
7.......,依次類推。因此,若所述時間信息為6:03依照預(yù)設(shè)規(guī)則處理后生成的隨機值為
7。同樣,如果所述時間信息是精確到秒的時間,則可以根據(jù)四舍五入的原則確定其對應(yīng)的隨機值,例如,6:03%對應(yīng)的隨機值為7,而6:0355對應(yīng)的隨機值為11。當然在實際應(yīng)用中,所述預(yù)設(shè)算法和預(yù)設(shè)規(guī)則并不限于上述實施例,本領(lǐng)域技術(shù)人員還可以采用其他的算法或規(guī)則對所述時間信息進行處理以生成時間序列和隨機值,在此不再贅述。
也就是說,所述隨機值是依照預(yù)設(shè)規(guī)則隨機生成的一組字符串,該字符串中可以包括大小寫字母、數(shù)字、字符等,且該字符串的位數(shù)可以根據(jù)預(yù)設(shè)規(guī)則的不同而變化。由于所述隨機值是基于時間信息(或者時間序列)經(jīng)過處理后生成的字符串,因此所述隨機值是關(guān)聯(lián)于時間信息。在實際應(yīng)用中,所述預(yù)設(shè)規(guī)則是由客戶端自行設(shè)置的,同樣所述預(yù)設(shè)規(guī)則在客戶端與服務(wù)端之間是一致的,但除了該客戶端和服務(wù)端以外的第三方應(yīng)用無法獲知該預(yù)設(shè)規(guī)則。如步驟S13所述,在原始密鑰中加入所述隨機值以形成新密鑰。具體來說,本實施例是基于對已經(jīng)過序列化處理的請求對象采用對稱加密算法進行加密的,其中所述原始密鑰就是客戶端與服務(wù)端預(yù)先商定的密鑰。本步驟在所述原始密鑰的基礎(chǔ)上加入所述隨機值以形成新密鑰。例如,通常所述原始密鑰是由一組字符串組成,所述隨機值可以拼接在該字符串的尾部,也可以拼接在該字符串的頭部,或者還可以將所述隨機值插在所述原始密鑰中某個位置,例如,將所述隨機值所述原始密鑰中第2位字符和第3位字符之間等。在實際應(yīng)用中,例如,客戶端可以預(yù)先設(shè)定一種在所述原始密鑰中加入隨機值的方式,即所有的隨機值都按照預(yù)先設(shè)定的這種方式加入到所述原始密鑰中。又例如,客戶端也可以預(yù)先設(shè)定多種在所述原始密鑰中加入隨機值的方式,每次隨機選擇其中一種方式將所述隨機值加入所述原始密鑰中。由于所述隨機值是關(guān)聯(lián)于時間信息的字符串,那么在原始密鑰中加入所述隨機值后所形成的新密鑰也是關(guān)聯(lián)于時間信息的字符串??梢钥闯?,實際上這是一種在對稱加密算法中采用動態(tài)密鑰的方式,而該動態(tài)密鑰是隨時間信息的不同而動態(tài)變化的密鑰。如步驟S14所述,利用所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息。與現(xiàn)有技術(shù)不同,現(xiàn)有采用對稱加密算法時所采用的加密密鑰是預(yù)先與服務(wù)端商定的固定密鑰,即每次加密時所采用的加密密鑰都相同,而在本步驟中,采用的新密鑰是與時間信息相關(guān)聯(lián)的動態(tài)密鑰,由于每次發(fā)送服務(wù)請求的時間不一致,因此每次生成的新密鑰也隨時間的變化而不同。進一步地,利用加密算法和所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息。其中,所述服務(wù)請求包括請求對象,且該請求對象已經(jīng)過序列化處理以生成序列化對象。在本實施例中,分別對所述服務(wù)請求和時間信息進行加密時所采用加密算法可以是一致的,也可以采用不同的加密算法分別對所述服務(wù)請求和時間信息進行加密,但所采用的密鑰都是上述步驟S13中生成的所述新密鑰。其中,所述加密算法可以是DES加密算法、RSA加密算法、MD5加密算法等,但實際應(yīng)用中并不限于此。如步驟S15所述,將所述加密服務(wù)請求、所述加密時間信息和所述時間序列發(fā)送至服務(wù)端。在本實施例中,所述服務(wù)端是企業(yè)服務(wù)總線,本領(lǐng)域技術(shù)人員知曉,在所述企業(yè)服務(wù)總線上集成了由服務(wù)提供者提供的多種服務(wù),服務(wù)消費者(本實施例中為客戶端)可以根據(jù)需求向企業(yè)服務(wù)總線發(fā)出服務(wù)請求,企業(yè)服務(wù)總線接收到該服務(wù)請求后,調(diào)用相對應(yīng)服務(wù)提供者所提供的服務(wù),由服務(wù)提供者響應(yīng)該服務(wù)請求并經(jīng)由企業(yè)服務(wù)總線反饋至客戶端。與現(xiàn)有技術(shù)不同,在本實施例中,由于在對服務(wù)請求進行加密處理過程中引入了時間因素(即所述時間信息),并且在服務(wù)端需要基于時間因素對接收到的服務(wù)請求進行驗證以確定該服務(wù)請求是否有效。因此,在向服務(wù)端發(fā)出服務(wù)請求時,需要將生成的所述加密服務(wù)請求、所述加密時間信息和所述時間序列一起發(fā)送至服務(wù)端。本領(lǐng)域技術(shù)人員可以采用現(xiàn)有的技術(shù)方案來實現(xiàn)上述發(fā)送過程,在此不再贅述。需要說明的是,在實際應(yīng)用中,通常客戶端在向服務(wù)端發(fā)送服務(wù)請求的同時還需發(fā)送該客戶端的身份信息,例如,客戶端名稱、標識號以及一些相關(guān)的訪問權(quán)限信息等。月艮務(wù)端將根據(jù)接收到的身份信息對該客戶端進行驗證以確定該客戶端是否為合法的客戶端、發(fā)送的服務(wù)請求是否在其訪問權(quán)限范圍內(nèi)等,在此不再贅述。進一步地,在實際應(yīng)用中,通常會有多個不同的客戶端向服務(wù)端發(fā)送服務(wù)請求。根據(jù)本發(fā)明實施例,每個客戶端可以分別設(shè)定不同的預(yù)設(shè)算法對時間信息進行處理以生成時間序列,也可以分別設(shè)定不同的預(yù)設(shè)規(guī)則對時間信息或時間序列進行處理以生成隨機值。相應(yīng)地,在服務(wù)端則需要分別存儲不同客戶端所設(shè)定的預(yù)設(shè)算法和預(yù)設(shè)規(guī)則的信息,并將這些信息與各個客戶端的身份信息相關(guān)聯(lián)。例如,在服務(wù)端可以通過設(shè)置信息表來存儲各個客戶端的身份信息以及該客戶端設(shè)定的預(yù)設(shè)算法和預(yù)設(shè)規(guī)則,并通過客戶端的標識號來關(guān)聯(lián)每個客戶端的身份信息、設(shè)定的預(yù)設(shè)算法以及預(yù)設(shè)規(guī)則。基于上述服務(wù)請求的發(fā)送方法,本發(fā)明實施例還提供了一種服務(wù)請求的發(fā)送裝置,上文所述的客戶端包括所述服務(wù)請求的發(fā)送裝置。如圖2所示的是本發(fā)明的一種服務(wù)請求的發(fā)送裝置的具體實施例的結(jié)構(gòu)示意圖。參考圖2,所述服務(wù)請求的發(fā)送裝置I包括時間確定裝置11,用于確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間;信息生成裝置12,用于基于所述時間確定裝置11確定的所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息;密鑰形成裝置13,用于在原始密鑰中加入所述信息生成裝置12生成的所述隨機值以形成新密鑰;加密裝置14,用于利用所述密鑰形成裝置13形成的所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息;發(fā)送裝置15,用于將經(jīng)由所述加密裝置生成的所述加密服務(wù)請求和所述加密時間信息以及經(jīng)由所述信息生成裝置生成的所述時間序列發(fā)送至服務(wù)端。在具體實施例中,所述服務(wù)請求的發(fā)送裝置I需要向服務(wù)端發(fā)出服務(wù)請求時,由所述時間確定裝置11確定發(fā)送服務(wù)請求的時間信息。在所述服務(wù)請求的發(fā)送裝置I首次向服務(wù)端發(fā)出服務(wù)請求時,所述時間確定裝置11只需要根據(jù)客戶端的當前時間確定所述時間信息即可;而在所述服務(wù)請求的發(fā)送裝置I再次向服務(wù)端發(fā)出服務(wù)請求時,所述時間確定裝置11用于根據(jù)時間差值和客戶端的當前時間來確定所述時間信息,其中所述時間差值是由所述服務(wù)端反饋獲得。進一步地,在本實施例中,所述服務(wù)請求包括請求對象,且該請求對象已經(jīng)過序列化處理。具體地,在所述服務(wù)請求的發(fā)送裝置I中還可以設(shè)置相應(yīng) 的序列化處理裝置(圖2中未示出)對請求對象進行序列化處理。其中,所述序列化處理可以是二進制序列化處理、也可以是JSON (JavaScript Object Notation)序列化處理、還可以是可擴展標記語言(XML)序列化處理。所述信息生成裝置12基于所述時間確定裝置11確定的所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息。在本實施例中,所述信息生成裝置12具體包括第一信息生成裝置121,用于通過預(yù)設(shè)算法對所述時間信息進行處理以確定所述時間序列;第二信息生成裝置122,用于依照預(yù)設(shè)規(guī)則對所述時間信息或者對所述時間序列進行處理以確定所述隨機值。其中,所述預(yù)設(shè)算法和預(yù)設(shè)規(guī)則都是由客戶端自定義設(shè)置,需要說明的是,上述預(yù)設(shè)算法和預(yù)設(shè)規(guī)則在客戶端與服務(wù)端之間是一致的,但除了該客戶端和服務(wù)端以外的第三方應(yīng)用無法獲知該預(yù)設(shè)算法和預(yù)設(shè)規(guī)則,這樣也就提高了時間序列在傳輸過程中的安全性。因為即使該時間序列被第三方應(yīng)用截獲,由于第三方應(yīng)用并不知曉該預(yù)設(shè)算法,所以無法根據(jù)該時間序列推算出相對應(yīng)的具體時間。所述密鑰形成裝置13在原始密鑰中加入所述信息生成裝置12生成的所述隨機值以形成新密鑰。本實施例是基于對已經(jīng)過序列化處理的請求對象采用對稱加密算法進行加密的,其中所述原始密鑰就是客戶端與服務(wù)端預(yù)先商定的密鑰。所述密鑰形成裝置13就是在所述原始密鑰的基礎(chǔ)上加入所述隨機值以形成新密鑰。在實際應(yīng)用中,所述密鑰形成裝置13可以預(yù)先設(shè)定一種在所述原始密鑰中加入隨機值的方式,即所有的隨機值都按照預(yù)先設(shè)定的這種方式加入到所述原始密鑰中。所述密鑰形成裝置13也可以預(yù)先設(shè)定多種在所述原始密鑰中加入隨機值的方式,每次隨機選擇其中一種方式將所述隨機值加入所述原始S鑰中。所述加密裝置14利用所述密鑰形成裝置13形成的所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息。與現(xiàn)有技術(shù)不同,在本實施例中,所采用的新密鑰是與時間信息相關(guān)聯(lián)的動態(tài)密鑰,所述服務(wù)請求的發(fā)送裝置I每次發(fā)送服務(wù)請求的時間不一致,所述密鑰形成裝置13形成的新密鑰也隨時間的變化而不同。進一步地,所述加密裝置14分別對所述服務(wù)請求和時間信息進行加密時所采用加密算法可以是是一致的,也可以采用不同的加密算法分別對所述服務(wù)請求和時間信息進行加密,但所采用的密鑰都是由所述密鑰成裝置13生成的新密鑰。其中,所述加密算法可以是DES加密算法、RSA加密算法、MD5加密算法等,但實際應(yīng)用中并不限于此。所述發(fā)送裝置15將經(jīng)由所述加密裝置14生成的所述加密服務(wù)請求和所述加密時間信息以及經(jīng)由所述信息生成裝置12生成的所述時間序列發(fā)送至服務(wù)端。在本實施例中,所述服務(wù)端是企業(yè)服務(wù)總線。與現(xiàn)有技術(shù)不同,在本實施例中,由于所述加密裝置14在對服務(wù)請求進行加密處理過程中引入了時間因素(即所述時間信息)并且在服務(wù)端需要基于時間因素對接收到的服務(wù)請求進行驗證以確定該服務(wù)請求是否有效。因此,所述發(fā)送裝置15在向服務(wù)端發(fā)出服務(wù)請求時,需要將所述加密服務(wù)請求、所述加密時間信息和所述時間序列一起發(fā)送至服務(wù)端。本實施例中,所述服務(wù)請求的發(fā)送裝置I中各個裝置的具體處理過程可參考上文如圖I所示的服務(wù)請求的發(fā)送方法的具體實施方式
,在此不再贅述。
本發(fā)明實施例還提供了一種客戶端,所述客戶端包括如圖2所示的一種服務(wù)請求的發(fā)送裝置1,所述客戶端作為服務(wù)請求者通過所述服務(wù)請求的發(fā)送裝置I向服務(wù)端發(fā)出服務(wù)請求。與圖I所示的一種服務(wù)請求的發(fā)送方法的具體實施方式
相對應(yīng),本發(fā)明實施例還提供了一種服務(wù)請求的處理方法。如圖3所示的是本發(fā)明的一種服務(wù)請求的處理方法的具體實施方式
的流程示意圖。參考圖3,所述服務(wù)請求的處理方法包括步驟S21 :接收采用本發(fā)明所述的服務(wù)請求的發(fā)送方法發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列;步驟S22 :根據(jù)所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息;步驟S23 :若所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息;步驟S24 :若所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。在本實施例中,如步驟S21所述,接收如圖I所述的服務(wù)請求的發(fā)送方法的具體實施方式
發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列。其中,所述加密服務(wù)請求、所述加密時間信息是密文信息,而所述時間序列是明文信息,但根據(jù)圖I所述的服務(wù)請求的發(fā)送方法的具體實施方式
中所述步驟S12所述,所述時間序列是根據(jù)客戶端的預(yù)設(shè)算法對所述時間信息進行處理后生成的,而該預(yù)設(shè)算法對于除所述客戶端和服務(wù)端以外的第三方應(yīng)用而言是不可知的,也就是說對于第三方應(yīng)用而言,所述時間序列實際上也是密文信息。進一步地,在實際應(yīng)用中,如圖I所示的服務(wù)請求的發(fā)送方法中所述,通常客戶端在向服務(wù)端發(fā)送服務(wù)請求的同時還需發(fā)送該客戶端的身份信息,例如,客戶端名稱、標識號以及一些相關(guān)的訪問權(quán)限信息等。因此,在本實施例中,服務(wù)端還需要對接收到的客戶端的身份信息進行驗證,確定該客戶端是否為合法的客戶端,且該客戶端對服務(wù)端上集成的服務(wù)是否具有使用權(quán)限等,上述驗證過程可以采用現(xiàn)有的技術(shù)方案來實現(xiàn),在此不再贅述。
如步驟S22所述,根據(jù)所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息。具體來說,在本實施例中,服務(wù)端與客戶端之間對于處理時間信息所采用的預(yù)設(shè)算法是一致的。因此,當服務(wù)端接收到客戶端發(fā)送的所述時間序列后,可以基于所述預(yù)設(shè)算法的逆算法對所述時間序列進行處理,以確定客戶端發(fā)送服務(wù)請求的時間信息,即所述發(fā)送時間信息。例如,服務(wù)端接收到的所述時間序列為0065,然后根據(jù)所述預(yù)設(shè)算法的規(guī)定是將一天的時間以分鐘為單位進行劃分,且是以6:00為起始點(對應(yīng)的時間序列為0001),那么可以確定接收到的所述時間序列(0065)對應(yīng)的所述發(fā)送時間信息為7:05。然后,根據(jù)所述時間序列確定新密鑰。依照客戶端的處理方式,所述新密鑰是在原始密鑰的基礎(chǔ)上加上隨機值后所確定的,并且由于本實施例是基于對已經(jīng)過序列化處理的請求對象采用對稱加密算法進行加密和解密的,因此在服務(wù)端的原始密鑰是與客戶端預(yù)先商定的,即所述服務(wù)端的原始密鑰和客戶端的原始密鑰是相同的。進一步地,由于所述隨機值是客戶端依照預(yù)設(shè)規(guī)則對所述時間信息或者所述時間 序列進行處理后生成的,同樣由于在服務(wù)端與客戶端之間對于處理時間信息或時間序列所采用的預(yù)設(shè)規(guī)則也是一致的,因此服務(wù)端可以基于所述預(yù)設(shè)規(guī)則對接收到的時間序列或者對時間序列經(jīng)過處理后的發(fā)送時間信息進行處理以確定所述隨機值。因此,服務(wù)端可以在已有的原始密鑰中加入經(jīng)過上述處理方法得到的所述隨機值以確定所述新密鑰。可以看出,相比于現(xiàn)有技術(shù),本實施例在采用對稱加密算法的基礎(chǔ)上,使用了與時間信息相關(guān)聯(lián)的新密鑰,因此,服務(wù)端需要根據(jù)客戶端發(fā)送的時間序列確定隨機值,并在原始密鑰中加入該隨機值以形成新密鑰,然后在后續(xù)處理過程中采用所述新密鑰對所述加密服務(wù)請求和加密時間信息進行解密。雖然,相比于現(xiàn)有的對稱加密算法,本實施例中,服務(wù)端的處理效率會有所下降,但通過引入與時間信息相關(guān)聯(lián)的新密鑰可以有效地避免現(xiàn)有技術(shù)中采用對稱加密算法時,客戶端向服務(wù)端發(fā)送服務(wù)請求時可能會出現(xiàn)服務(wù)請求重演的問題。如步驟S23所述,若所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息。具體來說,服務(wù)端能夠確定其接收到服務(wù)請求的時間信息(即所述接收時間信息),然后將經(jīng)由上述步驟S22得到的發(fā)送時間信息與所述接收時間信息進行比對以確定兩者間的時間差值。其中,產(chǎn)生所述時間差值可能有兩方面因素,一方面是服務(wù)請求從客戶端發(fā)送到服務(wù)端必然需要一定的傳輸時間,另一方面是通常客戶端與服務(wù)端之間很難保持時間同步,即客戶端的時鐘與服務(wù)端的時鐘本身存在一定的時間差,這里稱為固有時差。也就是說,由于所述發(fā)送時間信息是以客戶端的時鐘為基準來確定的,而所述接收時間信息是以服務(wù)端的時鐘為基準來確定的,所以即便忽略上述傳輸時間,所述發(fā)送時間信息與所述接收時間信息之間也存在固有時差。進一步地,對于客戶端首次向服務(wù)端發(fā)出服務(wù)請求的情況,由于客戶端與服務(wù)端尚未作時間同步,因此,在客戶端與服務(wù)端之間存在固有時差時,所述時差差值包括傳輸時間和固有時差。而對于客戶端再次向服務(wù)端發(fā)出服務(wù)請求的情況,由于服務(wù)端在確定了所述發(fā)送時間信息與接收時間信息的時間差值后,還將所述時間差值反饋至所述客戶端;而在客戶端再次向服務(wù)端發(fā)送服務(wù)請求時,在確定發(fā)送服務(wù)請求的時間信息時需要在客戶端的當前時間上加上接收到的時間差值,也就是客戶端與服務(wù)端作了時間同步,因此所述時間差值近似于所述傳輸時間。本實施例中,所述服務(wù)端將設(shè)置一個預(yù)設(shè)時間范圍,若所述發(fā)送時間信息與接收時間信息的時間差值在所述預(yù)設(shè)時間范圍內(nèi),則確定接收到的服務(wù)請求是來自所述客戶端發(fā)出的,而不是被第三方應(yīng)用截獲后重新發(fā)送的服務(wù)請求,即服務(wù)請求重演。因為如果是服務(wù)請求重演,由于第三方應(yīng)用需要截獲該服務(wù)請求后再向服務(wù)端重傳該服務(wù)請求,因此第三方應(yīng)用實際發(fā)送時間必然晚于原先由客戶端發(fā)出服務(wù)請求的發(fā)送時間,那么服務(wù)端接收到該服務(wù)請求的時間(即接收時間信息)也相應(yīng)延遲,以至于接收時間信息與所述客戶端發(fā)出服務(wù)請求的發(fā)送時間信息之間的時間差值超過所述預(yù)設(shè)時間范圍,此時 則確定所述服務(wù)請求無效。其中,所述預(yù)設(shè)時間范圍為1-3分鐘,而在實際應(yīng)用中,服務(wù)端可以根據(jù)實際情況來設(shè)置該預(yù)設(shè)時間范圍,在此不再贅述。若所述發(fā)送時間信息與接收時間信息的時間差值在所述預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息。具體來說,由于在客戶端是采用所述新密鑰以及加密算法對時間信息進行加密后生成的加密時間信息,那么在服務(wù)端則相應(yīng)地利用所述新密鑰以及與該加密算法對應(yīng)的解密算法對接收到的加密時間信息進行解密以生成解密時間信息。接著,如步驟S24所述,若所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。具體來說,正常情況下,所述解密時間信息與所述發(fā)送時間信息應(yīng)該是相匹配的,那么服務(wù)端將繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。所述解密過程與上述步驟S23中對所述加密時間信息進行解密的過程相類似,在此不再贅述。但是,如果客戶端發(fā)出的服務(wù)請求在傳輸過程中被截獲并篡改的話,那么所述解密時間信息與所述發(fā)送時間信息可能會不匹配。這是因為,客戶端向服務(wù)端發(fā)送服務(wù)請求中包括所述加密服務(wù)請求、所述加密時間信息和所述時間序列,若其中所述時間序列被篡改,則服務(wù)端接收到時間序列就不再是客戶端原先發(fā)送的時間序列。那么,服務(wù)端在依照上述步驟S21的處理方式對時間序列經(jīng)過處理后得到的發(fā)送時間信息也就會有誤差,從而導(dǎo)致所述解密時間信息與所述發(fā)送時間信息不匹配,則確定所述服務(wù)請求無效。需要說明的是,根據(jù)上文圖I所示的服務(wù)請求的發(fā)送方法的具體實施方式
中所述,在實際應(yīng)用中,通常會有多個不同的客戶端向服務(wù)端發(fā)送服務(wù)請求。那么,服務(wù)端需要根據(jù)客戶端發(fā)送的身份信息確定具體來自哪個客戶端發(fā)送的服務(wù)請求,然后根據(jù)信息表中存儲的該客戶端設(shè)定的預(yù)設(shè)算法和預(yù)設(shè)規(guī)則對該客戶端發(fā)送的時間序列、加密服務(wù)請求以及加密時間信息進行處理,具體處理過程可以參考本實施例所述的服務(wù)請求的處理方法,在此不再贅述?;谏鲜龇?wù)請求的處理方法,本發(fā)明實施例還提供了一種服務(wù)請求的處理裝置,上文所述的服務(wù)端包括所述服務(wù)請求的處理裝置。本實施例中,所述服務(wù)端為企業(yè)服務(wù)總線。如圖4所示的是本發(fā)明的一種服務(wù)請求的處理裝置的具體實施例的結(jié)構(gòu)示意圖。參考圖4,所述服務(wù)請求的處理裝置2包括請求接收裝置21,用于接收采用如圖2所示的服務(wù)請求的發(fā)送裝置I發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列;信息處理裝置22,用于根據(jù)所述請求接收裝置21接收到的所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息;信息解密裝置23,用于在所述信息處理裝置22處理得到的所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息;請求解密裝置24,用于在所述信息解密裝置23生成的所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。
在具體實施例中,所述請求接收裝置21接收采用如圖2所示的服務(wù)請求的發(fā)送裝置I發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列;其中,所述加密服務(wù)請求、所述加密時間信息是密文信息,而所述時間序列是明文信息。在實際應(yīng)用中,由于如圖2所示的服務(wù)請求的發(fā)送裝置I通常還在向服務(wù)端發(fā)送服務(wù)請求的同時還需發(fā)送該客戶端的身份信息,例如,客戶端名稱、標識號以及一些相關(guān)的訪問權(quán)限信息等。因此,在本實施例中,所述服務(wù)請求的處理裝置2還將通過身份驗證裝置(圖4中未示出)對接收到的客戶端的身份信息進行驗證,確定該客戶端是否為合法的客戶端,且該客戶端對服務(wù)端上集成的服務(wù)是否具有使用權(quán)限等,上述驗證過程可以采用現(xiàn)有的技術(shù)方案來實現(xiàn),在此不再贅述。所述信息處理裝置22根據(jù)所述請求接收裝置21接收到的所述時間序列分別確定所述新密鑰和發(fā)送時間信息。具體地,所述信息處理裝置22包括第一信息處理裝置221,用于通過所述預(yù)設(shè)算法的逆算法對所述時間序列進行處理以確定所述發(fā)送時間信息;以及第二信息處理裝置222,用于根據(jù)所述時間序列確定所述新密鑰。進一步地,所述第二信息處理裝置還包括隨機值確定裝置(圖4中未示出),用于依照所述預(yù)設(shè)規(guī)則對所述時間序列進行處理以得到所述隨機值;密鑰確定裝置(圖4中未示出),用于在原始密鑰中加入由所述隨機值確定裝置確定的所述隨機值以確定所述新密鑰。上述第一信息處理裝置221和第二信息處理裝置222的具體處理過程可以參考上文服務(wù)請求的處理方法的具體實施方式
中的相關(guān)描述,在此不再贅述。所述信息解密裝置23在所述信息處理裝置22處理得到的所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息。在所述服務(wù)請求的處理裝置2中可以設(shè)置一個閾值設(shè)置裝置(圖4中未示出),用于設(shè)置一個預(yù)設(shè)時間范圍,其中,所述預(yù)設(shè)時間范圍為1-3分鐘,而在實際應(yīng)用中,該閾值設(shè)置裝置可以根據(jù)實際情況來設(shè)置該預(yù)設(shè)時間范圍,在此不再贅述。所述服務(wù)請求的處理裝置2中還包括反饋裝置(圖4中未示出),用于將由所述信息處理裝置22處理得到的所述發(fā)送時間信息與接收時間信息的時間差值反饋至客戶端,這樣在客戶端再次向服務(wù)端發(fā)送服務(wù)請求時,在確定發(fā)送服務(wù)請求的時間信息時需要在客戶端的當前時間上加上接收到的時間差值,也就是客戶端與服務(wù)端作了時間同步。所述服務(wù)請求的處理裝置2還包括請求處理裝置(圖4中未示出),用于在所述信息處理裝置22處理得到的所述發(fā)送時間信息與接收時間信息的時間差值不在預(yù)設(shè)時間范圍內(nèi),確定所述服務(wù)請求無效。所述請求解密裝置24,用于在所述信息解密裝置23生成的所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。所述請求處理裝置還用于在所述信息解密裝置23生成的所述解密時間信息與所述信息處理裝置22處理得到的所述發(fā)送時間信息不匹配,則由所述請求處理裝置(圖4中未示出)確定所述服務(wù)請求無效。本實施例中,所述服務(wù)請求的處理裝置2中各個裝置的具體處理過程可參考上文如圖3所示的服務(wù)請求的處理方法的具體實施方式
,在此不再贅述。本發(fā)明實施例還提供了一種服務(wù)端,所述服務(wù)端包括如圖4所示的一種服務(wù)請求的處理裝置2,所述服務(wù)端是企業(yè)服務(wù)總線,在所述服務(wù)端上集成了由服務(wù)提供者提供的多個服務(wù),接收來自服務(wù)請求者發(fā)出的服務(wù)請求,并對該服務(wù)請求進行處理。需要說明的是,本技術(shù)方案提供的服務(wù)請求的發(fā)送方法以及處理方法并不限于應(yīng)用在服務(wù)請求者向企業(yè)服務(wù)總線發(fā)出服務(wù)請求,企業(yè)服務(wù)總線處理所述服務(wù)請求的場景。例如,在不同網(wǎng)絡(luò)中的客戶端相互發(fā)送數(shù)據(jù)的過程中,由于發(fā)送端一般都需要對待發(fā)送數(shù)據(jù)經(jīng)過加密處理,然后接收端再對接收到的加密數(shù)據(jù)進行解密。當采用對稱加密算法時,可以采用本技術(shù)方案公開方法來處理,具體來說,發(fā)送端采用本發(fā)明實施例中所述服務(wù)請求的發(fā)送方法對待發(fā)送數(shù)據(jù)進行處理,然后將加密待發(fā)送數(shù)據(jù)、加密時間信息以及與時間信息相關(guān)聯(lián)的時間序列一起發(fā)送至接收端;接收端接收到所述加密待發(fā)送數(shù)據(jù)、所述加密時間信息以及所述時間序列后,采用本發(fā)明實施例中所述服務(wù)請求的處理方法對接收到上述信息進行處理,這樣可以避免其他客戶端截獲所述發(fā)送端發(fā)送的信息向接收端重發(fā),從而提高收發(fā)端數(shù)據(jù)傳輸?shù)陌踩?。綜上所述,本技術(shù)方案在客戶端和服務(wù)端采用對稱加密算法對服務(wù)請求進行加解密時,客戶端在原始密鑰中加入了與時間信息相關(guān)的隨機值以形成新密鑰,并利用該新密鑰對服務(wù)請求和時間信息進行加密,然后將加密服務(wù)請求、加密時間信息和基于時間信息生成的時間序列發(fā)送至服務(wù)端。在服務(wù)端基于接收到的時間序列來確定所述新密鑰和客戶端的發(fā)送時間信息,通過對比所述發(fā)送時間信息與服務(wù)端接收到服務(wù)請求的接收時間信息之間的時間差值是否在預(yù)設(shè)時間范圍內(nèi)確定該服務(wù)請求是否發(fā)生重傳,即服務(wù)請求是否重演,從而提高信息傳輸?shù)陌踩浴H缓?,在確定該服務(wù)請求沒有重演時,利用所述新密鑰解密所述加密時間信息生成解密時間信息,通過比較解密時間信息與所述發(fā)送時間信息是否匹配確定服務(wù)請求在傳輸過程中是否被篡改,進一步提高了信息傳輸?shù)陌踩?。進一步地,服務(wù)端還將所述時間差值反饋至客戶端,當客戶端下次向服務(wù)端發(fā)送服務(wù)請求時,則將根據(jù)該時間差值與發(fā)送服務(wù)請求的當前時間來確定時間信息,這樣可以保持客戶端與服務(wù)端的時間同步。本發(fā)明雖然已以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā) 明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護范圍。
權(quán)利要求
1.一種服務(wù)請求的發(fā)送方法,其特征在于,包括 確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間; 基于所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息; 在原始密鑰中加入所述隨機值以形成新密鑰; 利用所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息; 將所述加密服務(wù)請求、所述加密時間信息和所述時間序列發(fā)送至服務(wù)端。
2.根據(jù)權(quán)利要求I所述的服務(wù)請求的發(fā)送方法,其特征在于,所述時間信息還包括時間差值;所述確定客戶端發(fā)送服務(wù)請求的時間信息包括 根據(jù)所述當前時間和所述時間差值確定所述時間信息,其中所述時間差值是由所述服務(wù)端反饋獲得。
3.根據(jù)權(quán)利要求I所述的服務(wù)請求的發(fā)送方法,其特征在于,所述基于所述時間信息分別生成時間序列和隨機值包括 通過預(yù)設(shè)算法對所述時間信息進行處理以確定所述時間序列; 依照預(yù)設(shè)規(guī)則對所述時間信息或者所述時間序列進行處理以確定所述隨機值。
4.根據(jù)權(quán)利要求I所述的服務(wù)請求的發(fā)送方法,其特征在于,所述服務(wù)請求包括請求對象,所述請求對象已經(jīng)過序列化處理。
5.根據(jù)權(quán)利要求4所述的服務(wù)請求的發(fā)送方法,其特征在于,所述序列化處理包括二進制序列化處理、JSON序列化處理以及可擴展標記語言序列化處理中的任一種。
6.根據(jù)權(quán)利要求I所述的服務(wù)請求的發(fā)送方法,其特征在于,所述服務(wù)端為企業(yè)服務(wù)總線。
7.一種服務(wù)請求的發(fā)送裝置,其特征在于,包括 時間確定裝置,用于確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間; 信息生成裝置,用于基于所述時間確定裝置確定的所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息; 密鑰形成裝置,用于在原始密鑰中加入所述信息生成裝置生成的所述隨機值以形成新密鑰; 加密裝置,用于利用所述密鑰形成裝置形成的所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息; 發(fā)送裝置,用于將經(jīng)由所述加密裝置生成的所述加密服務(wù)請求和所述加密時間信息以及經(jīng)由所述信息生成裝置生成的所述時間序列發(fā)送至服務(wù)端。
8.根據(jù)權(quán)利要求7所述的服務(wù)請求的發(fā)送裝置,其特征在于,包括所述時間信息還包括時間差值;所述時間確定裝置用于根據(jù)所述當前時間和所述時間差值確定所述時間信息,其中所述時間差值是由所述服務(wù)端反饋獲得。
9.根據(jù)權(quán)利要求7所述的服務(wù)請求的發(fā)送裝置,其特征在于,所述信息生成裝置包括 第一信息生成裝置,用于通過預(yù)設(shè)算法對所述時間信息進行處理以確定所述時間序列;第二信息生成裝置,用于依照預(yù)設(shè)規(guī)則對所述時間信息或者對所述時間序列進行處理以確定所述隨機值。
10.根據(jù)權(quán)利要求7所述的服務(wù)請求的發(fā)送裝置,其特征在于,所述服務(wù)請求包括請求對象,所述請求對象已經(jīng)過序列化處理。
11.根據(jù)權(quán)利要求10所述的服務(wù)請求的發(fā)送裝置,其特征在于,所述序列化處理包括二進制序列化處理、JSON序列化處理以及可擴展標記語言序列化處理中的任一種。
12.—種客戶端,其特征在于,包括權(quán)利要求7至11中任一項所述的服務(wù)請求的發(fā)送>J-U裝直。
13.一種服務(wù)請求的處理方法,其特征在于,包括 接收采用權(quán)利要求I至6中任一項所述的服務(wù)請求的發(fā)送方法發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列; 根據(jù)所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息; 若所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息; 若所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。
14.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,還包括將所述時間差值反饋至所述客戶端。
15.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,還包括若所述發(fā)送時間信息與接收時間信息的時間差值不在預(yù)設(shè)時間范圍內(nèi),則確定所述服務(wù)請求無效。
16.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,還包括若所述解密時間信息與所述發(fā)送時間信息不匹配,則確定所述服務(wù)請求無效。
17.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,所述根據(jù)所述時間序列確定發(fā)送時間信息包括通過所述預(yù)設(shè)算法的逆算法對所述時間序列進行處理以確定所述發(fā)送時間信息。
18.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,所述根據(jù)所述時間序列確定所述新密鑰包括 依照所述預(yù)設(shè)規(guī)則對所述時間序列進行處理以得到所述隨機值; 在原始密鑰中加入所述隨機值以確定所述新密鑰。
19.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,所述服務(wù)端為企業(yè)服務(wù)總線。
20.根據(jù)權(quán)利要求13所述的服務(wù)請求的處理方法,其特征在于,所述預(yù)設(shè)時間范圍為1-3分鐘。
21.一種服務(wù)請求的處理裝置,其特征在于,包括 請求接收裝置,用于接收采用權(quán)利要求7至11中任一項所述的服務(wù)請求的發(fā)送裝置發(fā)送的所述加密服務(wù)請求、所述加密時間信息和所述時間序列; 信息處理裝置,用于根據(jù)所述請求接收裝置接收到的所述時間序列分別確定所述新密鑰和發(fā)送時間信息,其中所述發(fā)送時間信息為客戶端發(fā)送服務(wù)請求的時間信息; 信息解密裝置,用于在所述信息處理裝置處理得到的所述發(fā)送時間信息與接收時間信息的時間差值在預(yù)設(shè)時間范圍內(nèi),則采用所述新密鑰對接收到的加密時間信息進行解密以生成解密時間信息,其中所述接收時間信息為服務(wù)端接收到服務(wù)請求的時間信息; 請求解密裝置,用于在所述信息解密裝置生成的所述解密時間信息與所述發(fā)送時間信息相匹配,則繼續(xù)采用所述新密鑰對所述加密服務(wù)請求進行解密以得到解密服務(wù)請求。
22.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,還包括反饋裝置,用于將由所述信息處理裝置處理得到的所述發(fā)送時間信息與接收時間信息的時間差值反饋至所述客戶端。
23.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,還包括請求處理裝置,用于在所述信息處理裝置處理得到的所述發(fā)送時間信息與接收時間信息的時間差值不在預(yù)設(shè)時間范圍內(nèi),確定所述服務(wù)請求無效。
24.根據(jù)權(quán)利要求23所述的服務(wù)請求的處理裝置,其特征在于,所述請求處理裝置還用于在所述信息解密裝置生成的所述解密時間信息與所述發(fā)送時間信息不匹配,則確定所述服務(wù)請求無效。
25.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,所述信息處理裝置包括第一信息處理裝置,用于通過所述預(yù)設(shè)算法的逆算法對所述時間序列進行處理以確定所述發(fā)送時間信息。
26.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,所述信息處理裝置包括第二信息處理裝置,用于根據(jù)所述時間序列確定所述新密鑰;其中所述第二信息處理裝置包括 隨機值確定裝置,用于依照所述預(yù)設(shè)規(guī)則對所述時間序列進行處理以得到所述隨機值; 密鑰確定裝置,用于在原始密鑰中加入由所述隨機值確定裝置確定的所述隨機值以確定所述新密鑰。
27.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,所述服務(wù)端為企業(yè)服務(wù)總線。
28.根據(jù)權(quán)利要求21所述的服務(wù)請求的處理裝置,其特征在于,所述預(yù)設(shè)時間范圍為1-3分鐘。
29.一種服務(wù)端,其特征在于,包括權(quán)利要求21至28中任一項所述的服務(wù)請求的處理裝置。
全文摘要
一種服務(wù)請求的發(fā)送/處理方法和裝置、客戶端及服務(wù)端,其中所述發(fā)送方法包括確定客戶端發(fā)送服務(wù)請求的時間信息,其中所述時間信息至少包括當前時間;基于所述時間信息分別生成時間序列和隨機值,其中所述隨機值關(guān)聯(lián)于所述時間信息;在原始密鑰中加入所述隨機值以形成新密鑰;利用所述新密鑰分別對所述服務(wù)請求和所述時間信息進行加密以生成加密服務(wù)請求和加密時間信息;將所述加密服務(wù)請求、所述加密時間信息和所述時間序列發(fā)送至服務(wù)端。本技術(shù)方案在客戶端和服務(wù)端采用對稱加密算法對服務(wù)請求進行加解密時,避免請求報文重演問題,以提高服務(wù)端與客戶端的信息傳遞的安全性。
文檔編號H04L1/18GK102724207SQ201210220489
公開日2012年10月10日 申請日期2012年6月28日 優(yōu)先權(quán)日2012年6月28日
發(fā)明者虞鋼 申請人:上海西本網(wǎng)絡(luò)科技有限公司