專利名稱:一種wapi終端與應用服務器傳輸文件的系統(tǒng)及方法
技術領域:
本發(fā)明涉及WAPI技術領域,具體涉及一種WAPI終端與應用服務器傳輸文件的系 統(tǒng)及方法。
背景技術:
為了解決無線局域網國際標準IS0/IEC 8802-11中定義的WEP(WiredEquivalent Privacy)安全機制存在的安全漏洞,我國頒布了無線局域網國家標準及其第一號修 改單,采用無線局域網認證與保密基礎結構WAPI(WLANAuthentication and Privacy Infrastructure)替代WEP,解決無線局域網的安全問題。WAPI由無線局域網鑒別基礎結 構(WAI WLAN Authenticationlnfrastructure)和無線局域網保密基礎結構(WPI WLAN Privacy Infrastructure)組成。WAI采用了公開密鑰加密技術,用于終端與接入點之間的 互相身份鑒別;WPI采用國家密碼管理委員會辦公室批準的用于WLAN的對稱密碼算法實現(xiàn) 數(shù)據(jù)保護,對MAC子層的MSDU進行加、解密處理。規(guī)范中介紹的基礎結構包括了幾個功能實 體,接入點(AP access point)是指任何一個具備站點功能,通過無線媒體為關聯(lián)的站點提 供訪問分布式服務的實體;鑒別請求者實體(ASUE authentication supplicant entity) 是在接入服務之前請求進行鑒別操作的實體;鑒別器實體(AE authenticator entity)為 鑒別請求者在接入服務之前提供鑒別操作的實體。該實體主流在接入點或終端內;鑒別服 務單元(ASU authentication service unit)的基本功能是實現(xiàn)對用戶證書的管理和用戶 身份的鑒別等,是基于公開密鑰密碼技術的WAI鑒別基礎結構中重要的組成部分;鑒別服 務實體(ASE authentication service entity)為鑒別器和鑒別請求者提供身份鑒別服務 的實體。該實體駐留在鑒別服務單元中,鑒別服務單元對應網絡中的節(jié)點為WAPI鑒別服務 器。用戶證書為公開密鑰證書,它是WAI系統(tǒng)構造中重要的環(huán)節(jié)。公開密鑰證書是網絡用 戶的數(shù)字身份憑證,通過私有密鑰驗證可以唯一地確定網絡用戶的身份。
網絡存儲是一種常見的互聯(lián)網業(yè)務,提供各類文件內容的上傳、下載和檢索功能。 隨著WAPI的部署和實施,越來越多的移動終端支持無線局域網接入,同時也將會支持越 來越多的互聯(lián)網業(yè)務功能。網絡存儲對于移動終端而言,具有相當大的使用價值。目前 的移動終端已逐漸演變?yōu)橐詡€人溝通交流為核心的多媒體信息平臺,終端強大的多媒體 信息采集功能勢必需要一個可靠的內存存儲平臺,考慮到多設備間的內容共享,網絡存儲 無疑是一個非常有潛力的移動互聯(lián)網業(yè)務。基于Web的網絡存儲應用在互聯(lián)網環(huán)境下, 通常會有自己的登錄機制,如需用戶提供用戶名密碼以辨明身份。移動終端在接入網絡 時已經完成了身份鑒別過程,如果可以充分利用接入鑒別的能力,一方面簡化了終端用戶 的操作,另一方面,應用提供商可復用WAPI所依賴的公開密鑰基礎設施PKI (Public Key Infrastructure),包括證書頒發(fā)系統(tǒng)和客戶端上的證書等資源,還可以向客戶提供存儲內 容的完整性、機密性保護功能。
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種WAPI終端與應用服務器傳輸文件的系統(tǒng)及 方法,有效地保證了傳輸文件內容的安全性。 為了解決上述問題,本發(fā)明提供了一種WAPI終端與應用服務器傳輸文件的方法, 包括 WAPI終端與應用服務器之間采用HTTP消息傳輸文件內容時,發(fā)送端使用WPI算法 對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑鰯?shù)字簽名后傳輸,接收端收到包含文件內 容的HTTP消息后解析出所述文件內容并驗證所述數(shù)字簽名,若數(shù)字簽名驗證通過則傳輸 的文件內容未被更改。 進一步地,在傳輸文件內容前,所述終端向應用服務器發(fā)送HTTP GET請求時將該 請求的一頭域值表示為一預設值表示該終端為WAPI終端,所述應用服務器收到所述HTTP GET請求后若所述頭域值為預設值則判定所述終端為WAPI終端。 進一步地,應用服務器收到所述終端發(fā)來的HTTP GET請求后向所述終端返回 2000K消息時增加一個數(shù)字簽名,所述數(shù)字簽名的方式為,使用WAI散列算法計算返回的頁 面,并使用應用服務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做加密 計算生成簽名; 所述終端收到2000K消息后解析出所述數(shù)字簽名,獲取預存于終端上的應用服務 器WAPI證書的公鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散列計算,之 后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對應用服務器的鑒別, 否則鑒別未通過。 進一步地,當所述終端向應用服務器上傳內容時,先生成一個128位隨機數(shù)作為 臨時會話密鑰,使用WPI中的SMS4算法對上傳文件內容做加密得到密文,接著使用應用服 務器WAPI證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,還對上 傳的文件內容做數(shù)字簽名;加密后的密文、數(shù)字簽名和加密后的隨機數(shù)和用戶WAPI證書標 識或WAPI證書一起封裝,將封裝的內容通過HTTP POST發(fā)送至應用服務器;
所述應用服務器收到所述HTTP POST后,分離出用戶的WAPI證書標識或WAPI證 書,若分離出的是WAPI證書標識則獲取WAPI證書,使用應用服務器的WAPI證書的私鑰對 加密后的密鑰進行公開密鑰算法解密得到臨時會話密鑰,對上傳內容中的密文進行對稱密 鑰算法解密得到正文,并對解密出的正文進行散列計算得到散列值,所述應用服務器還使 用終端WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,之后比較得到的 上述2個散列值是否一致,若一致則對終端的驗證通過,且接收的文件內容未被更改。
進一步地,當所述終端從應用服務器獲取內容時,向應用服務器發(fā)送HTTP GET消 息時攜帶要獲取內容對應的統(tǒng)一資源定位符; 所述應用服務器收到HTTP GET消息后根據(jù)所述統(tǒng)一資源定位符獲知終端請求的 文檔內容,之后生成128位隨機數(shù)作為臨時會話密鑰,并使用此臨時會話密鑰對客戶端請 求的文檔內容做SMS4加密,并對文檔內容做數(shù)字簽名,還使用終端WAPI證書的公鑰對臨時 會話密鑰進行公開密鑰算法加密得到加密后的密鑰,所有內容以固定格式封裝或以表單形 式作為2000K消息體返回給終端; 所述終端收到所述2000K消息后,利用終端WAPI證書的私鑰對加密的密鑰進行公開密鑰算法解密得出臨時會話密鑰,之后使用該臨時會話密鑰對密文進行對稱密鑰算法解 密得到文檔正文,并對解密出的正文進行散列計算得到散列值,還使用應用服務器WAPI證 書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,比較得到的上述2個散列值是否 一致,若一致則驗證通過,且接收的文件內容未被更改。 進一步地,所述終端向應用服務器發(fā)送HTTP GET消息時對所述統(tǒng)一資源定位符進 行數(shù)字簽名,之后將所述數(shù)字簽名及用戶證書標識作為統(tǒng)一資源定位符參數(shù)通過HTTP GET 消息發(fā)送至應用服務器,所述應用服務器收到HTTP GET消息后分離出用戶證書標識,并獲 取用戶證書,之后使用證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁 內容進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過 對終端的鑒別。 進一步地,所述終端對上傳的文件內容做數(shù)字簽名是指,對所述文件內容做散列
計算,之后使用終端WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。 進一步地,所述應用服務器對文檔內容做簽名計算是指,對所述文檔內容做散列
計算,之后使用應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。 本發(fā)明還提供一種WAPI終端與應用服務器傳輸文件的系統(tǒng),包括發(fā)送端與接收
丄山
順; 所述發(fā)送端,用于使用WPI算法對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑?數(shù)字簽名后通過HTTP消息發(fā)送至所述接收端; 所述接收端,用于收到所述HTTP消息后解析出所述文件內容并驗證所述數(shù)字簽 名,若數(shù)字簽名驗證通過則傳輸?shù)奈募热菸幢桓摹?進一步地,所述發(fā)送端為WAPI終端或應用服務器,接收端為應用服務器或WAPI終
丄山
順; 所述終端包括設置模塊、發(fā)送模塊; 所述終端的設置模塊用于在傳輸文件內容前,向應用服務器發(fā)送HTTPGET請求時 將該請求的一頭域值表示為一預設值表示該終端為WAPI終端; 所述應用服務器用于收到所述HTTP GET請求后若所述頭域值為預設值則判定所 述終端為WAPI終端。 進一步地,所述應用服務器包括加密模塊及發(fā)送模塊; 所述應用服務器的加密模塊用于使用WAI散列算法計算返回的頁面,并使用應用 服務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做加密計算生成數(shù)字 簽名; 所述應用服務器的發(fā)送模塊用于向終端返回2000K消息時攜帶上述數(shù)字簽名;
所述終端的解密模塊收到2000K消息后解析出所述數(shù)字簽名,獲取預存于終端上 的應用服務器WAPI證書的公鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散 列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對應用服務 器的鑒別,否則鑒別未通過。 進一步地,當所述終端向應用服務器上傳內容時所述終端為發(fā)送端,所述應用服 務器為接收端; 所述終端包括加密模塊及發(fā)送模塊;
8
所述終端的加密模塊,用于生成一個128位隨機數(shù)作為臨時會話密鑰,以及使用 WPI中的SMS4算法對上傳的文件內容做加密得到密文,使用應用服務器WAPI證書的公鑰對 臨時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,還用于對上傳的文件內容做數(shù)字 簽名; 所述終端的發(fā)送模塊,用于將加密后的密文、數(shù)字簽名、加密后的隨機數(shù)和用戶 WAPI證書標識或WAPI證書一起封裝,以及將封裝的內容通過HTTP POST發(fā)送至應用服務器;
所述應用服務器包括接收模塊及解密模塊; 所述應用服務器的接收模塊,用于收到所述HTTP POST后,分離出用戶的WAPI證 書標識或WAPI證書,若分離出的是WAPI證書標識則獲取WAPI證書; 所述應用服務器的解密模塊,用于使用應用服務器的WAPI證書的私鑰對加密后 的密鑰進行公開密鑰算法解密得到臨時會話密鑰,以及使用該臨時會話密鑰對上傳內容中 的密文進行對稱密鑰算法解密得到正文,并對解密出的正文進行散列計算得到散列值,還 用于使用終端WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,并比較得 到的上述2個散列值是否一致,若一致則對終端的驗證通過,且接收的文件內容未被更改。
進一步地,當所述終端從應用服務器獲取內容時所述應用服務器為發(fā)送端,所述 終端為接收端; 所述終端包括發(fā)送模塊、接收模塊及解密模塊; 所述終端的發(fā)送模塊用于向應用服務器發(fā)送HTTP GET消息時攜帶要獲取內容對 應的統(tǒng)一資源定位符; 所述應用服務器包括接收模塊、加密模塊及發(fā)送模塊; 所述應用服務器的接收模塊,用于收到HTTP GET消息后根據(jù)所述統(tǒng)一資源定位符 獲知終端請求的文檔內容; 所述應用服務器的加密模塊,用于生成128位隨機數(shù)作為臨時會話密鑰,以及使 用該臨時會話密鑰對終端請求的文檔內容做SMS4加密形成密文,并對文檔內容做數(shù)字簽 名,還用于使用終端WAPI證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后 的密鑰; 所述應用服務器的發(fā)送模塊,用于將所述密文、簽名以及加密后的臨時會話密鑰 作為2000K消息體發(fā)送至終端; 所述終端的接收模塊,用于將收到的所述2000K消息發(fā)送至解密模塊; 所述終端的解密模塊,用于使用終端WAPI證書的私鑰對加密的密鑰進行公開密
鑰算法解密得出臨時會話密鑰,以及該臨時會話密鑰對密文進行對稱密鑰算法解密得到文
檔正文,并對解密出的正文進行散列計算得到散列值,還用于使用應用服務器WAPI證書的
公鑰對簽名進行公開密鑰算法解密得到另一散列值,以及比較得到的上述2個散列值是否
一致,若一致則驗證通過,且接收的文件內容未被更改。 進一步地,所述終端的加密模塊還用于向應用服務器發(fā)送HTTP GET消息時對所述 統(tǒng)一資源定位符進行數(shù)字簽名; 所述終端的發(fā)送模塊還用于向應用服務器發(fā)送HTTP GET消息時將所述數(shù)字簽名 及用戶證書標識作為統(tǒng)一資源定位符參數(shù)發(fā)送至應用服務器; 所述應用服務器的解密模塊還用于分離出HTTP GET消息中的用戶證書標識,并獲
9取用戶證書,以及使用證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對統(tǒng)一 資源定位符進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致 則通過對終端的鑒別。 進一步地,所述終端的加密模塊對上傳的文件內容做數(shù)字簽名是指,對所述文件 內容做散列計算,之后使用終端WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加 密。 進一步地,所述應用服務器的加密模塊對文檔內容做簽名計算是指,對所述文檔 內容做散列計算,之后使用應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰 算法加密。 采用本發(fā)明的技術方案,充分利用了 WAPI基礎設施提供的公開密鑰證書頒發(fā)機 構和客戶端WAPI證書。WAPI終端用戶在登錄網絡存儲應用的過程中,依靠WAPI鑒別服務 實現(xiàn)用戶登錄過程,登錄過程無需用戶輸入用戶名密碼??蛻舳嗽诒4鎯热輹r,通過證書鑒 別過程中協(xié)商得到的臨時會話密鑰和對稱加密算法,加密存儲內容,確保內容機密性,客戶 端通過散列函數(shù)和公有證書的私有密鑰,對存儲內容做數(shù)字簽名計算,并由服務器側驗證 簽名和解密內容,確保內容真實有效未被修改。客戶端在獲取內容時,通過證書鑒別過程中 協(xié)商的臨時會話密鑰和對稱加密算法,解密獲取內容。本發(fā)明中介紹用戶認證的方法亦可 應用于其他基于Web訪問的網絡應用。
圖1網絡系統(tǒng)結構; 圖2是本發(fā)明系統(tǒng)結構示意圖; 圖3是本發(fā)明終端向應用服務器上傳內容時的流程圖; 圖4是本發(fā)明終端從應用服務器獲取內容時的流程圖; 圖5是本發(fā)明終端上傳內容時的處理過程圖; 圖6是本發(fā)明應用服務器下發(fā)內容時的處理過程圖; 圖7是本發(fā)明終端及應用服務器接收文件內容后的處理過程圖; 圖8是本發(fā)明終端對應用服務器進行鑒別的處理過程圖。
具體實施例方式
本發(fā)明提供一種WAPI終端與應用服務器傳輸文件的系統(tǒng),如圖2所示,該系統(tǒng)包 括發(fā)送端與接收端; 發(fā)送端為WAPI終端或應用服務器,接收端為應用服務器或WAPI終端; 發(fā)送端,用于使用WPI算法對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑鰯?shù)字
簽名后通過HTTP消息發(fā)送至所述接收端; 接收端,用于收到HTTP消息后解析出文件內容并驗證數(shù)字簽名,若數(shù)字簽名驗證 通過則傳輸?shù)奈募热菸幢桓摹?終端包括設置模塊、加密模塊、解密模塊、發(fā)送模塊及接收模塊;
應用服務器包括加密模塊、解密模塊、發(fā)送模塊及接收模塊; 終端的設置模塊用于在傳輸文件內容前,向應用服務器發(fā)送HTTP GET請求時將該請求的一頭域值表示為一預設值表示該終端為WAPI終端,應用服務器收到HTTP GET請求 后若該頭域值為預設值則判定終端為WAPI終端。 應用服務器的加密模塊用于使用WAI散列算法計算返回的頁面,并使用應用服務 器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做加密計算生成數(shù)字簽 名; 應用服務器的發(fā)送模塊用于向終端返回2000K消息時攜帶上述數(shù)字簽名; 終端的解密模塊用于收到2000K消息后解析出數(shù)字簽名,獲取預存于終端上的應
用服務器WAPI證書中的公鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散列
計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對應用服務器
的鑒別,否則鑒別未通過。 (1)當終端向應用服務器上傳內容時終端為發(fā)送端,應用服務器為接收端;
終端的加密模塊,用于生成一個128位隨機數(shù)作為臨時會話密鑰,以及使用WPI 中的SMS4算法對上傳的文件內容做加密得到密文,使用應用服務器WAPI證書的公鑰對臨 時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,還用于對上傳的文件內容做數(shù)字簽 名; 終端的發(fā)送模塊,用于將加密后的密文、數(shù)字簽名、加密后的隨機數(shù)和用戶WAPI 證書標識或WAPI證書一起封裝,以及將封裝的內容通過HTTPPOST發(fā)送至應用服務器;
應用服務器的接收模塊,用于收到HTTP POST后,分離出用戶的WAPI證書標識或 WAPI證書,若分離出的是WAPI證書標識則獲取WAPI證書; 應用服務器的解密模塊,用于使用應用服務器的WAPI證書的私鑰對加密后的密 鑰進行公開密鑰算法解密得到臨時會話密鑰,以及使用該臨時會話密鑰對上傳內容中的密 文進行對稱密鑰算法解密得到正文,并對解密出的正文進行散列計算得到散列值,還用于 使用終端WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,并比較得到的 上述2個散列值是否一致,若一致則對終端的驗證通過,且接收的文件內容未被更改。
終端的加密模塊對上傳的文件內容做數(shù)字簽名是指,對文件內容做散列計算,之 后使用終端WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。
(2)當終端從應用服務器獲取內容時應用服務器為發(fā)送端,終端為接收端;
終端的發(fā)送模塊,用于向應用服務器發(fā)送HTTP GET消息時攜帶要獲取內容對應的 統(tǒng)一資源定位符; 應用服務器的接收模塊,用于收到HTTP GET消息后根據(jù)統(tǒng)一資源定位符獲知終端 請求的文檔內容; 應用服務器的加密模塊,用于生成128位隨機數(shù)作為臨時會話密鑰,以及使用該 臨時會話密鑰對終端請求的文檔內容做SMS4加密形成密文,并對文檔內容做數(shù)字簽名, 還用于使用終端WAPI證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的密 鑰; 應用服務器的發(fā)送模塊,用于將密文、簽名以及加密后的臨時會話密鑰作為2000K 消息體發(fā)送至終端; 終端的接收模塊,用于將收到的2000K消息發(fā)送至解密模塊; 終端的解密模塊,用于使用終端WAPI證書的私鑰對加密的密鑰進行公開密鑰算
11法解密得出臨時會話密鑰,以及該臨時會話密鑰對密文進行對稱密鑰算法解密得到文檔正 文,并對解密出的正文進行散列計算得到散列值,還用于使用應用服務器WAPI證書的公鑰 對簽名進行公開密鑰算法解密得到另一散列值,以及比較得到的上述2個散列值是否一 致,若一致則驗證通過,且接收的文件內容未被更改。 終端的加密模塊還用于向應用服務器發(fā)送HTTP GET消息時對統(tǒng)一資源定位符進 行數(shù)字簽名; 終端的發(fā)送模塊還用于向應用服務器發(fā)送HTTP GET消息時將數(shù)字簽名及用戶證 書標識作為統(tǒng)一資源定位符參數(shù)發(fā)送至應用服務器; 應用服務器的解密模塊還用于分離出HTTP GET消息中的用戶證書標識,并獲取用 戶證書,以及使用證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對統(tǒng)一資源 定位符進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通 過對終端的鑒別。 應用服務器的加密模塊對文檔內容做簽名計算是指,對文檔內容做散列計算,之
后使用應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。 本發(fā)明還提供一種WAPI終端與應用服務器傳輸文件的方法,WAPI終端與應用服
務器之間采用HTTP消息傳輸文件內容時,發(fā)送端使用WPI算法對傳輸?shù)奈募热葸M行加
密,并對傳輸?shù)膬热葑鰯?shù)字簽名后傳輸,接收端收到包含文件內容的HTTP消息后解析出文
件內容并驗證數(shù)字簽名,若數(shù)字簽名驗證通過則傳輸?shù)奈募热菸幢桓摹?
實施例一 本實施例為終端向應用服務器上傳文件內容的方法,如圖3所示,包括以下步驟
步驟301 :終端瀏覽器向應用服務器發(fā)送HTTP GET請求,獲取到網絡存儲應用 的頁面,終端通過將請求中的某頭域值設置為預設值表示其為WAPI終端,如可以是將 User-Agent (用戶代理)設置為WAPI-Mobile-ClientVl. 0 ; 該頭域的值可以是終端在組建請求時指定,也可以通過和無線局域網段相鄰的 WAP/HTTP應用網關修改。 步驟302 :應用服務器收到終端發(fā)來的HTTP GET請求,根據(jù)其中某頭域中的值判 斷此請求是否來自于WAPI終端;如根據(jù)User-Agent的值為WAPI-Mobile-Client VI. 0時 判定該終端是WAPI終端; 步驟303 :應用服務器向終端返回2000K消息,在該消息中增加一個隱藏表單,內
容至少包含一個采用WAI公開密鑰算法加密的數(shù)字簽名,簽名方法如下 (a)使用WAI散列算法計算返回的頁面、即超文本格式字符串。 (b)使用應用服務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果
做加密計算,生成簽名。 生成的簽名存入頁面響應中的隱藏表單里下發(fā)給終端瀏覽器。 步驟304 :如圖8所示,終端在收到2000K消息后,從隱藏表單中解析出數(shù)字簽名,
獲取預存于終端上的應用服務器WAPI證書中的公鑰解密該數(shù)字簽名,并利用WAI的散列函
數(shù)對網頁內容進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一
致則鑒別通過,否則鑒別未通過。 本發(fā)明中終端獲得應用服務器WAPI證書的方法同現(xiàn)有技術。
步驟305 :WAPI終端瀏覽器在獲取應用服務器網頁數(shù)據(jù)并完成對服務器身份鑒別 之后,呈現(xiàn)頁面。終端通過瀏覽器提交需上傳的文件內容。提交過程采用HTTP P0ST方法。
WAPI終端首先生成一個128位隨機數(shù)作為臨時會話密鑰,使用WPI中SMS4算法 (即圖5中的對稱密鑰算法)對上傳文件內容做加密得到密文,接著使用應用服務器WAPI 證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,接著使用終端WAPI 證書的私鑰完成上傳的內容的數(shù)字簽名,數(shù)字簽名的過程即先對文件內容做散列計算,然 后使用終端WAPI證書的私鑰加密散列計算后的值;加密后的正文、數(shù)字簽名和加密后的隨 機數(shù)和用戶WAPI證書標識或證書通過某一固定格式封裝,例如
〈upload_content>〈body_sign>@e23233dsew.....〈/body_sign>〈encrypted_rand>we233dse. . 〈/encrypted_rand>
〈encrypted_body>3EWRW@#4. . 〈/encrypted_body>
〈cert-id>232341〈/cert-id>
〈/upload_content> 終端瀏覽器或通過表單的方式,組成了 POST的內容并發(fā)送給應用服務器。 步驟306 :應用服務器收到此HTTP POST消息后,首先根據(jù)表單或者某一固定格
式,分離出用戶的WAPI證書標識或WAPI證書,如果是證書標識,則通過與公共認證中心的
交互,獲取用戶的公鑰證書(獲取過程為標準流程,本發(fā)明不再詳述)。 應用服務器獲取由終端生成的并由應用服務器公鑰加密的后的隨機數(shù)加密值,使
用應用服務器的WAPI證書的私鑰對加密后的密鑰進行公開密鑰算法解密得到128位臨時
會話密鑰,之后使用此128位臨時會話密鑰對上傳內容中的密文進行對稱密鑰算法解密得
到正文,并對解密出的正文進行散列計算得到散列值,應用服務器還使用終端WAPI證書的
公鑰對簽名進行公開密鑰算法解密得到另一散列值,之后比較得到的上述2個散列值是否
一致,若一致則驗證通過,說明上傳的文件內容未被更改,若不一致則驗證未通過。 實施例二 本實施例為終端從應用服務器獲取內容的方法,如圖4所示,包括以下步驟
步驟401 :終端瀏覽器向應用服務器發(fā)送HTTP GET請求,獲取到網絡存儲應用 的頁面,終端通過將請求的某頭域值設置為一預設值表示其為WAPI終端,如可以是將 User-Agent (用戶代理)設置為WAPI-Mobile-ClientVl. 0 ; 該頭域的值可以是終端在組建請求時指定,也可以通過和無線局域網段相鄰的 WAP/HTTP應用網關修改。 步驟402 :應用服務器收到終端發(fā)來的HTTP GET請求,根據(jù)其中某頭域值判斷此 請求是否來自于WAPI終端;如根據(jù)User-Agent的值為WAPI-Mobile-Client VI. 0時判定 該終端是WAPI終端; 步驟403 :應用服務器向終端返回2000K消息,在該消息中增加一個隱藏表單,內
容至少包含一個采用WAI公開密鑰算法加密的數(shù)字簽名,簽名方法如下 (a)使用WAI散列算法計算返回的頁面、即超文本格式字符串。 (b)使用應用服務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果
做加密計算,生成簽名。
生成的簽名存入頁面響應中的隱藏表單里下發(fā)給終端瀏覽器。
步驟404 :如圖8所示,終端在收到2000K消息后,從隱藏表單中解析出數(shù)字簽名, 獲取預存于終端上的應用服務器WAPI證書的公鑰對簽名進行公開密鑰算法解密,并利用 WAI的散列函數(shù)對網頁內容進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是 否一致,若一致則鑒別通過,否則鑒別未通過。 本發(fā)明中終端獲得應用服務器WAPI證書的方法同現(xiàn)有技術。 步驟405 :WAPI終端瀏覽器在獲取應用服務器網頁數(shù)據(jù)并完成對服務器身份鑒別
之后,呈現(xiàn)頁面。 步驟406 :終端通過界面指定要獲取內容對應的URL(Uniform ResourceLocator, 統(tǒng)一資源定位符),并使用GET方法獲取內容。 終端用戶通過瀏覽器操作界面選擇獲取文件時,將通過GET方法完成,客戶端插 件調用WAI功能對統(tǒng)一資源定位符(URL, Uniform ResourceLocator)做簽名計算,簽名方 法如下 (b)使用終端WAPI證書對應的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做 加密計算,生成簽名。 URL簽名和用戶證書標識通過URL參數(shù)的方式提交給服務器,例如 http://upload-doc-server, com/document/20091117203 Url_sign =
deFQWER3d&certid = 2343.. 對統(tǒng)一資源定位符的數(shù)字簽名不包括URL參數(shù)部分。 步驟407 :應用服務器收到HTTP GET消息,分離出URL參數(shù)中的用戶證書標識,獲 取用戶證書,之后使用終端WAPI證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函 數(shù)對網頁內容進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一 致則通過對終端的鑒別,否則鑒別未通過。 如圖6所示,應用服務器完成對終端的鑒別后,生成128位隨機數(shù)作為臨時會話密 鑰,并使用此臨時會話密鑰對客戶端請求的文檔內容做SMS4加密(即圖6中所示的對文檔 進行對稱密鑰加密),并對文檔正文做數(shù)字簽名,數(shù)字簽名的過程即先對文檔正文作散列計 算,之后使用應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密;應用 服務器還使用終端WAPI證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的 密鑰;最后,所有內容以固定格式封裝或以表單形式,作為2000K消息體返回給終端。
步驟408 :如圖7所示,終端收到2000K消息后,利用終端WAPI證書的私鑰對加密 的密鑰進行公開密鑰算法解密得出臨時會話密鑰,之后使用該臨時會話密鑰對密文進行對 稱密鑰算法解密得到文檔正文,并對解密出的正文進行散列計算得到散列值,還使用應用 服務器WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,比較得到的上述2 個散列值是否一致,若一致則驗證通過,且接收的文件內容未被更改,若不一致則驗證未通 過。 本發(fā)明中終端及應用服務器使用相同的公開密鑰算法進行加密及解密。 本發(fā)明在不改動HTTP協(xié)議的基礎上,通過HTTP消息體或者超文本中的表單,完成
基于WAPI證書的鑒別過程,和傳輸數(shù)據(jù)的加密及完整性保護,對于應用服務器來說,不影響其WEB訪問請求處理的正常流程,所提及功能可以通過新增功能模塊完成,新增功能只 涉及WAPI相關公鑰及對稱加密計算,未改動HTTP及超文本傳輸協(xié)議的內容。
權利要求
一種WAPI終端與應用服務器傳輸文件的方法,包括WAPI終端與應用服務器之間采用HTTP消息傳輸文件內容時,發(fā)送端使用WPI算法對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑鰯?shù)字簽名后傳輸,接收端收到包含文件內容的HTTP消息后解析出所述文件內容并驗證所述數(shù)字簽名,若數(shù)字簽名驗證通過則傳輸?shù)奈募热菸幢桓摹?br>
2. 如權利要求1所述的方法,其特征在于在傳輸文件內容前,所述終端向應用服務器發(fā)送HTTP GET請求時將該請求的一頭域值 表示為一預設值表示該終端為WAPI終端,所述應用服務器收到所述HTTP GET請求后若所 述頭域值為預設值則判定所述終端為WAPI終端。
3. 如權利要求2所述的方法,其特征在于應用服務器收到所述終端發(fā)來的HTTP GET請求后向所述終端返回2000K消息時增加 一個數(shù)字簽名,所述數(shù)字簽名的方式為,使用WAI散列算法計算返回的頁面,并使用應用服 務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做加密計算生成簽名;所述終端收到2000K消息后解析出所述數(shù)字簽名,獲取預存于終端上的應用服務器 WAPI證書的公鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散列計算,之后 比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對應用服務器的鑒別,否 則鑒別未通過。
4. 如權利要求1所述的方法,其特征在于當所述終端向應用服務器上傳內容時,先生成一個128位隨機數(shù)作為臨時會話密鑰, 使用WPI中的SMS4算法對上傳文件內容做加密得到密文,接著使用應用服務器WAPI證書 的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,還對上傳的文件內容做 數(shù)字簽名;加密后的密文、數(shù)字簽名和加密后的隨機數(shù)和用戶WAPI證書標識或WAPI證書一 起封裝,將封裝的內容通過HTTP POST發(fā)送至應用服務器;所述應用服務器收到所述HTTP POST后,分離出用戶的WAPI證書標識或WAPI證書,若 分離出的是WAPI證書標識則獲取WAPI證書,使用應用服務器的WAPI證書的私鑰對加密后 的密鑰進行公開密鑰算法解密得到臨時會話密鑰,對上傳內容中的密文進行對稱密鑰算法 解密得到正文,并對解密出的正文進行散列計算得到散列值,所述應用服務器還使用終端 WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,之后比較得到的上述2個 散列值是否一致,若一致則對終端的驗證通過,且接收的文件內容未被更改。
5. 如權利要求l所述的方法,其特征在于當所述終端從應用服務器獲取內容時,向應用服務器發(fā)送HTTP GET消息時攜帶要獲取 內容對應的統(tǒng)一資源定位符;所述應用服務器收到HTTP GET消息后根據(jù)所述統(tǒng)一資源定位符獲知終端請求的文檔 內容,之后生成128位隨機數(shù)作為臨時會話密鑰,并使用此臨時會話密鑰對客戶端請求的 文檔內容做SMS4加密,并對文檔內容做數(shù)字簽名,還使用終端WAPI證書的公鑰對臨時會話 密鑰進行公開密鑰算法加密得到加密后的密鑰,所有內容以固定格式封裝或以表單形式作 為2000K消息體返回給終端;所述終端收到所述2000K消息后,利用終端WAPI證書的私鑰對加密的密鑰進行公開 密鑰算法解密得出臨時會話密鑰,之后使用該臨時會話密鑰對密文進行對稱密鑰算法解密得到文檔正文,并對解密出的正文進行散列計算得到散列值,還使用應用服務器WAPI證書 的公鑰對簽名進行公開密鑰算法解密得到另一散列值,比較得到的上述2個散列值是否一 致,若一致則驗證通過,且接收的文件內容未被更改。
6. 如權利要求5所述的方法,其特征在于所述終端向應用服務器發(fā)送HTTP GET消息時對所述統(tǒng)一資源定位符進行數(shù)字簽名,之 后將所述數(shù)字簽名及用戶證書標識作為統(tǒng)一資源定位符參數(shù)通過HTTP GET消息發(fā)送至應 用服務器,所述應用服務器收到HTTP GET消息后分離出用戶證書標識,并獲取用戶證書,之 后使用證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散列計 算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對終端的鑒別。
7. 如權利要求5所述的方法,其特征在于所述終端對上傳的文件內容做數(shù)字簽名是指,對所述文件內容做散列計算,之后使用 終端WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。
8. 如權利要求5所述的方法,其特征在于所述應用服務器對文檔內容做簽名計算是指,對所述文檔內容做散列計算,之后使用 應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。
9. 一種WAPI終端與應用服務器傳輸文件的系統(tǒng),包括發(fā)送端與接收端;其特征在于 所述發(fā)送端,用于使用WPI算法對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑鰯?shù)字簽名后通過HTTP消息發(fā)送至所述接收端;所述接收端,用于收到所述HTTP消息后解析出所述文件內容并驗證所述數(shù)字簽名,若 數(shù)字簽名驗證通過則傳輸?shù)奈募热菸幢桓摹?br>
10. 如權利要求9所述的系統(tǒng),其特征在于所述發(fā)送端為WAPI終端或應用服務器,接收端為應用服務器或WAPI終端; 所述終端包括設置模塊、發(fā)送模塊;所述終端的設置模塊用于在傳輸文件內容前,向應用服務器發(fā)送HTTPGET請求時將該 請求的一頭域值表示為一預設值表示該終端為WAPI終端;所述應用服務器用于收到所述HTTP GET請求后若所述頭域值為預設值則判定所述終 端為WAPI終端。
11. 如權利要求10所述的系統(tǒng),其特征在于 所述應用服務器包括加密模塊及發(fā)送模塊;所述應用服務器的加密模塊用于使用WAI散列算法計算返回的頁面,并使用應用服 務器WAPI證書的私鑰,利用WAI的橢圓曲線算法,對散列計算結果做加密計算生成數(shù)字簽 名;所述應用服務器的發(fā)送模塊用于向終端返回2000K消息時攜帶上述數(shù)字簽名; 所述終端的解密模塊收到2000K消息后解析出所述數(shù)字簽名,獲取預存于終端上的應 用服務器WAPI證書的公鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對網頁內容進行散列計 算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通過對應用服務器的 鑒別,否則鑒別未通過。
12. 如權利要求9所述的系統(tǒng),其特征在于當所述終端向應用服務器上傳內容時所述終端為發(fā)送端,所述應用服務器為接收端;所述終端包括加密模塊及發(fā)送模塊;所述終端的加密模塊,用于生成一個128位隨機數(shù)作為臨時會話密鑰,以及使用WPI 中的SMS4算法對上傳的文件內容做加密得到密文,使用應用服務器WAPI證書的公鑰對臨 時會話密鑰進行公開密鑰算法加密得到加密后的密鑰,還用于對上傳的文件內容做數(shù)字簽 名;所述終端的發(fā)送模塊,用于將加密后的密文、數(shù)字簽名、加密后的隨機數(shù)和用戶WAPI 證書標識或WAPI證書一起封裝,以及將封裝的內容通過HTTP POST發(fā)送至應用服務器; 所述應用服務器包括接收模塊及解密模塊;所述應用服務器的接收模塊,用于收到所述HTTP POST后,分離出用戶的WAPI證書標 識或WAPI證書,若分離出的是WAPI證書標識則獲取WAPI證書;所述應用服務器的解密模塊,用于使用應用服務器的WAPI證書的私鑰對加密后的密 鑰進行公開密鑰算法解密得到臨時會話密鑰,以及使用該臨時會話密鑰對上傳內容中的密 文進行對稱密鑰算法解密得到正文,并對解密出的正文進行散列計算得到散列值,還用于 使用終端WAPI證書的公鑰對簽名進行公開密鑰算法解密得到另一散列值,并比較得到的 上述2個散列值是否一致,若一致則對終端的驗證通過,且接收的文件內容未被更改。
13. 如權利要求9所述的系統(tǒng),其特征在于當所述終端從應用服務器獲取內容時所述應用服務器為發(fā)送端,所述終端為接收端; 所述終端包括發(fā)送模塊、接收模塊及解密模塊;所述終端的發(fā)送模塊用于向應用服務器發(fā)送HTTP GET消息時攜帶要獲取內容對應的 統(tǒng)一資源定位符;所述應用服務器包括接收模塊、加密模塊及發(fā)送模塊;所述應用服務器的接收模塊,用于收到HTTP GET消息后根據(jù)所述統(tǒng)一資源定位符獲知 終端請求的文檔內容;所述應用服務器的加密模塊,用于生成128位隨機數(shù)作為臨時會話密鑰,以及使用該 臨時會話密鑰對終端請求的文檔內容做SMS4加密形成密文,并對文檔內容做數(shù)字簽名,還 用于使用終端WAPI證書的公鑰對臨時會話密鑰進行公開密鑰算法加密得到加密后的密 鑰;所述應用服務器的發(fā)送模塊,用于將所述密文、簽名以及加密后的臨時會話密鑰作為 2000K消息體發(fā)送至終端;所述終端的接收模塊,用于將收到的所述2000K消息發(fā)送至解密模塊; 所述終端的解密模塊,用于使用終端WAPI證書的私鑰對加密的密鑰進行公開密鑰算 法解密得出臨時會話密鑰,以及該臨時會話密鑰對密文進行對稱密鑰算法解密得到文檔正 文,并對解密出的正文進行散列計算得到散列值,還用于使用應用服務器WAPI證書的公 鑰對簽名進行公開密鑰算法解密得到另一散列值,以及比較得到的上述2個散列值是否一 致,若一致則驗證通過,且接收的文件內容未被更改。
14. 如權利要求13所述的系統(tǒng),其特征在于所述終端的加密模塊還用于向應用服務器發(fā)送HTTP GET消息時對所述統(tǒng)一資源定位 符進行數(shù)字簽名;所述終端的發(fā)送模塊還用于向應用服務器發(fā)送HTTP GET消息時將所述數(shù)字簽名及用戶證書標識作為統(tǒng)一資源定位符參數(shù)發(fā)送至應用服務器;所述應用服務器的解密模塊還用于分離出HTTP GET消息中的用戶證書標識,并獲取用 戶證書,以及使用證書中的公開密鑰解密該數(shù)字簽名,并利用WAI的散列函數(shù)對統(tǒng)一資源 定位符進行散列計算,之后比較散列計算的結果與解密的數(shù)字簽名是否一致,若一致則通 過對終端的鑒別。
15. 如權利要求ll所述的系統(tǒng),其特征在于所述終端的加密模塊對上傳的文件內容做數(shù)字簽名是指,對所述文件內容做散列計 算,之后使用終端WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。
16. 如權利要求12所述的系統(tǒng),其特征在于所述應用服務器的加密模塊對文檔內容做簽名計算是指,對所述文檔內容做散列計 算,之后使用應用服務器WAPI證書的私鑰對散列計算后的值進行公開密鑰算法加密。
全文摘要
本發(fā)明提供了一種WAPI終端與應用服務器傳輸文件的系統(tǒng)及方法,包括WAPI終端與應用服務器之間采用HTTP消息傳輸文件內容時,發(fā)送端使用WPI算法對傳輸?shù)奈募热葸M行加密,并對傳輸?shù)膬热葑鰯?shù)字簽名后傳輸,接收端收到包含文件內容的HTTP消息后解析出所述文件內容并驗證所述數(shù)字簽名,若數(shù)字簽名驗證通過則傳輸?shù)奈募热菸幢桓?。采用本發(fā)明的技術方案,充分利用了WAPI基礎設施提供的公開密鑰證書頒發(fā)機構和客戶端WAPI證書,有效地保證了傳輸文件內容的安全性。
文檔編號H04W12/06GK101742508SQ20091024706
公開日2010年6月16日 申請日期2009年12月21日 優(yōu)先權日2009年12月21日
發(fā)明者康望星, 施元慶, 梁潔輝 申請人:中興通訊股份有限公司