Http協(xié)議下可變密鑰加密的安全登錄方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體涉及HTTP協(xié)議下可變密鑰加密的安全登錄方法。
【背景技術(shù)】
[0002]HTTP協(xié)議傳輸數(shù)據(jù)是一種明文的方式,通常在處理用戶登錄時(shí),客戶端通過一些Hash算法把密碼等安全級(jí)別高的信息加密后傳遞給服務(wù)端,服務(wù)端接收到加密的數(shù)據(jù)和數(shù)據(jù)庫中保存的經(jīng)過同樣Hash算法加密的數(shù)據(jù)相比較來完成一次登錄驗(yàn)證。這種方式雖然也對(duì)密碼做了加密,但是在客戶端和服務(wù)端的加密算法是一樣的,傳輸過程中也是明文,就像給密碼穿了件衣服而已,而且這件衣服在每次登錄的時(shí)候都是不換的。這樣一來,登錄的安全性也就打了折扣。
【發(fā)明內(nèi)容】
[0003]為了實(shí)現(xiàn)更加安全可靠的登錄驗(yàn)證,解決現(xiàn)有技術(shù)登錄驗(yàn)證時(shí)密碼容易泄露或被偽造等而安全性低的技術(shù)問題,本發(fā)明提供HTTP協(xié)議下可變密鑰加密的安全登錄方法,該方法采用可變密鑰加密的方式,密鑰和數(shù)據(jù)都是動(dòng)態(tài)變化的,非法第三方無法推算出當(dāng)前登錄所用的密碼數(shù)據(jù),極大地提高了安全性。
[0004]本發(fā)明采用如下技術(shù)方案:本發(fā)明HTTP協(xié)議下可變密鑰加密的安全登錄方法,包括以下步驟:
[0005]S1、客戶端發(fā)起的登錄驗(yàn)證請求;
[0006]S2、服務(wù)端根據(jù)登錄驗(yàn)證請求生成臨時(shí)密鑰K,將臨時(shí)密鑰傳回客戶端,并以客戶端IP地址作為鍵值緩存臨時(shí)密鑰在服務(wù)端緩存中;
[0007]S3、客戶端根據(jù)輸入的明文密碼與臨時(shí)密鑰K,加密生成用戶信息摘要數(shù)據(jù)Hpl,把Hpl傳給服務(wù)端;
[0008]S4、服務(wù)端根據(jù)登錄驗(yàn)證請求,從服務(wù)端緩存中查詢是否存在IP為鍵值的臨時(shí)密鑰K,若不存在臨時(shí)密鑰則判定登錄驗(yàn)證失敗;若存在臨時(shí)密鑰,則查詢服務(wù)端用戶密碼,根據(jù)服務(wù)端用戶密碼與臨時(shí)密鑰K生成服務(wù)端信息摘要數(shù)據(jù)Hp2,將Hp2與Hpl比較,判定登錄驗(yàn)證失敗或通過。
[0009]優(yōu)選地,所述步驟S2服務(wù)端從登錄驗(yàn)證請求中獲取登錄驗(yàn)證請求會(huì)話的客戶端IP地址和發(fā)起當(dāng)前登錄驗(yàn)證請求時(shí)的時(shí)間戳數(shù)據(jù)Ts,通過算法K = GetKeydP, Ts)生成臨時(shí)密鑰K。
[0010]優(yōu)選地,所述步驟S2服務(wù)端對(duì)臨時(shí)密鑰K的緩存設(shè)置有效期Exp。
[0011]優(yōu)選地,所述步驟S3客戶端首先將輸入的明文密碼加密成客戶端用戶密碼P1,再根據(jù)客戶端用戶密碼Pl和臨時(shí)密鑰K生成用戶信息摘要數(shù)據(jù)Hpl。
[0012]優(yōu)選地,所述步驟S4服務(wù)端從登錄驗(yàn)證請求中獲取登錄驗(yàn)證請求的客戶端IP地址、用戶名及用戶信息摘要數(shù)據(jù)Hpl。
[0013]優(yōu)選地,所述步驟S4服務(wù)端根據(jù)登錄驗(yàn)證請求獲取用戶名,若服務(wù)端緩存中存在臨時(shí)密鑰,則根據(jù)用戶名從數(shù)據(jù)庫中查詢服務(wù)端用戶密碼。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)及有益效果:
[0015]本發(fā)明在服務(wù)端生成的動(dòng)態(tài)密鑰,是一個(gè)有時(shí)效性,具有生命周期的密鑰。如果在登錄過程中發(fā)生一些數(shù)據(jù)劫持、數(shù)據(jù)偽造時(shí),劫持者(即非法第三方)只能拿到隨機(jī)密鑰或者經(jīng)過加密后的數(shù)據(jù),由于密鑰和數(shù)據(jù)都是動(dòng)態(tài)變化的,所以劫持者沒法偽造出一致的響應(yīng),也就沒有辦法推算出真正的密碼數(shù)據(jù),從而使登錄驗(yàn)證的安全性得到了最大的保證。
【附圖說明】
[0016]圖1是臨時(shí)密鑰的生成過程;
[0017]圖2是客戶端加密登錄數(shù)據(jù)的流程;
[0018]圖3是服務(wù)端解析驗(yàn)證登錄數(shù)據(jù)的流程。
[0019]圖中各參數(shù)說明如下:
[0020]K:登錄驗(yàn)證請求時(shí),服務(wù)端生成的臨時(shí)密鑰;IP:發(fā)起登錄驗(yàn)證請求的客戶端IP地址;Ts:發(fā)起登錄驗(yàn)證請求時(shí)的時(shí)間戳;Exp:臨時(shí)密鑰緩存的有效期;P:用戶明文密碼;Pl:客戶端經(jīng)MD5加密的用戶密碼;P2:服務(wù)端存儲(chǔ)的經(jīng)MD5加密的用戶密碼;Hpl:哈希加密的用戶信息摘要數(shù)據(jù);Hp2:哈希加密的服務(wù)器信息摘要數(shù)據(jù)。
【具體實(shí)施方式】
[0021]下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不局限于此。
[0022]實(shí)施例
[0023]在本實(shí)施例中,HTTP協(xié)議下可變密鑰加密的安全登錄方法,包括以下步驟:
[0024]I)客戶端發(fā)起的登錄驗(yàn)證請求,服務(wù)端根據(jù)登錄驗(yàn)證請求生成臨時(shí)密鑰,將臨時(shí)密鑰傳回客戶端,并以客戶端IP地址作為鍵值緩存臨時(shí)密鑰在服務(wù)端緩存中。
[0025]參見圖1,當(dāng)客戶端發(fā)起登錄驗(yàn)證請求時(shí),服務(wù)端接收到請求,獲取發(fā)起當(dāng)前登錄驗(yàn)證請求會(huì)話的客戶端IP地址(IP),作為生成臨時(shí)密鑰的第一個(gè)參數(shù),同時(shí)獲取發(fā)起當(dāng)前登錄驗(yàn)證請求時(shí)的時(shí)間戳數(shù)據(jù)(Ts),作為生成臨時(shí)密鑰的第二個(gè)參數(shù),通過密鑰生成算法K = GetKeydP, Ts),得到一個(gè)經(jīng)base64編碼處理過的臨時(shí)密鑰K,然后將臨時(shí)密鑰通過響應(yīng)流傳遞回客戶端,同時(shí)用IP作為鍵值,把K緩存在服務(wù)端緩存(web cache)中,并設(shè)置臨時(shí)密鑰K緩存的有效期(Exp)。
[0026]2)客戶端將輸入的明文密碼加密成客戶端用戶密碼P1,再根據(jù)客戶端用戶密碼Pl與臨時(shí)密鑰K加密生成用戶信息摘要數(shù)據(jù)Hpl,把Hpl傳給服務(wù)端。
[0027]如圖2所示,客戶端獲取用戶輸入的明文密碼P后,把明文密碼經(jīng)過MD5加密算法Pl = MD5 (P)處理,得到經(jīng)MD5加密后的客戶端用戶密碼Pl作為生成客戶端加密數(shù)據(jù)的一個(gè)消息參數(shù),臨時(shí)密鑰K作為算法的密鑰參數(shù),通過密鑰相關(guān)的哈希加密算法生成最終的哈希加密用戶信息摘要數(shù)據(jù)Hpl = HMAC (P1, K)。客戶端在提交登錄驗(yàn)證請求時(shí),把經(jīng)過哈希加密的用戶信息摘要數(shù)據(jù)Hpl傳給服務(wù)端。
[0028]3)服務(wù)端根據(jù)登錄驗(yàn)證請求,從服務(wù)端緩存中查詢是否存在IP為鍵值的臨時(shí)密鑰K,解析登錄驗(yàn)證請求,判定登錄驗(yàn)證失敗或通過。
[0029]服務(wù)端接收到登錄驗(yàn)證請求后,首先獲取登錄驗(yàn)證請求的客戶端IP地址、用戶名、用戶信息摘要數(shù)據(jù)Hpl,并從服務(wù)端緩存中查詢是否存在IP為鍵值的臨時(shí)密鑰K,如果不存在,說明臨時(shí)密鑰過期,直接返回登錄驗(yàn)證失敗信息。如果存在該臨時(shí)密鑰,根據(jù)用戶名從數(shù)據(jù)庫中查詢出保存的經(jīng)過MD5加密的服務(wù)端用戶密碼P2,通過密鑰相關(guān)的哈希加密算法生成最終的哈希加密服務(wù)端信息摘要數(shù)據(jù)Hp2 = HMAC(P2, K);其中服務(wù)端用戶密碼P2是在用戶注冊帳號(hào)時(shí)服務(wù)端經(jīng)過MD5加密生成并存儲(chǔ)在數(shù)據(jù)庫中的用戶密碼。將服務(wù)端生成的信息摘要數(shù)據(jù)Hp2與客戶端傳遞過來的摘要數(shù)據(jù)Hpl做比較。不一致,則判定登錄驗(yàn)證失??;一致,則判定登錄驗(yàn)證通過。
[0030]上述實(shí)施例為本發(fā)明的一種實(shí)施方式,但本發(fā)明的實(shí)施方式并不限定與此,從事該領(lǐng)域技術(shù)人員在未背離本發(fā)明精神和原則下所做的任何修改、替換、改進(jìn),均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.HTTP協(xié)議下可變密鑰加密的安全登錄方法,其特征在于,包括以下步驟: 51、客戶端發(fā)起的登錄驗(yàn)證請求; 52、服務(wù)端根據(jù)登錄驗(yàn)證請求生成臨時(shí)密鑰K,將臨時(shí)密鑰傳回客戶端,并以客戶端IP地址作為鍵值緩存臨時(shí)密鑰在服務(wù)端緩存中; 53、客戶端根據(jù)輸入的明文密碼與臨時(shí)密鑰K,加密生成用戶信息摘要數(shù)據(jù)Hpl,把Hpl傳給服務(wù)端; 54、服務(wù)端根據(jù)登錄驗(yàn)證請求,從服務(wù)端緩存中查詢是否存在IP為鍵值的臨時(shí)密鑰K,若不存在臨時(shí)密鑰則判定登錄驗(yàn)證失敗;若存在臨時(shí)密鑰,則查詢服務(wù)端用戶密碼,根據(jù)服務(wù)端用戶密碼與臨時(shí)密鑰K生成服務(wù)端信息摘要數(shù)據(jù)Hp2,將Hp2與Hpl比較,判定登錄驗(yàn)證失敗或通過。
2.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S2服務(wù)端從登錄驗(yàn)證請求中獲取登錄驗(yàn)證請求會(huì)話的客戶端IP地址和發(fā)起當(dāng)前登錄驗(yàn)證請求時(shí)的時(shí)間戳數(shù)據(jù)Ts,通過算法K = GetKeydP, Ts)生成臨時(shí)密鑰K。
3.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S2服務(wù)端對(duì)臨時(shí)密鑰K的緩存設(shè)置有效期Exp。
4.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S3客戶端首先將輸入的明文密碼加密成客戶端用戶密碼PI,再根據(jù)客戶端用戶密碼PI和臨時(shí)密鑰K生成用戶信息摘要數(shù)據(jù)Hpl。
5.根據(jù)權(quán)利要求4所述的安全登錄方法,其特征在于,所述客戶端采用MD5加密算法將輸入的明文密碼加密成用戶密碼Pl。
6.根據(jù)權(quán)利要求4所述的安全登錄方法,其特征在于,所述客戶端采用哈希加密算法生成用戶信息摘要數(shù)據(jù)Hpl。
7.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S4服務(wù)端從登錄驗(yàn)證請求中獲取登錄驗(yàn)證請求的客戶端IP地址、用戶名及用戶信息摘要數(shù)據(jù)Hpl。
8.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S4服務(wù)端根據(jù)登錄驗(yàn)證請求獲取用戶名,若服務(wù)端緩存中存在臨時(shí)密鑰,則根據(jù)用戶名從數(shù)據(jù)庫中查詢服務(wù)端用戶密碼。
9.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S4中服務(wù)端采用哈希加密算法生成服務(wù)端信息摘要數(shù)據(jù)Hp2。
10.根據(jù)權(quán)利要求1所述的安全登錄方法,其特征在于,所述步驟S4中服務(wù)端用戶密碼為用戶注冊帳號(hào)時(shí)服務(wù)端經(jīng)過MD5加密生成并存儲(chǔ)在數(shù)據(jù)庫中的用戶密碼。
【專利摘要】本發(fā)明涉及HTTP協(xié)議下可變密鑰加密的安全登錄方法,步驟如下:服務(wù)端根據(jù)客戶端的登錄驗(yàn)證請求生成臨時(shí)密鑰K,將臨時(shí)密鑰傳回客戶端并緩存在服務(wù)端;客戶端根據(jù)明文密碼與臨時(shí)密鑰加密生成用戶信息摘要數(shù)據(jù)Hp1;服務(wù)端根據(jù)登錄驗(yàn)證請求查詢是否存在IP為鍵值的臨時(shí)密鑰K,若不存在則判定登錄驗(yàn)證失敗;若存在則查詢服務(wù)端用戶密碼,根據(jù)服務(wù)端用戶密碼與臨時(shí)密鑰生成服務(wù)端信息摘要數(shù)據(jù)Hp2,將Hp2與Hp1比較,判定登錄驗(yàn)證失敗或通過。發(fā)明密鑰和數(shù)據(jù)都是動(dòng)態(tài)變化的,非法第三方無法推算出當(dāng)前登錄所用的密碼數(shù)據(jù),解決現(xiàn)有技術(shù)登錄驗(yàn)證時(shí)密碼容易泄露或被偽造等而安全性低的技術(shù)問題。
【IPC分類】H04L29-06
【公開號(hào)】CN104580248
【申請?zhí)枴緾N201510041527
【發(fā)明人】傅志山
【申請人】中復(fù)保有限公司
【公開日】2015年4月29日
【申請日】2015年1月27日