一種基于圖像加密技術(shù)的用戶安全登陸方法
【專利摘要】本發(fā)明涉及一種基于圖像加密技術(shù)的用戶安全登陸方法,包括以下步驟:客戶端對用戶密碼進行MD5加密得到密碼密文;客戶端將用戶名通過STDM嵌入圖片中;客戶端根據(jù)存儲在本地的隨機種子產(chǎn)生控制流,通過STDM將加密后的密碼密文嵌入圖片中;客戶端將圖片發(fā)送給服務器端;服務器端通過STDM從接收到的圖片中提取出用戶名;服務器端根據(jù)存儲在本地的隨機種子產(chǎn)生控制流,通過STDM從接收到的圖片中提取出得到密碼密文;服務器端驗證得到密碼密文,驗證成功則生成一個新的隨機種子并與驗證通過信息一并發(fā)送給客戶端,客戶端更新隨機種子;反之則提示驗證失敗。與現(xiàn)有技術(shù)相比,本發(fā)明在傳統(tǒng)的STDM基礎(chǔ)上,利用隨機種子為控制流將密文嵌入圖片,增加了系統(tǒng)的安全性。
【專利說明】
一種基于圖像加密技術(shù)的用戶安全登陸方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及信息安全領(lǐng)域,尤其是涉及一種基于圖像加密技術(shù)的用戶安全登陸方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,人們生活水平提高,質(zhì)量增強,但背后也隱藏著巨大的安全隱患。作為保護用戶個人信息和財產(chǎn)安全的重要手段,身份認證是各類網(wǎng)站和軟件必備的功能,具體體現(xiàn)在一開始的用戶登錄,如果是支付平臺或牽扯到金錢交易還會有更進一步的認證。總之網(wǎng)絡在向移動化方向發(fā)展,人們生活越來越便捷,同時也暴露了很多問題。許多著名網(wǎng)站和軟件廠商接連被披露在傳輸用戶登錄信息時用明文傳輸,僅有部分的網(wǎng)站會將密碼進行MD5運算傳輸,但在MD5在驗證不抗碰撞之后單純的MD5又是否安全。極少數(shù)幾家對安全比較注重的公司會使用TLS的加密算法來進行加密,但其使用CBC塊加密方式卻已經(jīng)滄陷。在2013年2月,NadhemAlFardar^PKenny Paterson發(fā)現(xiàn)了一個名為Luckl3的攻擊方式,這種攻擊方式主要攻擊SSL/TLS采取的CBC方式的塊加密方式。攻擊著可以通過阻斷TLS連接的方式(比如通過惡意軟件故意斷掉鏈接,TLS會自動重發(fā)),讓發(fā)送方反復發(fā)送同一加密內(nèi)容(比如cookie或者密碼的密文),TLS發(fā)送錯誤信息的時間差異的分析,Luckl3攻擊可以在較短時間內(nèi)破解密文。因此,直接明文傳輸或簡單加密已經(jīng)不能很好地保護用戶信息,用抓包分析就可以簡單地截獲用戶登錄內(nèi)容。針對像登錄信息或支付驗證這樣的重要信息傳輸過程,結(jié)合了現(xiàn)在逐漸成熟的云技術(shù),我們提出自己的方法。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于圖像加密技術(shù)的用戶安全登陸方法。
[0004]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
[0005]—種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,包括以下步驟:
[0006](I)客戶端對用戶的登陸密碼進行MD5加密得到密碼密文;
[0007](2)客戶端將用戶名通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中;
[0008](3)客戶端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法將密碼密文嵌入圖片中;
[0009](4)客戶端將圖片發(fā)送給服務器端;
[0010](5)服務器端通過基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出用戶名;
[0011](6)服務器端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出密碼密文;
[0012](7)服務器端用保存在本地的密碼密文來驗證步驟¢)中提取出的密碼密文,若驗證成功,則生成一個新的隨機種子,并與驗證通過信息一并發(fā)送給客戶端,客戶端更新隨機種子,客戶端完成登陸;反之則提示驗證失敗,客戶端登陸失敗。
[0013]所述步驟(I)中客戶端將用戶的登陸密碼與該用戶所登陸軟件的軟件指紋結(jié)合生成用戶針對該軟件的登陸密碼后,再進行MD5加密。
[0014]所述的隨機種子為服務器驗證用戶密碼密文成功時的本地時間。
[0015]所述客戶端將用戶名和密碼密文轉(zhuǎn)換為128位0-1比特流后通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中。
[0016]所述的步驟(2)中客戶端將用戶名通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中具體為:
[0017](201)客戶端生成一張256X256像素的24位真彩BMP圖片;
[0018](202)對步驟(301)中生成的圖片進行8 X 8的DCT變換,得到32 X 32個DCT系數(shù)矩陣;
[0019](203)對32 X 32個DCT系數(shù)矩陣中前32 X 4個矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入128位的用戶名;
[0020]所述的步驟(3)中客戶端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法將密碼密文嵌入圖片中具體為:
[0021](301)利用基于ANSI X9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流;
[0022](302)跳過前32X4個矩陣,按照以下規(guī)則對后32X28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入密碼密文:
[0023](3021)順序取出一個矩陣,并從步驟(301)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作;(3022)判斷128位密碼密文是否全部嵌入完成,若為是則完成密碼密文嵌入,若為否,回到步驟(3021)。
[0024](303)對32X32個DCT系數(shù)矩陣進行DCT變換的逆變換。
[0025]所述的步驟(5)中服務器端通過基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出用戶名具體為:
[0026](501)服務器端將收到的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣;
[0027](502)對32 X 32個DCT系數(shù)矩陣中前32 X 4個矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取用戶名;
[0028]所述的步驟¢)中服務器端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出密碼密文具體為:
[0029](601)利用基于ANSI X9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流;
[0030](602)跳過前32X4個矩陣,按照以下規(guī)則對后32X28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取密碼密文:
[0031](6021)順序取出一個矩陣,并從步驟¢01)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為O,則對當前取出的矩陣不做任何操作;(6022)判斷128位密碼密文是否全部提取完成,若為是則完成密文提取,若為否,回到步驟¢021)。
[0032]所述步驟(7)中服務器端保存在本地的密碼密文是嵌入在保存在本地的圖片中的,具體的密碼密文提取方法為:
[0033](701)服務器端將保存在本地的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣;
[0034](702)利用基于ANSI X9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流;
[0035](703)按照以下規(guī)則對32X32個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取密碼密文:
[0036](7031)順序取出一個矩陣,并從步驟(702)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作;
[0037](7032)判斷128位密碼密文是否全部提取完成,若為是則完成密文提取,若為否,回到步驟(7031) ο
[0038]所述0-1控制流控制流的長度小于896。
[0039]所述客戶端為移動終端或PC終端。
[0040]所述的客戶端與服務器端之間通過SSL協(xié)議進行通信。
[0041]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0042]1.在傳統(tǒng)的基于擴展變換抖動調(diào)制的數(shù)字水印方法的基礎(chǔ)上,利用密碼強度最高的偽隨機數(shù)產(chǎn)生器ANSI x9.17產(chǎn)生偽隨機數(shù)作為控制流,在保留了基于擴展變換抖動調(diào)制的數(shù)字水印方法本身抗干擾性高和抑制宿主干擾的優(yōu)點的基礎(chǔ)上,進一步增加系統(tǒng)的安全性。
[0043]2.每個軟件引入軟件指紋,產(chǎn)生唯一的軟件標識。與原密碼相互結(jié)合產(chǎn)生新的密碼,這樣即使多個賬號使用同一個密碼,也不用擔心存在不安全性。可以說同時兼顧了安全性與與便捷性。
[0044]3.利用當下云服務的強大計算能力和儲存能力,在通信過程中選擇以圖片為載體進行發(fā)送。在服務器端,同樣利用圖片進行數(shù)據(jù)的儲存,這樣在通信和存儲兩個環(huán)節(jié)都對安全性做到了提升。
【附圖說明】
[0045]圖1為本發(fā)明的客戶端與服務器端之間通信的數(shù)據(jù)流圖;
【具體實施方式】
[0046]下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。
[0047]實施例1
[0048]客戶端:用戶在PC中的軟件輸入其用戶名和密碼,PC端根據(jù)用戶名與用戶選擇登錄的軟件,在本地數(shù)據(jù)庫中找到該軟件相應的軟件指紋與時間種子,并將用戶輸入的原始密碼與軟件指紋結(jié)合,經(jīng)md5加密,形成16位密碼密文,進一步轉(zhuǎn)化成128位0_1比特流的密碼密文。用戶名同樣填充成128位0-1比特流。
[0049]為保證宿主圖像足夠大可以將256bit信息(128位的用戶名和128位的密碼密文)嵌入,我們采用256X256的24位真彩bmp圖片。對生成的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣;對32X32個DCT系數(shù)矩陣中前32 X 4個矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入128位的用戶名;
[0050]根據(jù)從本地數(shù)據(jù)庫中提取出來的時間種子,利用基于ANSI X9.17的偽隨機數(shù)產(chǎn)生器,以時間種子作為其輸入,得到一個至少包含128個I的0-1控制流。
[0051 ] 跳過前32 X 4個矩陣,按照以下規(guī)則對后32 X 28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入128位的密碼密文,具體規(guī)則如下:
[0052](I)順序取出一個矩陣,并從所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作;
[0053](2)判斷128位密碼密文是否全部提取完成,若為是則完成密碼密文提取,若為否,回到步驟(I)。
[0054]完成用戶名和密碼密文的嵌入后,PC端按照SSL方式將圖片發(fā)送給服務器端。
[0055]服務器端:對于服務器接收到的圖片進行8X8的DCT變換后,得到32X32個DCT系數(shù)矩陣,從其中前32X4個矩陣中進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取出用戶名;
[0056]根據(jù)提取出的用戶名從數(shù)據(jù)庫中提取該用戶對應的時間種子,利用基于ANSIX9.17的偽隨機數(shù)產(chǎn)生器,將該時間種子作為其輸入,得到一個至少包含128個I的0_1控制流;
[0057]跳過前32 X 4個矩陣,按照以下規(guī)則對后32 X 28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取128位的密碼密文:
[0058](I)順序取出一個矩陣,并從所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作;
[0059](2)判斷128位密碼密文是否全部提取完成,若為是則完成密碼密文提取,若為否,回到步驟(6021) ο
[0060]提取出PC端傳來的圖片中的密碼密文后,服務器端還需要取出本地保存的該用戶的密碼密文用于驗證,在本實施例中,服務器端保存在本地的密碼密文也是嵌入在保存在本地的圖片中的。
[0061]因此,服務器端先將保存在本地的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣;
[0062]利用基于ANSI X9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流;
[0063]按照以下規(guī)則對32X32個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取128位的密碼密文:
[0064](I)順序取出一個矩陣,并從所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作;
[0065](2)判斷128位密碼密文是否全部提取完成,若為是則完成密碼密文提取,若為否,回到步驟(I)。
[0066]提取出本地保存的密碼密文后,將兩個密碼密文相比對。如果相符,就向客戶端發(fā)送許可信息并更新本地數(shù)據(jù)庫中的時間種子,同時也通知客戶端更新為該新生成的時間種子。此外,服務器端還將用這個新生成的時間種子重新產(chǎn)生控制流,將密碼密文重新嵌入本地圖片中,用于下次用戶登錄時的驗證工作。
[0067]實施例2
[0068]本實施例與實施例1基本相同,唯一區(qū)別在于本實施例中的客戶端為手機終端,手機終端通過WLAN或者移動網(wǎng)絡與服務器端通信,適合于當今網(wǎng)絡逐漸趨于移動化的趨勢。
【主權(quán)項】
1.一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,包括以下步驟: (1)客戶端對用戶的登陸密碼進行MD5加密得到密碼密文; (2)客戶端將用戶名通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中; (3)客戶端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法將密碼密文嵌入圖片中; (4)客戶端將圖片發(fā)送給服務器端; (5)服務器端通過基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出用戶名; (6)服務器端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出密碼密文; (7)服務器端用保存在本地的密碼密文來驗證步驟¢)中提取出的密碼密文,若驗證成功,則生成一個新的隨機種子,并與驗證通過信息一并發(fā)送給客戶端,客戶端更新隨機種子,客戶端完成登陸;反之則提示驗證失敗,客戶端登陸失敗。2.根據(jù)權(quán)利要求1所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述步驟(I)中客戶端將用戶的登陸密碼與該用戶所登陸軟件的軟件指紋結(jié)合生成用戶針對該軟件的登陸密碼后,再進行MD5加密。3.根據(jù)權(quán)利要求1或2所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述的隨機種子為服務器驗證用戶密碼密文成功時的本地時間。4.根據(jù)權(quán)利要求3所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述客戶端將用戶名和密碼密文轉(zhuǎn)換為128位0-1比特流后通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中。5.根據(jù)權(quán)利要求4中所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于, 所述的步驟(2)中客戶端將用戶名通過基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入圖片中具體為: (201)客戶端生成一張256X256像素的24位真彩BMP圖片; (202)對步驟(301)中生成的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣; (203)對32X 32個DCT系數(shù)矩陣中前32 X 4個矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入128位的用戶名; 所述的步驟(3)中客戶端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法將密碼密文嵌入圖片中具體為: (301)利用基于ANSIX9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流; (302)跳過前32X4個矩陣,按照以下規(guī)則對后32X28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入密碼密文: (3021)順序取出一個矩陣,并從步驟(301)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法嵌入I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作; (3022)判斷128位密碼密文是否全部嵌入完成,若為是則完成密碼密文嵌入,若為否,回到步驟(3021) ο (303)對32X32個DCT系數(shù)矩陣進行DCT變換的逆變換。6.根據(jù)權(quán)利要求5中所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于, 所述的步驟(5)中服務器端通過基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出用戶名具體為: (501)服務器端將收到的圖片進行8X8的DCT變換,得到32X32個DCT系數(shù)矩陣; (502)對32X 32個DCT系數(shù)矩陣中前32 X 4個矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取用戶名; 所述的步驟出)中服務器端用存儲在本地的隨機種子生成控制流,通過該控制流進行基于擴展變換抖動調(diào)制的數(shù)字水印方法從接收到的圖片中提取出密碼密文具體為: (601)利用基于ANSIX9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流; (602)跳過前32X4個矩陣,按照以下規(guī)則對后32X28個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取密碼密文: (6021)順序取出一個矩陣,并從步驟(601)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作; (6022)判斷128位密碼密文是否全部提取完成,若為是則完成密文提取,若為否,回到步驟(6021) ο7.根據(jù)權(quán)利要求6所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述步驟(7)中服務器端保存在本地的密碼密文是嵌入在保存在本地的圖片中的,具體的密碼密文提取方法為: (701)服務器端將保存在本地的圖片進行8X 8的DCT變換,得到32 X 32個DCT系數(shù)矩陣; (702)利用基于ANSIX9.17的偽隨機數(shù)產(chǎn)生器,將所述存儲在本地的隨機種子作為其輸入,得到一個至少包含128個I的0-1控制流; (703)按照以下規(guī)則對32X32個系數(shù)矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取密碼密文: (7031)順序取出一個矩陣,并從步驟(702)中所得控制流中順序讀出一位數(shù)據(jù),如果為1,則對當前取出的矩陣進行基于擴展變換抖動調(diào)制的數(shù)字水印方法提取I位密碼密文,如果為0,則對當前取出的矩陣不做任何操作; (7032)判斷128位密碼密文是否全部提取完成,若為是則完成密文提取,若為否,回到步驟(7031) ο8.根據(jù)權(quán)利要求5或6或7中所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述0-1控制流控制流的長度小于896。9.根據(jù)權(quán)利要求1中所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述客戶端為移動終端或PC終端。10.根據(jù)權(quán)利要求1中任意所述的一種基于圖像加密技術(shù)的用戶安全登陸方法,其特征在于,所述的客戶端與服務器端之間通過SSL協(xié)議進行通信。
【文檔編號】H04L29/06GK105991559SQ201510059780
【公開日】2016年10月5日
【申請日】2015年2月5日
【發(fā)明人】程久軍, 秦鵬宇, 楊陽, 張慶陽, 胡劉飛, 柳影波
【申請人】同濟大學