專利名稱:一種密碼編碼器和密碼保護(hù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及信息安全技術(shù)領(lǐng)域,更具體地,涉及一種密碼編碼器和密碼保護(hù)
系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)應(yīng)用的不斷普及,人們經(jīng)常需要訪問各種各樣的網(wǎng)站,如電子購物、收發(fā)
電子郵件(Email)、網(wǎng)上聊天、網(wǎng)絡(luò)游戲等。在登錄網(wǎng)站之前,通常都需要用戶輸入自己的用
戶名和密碼。然而,目前網(wǎng)上存在著各種病毒,可以在用戶輸入密碼時(shí)偷偷記錄下用戶通過
鍵盤所輸入的字符,從而盜取用戶的密碼,這就給用戶帶來很大的風(fēng)險(xiǎn)。 在現(xiàn)有技術(shù)中,一般采用軟鍵盤來防止鍵盤輸入被病毒程序截獲。具體包括在需
要輸入密碼時(shí),應(yīng)用程序提供一個(gè)圖形化的鍵盤界面,用戶使用鼠標(biāo)點(diǎn)擊其中圖形化的字
符按鈕,代替鍵盤的敲擊將密碼字符輸入給應(yīng)用程序。在這種技術(shù)中,當(dāng)用戶點(diǎn)擊字符圖片
按鈕時(shí),計(jì)算機(jī)系統(tǒng)只是接收到了鼠標(biāo)點(diǎn)擊的位置信息,而不是真正的字符,因而即使輸入
被病毒程序截獲,病毒也無法知道輸入的到底是哪個(gè)字符,只有應(yīng)用程序才知道各圖形字
符的位置信息與字符之間的對(duì)應(yīng)關(guān)系。 軟鍵盤的使用在某種程度上能夠阻止鍵盤記錄器等病毒對(duì)鍵盤輸入的竊聽,但是 一些病毒程序仍然可以采用其它方法盜取輸入的密碼,比如 (1)屏幕快照 例如,2004年江民反病毒中心截獲"證券大盜"病毒。該病毒作者已考慮到軟鍵盤 輸入密碼保護(hù)技術(shù)。病毒在運(yùn)行后,會(huì)通過屏幕快照將用戶的登陸界面連續(xù)保存為兩張黑 白圖片,然后通過自帶的發(fā)信模塊將圖片發(fā)向指定的郵件接受者。黑客通過對(duì)照?qǐng)D片中鼠 標(biāo)的點(diǎn)擊位置,就很有可能破譯出用戶的登陸賬號(hào)和密碼,從而突破軟鍵盤密碼保護(hù)技術(shù), 嚴(yán)重威脅股民網(wǎng)上證券交易安全。
(2)直接捕獲軟鍵盤輸入后的字符 軟鍵盤只是模擬了鍵盤的輸入,經(jīng)過應(yīng)用程序的轉(zhuǎn)換處理后,仍然會(huì)向輸入密碼 的文本框中提供真實(shí)的字符。病毒可以通過網(wǎng)絡(luò)瀏覽器的COM接口獲取密碼輸入文本框中 的內(nèi)容,或者直接攔截瀏覽器發(fā)送的超文本傳輸協(xié)議(Http)報(bào)文,從中也可以獲得用戶輸 入的密碼信息。 由此可見,盡管現(xiàn)在已經(jīng)出現(xiàn)了一些防止密碼被非法截取的技術(shù),隨著病毒技術(shù) 的進(jìn)步,目前的密碼輸入安全性仍然有待提高。
實(shí)用新型內(nèi)容本實(shí)用新型提出一種密碼編碼器,以提高密碼輸入安全性。 本實(shí)用新型提出一種密碼保護(hù)系統(tǒng),以提高密碼輸入安全性。 本實(shí)用新型的技術(shù)方案如下 —種密碼編碼器,包括輸入單元、密碼摘要生成單元和顯示單元,其中[0014] 輸入單元,用于接收由用戶提供的動(dòng)態(tài)密鑰和用戶密碼,并向密碼摘要生成單元 提供所述動(dòng)態(tài)密鑰和用戶密碼; 密碼摘要生成單元,用于根據(jù)所述動(dòng)態(tài)密鑰和用戶密碼以及散列(Hash)函數(shù)生 成加密值,并將該加密值發(fā)送到顯示單元; 顯示單元,用于顯示由輸入單元接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示所述加密 值。 所述輸入單元為計(jì)算器鍵盤或計(jì)算機(jī)鍵盤或移動(dòng)終端鍵盤。 所述Hash函數(shù)為用于信息身份認(rèn)證碼的基于密鑰散列HMAC算法。 所述密碼編碼器進(jìn)一步包括映射單元, 所述映射單元,用于將密碼摘要生成單元生成的加密值映射轉(zhuǎn)換成可見字符序
列,并將所述可見字符序列發(fā)送到顯示單元進(jìn)行顯示。 —種計(jì)算器,包括如上所述的密碼編碼器。 —種移動(dòng)終端,包括如上所述的密碼編碼器。 —種密碼保護(hù)系統(tǒng),包括用戶認(rèn)證單元和密碼編碼器,其中 用戶認(rèn)證單元,用于響應(yīng)用戶的請(qǐng)求向用戶提供動(dòng)態(tài)密鑰,并根據(jù)自身保存的用
戶密碼、所述動(dòng)態(tài)密鑰以及與密碼編碼器約定的Hash函數(shù)生成加密值,并當(dāng)生成的該加密
值與密碼編碼器發(fā)送來的加密值相同時(shí),判定用戶提供的用戶密碼正確; 密碼編碼器,用于接收由用戶輸入的動(dòng)態(tài)密鑰和用戶密碼,并根據(jù)所述用戶密碼
和動(dòng)態(tài)密鑰以及所述約定的散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到用戶認(rèn)證單元。 所述密碼編碼器包括移動(dòng)通信模塊和密碼摘要生成單元,其中 所述移動(dòng)通信模塊,用于通過短消息接收由用戶認(rèn)證單元提供給用戶的動(dòng)態(tài)密
鑰; 密碼摘要生成單元,用于根據(jù)所述用戶密碼和動(dòng)態(tài)密鑰以及散列Hash函數(shù)生成 加密值。 所述密碼編碼器進(jìn)一步包括映射單元; 所述映射單元,用于根據(jù)與用戶認(rèn)證單元約定的映射關(guān)系,將計(jì)算生成的加密值
轉(zhuǎn)換成可見字符序列,并將所述可見字符序列發(fā)送到用戶認(rèn)證單元進(jìn)行認(rèn)證; 用戶認(rèn)證單元,用于根據(jù)該約定的映射關(guān)系將自身生成的該加密值轉(zhuǎn)換成可見字
符序列,并當(dāng)自身轉(zhuǎn)換的該可見字符序列與映射單元發(fā)送來的可見字符序列相同時(shí),判定
用戶提供的用戶密碼正確。 所述Hash函數(shù)為用于信息身份認(rèn)證碼的基于密鑰散列HMAC算法。 從上述技術(shù)方案可以看出,本實(shí)用新型的密碼編碼器包括輸入單元、密碼摘要生
成單元和顯示單元。密碼摘要生成單元,用于根據(jù)用戶接收到的動(dòng)態(tài)密鑰和用戶輸入的用
戶密碼以及散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到顯示單元;顯示單元,用于顯
示由輸入單元接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示所述加密值。由此可見,應(yīng)用本實(shí)用新
型實(shí)施例以后,由于發(fā)送的密碼字符序列是經(jīng)過轉(zhuǎn)換過的加密值,黑客無法通過該加密值
破獲真實(shí)密碼,因此能夠提高密碼輸入安全性。 而且,應(yīng)用本實(shí)用新型實(shí)施例以后,由于密碼是通過鍵盤輸入的,輸入的密碼在文
4本框中一般都將密碼顯示為非文本的掩碼,即使顯示密碼的HMAC值,由于HMAC函數(shù)具有單向性,也不會(huì)導(dǎo)致密碼被破解,因此進(jìn)一步提高了密碼輸入安全性。 還有,即使病毒程序可以讀取密碼文本框中的字符,或者截獲了用戶提交的登錄請(qǐng)求中的密碼文本,由于黑客獲得的只是密碼的HMAC值,既不能通過此值破解密碼的真實(shí)值,也無法直接向密碼認(rèn)證系統(tǒng)重放,因此又進(jìn)一步提高了密碼驗(yàn)證的安全性。
圖1為根據(jù)本實(shí)用新型的密碼輸入方法流程示意圖; 圖2為根據(jù)本實(shí)用新型的密碼編碼器結(jié)構(gòu)示意圖; 圖3為根據(jù)本實(shí)用新型的密碼編碼器外形示意圖; 圖4為根據(jù)本實(shí)用新型的密碼保護(hù)系統(tǒng)結(jié)構(gòu)示意圖; 圖5為根據(jù)本實(shí)用新型的密碼保護(hù)方法流程示意圖; 圖6為根據(jù)本實(shí)用新型的密碼保護(hù)系統(tǒng)登錄示意圖。
具體實(shí)施方式為使本實(shí)用新型的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,
以下結(jié)合附圖及具體實(shí)施例對(duì)本實(shí)用新型再作進(jìn)一步詳細(xì)的說明。 圖1為根據(jù)本實(shí)用新型的密碼輸入方法流程示意圖。該方法中,首先在密碼認(rèn)證方和密碼輸入方之間約定散列(Hash)函數(shù)。 眾所周知,單向函數(shù)是一種數(shù)學(xué)函數(shù)。針對(duì)指定的輸入,利用單向函數(shù)能夠很容易地計(jì)算出結(jié)果。然而,在僅僅知道計(jì)算結(jié)果的情況下,要反推出輸入的值卻是很難做到的。[0045] 下面對(duì)Hash函數(shù)進(jìn)行示范性說明。 Hash函數(shù)被稱為單向散列函數(shù),是一種能將任意長的消息映射為定長的Hash值的公開函數(shù)。Hash函數(shù)的計(jì)算結(jié)果被稱為原來輸入消息的摘要。Hash函數(shù)在密碼學(xué)中應(yīng)用十分廣泛,與各種加密算法有著密切的聯(lián)系。[0047] Hash函數(shù)的模型如下[0048] h = H(M): 其中,M是待處理的消息數(shù)據(jù);H是Hash函數(shù);h是生成的消息摘要;它的長度是固
定的,并且和M的長度無關(guān)。 Hash函數(shù)具有下面一些性質(zhì) (1) :Hash函數(shù)可應(yīng)用于任意長度的數(shù)據(jù)塊; (2) :Hash函數(shù)產(chǎn)生定長的輸出; (3):對(duì)于任何給定的M和H,計(jì)算h比較容易,用硬件和軟件均可實(shí)現(xiàn); (4):對(duì)任何給定的H和h,無法計(jì)算出M,這又可稱之為單向性; (5):對(duì)任何給定的H和M,找到不同的消息M1,使得H(M1) 二H(M),在計(jì)算上是不
可行的,這又稱之為抗弱碰撞性; (6):對(duì)任何給定的H,找到不同的消息Ml和M2,使得H(M1) = H(M2),在計(jì)算上是
不可行的,這又稱之為抗碰撞性。 目前常用的消息摘要算法有MD5和SHA1 。[0058] 下面繼續(xù)對(duì)本實(shí)用新型的流程進(jìn)行說明。如圖1所示,該方法包括[0059] 步驟101 :密碼認(rèn)證方向密碼輸入方提供動(dòng)態(tài)密鑰。 優(yōu)選地,密碼輸入方側(cè)的用戶每次登錄時(shí),都會(huì)由密碼認(rèn)證方動(dòng)態(tài)生成一個(gè)隨機(jī)的動(dòng)態(tài)密鑰,并以圖片或者字符的形式將該動(dòng)態(tài)密鑰傳送給密碼輸入方,在密碼輸入方的顯示終端上將此動(dòng)態(tài)密鑰圖片或字符顯示在登錄界面中,從而用戶可以獲知該動(dòng)態(tài)密鑰。用圖片傳送動(dòng)態(tài)密鑰可以增強(qiáng)網(wǎng)絡(luò)傳輸過程中的抗破解能力,如果不擔(dān)心被破解,也可以采用字符形式傳遞該動(dòng)態(tài)密鑰。相應(yīng)地,在密碼認(rèn)證方中保存該動(dòng)態(tài)密鑰,以在后續(xù)的認(rèn)證過程中予以使用。 步驟102 :密碼輸入方根據(jù)用戶密碼、該動(dòng)態(tài)密鑰以及該約定Hash函數(shù)生成加密值,并將該加密值發(fā)送到密碼認(rèn)證方進(jìn)行認(rèn)證。 在這里,優(yōu)選地,密碼輸入方根據(jù)用戶密碼、動(dòng)態(tài)密鑰以及該約定Hash函數(shù)生成
用于消息認(rèn)證的密鑰散列(HMAC)值,并將該HMAC值發(fā)送到密碼認(rèn)證方進(jìn)行認(rèn)證。 步驟103 :密碼認(rèn)證方根據(jù)自身保存的用戶密碼、所述動(dòng)態(tài)密鑰以及該約定Hash
函數(shù)生成加密值,并當(dāng)密碼認(rèn)證方生成的該加密值與密碼輸入方發(fā)送來的加密值相同時(shí),
判定密碼輸入方提供的用戶密碼正確。 在這里,優(yōu)選地,密碼認(rèn)證方根據(jù)自身保存的用戶密碼、所述動(dòng)態(tài)密鑰以及該約定Hash函數(shù)生成HMAC值。當(dāng)密碼認(rèn)證方生成的該HMAC值與密碼輸入方發(fā)送來的HMAC值相同時(shí),判定密碼輸入方提供的用戶密碼正確。 本領(lǐng)域技術(shù)人員可以意識(shí)到,使用HMAC函數(shù)來生成加密值僅是一種示范性實(shí)例,并不應(yīng)用于限定本實(shí)用新型的保護(hù)范圍。實(shí)質(zhì)上,本實(shí)用新型實(shí)施例還可以采用其它的函數(shù)來生成加密值,這些函數(shù)上的變換都不脫離本實(shí)用新型的保護(hù)范圍。[0066] 下面對(duì)HMAC函數(shù)進(jìn)行詳細(xì)說明。 在Hash函數(shù)的基礎(chǔ)上,又產(chǎn)生了一種被稱為HMAC的算法。[0068] HMAC函數(shù)可以表示為[0069] y = HMAC(x,k,h)[0070] 其中x代表輸入消息; k代表一個(gè)為通訊雙方所共享的密鑰(此處為密碼認(rèn)證方向密碼輸入方提供的動(dòng)態(tài)密鑰); h代表某種hash算法(此處為密碼認(rèn)證方和密碼輸入方約定的hash算法),例如常見的MD5和SHA1 ; y代表HMAC函數(shù)的計(jì)算結(jié)果,也就是x的一種摘要。[0074] HMAC函數(shù)的應(yīng)用過程如下 (1):在傳輸數(shù)據(jù)前,通訊雙方通過某種方式協(xié)商出共同的hash算法和HMAC密鑰k。 hash算法的確定可以通過協(xié)議交互實(shí)現(xiàn),也可以通過某種系統(tǒng)約定來實(shí)現(xiàn)。HMAC密鑰k是動(dòng)態(tài)變化的,每次通訊會(huì)話所使用的密鑰k都是不同的。 (2):在k和h都確定的情況下,HMAC函數(shù)就變成了一個(gè)hash函數(shù),具有單向性和抗碰撞性,可以對(duì)輸入的密碼計(jì)算出相應(yīng)的摘要。 (3):當(dāng)本次通訊會(huì)話結(jié)束后,密鑰k就失效。以后用戶登錄系統(tǒng)時(shí),系統(tǒng)將產(chǎn)生新的共享密鑰k,從而得到與前一次通訊不同的HMAC值。[0078] 這樣,即使在用戶登錄過程中黑客截獲了用戶所提交密碼的HAMC值,黑客既無法破獲真實(shí)的密碼(HMAC的單向性),也無法使用重放攻擊通過系統(tǒng)的認(rèn)證(HMAC的動(dòng)態(tài)性)。 由于HMAC(x,k,h)的計(jì)算結(jié)果是一個(gè)字節(jié)序列,其中某些字節(jié)可能是不可顯示的字符,這可能會(huì)給字符的傳輸和使用帶來一些麻煩。有鑒于此,本實(shí)用新型實(shí)施例提出優(yōu)選的解決方案。 進(jìn)一步優(yōu)選的,可以建立一個(gè)字節(jié)所表示的數(shù)值與鍵盤上可見字符之間的映射關(guān)系,密碼輸入方在生成HMAC值后,進(jìn)一步將根據(jù)該映射關(guān)系將HMAC值轉(zhuǎn)換成可見字符序列,并將該可見字符序列發(fā)送到密碼認(rèn)證方進(jìn)行認(rèn)證,密碼認(rèn)證方也采用相同的映射關(guān)系將自己計(jì)算的HMAC值進(jìn)行轉(zhuǎn)化,然后再與密碼輸入方傳來的可見字符序列進(jìn)行比較,當(dāng)兩者相同時(shí),判定密碼輸入方提供的用戶密碼正確。 具體地,可以設(shè)計(jì)一張映射表,將一個(gè)字節(jié)所表示的數(shù)值(0-255)映射為鍵盤上可以輸入的可見字符。當(dāng)密碼經(jīng)過HMAC函數(shù)計(jì)算后,再經(jīng)過此映射表對(duì)輸出的字節(jié)進(jìn)行轉(zhuǎn)換,就可以得到一個(gè)新的可見字符的序列,此時(shí)該序列依然具有單向性和抗碰撞性。映射表的實(shí)現(xiàn)可以多種組合,只要在密碼認(rèn)證方和密碼輸入方中采用統(tǒng)一的實(shí)現(xiàn)方式即可。[0082] 基于上述分析,本實(shí)用新型實(shí)施例提出了一種密碼編碼器。[0083] 圖2為根據(jù)本實(shí)用新型的密碼編碼器結(jié)構(gòu)示意圖。 如圖2所示,該密碼編碼器包括輸入單元201、密碼摘要生成單元202和顯示單元203。 輸入單元201,用于接收由用戶提供的動(dòng)態(tài)密鑰和用戶密碼,并向密碼摘要生成單元202提供所述動(dòng)態(tài)密鑰和用戶密碼; 密碼摘要生成單元202,用于根據(jù)所述動(dòng)態(tài)密鑰和用戶密碼以及散列(Hash)函數(shù)生成加密值,并將該加密值發(fā)送到顯示單元203 ; 顯示單元203,用于顯示由輸入單元201接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示所述加密值。 其中輸入單元201是用于輸入字符的部件。輸入單元201可以只提供0-9的阿拉伯?dāng)?shù)字輸入,比如計(jì)算器的鍵盤,輸入單元201也可以提供數(shù)字和英文字母的輸入,比如計(jì)算機(jī)鍵盤或手機(jī)鍵盤。 此外,輸入單元201上還可以有一些功能鍵,按動(dòng)功能鍵將觸發(fā)某個(gè)特殊功能的執(zhí)行。 本實(shí)用新型提出的密碼編碼器可以具有多種產(chǎn)品形態(tài)。比如可以將本實(shí)用新型提出的密碼編碼器應(yīng)用到袖珍計(jì)算器,這樣用戶就可以通過計(jì)算器來計(jì)算密碼的HMAC值。還可以將本實(shí)用新型提出的密碼編碼器應(yīng)用到移動(dòng)終端(比如智能手機(jī))中,這樣用戶就可以通過移動(dòng)終端來計(jì)算密碼的HMAC值。 優(yōu)選地,Hash函數(shù)可以為用于信息身份認(rèn)證碼的基于密鑰散列(HMAC-MD5)算法或(HMAC-SHA1)算法。本領(lǐng)域技術(shù)人員可以意識(shí)到,密碼編碼器還可以采用其它任意類型的Hash函數(shù),本實(shí)用新型對(duì)此并無限定。 另外,由于HMAC算法計(jì)算出來的結(jié)果是一個(gè)偽隨機(jī)序列,每個(gè)字節(jié)的取值范圍是0-255,有些值不能通過當(dāng)前系統(tǒng)的鍵盤進(jìn)行輸入,所以可能還需要密碼摘要生成器再對(duì)密碼的HMAC值進(jìn)行一個(gè)編碼轉(zhuǎn)換,使得最后輸出的字符序列符合鍵盤所使用的字符集。例如可以準(zhǔn)備這樣兩種編碼 (1)到ASCII可見字符集合的編碼。[0094] (2)到0_9數(shù)字的編碼。 其中,數(shù)值與字符之間的映射關(guān)系在本實(shí)用新型中不做具體規(guī)定,可以有多種方案。 所以,優(yōu)選地,密碼編碼器進(jìn)一步包括映射單元(圖2中沒有示出)。映射單元,用于將密碼摘要生成單元202生成的加密值映射轉(zhuǎn)換成可見字符序列,并將所述可見字符序列發(fā)送到顯示單元203進(jìn)行顯示。 基于圖2所述的密碼編碼器,可以不脫離本實(shí)用新型的保護(hù)范圍而產(chǎn)生多種形式的具體實(shí)施方式
。比如圖3為根據(jù)本實(shí)用新型的密碼編碼器外形示意圖。[0098] 而且,本實(shí)用新型還提出了一種密碼保護(hù)系統(tǒng)。[0099] 圖4為根據(jù)本實(shí)用新型的密碼保護(hù)系統(tǒng)結(jié)構(gòu)示意圖。 如圖4所示,該系統(tǒng)包括用戶401、用戶認(rèn)證單元402和密碼編碼器403,其中[0101] 用戶認(rèn)證單元402,用于響應(yīng)用戶的請(qǐng)求向用戶401提供動(dòng)態(tài)密鑰,并根據(jù)自身保存的用戶密碼、所述動(dòng)態(tài)密鑰以及與密碼編碼器約定的Hash函數(shù)生成加密值,并當(dāng)生成的該加密值與密碼編碼器403發(fā)送來的加密值相同時(shí),判定用戶提供的用戶密碼正確;[0102] 密碼編碼器403,用于接收由用戶401輸入的動(dòng)態(tài)密鑰和用戶密碼,并根據(jù)所述用戶密碼和動(dòng)態(tài)密鑰以及所述約定的散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到用戶認(rèn)證單元402。 在這里,認(rèn)證雙方必須采用相同的HMAC算法和相同的字符轉(zhuǎn)換方式才能確保正常的認(rèn)證??梢圆捎镁唧w的報(bào)文格式來對(duì)密碼HMAC值進(jìn)行封裝。比如,HMAC值的具體的報(bào)文格式可以包括算法標(biāo)識(shí)、編碼標(biāo)識(shí)、密碼HMAC值的編碼序列。對(duì)于算法標(biāo)識(shí),可以規(guī)定"1"代表HMAC-MD5,"2"代表HMAC-SHA1 ;)對(duì)于編碼標(biāo)
識(shí),可以規(guī)定"1"代表轉(zhuǎn)換為ASCII可見字符,"2"代表轉(zhuǎn)換為數(shù)字字符。 密碼編碼器403在計(jì)算出密碼的HMAC值后,使用上述的格式對(duì)計(jì)算結(jié)果進(jìn)行封
裝,將封裝后的報(bào)文發(fā)送給用戶認(rèn)證單元402。用戶認(rèn)證單元402可以通過報(bào)文中的"算法
標(biāo)識(shí)"和"編碼標(biāo)識(shí)"來自動(dòng)選擇與密碼編碼器403相匹配的HMAC算法和字符轉(zhuǎn)換方式進(jìn)
行計(jì)算。 而且,密碼編碼器403還可以包括移動(dòng)通信模塊和密碼摘要生成單元(圖4中沒有示出),其中 移動(dòng)通信模塊,用于通過短消息接收由用戶認(rèn)證單元提供給用戶的動(dòng)態(tài)密鑰;[0108] 密碼摘要生成單元,用于根據(jù)所述用戶密碼和動(dòng)態(tài)密鑰以及散列Hash函數(shù)生成加密值。 優(yōu)選的,密碼編碼器403進(jìn)一步可以包括映射單元(圖4中沒有示出)。映射單元,用于根據(jù)與用戶認(rèn)證單元402約定的映射關(guān)系,將計(jì)算生成的加密值轉(zhuǎn)換成可見字符序列,并將所述可見字符序列發(fā)送到用戶認(rèn)證單元402進(jìn)行認(rèn)證;用戶認(rèn)證單元402,用于根據(jù)該約定的映射關(guān)系將自身生成的該加密值轉(zhuǎn)換成可見字符序列,并當(dāng)自身轉(zhuǎn)換的該可見字符序列與映射單元發(fā)送來的可見字符序列相同時(shí),判定用戶提供的用戶密碼正確。[0110] 優(yōu)選的,所述Hash函數(shù)為用于信息身份認(rèn)證碼的基于密鑰散列HMAC-MD5算法或HMAC-SHA1算法。本領(lǐng)域技術(shù)人員可以意識(shí)到,密碼編碼器還可以采用其它任意類型的Hash函數(shù),本實(shí)用新型對(duì)此并無限定。 基于圖5所示流程,下面描述圖4所示系統(tǒng)的一次示范性完整密碼驗(yàn)證過程。如圖5所示,該方法包括 步驟(1):用戶向用戶認(rèn)證單元發(fā)出登錄請(qǐng)求。 在這里,用戶打開網(wǎng)站的登錄界面,或者運(yùn)行某種客戶端程序連接應(yīng)用系統(tǒng)。[0114] 步驟(2):用戶認(rèn)證單元向用戶返回一個(gè)登錄界面。 在這里,用戶認(rèn)證單元為當(dāng)前的認(rèn)證會(huì)話生成一個(gè)隨機(jī)字符串作為動(dòng)態(tài)密鑰,并通過登錄界面返回給用戶,此外,登錄界面中還提供輸入用戶名和密碼HMAC值的輸入框。[0116] 步驟(3):用戶操作密碼編碼器計(jì)算用戶密碼的HMAC值。 用戶在密碼編碼器中輸入動(dòng)態(tài)密鑰和自己的用戶密碼,然后執(zhí)行HMAC算法的計(jì)算。 步驟(4):密碼編碼器通過顯示屏顯示計(jì)算結(jié)果。 步驟(5):用戶在登錄界面中輸入自己密碼的HMAC值,然后提交登錄請(qǐng)求給用戶認(rèn)證單元。 步驟(6):用戶認(rèn)證單元檢查用戶密碼的HMAC值,確認(rèn)用戶輸入的密碼是否正確。[0121] 用戶認(rèn)證單元根據(jù)用戶名查找到用戶的密碼,并結(jié)合本次認(rèn)證會(huì)話的動(dòng)態(tài)密鑰參數(shù),計(jì)算出用戶密碼的HMAC值。將自己計(jì)算出的HMAC值與用戶提交的HMAC值進(jìn)行比較,如果一樣則認(rèn)為用戶輸入了正確的密碼;否則,認(rèn)為用戶輸入的密碼錯(cuò)誤。[0122] 基于圖4結(jié)構(gòu)和圖5的流程,可以將本實(shí)用新型應(yīng)用到多種情形中。比如,本實(shí)用新型所提供的密碼輸入方法可以應(yīng)用于多種認(rèn)證場合,如用戶通過個(gè)人電腦登錄Web網(wǎng)站,或者用戶在銀行的自動(dòng)提款機(jī)(ATM)上輸入自己的密碼。由于用戶所使用的登錄系統(tǒng)不同,用戶在登錄界面中所能輸入的字符也有差異。例如(l)如果使用個(gè)人電腦所攜帶的鍵盤輸入密碼,用戶可以輸入的字符包括數(shù)字、大小寫字母和標(biāo)點(diǎn)符號(hào)等。(2)如果使用ATM機(jī)上的鍵盤輸入密碼,用戶則只能輸入數(shù)字了 。 而且,基于圖4結(jié)構(gòu)和圖5的流程,還可以采用HMAC值和短信息的雙因素認(rèn)證來驗(yàn)證用戶身份。下面詳細(xì)分析該雙因素認(rèn)證流程。 步驟(l),用戶向用戶認(rèn)證單元發(fā)出獲取動(dòng)態(tài)密鑰的請(qǐng)求,該請(qǐng)求報(bào)文中需要包含用戶名信息。 比如,圖6為根據(jù)本實(shí)用新型的密碼保護(hù)系統(tǒng)登錄示意圖。當(dāng)用戶打開一個(gè)網(wǎng)站的登錄界面。在其中輸入用戶名,然后點(diǎn)擊"獲取動(dòng)態(tài)密鑰"的按鈕,就會(huì)向網(wǎng)站的認(rèn)證服務(wù)器發(fā)出一個(gè)獲取當(dāng)前認(rèn)證會(huì)話動(dòng)態(tài)密鑰的請(qǐng)求報(bào)文,該報(bào)文中將包含用戶名信息。[0126] 步驟(2):用戶認(rèn)證單元向用戶的移動(dòng)終端發(fā)送一條包含當(dāng)前認(rèn)證會(huì)話動(dòng)態(tài)密鑰的短信。在這里,用戶認(rèn)證單元根據(jù)用戶名,在賬戶數(shù)據(jù)庫中查找到該用戶先前注冊(cè)過的手機(jī)號(hào),然后通過短信網(wǎng)關(guān),向用戶的移動(dòng)終端發(fā)送短信,在其中傳送用戶認(rèn)證單元為當(dāng)前認(rèn)證會(huì)話所提供的動(dòng)態(tài)密鑰。 步驟(3):用戶利用嵌入到移動(dòng)終端中的密碼編碼器計(jì)算出用戶密碼的HMAC值。在這里,對(duì)用戶移動(dòng)終端中的密碼編碼器輸入動(dòng)態(tài)密鑰和用戶密碼,然后執(zhí)行HMAC計(jì)算。
9[0128] 步驟(4):移動(dòng)終端中的密碼編碼器通過移動(dòng)終端顯示屏顯示計(jì)算結(jié)果。
步驟(5):用戶在登錄界面中輸入密碼編碼器的計(jì)算結(jié)果,然后提交登錄請(qǐng)求給
用戶認(rèn)證單元。 步驟(6):用戶認(rèn)證單元檢查用戶密碼的HMAC值,確認(rèn)用戶輸入的密碼是否正確。[0131] 在上述認(rèn)證過程中,用戶認(rèn)證單元不但檢驗(yàn)了用戶是否知道與帳號(hào)相對(duì)應(yīng)的密碼,還檢驗(yàn)了用戶是否持有與該帳號(hào)相關(guān)聯(lián)的移動(dòng)終端,因而完成了雙因素認(rèn)證,更加提高了用戶識(shí)別的安全性。 綜上所述,在本實(shí)用新型實(shí)施例中,首先在密碼認(rèn)證方和密碼輸入方之間約定散列Hash函數(shù),密碼輸入方根據(jù)用戶密碼、密碼認(rèn)證方提供的動(dòng)態(tài)密鑰以及該約定Hash函數(shù)生成加密值,并將該加密值發(fā)送到密碼認(rèn)證方進(jìn)行認(rèn)證,密碼認(rèn)證方根據(jù)自身保存的用戶密碼、動(dòng)態(tài)密鑰以及該約定Hash函數(shù)生成加密值,并當(dāng)該加密值與密碼輸入方發(fā)送來的加密值相同時(shí),判定密碼輸入方提供的用戶密碼正確。 本實(shí)用新型的密碼編碼器包括輸入單元、密碼摘要生成單元和顯示單元。密碼摘要生成單元,用于根據(jù)用戶接收到的動(dòng)態(tài)密鑰和用戶輸入的用戶密碼以及散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到顯示單元;顯示單元,用于顯示由輸入單元接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示所述加密值。由此可見,應(yīng)用本實(shí)用新型實(shí)施例以后,由于發(fā)送的密碼字符序列是經(jīng)過轉(zhuǎn)換過的加密值,黑客無法通過該加密值破獲真實(shí)密碼,因此能夠提高密碼輸入安全性。 而且,應(yīng)用本實(shí)用新型實(shí)施例以后,由于密碼是通過鍵盤輸入的,輸入的密碼在文本框中一般都將密碼顯示為非文本的掩碼,即使顯示密碼的HMAC值,由于HMAC函數(shù)具有單向性,也不會(huì)導(dǎo)致密碼被破解,因此進(jìn)一步提高了密碼輸入安全性。 還有,即使病毒程序可以讀取密碼文本框中的字符,或者截獲了用戶提交的登錄
請(qǐng)求中的密碼文本,由于黑客獲得的只是密碼的HMAC值,既不能通過此值破解密碼的真實(shí)
值,也無法直接向密碼認(rèn)證系統(tǒng)重放,因此又進(jìn)一步提高了密碼驗(yàn)證的安全性。 另外,通過HMAC值和短信息的雙因素認(rèn)證來驗(yàn)證用戶身份,進(jìn)一步提高了密碼驗(yàn)
證的安全性。 以上所述,僅為本實(shí)用新型的較佳實(shí)施例而已,并非用于限定本實(shí)用新型的保護(hù)范圍。凡在本實(shí)用新型的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本實(shí)用新型的保護(hù)范圍之內(nèi)。
權(quán)利要求一種密碼編碼器,其特征在于,包括輸入單元、密碼摘要生成單元和顯示單元,其中輸入單元,用于接收由用戶提供的動(dòng)態(tài)密鑰和用戶密碼,并向密碼摘要生成單元提供所述動(dòng)態(tài)密鑰和用戶密碼;密碼摘要生成單元,用于根據(jù)所述動(dòng)態(tài)密鑰和用戶密碼以及散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到顯示單元;顯示單元,用于顯示由輸入單元接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示所述加密值。
2. 根據(jù)權(quán)利要求1所述的密碼編碼器,其特征在于,所述輸入單元為計(jì)算器鍵盤或計(jì) 算機(jī)鍵盤或移動(dòng)終端鍵盤。
3. 根據(jù)權(quán)利要求1或2所述的密碼編碼器,其特征在于,所述Hash函數(shù)為用于信息身 份認(rèn)證碼的基于密鑰散列HMAC算法。
4. 根據(jù)權(quán)利要求1或2所述的密碼編碼器,其特征在于,所述密碼編碼器進(jìn)一步包括映 射單元,所述映射單元,用于將密碼摘要生成單元生成的加密值映射轉(zhuǎn)換成可見字符序列,并 將所述可見字符序列發(fā)送到顯示單元進(jìn)行顯示。
5. —種計(jì)算器,其特征在于,包括如權(quán)利要求l的密碼編碼器。
6. —種移動(dòng)終端,其特征在于,包括如權(quán)利要求l的密碼編碼器。
7. —種密碼保護(hù)系統(tǒng),其特征在于,包括用戶認(rèn)證單元和密碼編碼器,其中 用戶認(rèn)證單元,用于響應(yīng)用戶的請(qǐng)求向用戶提供動(dòng)態(tài)密鑰,并根據(jù)自身保存的用戶密碼、所述動(dòng)態(tài)密鑰以及與密碼編碼器約定的Hash函數(shù)生成加密值,并當(dāng)生成的該加密值與 密碼編碼器發(fā)送來的加密值相同時(shí),判定用戶提供的用戶密碼正確;密碼編碼器,用于接收由用戶輸入的動(dòng)態(tài)密鑰和用戶密碼,并根據(jù)所述用戶密碼和動(dòng) 態(tài)密鑰以及所述約定的散列Hash函數(shù)生成加密值,并將該加密值發(fā)送到用戶認(rèn)證單元。
8. 根據(jù)權(quán)利要求7所述的密碼保護(hù)系統(tǒng),其特征在于,所述密碼編碼器包括移動(dòng)通信 模塊和密碼摘要生成單元,其中所述移動(dòng)通信模塊,用于通過短消息接收由用戶認(rèn)證單元提供給用戶的動(dòng)態(tài)密鑰; 密碼摘要生成單元,用于根據(jù)所述用戶密碼和動(dòng)態(tài)密鑰以及散列Hash函數(shù)生成加密值。
9. 根據(jù)權(quán)利要求7所述的密碼保護(hù)系統(tǒng),其特征在于,所述密碼編碼器進(jìn)一步包括映 射單元;所述映射單元,用于根據(jù)與用戶認(rèn)證單元約定的映射關(guān)系,將計(jì)算生成的加密值轉(zhuǎn)換 成可見字符序列,并將所述可見字符序列發(fā)送到用戶認(rèn)證單元進(jìn)行認(rèn)證;用戶認(rèn)證單元,用于根據(jù)該約定的映射關(guān)系將自身生成的該加密值轉(zhuǎn)換成可見字符序 列,并當(dāng)自身轉(zhuǎn)換的該可見字符序列與映射單元發(fā)送來的可見字符序列相同時(shí),判定用戶 提供的用戶密碼正確。
10. 根據(jù)權(quán)利要求7所述的密碼保護(hù)系統(tǒng),其特征在于,所述Hash函數(shù)為用于信息身份 認(rèn)證碼的基于密鑰散列HMAC算法。
專利摘要本實(shí)用新型公布了一種密碼編碼器,包括輸入單元、密碼摘要生成單元和顯示單元,其中輸入單元,用于接收由用戶提供的動(dòng)態(tài)密鑰和用戶密碼,并向密碼摘要生成單元提供動(dòng)態(tài)密鑰和用戶密碼;密碼摘要生成單元,用于根據(jù)動(dòng)態(tài)密鑰和用戶密碼以及散列(Hash)函數(shù)生成加密值,并將該加密值發(fā)送到顯示單元;顯示單元,用于顯示由輸入單元接收的動(dòng)態(tài)密鑰和用戶密碼,以及顯示加密值。本實(shí)用新型還公布了一種密碼保護(hù)系統(tǒng)。應(yīng)用本實(shí)用新型以后,由于發(fā)送的密碼字符序列是經(jīng)過轉(zhuǎn)換過的加密值,黑客無法通過該加密值破獲真實(shí)密碼,因此能夠提高密碼輸入安全性。
文檔編號(hào)H04L29/06GK201467167SQ20092011075
公開日2010年5月12日 申請(qǐng)日期2009年8月7日 優(yōu)先權(quán)日2009年8月7日
發(fā)明者薛明 申請(qǐng)人:薛明