一種基于restful架構(gòu)的身份驗證方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及一種安全認(rèn)證方法,尤其是涉及一種基于restful架構(gòu)的身份驗證方法?!?br>背景技術(shù):
】[0002]RESTful是一種軟件架構(gòu)風(fēng)格,提供了一組設(shè)計原則和約束,基于此風(fēng)格的設(shè)計軟件可以更簡潔,更有層次,更易于實現(xiàn)緩存等機制,因此,越來越多的軟件采用此風(fēng)格進行設(shè)計和實現(xiàn)。然而RESTfulAPI運行在網(wǎng)絡(luò)之上,其安全認(rèn)證一直被人們所關(guān)注,如何有效防止rainbowtable、挾持和重發(fā)等多種攻擊方式,成為RESTfulAPI重點關(guān)注的問題。[0003]Rainbowtable是一種破解哈希算法的技術(shù),是一款跨平臺密碼破解器,主要可以破解MD5、HASH等多種密碼。它的性能非常讓人震驚,在一臺普通PC上輔以NVidiaCUDA技術(shù),對于NTLM算法可以達到最高每秒103,820,000,000次明文嘗試(超過一千億次),對于廣泛使用的MD5也接近一千億次。更神奇的是,Rainbowtable并非針對某種哈希算法的漏洞進行攻擊,而是類似暴力破解,對于任何哈希算法都有效。[0004]網(wǎng)絡(luò)抓包可以通過抓包工具,抓取網(wǎng)絡(luò)上的數(shù)據(jù)包,然后進行分析破解,獲取密碼或者憑證,使用此密碼或憑證對服務(wù)器進行攻擊,造成服務(wù)器數(shù)據(jù)丟失甚至于癱瘓。【
發(fā)明內(nèi)容】[0005]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種安全性高的基于restful架構(gòu)的身份驗證方法。[0006]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):[0007]—種基于restful架構(gòu)的身份驗證方法,其特征在于,包括以下步驟:[0008](I)登錄過程:對用戶名密碼進行RSA加密傳送到服務(wù)端,服務(wù)端進行解密,使用TEA加密算法將解密的用戶名、密碼以及登錄IP、登錄PORT、登錄時間戳加上隨機字符生成登錄憑證;[0009](2)操作憑證:將登錄憑證及操作時間戳進行RSA加密,生成帶操作時間戳的操作憑證;[0010](3)身份驗證過程:服務(wù)端將步驟(2)中的操作憑證解密,并與服務(wù)端記錄的登錄憑證和登錄時間戳進行比對,兩者均滿足要求時,才能通過驗證。[0011]所述的服務(wù)端將加密后的用戶名和密碼進行解密,并與數(shù)據(jù)庫中的用戶名和密碼進行比對,如果兩者均相同,則生成登錄憑證,否則顯示異常信息。[0012]所述的步驟(102)中,生成登錄憑證的具體過程為:服務(wù)端將用戶名和密碼、登錄IP和隨機字符組合在一起,并加密生成登錄憑證,服務(wù)端將該登錄憑證與登錄時間戳一起保存到數(shù)據(jù)庫中,并且通過客戶端私鑰解密后,保存到客戶端本地。[0013]所述的加密生成登錄憑證的加密方法為用密碼的MD5值作為密鑰,采用TEA加密算法,形成總長為64節(jié)的登錄憑證。[0014]所述的步驟(103)中,對從客戶端獲取步驟(I)保存的登錄憑證與某一操作時的時間戳組成的字符串采用128位RSA加密方式進行加密。[0015]所述的服務(wù)端將操作憑證解密,并與服務(wù)端記錄的登錄憑證和登錄時間戳進行比對,具體為:服務(wù)端私鑰對操作憑證解密,并與保存到服務(wù)端的登錄憑證及登錄時間戳進行比對,當(dāng)憑證相等并且操作時間戳大于T時,才能通過驗證,其中T=登錄時間戳-3S。[0016]服務(wù)端每隔I分鐘更新一次保存的時間戳,并將保存的時間戳加上60S。[0017]客戶端的密鑰編碼到客戶端中,服務(wù)端的密鑰保存到配置文件中,服務(wù)端密鑰的安全通過主機的安全來保障。[0018]該方法利用Restful架構(gòu)進行安全認(rèn)證,包括但不限于登錄認(rèn)證,操作有效性認(rèn)證。[0019]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:[0020](I)優(yōu)化RESTful登錄過程,對用戶名和密碼采用128位RSA加密方式并附帶客戶端時間戳,能有效防止密碼被挾持并破解,即使通過抓包的方式獲取到密文的密碼,也無法轉(zhuǎn)換成明文密碼進行網(wǎng)絡(luò)攻擊;[0021](2)本發(fā)明通過憑證與時間結(jié)合的驗證方式,比單純使用MD5、RSA等加密方法更安全,加強了RESTfulAPI接口的安全性,若通過網(wǎng)絡(luò)抓包的方式截取到了憑證,也會被服務(wù)端當(dāng)成無效的用戶來處理,防止了網(wǎng)絡(luò)挾持等攻擊方式,有效防止服務(wù)器被惡意攻擊和破壞。【附圖說明】[0022]圖1為RESTfulAPI驗證時序圖;[0023]圖2為RESTful架構(gòu)登錄過程流程圖;[0024]圖3為RESTful生成登錄憑證過程流程圖;[0025]圖4為RESTfulAPI身份驗證過程流程圖。【具體實施方式】[0026]下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。[0027]實施例1[0028]如圖1所示,一種基于restful架構(gòu)的身份驗證方法,包括以下步驟:[0029]I登錄過程(如圖2所示):包括以下具體步驟:[0030]101用戶登錄時,用戶名和密碼通過服務(wù)端的公鑰進行加密,將加密后的用戶名、密碼以及客戶端公鑰發(fā)送給服務(wù)端;[0031]102服務(wù)端將加密后的用戶名和密碼進行解密,并與數(shù)據(jù)庫中保存的用戶名和密碼進行比對,如果兩者均相同,則服務(wù)端將用戶名和密碼、登錄IP和隨機字符組合在一起,并用密碼的MD5值作為密鑰,采用TEA加密算法,形成總長為64節(jié)的登錄憑證:TEA(‘user’+MD5(password)+IP+PORT+LoginTime+padding),服務(wù)端將該登錄憑證與登錄時間戳一起保存到數(shù)據(jù)庫中,并且通過客戶端私鑰解密后,保存到客戶端本地,否則顯示異常信息;[0032]103從客戶端獲取登錄憑證將生成的登錄憑證與某一操作時的操作時間戳組成一個字符串,并將該字符串采用128位RSA加密方式進行加密形成操作憑證,使用128位RSA加密方式,能有效的防止用戶名密碼被破解,即使通過抓包的方式獲取到密文的密碼,也無法轉(zhuǎn)成明文密碼進行網(wǎng)絡(luò)攻擊。(如圖3所示)。[0033]2、身份驗證過程:服務(wù)端私鑰對操作憑證解密,并與保存到服務(wù)端的憑證及登錄時間戳進行比對,當(dāng)憑證相等并且操作時間戳大于(登錄時間戳-3S)時,才能通過驗證(如圖4所示)。[0034]服務(wù)端每隔I分鐘更新一次保存的時間戳,并將保存的時間戳加上60S。[0035]客戶端的密鑰編碼到客戶端中,服務(wù)端的密鑰保存到配置文件中,服務(wù)端密鑰的安全通過主機的安全來保障。[0036]上述所述的憑證也稱為票據(jù)或Token。該方法利用Restful架構(gòu)進行安全認(rèn)證,包括但不限于登錄認(rèn)證,操作有效性認(rèn)證?!局鳈?quán)項】1.一種基于restful架構(gòu)的身份驗證方法,其特征在于,包括以下步驟:(1)登錄過程:對用戶名密碼進行RSA加密傳送到服務(wù)端,服務(wù)端進行解密,使用TEA加密算法將解密的用戶名、密碼以及登錄IP、登錄PORT、登錄時間戳加上隨機字符生成登錄憑證;(2)操作憑證:將登錄憑證及操作時間戳進行RSA加密,生成帶操作時間戳的操作憑證;(3)身份驗證過程:服務(wù)端將步驟(2)中的操作憑證解密,并與服務(wù)端記錄的登錄憑證和登錄時間戳進行比對,兩者均滿足要求時,才能通過驗證。2.根據(jù)權(quán)利要求1所述的一種基于restful架構(gòu)的身份驗證方法,其特征在于,所述的服務(wù)端將加密后的用戶名和密碼進行解密,并與數(shù)據(jù)庫中的用戶名和密碼進行比對,如果兩者均相同,則生成登錄憑證,否則顯示異常信息。3.根據(jù)權(quán)利要求2所述的一種基于restful架構(gòu)的身份驗證方法,其特征在于,所述的步驟(102)中,生成登錄憑證的具體過程為:服務(wù)端將用戶名和密碼、登錄IP和隨機字符組合在一起,并加密生成登錄憑證,服務(wù)端將該登錄憑證與登錄時間戳一起保存到數(shù)據(jù)庫中,并且通過客戶端私鑰解密后,保存到客戶端本地。4.根據(jù)權(quán)利要求3所述的一種基于restful架構(gòu)的身份驗證方法,其特征在于,所述的加密生成登錄憑證的加密方法為用密碼的MD5值作為密鑰,采用TEA加密算法,形成總長為64節(jié)的登錄憑證。5.根據(jù)權(quán)利要求2所述的一種基于restful架構(gòu)的身份驗證方法,其特征在于,所述的步驟(103)中,對從客戶端獲取步驟(I)保存的登錄憑證與某一操作時的時間戳組成的字符串采用128位RSA加密方式進行加密。6.根據(jù)權(quán)利要求1所述的一種基于restful架構(gòu)的身份驗證方法,其特征在于,所述的服務(wù)端將操作憑證解密,并與服務(wù)端記錄的登錄憑證和登錄時間戳進行比對,具體為:服務(wù)端私鑰對操作憑證解密,并與保存到服務(wù)端的登錄憑證及登錄時間戳進行比對,當(dāng)憑證相等并且操作時間戳大于T時,才能通過驗證,其中T=登錄時間戳-3S。【專利摘要】本發(fā)明涉及一種基于restful架構(gòu)的身份驗證方法,包括:(1)登錄過程:對用戶名密碼進行RSA加密傳送到服務(wù)端,服務(wù)端進行解密,使用TEA加密算法將解密的用戶名、密碼以及登錄IP、登錄PORT、登錄時間戳加上隨機字符生成登錄憑證;(2)操作憑證:將登錄憑證及操作時間戳進行RSA加密,生成帶操作時間戳的操作憑證;(3)身份驗證過程:服務(wù)端將步驟(2)中的操作憑證解密,并與服務(wù)端記錄的登錄憑證和登錄時間戳進行比對,兩者均滿足要求時,才能通過驗證與現(xiàn)有技術(shù)相比,本發(fā)明通過在RESTful接口中加入一層安全認(rèn)證,使接口在調(diào)用時更安全,加入了此身份驗證功能,提高了操作的安全性?!綢PC分類】H04L29/06,H04L9/32【公開號】CN105207782【申請?zhí)枴緾N201510638258【發(fā)明人】李燕【申請人】上海愛數(shù)軟件有限公司【公開日】2015年12月30日【申請日】2015年11月18日