專利名稱:一種基于簽名機制的rest安全系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及web安全領(lǐng)域,具體地說是一種基于簽名機制的REST安全系統(tǒng)。
背景技術(shù):
當(dāng)前,REST的流行使得越來越多的框架開始支持REST,REST—表述性狀態(tài)轉(zhuǎn)移,為我們構(gòu)建下一代高性能、高可伸縮性、簡單性、可移植性、可靠性的Web程序提供了一個架構(gòu)風(fēng)格上的準則。Web是簡單的,Web更是可編程的,REST利用簡單的HTTP、URI標準和XML語言構(gòu)建起輕量級的Web服務(wù),從而大幅度地提升了開發(fā)效率和程序性能
在這個過程中,隨著安全成為了 SOA實現(xiàn)的主要宗旨之一,以及REST迅速成為流行的SOA實現(xiàn)方案之一,關(guān)于REST安全成為了及時的話題。因為REST是基于HTTP的,而REST服務(wù)有跟標準的web應(yīng)用一樣的容易受攻擊的傾向,并且REST沒有預(yù)定義的安全方法,必須依靠開發(fā)人員定義自己的安全方法來維護資源調(diào)用。為此,我們提出一 種基于簽名機制的REST安全模型,以滿足安全的需要。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于簽名機制的REST安全系統(tǒng)。能夠使web用戶可以在使用網(wǎng)絡(luò)提供的API時更加安全。本發(fā)明的目的是按以下方式實現(xiàn)的,本系統(tǒng)是以簽名機制為核心,在http請求中封裝session key和參數(shù)的md5加密信息,通過傳遞這種加密過的數(shù)據(jù)以應(yīng)對黑客在傳輸中的攔截和數(shù)據(jù)篡改等惡意攻擊,同時加密數(shù)據(jù)也可以保護用戶的隱私信息,達到安全的目的。系統(tǒng)結(jié)構(gòu)包括:認證授權(quán)單元(1),請求封裝單元(2),異常處理單元(3),其中:
認證授權(quán)單元(I)包括用戶驗證和用戶授權(quán)兩個模塊;用于確保用戶的認證和用戶授權(quán)的用途,確保用戶知道他授予什么樣的數(shù)據(jù)和權(quán)限,在調(diào)用rest類型api的時候首先需要經(jīng)過認證授權(quán)保證用戶的合法性,然后通過在請求里添加簽名防止session key的盜用以及數(shù)據(jù)篡改等惡意攻擊行為的發(fā)生;
簽名單元(2)根據(jù)請求參數(shù)和應(yīng)用的私鑰生成一個簽名,并將這個簽名追加到用戶請求中;
異常處理單元(3)負責(zé)處理REST API調(diào)用失敗時拋出的異常;
具體步驟如下:
第一步:驗證與授權(quán),客戶端應(yīng)用在調(diào)用REST API之前,必須獲得認證授權(quán)系統(tǒng)的授權(quán),從技術(shù)的角度來看獲得授權(quán)就是獲取一個Session Key ;
第二步:接口調(diào)用,先定義一個簽名方法:
S: {
將請求參數(shù)格式化為“key=value”格式,即“kl=vl”、“k2=v2”、“k3=v3” ;
將上述格式化好的參數(shù)鍵值對,以字典序升序排列后,拼接在一起,即“kl=vlk2=v2k3=v3” ;在拼接好的字符串末尾追加上API應(yīng)用的私鑰;
上述字符串的MD5值即為簽名的值;
}
接著使用這個方法對請求進行處理得到簽名;
第三步:發(fā)送請求,通過HTTP協(xié)議,客戶端使用HTTP的標準方法與服務(wù)器端通信;第四步:異常處理,由于每個API調(diào)用都是通過發(fā)送HTTP請求來完成的,因此都有可能因為發(fā)送的參數(shù)不合法、發(fā)送頻率過快次數(shù)過多、平臺服務(wù)器出問題各種原因而導(dǎo)致API調(diào)用失敗,API調(diào)用失敗時服務(wù)器端會拋出一個異常,并將異常信息序列化后返回給客戶端,客戶端根據(jù)異常信息的類型做異常處理的操作。本發(fā)明的有益效果是:該系統(tǒng)與現(xiàn)有技術(shù)相比較,是基于簽名的REST使用模型,在API方法被調(diào)用之前通過認證授權(quán)先限制非法用戶訪問本應(yīng)用,然后當(dāng)用戶通過認證后訪問API時,獲取這個API所屬應(yīng)用的私鑰,再在請求中獲取此REST API要求的參數(shù),根據(jù)參數(shù)和私鑰兩項使用約定好的格式把他們組織起來,然后進行md5加密,加密后的數(shù)據(jù)放置到請求里;從而達到安全的目的。
圖1是根據(jù)本發(fā)明用戶如何安全地調(diào)用應(yīng)用服務(wù)器的API流程 圖2是用于安全調(diào)用REST API的系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式參照說明書附圖對本發(fā)明的方法作以下詳細地說明。第一步:驗證與授權(quán),客戶端應(yīng)用在調(diào)用REST API之前,必須獲得認證授權(quán)系統(tǒng)的授權(quán)。從技術(shù)的角度來看獲得授權(quán)就是獲取一個Session Key ;
第二步:接口調(diào)用,這里我們先定義一個簽名算法:
S: {
將請求參數(shù)格式化為“key=value”格式,即“kl=vl”、“k2=v2”、“k3=v3” ;
將上述格式化好的參數(shù)鍵值對,以字典序升序排列后,拼接在一起,即“kl=vlk2=v2k3=v3” ;
在拼接好的字符串末尾追加上API應(yīng)用的私鑰;
上述字符串的MD5值即為簽名的值;
}
接著我們使用這個算法對請求進行處理得到簽名;
第三步:發(fā)送請求,通過HTTP協(xié)議,客戶端使用HTTP的標準方法與服務(wù)器端通信;第四步:異常處理,由于每個API調(diào)用都是通過發(fā)送HTTP請求來完成的,因此都有可能因為發(fā)送的參數(shù)不合法、發(fā)送頻率過快次數(shù)過 多、平臺服務(wù)器出問題等原因而導(dǎo)致API調(diào)用失敗。API調(diào)用失敗時服務(wù)器端會拋出一個異常,并將異常信息序列化后返回給客戶端,客戶端根據(jù)異常信息的類型做異常處理的操作。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1.一種基于簽名機制的REST安全系統(tǒng),其特征在于系統(tǒng)包括:認證授權(quán)單元(1),請求封裝單元(2),異常處理單元(3),其中: 認證授權(quán)單元(1)包括用戶驗證和用戶授權(quán)兩個模塊;用于確保用戶的認證和用戶授權(quán)的用途,確保用戶知道他授予什么樣的數(shù)據(jù)和權(quán)限,在調(diào)用rest類型api的時候首先需要經(jīng)過認證授權(quán)保證用戶的合法性,然后通過在請求里添加簽名防止session key的盜用以及數(shù)據(jù)篡改等惡意攻擊行為的發(fā)生; 簽名單元(2)根據(jù)請求參數(shù)和應(yīng)用的私鑰生成一個簽名,并將這個簽名追加到用戶請求中; 異常處理單元(3)負責(zé)處理REST API調(diào)用失敗時拋出的異常; 具體步驟如下: 第一步:驗證與授權(quán),客戶端應(yīng)用在調(diào)用REST API之前,必須獲得認證授權(quán)系統(tǒng)的授權(quán),從技術(shù)的角度來看獲得授權(quán)就是獲取一個Session Key ; 第二步:接口調(diào)用,先定義一個簽名方法: S: { 將請求參數(shù)格式化為“key=value”格式,即“kl=vl”、“k2=v2”、“k3=v3” ; 將上述格式化好的參數(shù)鍵值對,以字典序升序排列后,拼接在一起,即“kl=vlk2=v2k3=v3” ; 在拼接好的字符串末尾追加上API應(yīng)用的私鑰; 上述字符串的MD5值即為簽名的值;} 接著使用這個方法對請求進行處理得到簽名;第三步:發(fā)送請求,通過HTTP協(xié)議,客戶端使用HTTP的標準方法與服務(wù)器端通信;第四步:異常處理,由于每個API調(diào)用都是通過發(fā)送HTTP請求來完成的,因此都有可能因為發(fā)送的參數(shù)不合法、發(fā)送頻率過快次數(shù)過多、平臺服務(wù)器出問題各種原因而導(dǎo)致API調(diào)用失敗,API調(diào)用失敗時服務(wù)器端會拋出一個異常,并將異常信息序列化后返回給客戶端,客戶端根據(jù)異常信息的類型做異常處理的操作。
全文摘要
本發(fā)明提供一種基于簽名機制的REST安全系統(tǒng),本系統(tǒng)是以簽名機制為核心,在http請求中封裝sessionkey和參數(shù)的md5加密信息,通過傳遞這種加密過的數(shù)據(jù)以應(yīng)對黑客在傳輸中的攔截和數(shù)據(jù)篡改等惡意攻擊,同時加密數(shù)據(jù)也可以保護用戶的隱私信息,達到安全的目的與現(xiàn)有技術(shù)相比較,本發(fā)明至少具有如下有益效果本發(fā)明的基于簽名的REST使用模型,在API方法被調(diào)用之前通過認證授權(quán)先限制非法用戶訪問本應(yīng)用,然后當(dāng)用戶通過認證后訪問API時,獲取這個API所屬應(yīng)用的私鑰,再在請求中獲取此RESTAPI要求的參數(shù),根據(jù)參數(shù)和私鑰兩項使用約定好的格式把他們組織起來,然后進行md5加密,加密后的數(shù)據(jù)放置到請求里;從而達到安全的目的。
文檔編號H04L29/08GK103095731SQ20131005668
公開日2013年5月8日 申請日期2013年2月22日 優(yōu)先權(quán)日2013年2月22日
發(fā)明者王帥, 張培訓(xùn), 劉俊朋, 許磊, 劉凡凡 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司