安 迪 楊 超 姜 奇 馬建峰
(西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院 西安 710071) (陜西省網(wǎng)絡(luò)與系統(tǒng)安全重點(diǎn)實(shí)驗(yàn)室(西安電子科技大學(xué)) 西安 710071) (sunnyann1992@qq.com)
?
一種新的基于指紋與移動(dòng)端協(xié)助的口令認(rèn)證方法
安 迪 楊 超 姜 奇 馬建峰
(西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院 西安 710071) (陜西省網(wǎng)絡(luò)與系統(tǒng)安全重點(diǎn)實(shí)驗(yàn)室(西安電子科技大學(xué)) 西安 710071) (sunnyann1992@qq.com)
智能手機(jī)和互聯(lián)網(wǎng)應(yīng)用的廣泛普及,使用戶可以借助手機(jī)結(jié)合口令與服務(wù)器認(rèn)證.然而現(xiàn)有的方案需要在手機(jī)端存儲(chǔ)用戶的秘密信息.一旦存于手機(jī)的秘密信息被對(duì)手獲得,將給用戶帶來不可挽回的損失.針對(duì)上述問題,提出了一種基于指紋和口令的認(rèn)證方案,手機(jī)端無需存儲(chǔ)秘密信息.其核心思想是,將密文存儲(chǔ)在服務(wù)器端,用戶登錄時(shí)利用手機(jī)輔助其生成私鑰,從而對(duì)注冊階段生成的密文解密生成認(rèn)證密鑰.生成私鑰的過程需要輸入口令和指紋,用戶在電腦端輸入口令后對(duì)口令進(jìn)行盲化再與手機(jī)進(jìn)行交互,這樣就可以保護(hù)用戶口令不被對(duì)手得到.理論分析及實(shí)驗(yàn)結(jié)果表明:該方案提高了用戶秘密信息的安全性,可以抵御對(duì)手的字典攻擊、重放攻擊和釣魚攻擊,減少了手機(jī)的存儲(chǔ)壓力,易于部署.
口令認(rèn)證;終端輔助認(rèn)證;指紋認(rèn)證;口令攻擊與保護(hù);基于指紋的口令盲化
互聯(lián)網(wǎng)及其應(yīng)用服務(wù)的快速發(fā)展,給用戶生活帶來了娛樂和便利,涉及到日常生活的多個(gè)方面(如購物、外賣餐飲、交通等).由于口令認(rèn)證機(jī)制的方便易用,它已是如今在線的應(yīng)用服務(wù)和許多系統(tǒng)中使用最多、最為流行的認(rèn)證機(jī)制.用戶使用自己設(shè)置的口令與各種服務(wù)器進(jìn)行認(rèn)證,登入應(yīng)用賬戶.
一般用戶為了方便記憶往往使用較簡單的口令.若口令長度較短,則信息熵較低,如果認(rèn)證協(xié)議體系不夠完備,用戶的口令就很容易被對(duì)手攻擊或是遭受對(duì)手的中間人攻擊,從而被對(duì)手偽造身份進(jìn)行登錄認(rèn)證.此外,用戶在設(shè)置自己不同應(yīng)用服務(wù)的賬戶密碼時(shí),常常會(huì)重復(fù)地使用一個(gè)口令,如果其中一個(gè)口令泄露,就對(duì)其他應(yīng)用賬戶的安全帶來威脅.由于用戶忘記某一應(yīng)用賬戶的口令時(shí),通常會(huì)嘗試多次輸入口令登錄賬戶,若服務(wù)器是惡意的,就知道了用戶的多個(gè)口令,服務(wù)器就可能對(duì)用戶的其他賬戶發(fā)起中間人攻擊.口令的信息熵低、重復(fù)設(shè)置、用戶遺忘等都是口令設(shè)置和使用過程中最為常見的問題.而這些問題都是攻擊者最容易入手的攻擊方向.Facebook的首席執(zhí)行官(CEO)就在2004年曾使用Facebook的登錄數(shù)據(jù)訪問一些商業(yè)對(duì)手和記者的私人郵件[1],這說明即使可信的服務(wù)器也會(huì)對(duì)用戶發(fā)起中間人攻擊.對(duì)用戶口令的保護(hù),不僅對(duì)用戶個(gè)人和單位、甚至對(duì)于整個(gè)社會(huì)來說變得越來越重要.
針對(duì)口令認(rèn)證機(jī)制的缺陷,研究者提出了很多改進(jìn)方案,其中增加額外設(shè)備是一個(gè)有效的方式.隨著近年來移動(dòng)智能手機(jī)的廣泛應(yīng)用和發(fā)展,用戶常利用手機(jī)使用一些應(yīng)用服務(wù)或是管理個(gè)人信息,手機(jī)端存儲(chǔ)著越來越多的用戶憑據(jù)或是口令密文信息.通過移動(dòng)智能手機(jī)輔助用戶進(jìn)行認(rèn)證是一個(gè)重要的研究方向.
早在2004年,文獻(xiàn)[2]就提出來使用手機(jī)作為便攜的認(rèn)證令牌,同時(shí)增加一個(gè)安全可信的代理方P.當(dāng)用戶想要與遠(yuǎn)程的服務(wù)器進(jìn)行認(rèn)證時(shí),需要首先與代理方P進(jìn)行通信.代理方會(huì)同時(shí)向手機(jī)和個(gè)人電腦端發(fā)送會(huì)話名,用戶在手機(jī)端對(duì)會(huì)話名進(jìn)行對(duì)比驗(yàn)證然后再將信息發(fā)給代理方.但是此方案需要代理方安全可信,手機(jī)端和代理方需要多次交互,易被中間人攻擊,同時(shí)增加了一個(gè)代理方,系統(tǒng)部署較為繁瑣,不能夠便捷地用于實(shí)際的認(rèn)證.
文獻(xiàn)[3]通過手機(jī)輔助用戶進(jìn)行登錄認(rèn)證.在此文的方案中,客戶端電腦和服務(wù)器認(rèn)證時(shí)不直接在網(wǎng)絡(luò)上通信,而是借助于手機(jī)設(shè)備和一個(gè)認(rèn)證服務(wù)器進(jìn)行密文的發(fā)送和接收.然而此方案的認(rèn)證服務(wù)器用來接收由手機(jī)端通過GSM網(wǎng)絡(luò)傳來的數(shù)據(jù)信息,故在應(yīng)答階段易受攻擊,當(dāng)用戶使用手機(jī)通過GSM網(wǎng)絡(luò)向認(rèn)證服務(wù)器發(fā)送信息時(shí),易被對(duì)手劫持,從而利用此信息偽裝成用戶進(jìn)行認(rèn)證.
文獻(xiàn)[4]提出了一種利用手機(jī)作為認(rèn)證時(shí)的中間方,利用二維碼和相機(jī)對(duì)認(rèn)證時(shí)的關(guān)鍵信息進(jìn)行加密的方案.但是此方案需要事先預(yù)設(shè)條形碼并在設(shè)備上添加,若認(rèn)證的設(shè)備或是服務(wù)較多,則預(yù)設(shè)較為繁瑣,可操作性不強(qiáng).
文獻(xiàn)[5]針對(duì)會(huì)話劫持和釣魚網(wǎng)站攻擊提出了一種新方案.將客戶端電腦和手機(jī)設(shè)備在認(rèn)證時(shí)獨(dú)立開來,客戶端電腦僅僅扮演計(jì)算的功能,用戶從手機(jī)設(shè)備端輸入口令,手機(jī)和服務(wù)器共享會(huì)話密鑰以防止對(duì)手的會(huì)話劫持.盡管此方案可以避免會(huì)話攻擊,但預(yù)先要在手機(jī)設(shè)備上設(shè)置每個(gè)目標(biāo)網(wǎng)站(如銀行)的公共密鑰,如果用戶使用的服務(wù)較多,設(shè)置會(huì)較為繁瑣,給手機(jī)端帶來壓力,此外,此方案還需要客戶端電腦和服務(wù)器端建立安全信道.
文獻(xiàn)[6]提出了一種可以在不可信的個(gè)人電腦上與服務(wù)器進(jìn)行認(rèn)證的方法.通過手機(jī)掃描個(gè)人電腦上的二維碼進(jìn)行加密處理后與服務(wù)器進(jìn)行認(rèn)證.但是此方案需要手機(jī)端和服務(wù)器端預(yù)先設(shè)置共享密鑰,雖然此方案允許個(gè)人電腦端不可信,但是手機(jī)端必須可信.而且在認(rèn)證的過程中,手機(jī)端和個(gè)人電腦端需要分別與服務(wù)器端進(jìn)行多次通信,步驟較為繁瑣、耗時(shí)較長,對(duì)用戶的使用感有較大影響.
Acar等人提出的單一口令認(rèn)證(single password authentication, SPA)方案[7]中,提出額外增加一個(gè)云存儲(chǔ)器存儲(chǔ)用戶的數(shù)據(jù),輔助用戶進(jìn)行注冊和登錄.但是在注冊階段,需要設(shè)置安全信道將盲簽名的私鑰發(fā)送給存儲(chǔ)器端,還需要增加一個(gè)可信的云存儲(chǔ)器來存儲(chǔ)認(rèn)證密文.對(duì)于實(shí)際的應(yīng)用場景來講,設(shè)置安全信道很難實(shí)現(xiàn),尤其是在遠(yuǎn)距離的數(shù)據(jù)傳輸中,這種假設(shè)更是不實(shí)際的.并且,用戶與云存儲(chǔ)器在認(rèn)證階段需要進(jìn)行多次的數(shù)據(jù)傳輸和交互,如果設(shè)備的性能不夠好,將會(huì)延長用戶的認(rèn)證時(shí)間.Acar等人還提出基于額外設(shè)備的SPA方案[7],可以不使用云存儲(chǔ)器而利用一個(gè)可信的手機(jī)設(shè)備輔助用戶注冊和登錄.在此方案中,用戶將自己的認(rèn)證密鑰用用戶口令加密后存儲(chǔ)在可信的手機(jī)設(shè)備上.當(dāng)認(rèn)證時(shí),用戶在手機(jī)上輸入口令解密得到自己的認(rèn)證密鑰與服務(wù)器進(jìn)行認(rèn)證.但是這種方案需要強(qiáng)制要求移動(dòng)設(shè)備可信,不能存在任何惡意代碼也不能與服務(wù)器勾結(jié),這對(duì)于移動(dòng)設(shè)備的安全性要求而言是異常嚴(yán)格的.不僅如此,若移動(dòng)設(shè)備丟失,則用戶存在移動(dòng)設(shè)備上的密文信息就極有可能被對(duì)手破解,此協(xié)議也不能抵擋這類非常常見的用戶過失,這使得協(xié)議的可用性和安全性大大降低.
由于越來越多的敏感信息和用戶的私人信息存儲(chǔ)在手機(jī)端,如果這些敏感信息被對(duì)手得到,將給用戶帶來無法預(yù)估的危害.手機(jī)端秘密信息的保護(hù)問題成為亟待解決的重要問題.文獻(xiàn)[8]提出了一種用指紋來代替PIN碼認(rèn)證用戶身份,從而保護(hù)用戶SIM卡的方案.然而,雖然此方案利用了指紋,可是指紋信息仍然存儲(chǔ)于手機(jī)設(shè)備中,若指紋信息被對(duì)手破解,將會(huì)給用戶帶來安全威脅.
文獻(xiàn)[9]提供了一種通過口令和指紋使用戶與遠(yuǎn)距離的服務(wù)器進(jìn)行認(rèn)證的方案.在注冊階段,用戶輸入口令、指紋、隨機(jī)值等計(jì)算后得到密文值,隨即將密文值、指紋的密文值存儲(chǔ)在手機(jī)設(shè)備上,同時(shí)通過安全信道將其發(fā)送給服務(wù)器端.在登錄階段,用戶輸入指紋后手機(jī)設(shè)備與注冊階段存儲(chǔ)的值進(jìn)行運(yùn)算對(duì)比、登錄.該方案的不足之處在于,在注冊階段不僅需要安全信道進(jìn)行傳輸,還需要手機(jī)設(shè)備可信,若手機(jī)設(shè)備丟失,則存儲(chǔ)在手機(jī)上的密文信息、指紋參數(shù)的密文值就可能會(huì)被對(duì)手得到.
此外,國內(nèi)基于用戶的生物特征的認(rèn)證也有相應(yīng)研究.徐欽桂等人[10]提出的一種增強(qiáng)的基于生物密鑰智能卡遠(yuǎn)程身份認(rèn)證方案,給用戶身份提供智能卡硬件、口令驗(yàn)證、生物特征驗(yàn)證三重保護(hù).但是由于用戶生物特征信息的模糊性以及生物密鑰的運(yùn)算特性,計(jì)算開銷和存儲(chǔ)開銷可能會(huì)超出智能卡限制,這使得其方案的可用性受限.
現(xiàn)階段帶有手機(jī)的對(duì)用戶身份進(jìn)行認(rèn)證的方法,即使有用戶指紋參與認(rèn)證,但普遍存在手機(jī)端存儲(chǔ)用戶的認(rèn)證信息或是密文信息的問題,并且需要手機(jī)設(shè)備完全可信.2016年3月,美國聯(lián)邦調(diào)查局(FBI)宣布[11]可以破解IOS系統(tǒng)以獲取犯罪嫌疑人存在手機(jī)端的信息,現(xiàn)階段還沒有能完全保證用戶移動(dòng)設(shè)備端信息隱私的成熟技術(shù).所以,在手機(jī)端存儲(chǔ)用戶的秘密信息是一項(xiàng)很有風(fēng)險(xiǎn)性的行為.
HCR(hidden credential retrieval from a reusable password)[12]是一個(gè)可以使用戶在不可信的遠(yuǎn)端服務(wù)器上存儲(chǔ)密文信息的協(xié)議.當(dāng)用戶想要得到此密文信息時(shí),可以通過預(yù)先設(shè)置的口令獲得自己的密文信息而不必向服務(wù)器泄露自己的口令.但是此協(xié)議在注冊階段需要設(shè)置安全信道傳輸給服務(wù)器一個(gè)私鑰,同時(shí)需要長期在服務(wù)器上存儲(chǔ)這個(gè)私鑰.
已有的手機(jī)、個(gè)人電腦和服務(wù)器3方認(rèn)證常常將用戶口令的密文信息存儲(chǔ)在手機(jī)端,同時(shí)需要手機(jī)設(shè)備可信,還需要假設(shè)安全信道來傳輸秘密信息.這些假設(shè)和部署在實(shí)際的應(yīng)用場景中都是難以實(shí)現(xiàn)的,這使這些認(rèn)證方案的可用性和安全性都大大降低.針對(duì)這些認(rèn)證方案的不足,我們提出了一種基于指紋與移動(dòng)端協(xié)助的口令認(rèn)證方法(password authentication method based on fingerprint and mobile phone assistance, FMPA).在注冊階段,用戶通過口令和指紋生成私鑰,再通過私鑰生成認(rèn)證密鑰和認(rèn)證密鑰的密文,然后將認(rèn)證密鑰的密文發(fā)送至服務(wù)器端進(jìn)行存儲(chǔ),手機(jī)端并不存儲(chǔ)用戶的秘密信息.在登錄階段,用戶從服務(wù)器端得到認(rèn)證密文后通過指紋和口令重新生成私鑰,利用私鑰對(duì)認(rèn)證密文解密后得到認(rèn)證密鑰.我們的方案無需在手機(jī)端存儲(chǔ)任何用戶的秘密信息,即使手機(jī)被對(duì)手盜走,對(duì)手也無法得到用戶的秘密信息.通過安全性分析理論證明本文足以保護(hù)用戶的口令、抵御字典攻擊和會(huì)話劫持攻擊.通過實(shí)驗(yàn)測試表明:本文在時(shí)間性能上與已有的認(rèn)證方案差別不大,并在手機(jī)端的存儲(chǔ)方面有較大優(yōu)勢,能夠明顯減輕手機(jī)端的存儲(chǔ)壓力,實(shí)用性很高.
1) 盲簽名
Fig. 1 Flowchart of blind signature.圖1 盲簽名具體流程圖
盲簽名體制是保證參與者匿名性的基本密碼協(xié)議,一個(gè)盲簽名體制是一個(gè)協(xié)議,包括2個(gè)實(shí)體:消息發(fā)送者和簽名者.它允許發(fā)送者讓簽名者對(duì)給定的消息簽名,并且沒有泄露關(guān)于消息和消息簽名的任何信息.如圖1所示,第1個(gè)加密算法T()是為了隱蔽發(fā)送的消息m,稱為盲變換;第2個(gè)加密算法Sign()是簽名算法,簽名者B對(duì)收到的盲化消息進(jìn)行簽名;第3個(gè)算法T′()是對(duì)簽名后的信息進(jìn)行去盲以得到消息m的簽名信息,稱為去盲化.
盲簽名的特點(diǎn)是:
① 消息的內(nèi)容對(duì)簽名者是盲的;
② 簽名者不能將所簽文件T(m)和實(shí)際要簽的文件m聯(lián)系起來,即使他保存所有簽過的文件,也不能確定所簽文件的真實(shí)內(nèi)容.
2) HKDF(halting key derivation functions)
HKDF[13]是一種可通過一般的弱口令生成強(qiáng)安全密鑰的協(xié)議,可以自主選擇計(jì)算代價(jià),應(yīng)用于基于口令的加密系統(tǒng).HKDF包括2種算法:HKDF.prepare和HKDF.extract.
HKDF.prepare以1個(gè)口令w、1個(gè)隨機(jī)串r和1個(gè)循環(huán)運(yùn)算次數(shù)的參數(shù)t作為輸入,輸出1個(gè)密鑰y和它的密文v.即:
HKDF.prepare(w,t,r)→y,v.
HKDF.extract以密鑰的密文v和口令w作為輸入,使用w對(duì)密文v解密后重新得到密鑰y,若輸入的口令w不正確,此算法將一直進(jìn)行循環(huán)運(yùn)算而沒有輸出反饋.即:HKDF.extract(w,v)→y.
在本文中,我們使用HKDF協(xié)議通過一個(gè)私鑰生成一個(gè)強(qiáng)密鑰,用戶或是系統(tǒng)可以確立一個(gè)合適的參數(shù)值來選擇相應(yīng)的運(yùn)算代價(jià).
2.1 系統(tǒng)模型
Fig. 2 System model diagram of our scheme.圖2 本文方案系統(tǒng)模型圖
本方案的的系統(tǒng)模型如圖2所示,主要包括3種實(shí)體:移動(dòng)智能手機(jī)(mobile smart phone, MP)、個(gè)人電腦(personal computer, PC)、云服務(wù)器(cloud server, CS).圖2中①為注冊階段,②~④為登錄階段.
1) 移動(dòng)智能手機(jī)MP.負(fù)責(zé)注冊階段用戶認(rèn)證密鑰及其密文的生成、認(rèn)證階段和PC交互從而對(duì)用戶盲化后的口令和指紋參數(shù)做運(yùn)算處理.除了具有基本的智能手機(jī)的功能外,能夠獲取到用戶指紋數(shù)據(jù),能夠通過藍(lán)牙、USB或者WiFi功能連接到PC端,以便與PC進(jìn)行通信.
2) 個(gè)人電腦PC.當(dāng)用戶登錄時(shí),對(duì)口令進(jìn)行錄入、與移動(dòng)智能手機(jī)進(jìn)行交互從而生成認(rèn)證密鑰.個(gè)人電腦確保連接到互聯(lián)網(wǎng),能夠與云服務(wù)器和手機(jī)進(jìn)行通信.
3) 云服務(wù)器CS.在注冊階段存儲(chǔ)用戶的認(rèn)證密鑰和密文信息,在登錄階段為用戶提供其對(duì)應(yīng)的密文信息以及對(duì)用戶身份進(jìn)行認(rèn)證.故云服務(wù)器應(yīng)能夠連接到互聯(lián)網(wǎng),并具有強(qiáng)大的數(shù)據(jù)庫以存儲(chǔ)用戶數(shù)據(jù)信息.
2.2 敵手模型
對(duì)應(yīng)于2.1節(jié)所述系統(tǒng)模型的敵手模型如下:
1) 個(gè)人電腦是不可信的.用戶登錄時(shí),如果他所使用的電腦被惡意軟件侵襲,當(dāng)他輸入口令后,鍵盤就會(huì)記錄下用戶的口令.若用戶誤入了釣魚網(wǎng)站,對(duì)手也可能會(huì)記錄用戶口令.
2) 用戶在注冊和登錄時(shí)都會(huì)用到移動(dòng)智能手機(jī),手機(jī)容易丟失或是被植入惡意軟件.手機(jī)被植入惡意軟件后,對(duì)手就會(huì)假冒用戶與電腦進(jìn)行通信.
3) 云服務(wù)器對(duì)用戶進(jìn)行認(rèn)證并提供應(yīng)用服務(wù).在注冊階段,無疑云服務(wù)器是可信的,此后,云服務(wù)器可能會(huì)遭受對(duì)手的重放攻擊或是字典攻擊.此外,云服務(wù)器本身也可能是惡意的,在用戶離線的情況下,也可能會(huì)對(duì)用戶的密文發(fā)起攻擊.
3.1 FMPA方案設(shè)計(jì)思想
在有智能手機(jī)參與的認(rèn)證協(xié)議中,手機(jī)有可能會(huì)丟失或者被惡意軟件侵襲,故用戶存儲(chǔ)在手機(jī)端的數(shù)據(jù)就有可能被對(duì)手竊取.同時(shí),在用戶登錄時(shí),手機(jī)端與PC端進(jìn)行交互,若手機(jī)端獲取到用戶的口令,就極有可能被對(duì)手竊取.因此,要保證手機(jī)丟失的情況下用戶的數(shù)據(jù)不被竊取,就需要用戶不在手機(jī)端存儲(chǔ)認(rèn)證信息和密文數(shù)據(jù).若要在認(rèn)證過程中不被手機(jī)端竊取到用戶的口令,就需要用戶在PC端輸入口令后對(duì)口令數(shù)據(jù)進(jìn)行處理.
我們的設(shè)計(jì)思路是對(duì)已有的HCR協(xié)議進(jìn)行改進(jìn)(由于HCR協(xié)議中的私鑰參數(shù)需要假設(shè)安全信道進(jìn)行傳輸并且需要長期安全地存儲(chǔ),我們的方案將HCR協(xié)議中的私鑰參數(shù)替換為用戶指紋,這樣,就不需要假設(shè)安全信道進(jìn)行傳輸,也不需要長期存儲(chǔ)),將此改進(jìn)的協(xié)議應(yīng)用于PC和手機(jī)之間,使用戶可以與不可信的手機(jī)進(jìn)行交互、簽名等,同時(shí)不需要在PC和手機(jī)之間假設(shè)安全信道,無需存儲(chǔ)用戶用于生成認(rèn)證密鑰的私鑰.
3.2 FMPA方案詳細(xì)設(shè)計(jì)
本方案包括移動(dòng)智能手機(jī)、PC、云服務(wù)器3個(gè)參與方,具有注冊和登錄2個(gè)階段.用戶在手機(jī)和PC上輸入自己口令、指紋進(jìn)行注冊、登錄,云服務(wù)器負(fù)責(zé)注冊以及在用戶接入服務(wù)時(shí)對(duì)用戶進(jìn)行身份認(rèn)證.
本方案系統(tǒng)初始化定義如下:
pwd為用戶口令:pwd∈{0,1}*;
G是以素?cái)?shù)p為階的循環(huán)群;
F是以素?cái)?shù)p為階的乘法域;
s為生成的用戶私鑰;
y為生成的認(rèn)證密鑰;
v為生成的認(rèn)證密鑰密文;
Hash()為安全的Hash函數(shù):
Hash():{0,1}*→G
r為系統(tǒng)生成的隨機(jī)字符串:r∈N
t為系統(tǒng)設(shè)置的運(yùn)算次數(shù);
f是一種密碼學(xué)雜湊函數(shù).
HKDF為密鑰生成函數(shù),分為加密算法:HKDF.prepare(s,t,r)→y,v和解密算法HKDF.extract(s,v)→y兩個(gè)部分.
在以往的帶有手機(jī)的認(rèn)證方案中,手機(jī)端一般會(huì)存儲(chǔ)用戶的認(rèn)證密文信息.通常將用戶的口令加密后存儲(chǔ)在手機(jī)設(shè)備上或者存儲(chǔ)用戶的密鑰用口令加密后的密文,若手機(jī)端被對(duì)手攻擊,對(duì)手就極有可能拿到用戶的口令或是認(rèn)證信息.
而在本方案中,手機(jī)端不存儲(chǔ)用戶的認(rèn)證密文信息,所需要的認(rèn)證密鑰在每次登錄時(shí)由用戶重新生成,即使設(shè)備被偷也不會(huì)對(duì)用戶的口令、指紋、密文信息造成威脅.同時(shí),用戶在注冊時(shí)像服務(wù)器發(fā)送name時(shí),也可以隨機(jī)選擇一個(gè)身份信息id發(fā)送,這樣就可以保護(hù)自己的匿名性,即使若干個(gè)服務(wù)器相互勾結(jié)也不能對(duì)用戶進(jìn)行攻擊.
以下是注冊和登錄2個(gè)階段:
1) 注冊階段
{用戶(name,pwd,e)}→{云服務(wù)器(name,y,v)}.
在這個(gè)階段,用戶接入云服務(wù)器提供的服務(wù)之前,須向服務(wù)器注冊成為合法的用戶.用戶可以直接在手機(jī)端進(jìn)行注冊,在注冊完成后將用戶名name和服務(wù)信息server交至PC端以告知用戶使用了此服務(wù)即可.具體操作如下:
① 手機(jī)端根據(jù)用戶輸入的口令pwd和指紋參數(shù)e進(jìn)行運(yùn)算,生成用戶的私鑰s:
Hash(pwd)e→s.
② 根據(jù)HKDF函數(shù)和生成的私鑰s生成用戶的認(rèn)證密鑰y和認(rèn)證密鑰密文v:
HKDF.prepare(s,t,r)→y,v,
其中,r是系統(tǒng)生成的一個(gè)隨機(jī)的字符串,t是循環(huán)運(yùn)算次數(shù),t可以根據(jù)用戶所需要的安全性進(jìn)行選擇,若t的值較大,則運(yùn)算量較大,生成的密鑰更為安全.
③ 手機(jī)端將認(rèn)證密鑰y和認(rèn)證密文v連同用戶名name發(fā)給服務(wù)器端進(jìn)行對(duì)應(yīng)存儲(chǔ),發(fā)給PC客戶端用戶名name和服務(wù)信息server.用戶只需記住用戶名name和口令pwd,手機(jī)端不存儲(chǔ)用戶的任何秘密信息.
如圖3所示為注冊階段具體協(xié)議.
Fig. 3 Registration phase protocol.圖3 注冊階段具體協(xié)議
2) 登錄階段
{用戶(pwd,e,chal),服務(wù)器(y,v,chal)}→{用戶(y),服務(wù)器(acceptreject)}.
成為合法用戶后,當(dāng)用戶想接入云服務(wù)器使用其服務(wù)時(shí),需向服務(wù)器發(fā)送登錄請求.用戶錄入自己的口令和指紋數(shù)據(jù),生成私鑰從而解密密文得到認(rèn)證密鑰.服務(wù)器對(duì)認(rèn)證信息進(jìn)行運(yùn)算和對(duì)比后,判斷是否接受此次登錄,具體操作如下:
① PC端向服務(wù)器發(fā)送用戶名name,服務(wù)器根據(jù)name檢索后向PC發(fā)送對(duì)應(yīng)的密鑰密文v和認(rèn)證隨機(jī)數(shù)chal;
② 在PC端輸入口令pwd,系統(tǒng)生成一個(gè)盲化因子d,計(jì)算出盲化后的口令μ,即Hash(pwd)d→μ發(fā)送給手機(jī)端.
③ 手機(jī)端提示用戶按下指紋,得到指紋參數(shù)e.對(duì)得到的盲化口令μ進(jìn)行簽名,即μe→β,然后將β發(fā)送給PC端.
④ PC端對(duì)簽名后的盲化口令進(jìn)行去盲化,得到用戶私鑰s:
β→s.
⑤ PC端使用用戶私鑰s和HKDF函數(shù)算法對(duì)認(rèn)證密鑰密文v進(jìn)行解密,得到認(rèn)證密鑰y:
HKDF.extract(s,v)→y.
⑥ PC端利用認(rèn)證密鑰y和隨機(jī)數(shù)chal進(jìn)行計(jì)算,向服務(wù)器端發(fā)送認(rèn)證信息response進(jìn)行認(rèn)證.即:
f(y,chal)→response.
⑦ 服務(wù)器端計(jì)算f(y,chal)并與接收到的response對(duì)比,一致則接受此次登錄即accept,否則拒絕登錄即reject.
如圖4所示為登錄階段具體協(xié)議.
Fig. 4 Login phase protocol.圖4 登錄階段具體協(xié)議
4.1 FMPA方案
FMPA方案具有3種參與者: 1)PC客戶端.想使用口令來訪問服務(wù)器.2)服務(wù)器.注冊和認(rèn)證客戶端.3)手機(jī).輔助PC客戶端的注冊和認(rèn)證階段.
將FMPA方案分為6個(gè)步驟:
1) UserGen.此協(xié)議由用戶生成用戶名name和l位的口令pwd;
2) Register.用戶通過手機(jī)輸入口令pwd和指紋e與服務(wù)器進(jìn)行注冊,最后手機(jī)端會(huì)生成1個(gè)認(rèn)證密鑰y和認(rèn)證私鑰的密文v,手機(jī)端向PC端發(fā)送(name,server)存儲(chǔ),服務(wù)器端存儲(chǔ)(name,y,v);
3) Store.PC端存儲(chǔ)用戶名name,手機(jī)端不存儲(chǔ)用戶的數(shù)據(jù)信息,用戶需記住pwd和name;
4) PreAuth.PC客戶端使用其用戶名name從服務(wù)器端檢索其密文信息v,服務(wù)器發(fā)送給PC客戶端v和挑戰(zhàn)信息chal;
5) Retrieve.用戶在PC客戶端輸入口令pwd同時(shí)借助手機(jī)輸入e.PC客戶端和手機(jī)進(jìn)行交互,盲簽名協(xié)議完成后在PC端生成私鑰s,再由s解密v得到認(rèn)證密鑰y;
6) Authenticate.PC客戶端使用y和chal向服務(wù)器證明他有相應(yīng)的賬戶憑證,服務(wù)器輸出accept或者reject.
4.2 安全游戲
FMPA方案假設(shè)用戶擁有1個(gè)手機(jī)設(shè)備和PC客戶端.因此用戶可以在PC和手機(jī)上輸入自己的口令和指紋.然而,手機(jī)可能會(huì)丟失或者被偷,這樣,惡意的對(duì)手也許就會(huì)使用用戶存儲(chǔ)在設(shè)備上的信息訪問服務(wù)器,甚至破解用戶的口令.此外,PC端和服務(wù)器端也易被對(duì)手攻擊.下面對(duì)FMPA方案有可能遭受的攻擊分為外部攻擊Game One和內(nèi)部攻擊Game Two兩種,游戲中涉及的參數(shù):x是安全參數(shù),所有的Hash函數(shù)的輸出長度為l,l≥2xb;|D|是口令集合的長度,|D|≤2xb;|s|是用戶私鑰的長度;k是用戶設(shè)置的口令的長度,k∈N;定義neg(k):若對(duì)于任意非零的常數(shù)c,存在一個(gè)有限非零的數(shù)K,對(duì)于任意k>K,都有neg(k) 1) 外部攻擊Game One.在此游戲中,對(duì)手可以控制PC端,模擬PC客戶端與手機(jī)端執(zhí)行Store步驟,與服務(wù)器端執(zhí)行PreAuth步驟.對(duì)手也可以控制PC端,模擬PC端向手機(jī)端發(fā)起Retrieve步驟,假設(shè)發(fā)起的請求次數(shù)為q.對(duì)手還可控制手機(jī)端,模擬手機(jī)端和PC端執(zhí)行Retrieve步驟,由本方案的算法可知,手機(jī)端只能接收來自于PC端的數(shù)據(jù)信息而不能主動(dòng)向PC端發(fā)起請求.若對(duì)手通過這場游戲獲得用戶口令,或者對(duì)手繞過口令成功猜測到私鑰s,則對(duì)手勝利. 定義1. 假設(shè)對(duì)手贏得Game One游戲的概率是P1,若P1≤max(q|D|+neg(k), 12|s|),則認(rèn)為FMPA方案滿足基于Game One的安全性. 2) 內(nèi)部攻擊Game Two.在此游戲中,對(duì)手可以控制服務(wù)器,向服務(wù)器中存儲(chǔ)的密文發(fā)起離線字典攻擊試圖獲得用戶口令.假設(shè)對(duì)手可以對(duì)HKDF.extract發(fā)起T次離線字典攻擊.若對(duì)手通過這場游戲獲得用戶口令,則對(duì)手勝利. 定義2. 假設(shè)對(duì)手贏得Game Two游戲的概率是P2,若P2≤q|D|+2T(|D|t)+neg(k),則認(rèn)為FMPA方案滿足基于Game Two的安全性. 定義3. 若FMPA方案滿足基于Game One,Game Two的安全性,則可以認(rèn)為FMPA方案是安全的. 4.3 FMPA協(xié)議的安全性 定理1. FMPA協(xié)議是滿足定義3安全性的協(xié)議. 證明. 1) FMPA具有基于Game One的安全性. Game One的場景還原如下: ① 對(duì)手模擬PC客戶端,與手機(jī)端執(zhí)行Store步驟,得到手機(jī)端發(fā)給他的用戶名name.對(duì)手與服務(wù)器執(zhí)行PreAuth步驟,根據(jù)用戶名name檢索到用戶的密鑰密文v和挑戰(zhàn)信息chal.由于密鑰密文v是由HKDF協(xié)議生成,由其算法的特性可知,若輸入了不正確的口令解密密文,解密算法將一直循環(huán)運(yùn)算下去而沒有輸出,所以對(duì)手不能通過此密文得到用戶的口令.故P1是一個(gè)可以忽略的小值. ② 對(duì)手模擬PC客戶端,生成1個(gè)口令pwd0,然后向手機(jī)端發(fā)起執(zhí)行Retrieve步驟的請求,對(duì)手與手機(jī)端執(zhí)行Retrieve步驟,此步驟的交互過程與HCR協(xié)議的過程類似,只是將原協(xié)議的簽名私鑰替換成了指紋參數(shù),所以,攻擊者在這場協(xié)議中猜測口令成功的概率和HCR協(xié)議[12]相同,故P[對(duì)手得到口令]≤q|D|+neg(k).故對(duì)手贏得這場游戲的概率P1≤q|D|+neg(k). ③ 對(duì)手控制PC端,繞過口令直接對(duì)私鑰s進(jìn)行猜測,則對(duì)手猜測到s的概率P[對(duì)手猜到s]≤12|s|,故對(duì)手贏得這場游戲的概率P1≤12|s|. ④ 對(duì)手模擬手機(jī)端和PC端執(zhí)行Retrieve步驟,此時(shí),對(duì)手會(huì)得到用戶盲化后的口令信息,同②中的分析,攻擊者在這場協(xié)議中猜測口令成功的概率是P[對(duì)手得到口令]≤q|D|+neg(k).故對(duì)手贏得這場游戲的概率P1≤q|D|+neg(k). 綜上,P1≤max(q|D|+neg(k), 12|s|).所以,F(xiàn)MPA具有基于Game One的安全性. 2) FMPA具有基于Game Two的安全性. Game Two的場景還原如下: 惡意的服務(wù)器對(duì)存儲(chǔ)的密文發(fā)起離線字典攻擊,它生成1個(gè)私鑰s′試圖解密密文,即HKDF.extract(s′,v).由HKDF的安全性[13]]可知,對(duì)手在解密密文的過程中猜測到用戶口令的概率P[對(duì)手獲得口令]≤T(|D|t)+neg(k),其中,t是在HKDF.prepare協(xié)議階段設(shè)置的循環(huán)運(yùn)算次數(shù). 所以對(duì)手能夠得到用戶口令的概率P2≤q|D|+2T(|D|t)+neg(k),故FMPA方案具有基于Game Two的安全性. 綜上所述,F(xiàn)MPA協(xié)議滿足基于定義1和定義2的安全性,故FMPA協(xié)議是一個(gè)安全的協(xié)議. 證畢. 5.1 測試方案與場景 為了使測試更貼近實(shí)際的場景,我們租用了阿里云服務(wù)器作為服務(wù)器端,與用戶進(jìn)行認(rèn)證.使用的阿里云服務(wù)器部署于青島,由百度地圖可以測得用戶所在地西安與云服務(wù)器所在地青島的距離為1058.6 km,如圖5所示: Fig. 5 The overall test plan diagram.圖5 測試方案總體示意圖 如圖5所示,其中步驟①是注冊階段手機(jī)端計(jì)算后生成認(rèn)證密鑰y和認(rèn)證密鑰密文v發(fā)送給云服務(wù)器端.步驟②~④是登錄階段,由手機(jī)端和個(gè)人電腦端進(jìn)行計(jì)算,生成認(rèn)證密鑰y后與云服務(wù)器進(jìn)行認(rèn)證. 本節(jié)利用安卓設(shè)備、PC端和云服務(wù)器實(shí)現(xiàn)了本文的方案從而對(duì)其進(jìn)行性能評(píng)估,主要從時(shí)間和存儲(chǔ)方面對(duì)方案的可用性進(jìn)行評(píng)估.在時(shí)間方面,對(duì)用戶的注冊階段和登錄階段在4個(gè)不同場景下所耗時(shí)間進(jìn)行測試和對(duì)比分析;在存儲(chǔ)方面,主要對(duì)方案的實(shí)現(xiàn)過程中手機(jī)端的存儲(chǔ)量進(jìn)行分析評(píng)估. 本方案的實(shí)驗(yàn)設(shè)備為1臺(tái)PC、1個(gè)云服務(wù)器、1臺(tái)安卓設(shè)備、實(shí)驗(yàn)設(shè)備的具體參數(shù)如下: 搭建的服務(wù)器實(shí)驗(yàn)環(huán)境為阿里云服務(wù)器,部署于青島、CPU單核3.00 GHz、1 GB內(nèi)存、操作系統(tǒng)為Windows Sever2008標(biāo)準(zhǔn)版SP2 32 b、帶寬為5 Mbps. PC為HP Compad dx7408 MT DT PC主機(jī),具有ms-7352主板、雙核IntelTMCoreTM2 Duo CPU E8400 @3.00 GHz、2 GB內(nèi)存、操作系統(tǒng)為Windows 7(32位). 安卓設(shè)備分別為安卓模擬器Android4.1.2-API Level 16,CPU ARM(armeabi),RAM 512,VM Heap 16,Internal Storage 200MiB; 安卓手機(jī). 本文的測試程序由Java語言編寫,其中基于RSA盲簽名部分用到了Bouncy Castle庫. 基于以上設(shè)計(jì)方案,我們在4種場景下分別進(jìn)行了測試: 場景1. 用同一戶進(jìn)行注冊和登錄,輸入相同的口令和指紋,分別測試注冊階段和登錄階段的完整過程的所用時(shí)間,測試若干組數(shù)據(jù)以求得用戶注冊和登錄所耗時(shí)間的平均值.此場景使用的安卓設(shè)備是安卓模擬器. 場景2. 對(duì)于不同用戶,口令的長短、復(fù)雜度不同,為分析口令對(duì)方案運(yùn)行時(shí)間的影響,分別選取20組不同用戶,對(duì)其注冊階段和登錄階段整個(gè)過程對(duì)所耗時(shí)間分別進(jìn)行測試評(píng)估,使用的安卓設(shè)備是安卓模擬器. 場景3. 由于系統(tǒng)設(shè)置不同,生成了不同長度的指紋參數(shù).我們選取了在指紋長度分別為128 b,256 b,512 b的情況下,分別對(duì)用戶的注冊階段和登錄階段的完整過程所耗時(shí)間進(jìn)行測試,其中使用的安卓設(shè)備是安卓模擬器. 場景4. 用戶使用不同的安卓設(shè)備(安卓模擬器、魅族手機(jī)、HTC手機(jī))進(jìn)行注冊和登錄,分別測試用戶注冊和登錄階段所耗時(shí)間. Fig. 6 Registration phase description.圖6 注冊階段流程說明 本實(shí)驗(yàn)將注冊階段的總時(shí)間K(單位是ms)分為2部分k1和k2.如圖6所示,其中k1是從用戶在安卓設(shè)備上輸入戶名和口令進(jìn)行注冊開始到生成認(rèn)證密鑰密文結(jié)束所耗時(shí)間,k2是將用戶的認(rèn)證密鑰密文發(fā)送至云服務(wù)器所耗時(shí)間. 將登錄階段的總時(shí)間T(單位是ms)分為5個(gè)部分,如圖7所示,其中t1為用戶在PC端向云服務(wù)器端請求對(duì)應(yīng)的認(rèn)證密鑰密文所耗時(shí)間,t2+t4為在PC端對(duì)用戶口令進(jìn)行盲化及生成認(rèn)證密鑰所耗時(shí)間,t3為安卓設(shè)備對(duì)盲化后的口令進(jìn)行指紋簽名過程所耗時(shí)間,t5為將用戶的認(rèn)證信息發(fā)送給云服務(wù)器所耗時(shí)間. Fig. 7 Login phase description.圖7 登錄階段流程說明 5.2 測試結(jié)果 5.2.1 場景1測試結(jié)果 1) 注冊階段 在此場景下,用戶在安卓設(shè)備上輸入相同的用戶名、口令和指紋進(jìn)行注冊,其中用戶的指紋長度為256 b,測10組數(shù)據(jù)如表1所示.通過表1中數(shù)據(jù)可以計(jì)算出用戶注冊的平均時(shí)間為216.9 ms. Table 1 Registration Phase Time of the Scene One 2) 登錄階段 用戶登錄時(shí),在PC和安卓模擬器上分別輸入自己的口令和指紋測出各個(gè)階段所耗時(shí)間,所得的10組數(shù)據(jù)如表2所示.通過數(shù)據(jù)可以計(jì)算出用戶登錄的平均時(shí)間為192.5 ms. Table 2 Login Phase Time of the Scene One 5.2.2 場景2測試結(jié)果 1) 注冊階段 在場景2下,選取20組不同的用戶進(jìn)行測試,用戶在安卓模擬器上輸入用戶名、口令和指紋進(jìn)行注冊,測出所耗時(shí)間k1和k2.其中這些用戶的用戶名、口令的復(fù)雜度和長度都不盡相同,指紋長度相同均為256 b,測得的時(shí)間如表3所示: Table 3 Registration Phase Time of the Scene Two 2) 登錄階段 用戶在PC端和安卓設(shè)備上分別輸入對(duì)應(yīng)的口令和指紋,測出各個(gè)階段所耗時(shí)間,所得對(duì)應(yīng)的20組數(shù)據(jù),如表4所示: Table 4 Login Phase Time of the Scene Two 5.2.3 場景3測試結(jié)果 1) 注冊階段 用戶在安卓設(shè)備上輸入口令,系統(tǒng)分別生成3種不同長度的指紋參數(shù):512 b,256 b,128 b,對(duì)所耗時(shí)間k1和k2進(jìn)行測試,如表5所示: Table 5 Registration Phase Time of the Scene Three 2) 登錄階段 用戶在PC和安卓設(shè)備上輸入對(duì)應(yīng)的口令和指紋,測試各個(gè)階段所耗時(shí)間,如表6所示: Table 6 Login Phase Time of the Scene Three 5.2.4 場景4測試結(jié)果 1) 注冊階段 在場景4下,有3個(gè)不同的安卓設(shè)備,分別是安卓模擬器、魅族手機(jī)和HTC手機(jī).用戶在不同的安卓設(shè)備上輸入相同的口令和指紋,對(duì)所耗時(shí)間k1和k2進(jìn)行測試,如表7所示: Table 7 Registration Phase Time of the Scene Four 2) 登錄階段 用戶在PC端上和不同的安卓設(shè)備上輸入自己的口令和指紋,測試各個(gè)階段所耗時(shí)間,如表8所示: Table 8 Login Phase Time of the Scene Four 5.3 性能分析 由場景1的注冊階段所測數(shù)據(jù)如表1所示,可以計(jì)算出用戶在安卓模擬器上注冊所需要的平均時(shí)間為216.9 ms.由登錄階段表2可以計(jì)算出用戶使用安卓模擬器和PC端進(jìn)行登錄所需的平均時(shí)間是192.5 ms. 由場景2測得的數(shù)據(jù)表3可以得出,當(dāng)不同的用戶輸入不同的口令進(jìn)行注冊時(shí),所耗費(fèi)的最長時(shí)間與最短時(shí)間差值為81 ms,小于人體的反應(yīng)時(shí)間(人體的反應(yīng)時(shí)間>100 ms),對(duì)于用戶來說,設(shè)置不同長度或復(fù)雜程度不同的口令并不能感受到其差異.故口令的長短和復(fù)雜程度對(duì)用戶的注冊時(shí)間影響不大.注冊階段不同用戶耗時(shí)對(duì)比如圖8所示: Fig. 8 Registration phase experimental data of the scene two.圖8 場景2注冊階段實(shí)驗(yàn)數(shù)據(jù) 由場景2表4可以看出:當(dāng)不同的用戶輸入其對(duì)應(yīng)的口令進(jìn)行登錄時(shí),所耗費(fèi)的最長時(shí)間和最短時(shí)間的差值為54 ms,小于人體的反應(yīng)時(shí)間,故當(dāng)口令的長度和復(fù)雜程度對(duì)用戶的登錄總時(shí)間影響不大,不同的用戶在登錄階段的時(shí)間對(duì)比如圖9所示: Fig. 9 Login phase experimental data of the scene two.圖9 場景2登錄階段實(shí)驗(yàn)數(shù)據(jù) Fig. 10 Comparison of experimental data in two phases of the scene three.圖10 場景3兩個(gè)階段實(shí)驗(yàn)數(shù)據(jù)對(duì)比 根據(jù)場景3所測數(shù)據(jù)如表5注冊階段和表6登錄階段可以看出,當(dāng)指紋長度不同時(shí),用戶注冊階段所耗時(shí)間的最大差值為9 ms,登錄階段所耗時(shí)間的最大差值為10 ms,對(duì)用戶的影響不大.指紋長度分別為128 b,256 b,512 b時(shí),注冊階段和登錄階段所耗時(shí)間的對(duì)比如圖10所示: 場景4即用戶在不同的安卓設(shè)備上輸入相同的口令和指紋進(jìn)行測試,由表7和表8測得的數(shù)據(jù)可以看出:在實(shí)際的手機(jī)設(shè)備上注冊和登錄所耗總時(shí)間比在安卓模擬器上耗費(fèi)的總時(shí)間短,傳輸時(shí)間基本無差別,主要區(qū)別在安卓設(shè)備上的計(jì)算時(shí)間.在已有的Mobile SPA方案中,注冊階段耗費(fèi)的總時(shí)間是傳輸時(shí)間25 ms和手機(jī)端計(jì)算時(shí)間1 ms之和,共計(jì)26 ms,而本文的方案在2種手機(jī)上測試所耗費(fèi)的時(shí)間分別為37 ms和40 ms,時(shí)間差較小,對(duì)方案的性能影響不大.在Mobile SPA方案中,登錄階段所消耗的時(shí)間為在服務(wù)器端的計(jì)算時(shí)間1 ms、在手機(jī)端的計(jì)算時(shí)間2 ms、傳輸時(shí)間35 ms,共計(jì)38 ms.本方案在登錄階段在手機(jī)設(shè)備上測得的登錄總時(shí)間分別為152 ms和151 ms,與Mobile SPA方案的最大時(shí)間差值為117 ms,相差較大,但本方案在登錄階段有盲簽名運(yùn)算、密鑰重新生成運(yùn)算等,大大提高了系統(tǒng)的安全性,對(duì)于一般的用戶來說,反應(yīng)時(shí)間大于100 ms,故對(duì)用戶的使用感影響不大.用戶使用不同的安卓設(shè)備注冊和登錄所耗時(shí)間對(duì)比如圖11所示: Fig. 11 Comparison of experimental data in two phases of the scene four.圖11 場景4兩個(gè)階段實(shí)驗(yàn)數(shù)據(jù)對(duì)比 由測試方案可知,本方案注冊時(shí)算法運(yùn)行的時(shí)間為k1,登錄時(shí)算法運(yùn)行的時(shí)間為t3+t2+t4,算法的運(yùn)行總時(shí)間為k1+t3+t2+t4,可以計(jì)做W(PC端與安卓設(shè)備之間的傳輸時(shí)延較短,可以忽略不計(jì),故t3可以看做是算法在安卓設(shè)備上的運(yùn)行時(shí)間).根據(jù)場景4所列數(shù)據(jù)可以分別計(jì)算出用戶在安卓設(shè)備、魅族手機(jī)和HTC手機(jī)上算法的運(yùn)行總時(shí)間W.可以據(jù)此畫出用戶在不同的安卓設(shè)備上算法運(yùn)行的時(shí)間對(duì)比如圖12所示.由圖12可以看出,本方案的算法在安卓模擬器上運(yùn)行耗時(shí)最長,在魅族手機(jī)和HTC手機(jī)上耗時(shí)基本相同,這是因?yàn)榘沧磕M器在處理器和設(shè)置的參數(shù)上與安卓真機(jī)相比有一定的差距,故影響了算法的運(yùn)行效率. Fig. 12 Comparison of the running time of the algorithm on different devices.圖12 不同設(shè)備算法運(yùn)行時(shí)間對(duì)比圖 在手機(jī)端的存儲(chǔ)方面,在Mobile SPA方案中,需要在手機(jī)端存儲(chǔ)MAC key,以便與服務(wù)器端進(jìn)行認(rèn)證,1個(gè)服務(wù)器對(duì)應(yīng)1個(gè)MAC key,而1個(gè)MAC key有128 B.而在本方案的設(shè)計(jì)中,手機(jī)端僅需要短暫存儲(chǔ)用戶的指紋,而本文的設(shè)計(jì)方案中,手機(jī)端只需要存儲(chǔ)用戶的指紋信息即可與各種服務(wù)器進(jìn)行認(rèn)證,指紋參數(shù)長度最大為512 b即64 B.若用戶注冊了2 000個(gè)服務(wù)器,則Mobile SPA方案需要250 Kb的存儲(chǔ)容量,而本文的FMPA方案僅需在運(yùn)算過程中暫存0.0625 Kb,不需要在手機(jī)端長期存儲(chǔ)數(shù)據(jù).可以計(jì)算出,F(xiàn)MPA方案手機(jī)端存儲(chǔ)量僅為Mobile SPA方案的0.03%. 綜上所述,本文提出的方案在時(shí)間性能方面與已有的手機(jī)參與的認(rèn)證方案相比,雖然在登錄階段時(shí)間有明顯增長,但對(duì)于用戶體驗(yàn)來講,對(duì)用戶的使用感影響不大,同時(shí)本文增加了盲簽名運(yùn)算、密鑰重新生成運(yùn)算等,大大提高了系統(tǒng)的安全性.在手機(jī)端的存儲(chǔ)方面,本文的方案在手機(jī)端僅暫存用戶的指紋,故只存儲(chǔ)少量的信息,減少了手機(jī)端的存儲(chǔ)壓力.所以,本文的方案有很高的應(yīng)用價(jià)值. 用戶常通過口令、驗(yàn)證碼等登錄應(yīng)用賬戶使用其服務(wù).而這些應(yīng)用賬戶往往與其他的應(yīng)用賬戶相關(guān)聯(lián),或是存儲(chǔ)著用戶的某些個(gè)人隱私甚至與其銀行卡相互綁定,所以保護(hù)用戶口令的安全、對(duì)用戶身份進(jìn)行認(rèn)證成為一個(gè)廣泛關(guān)注的問題.本文利用手機(jī)輔助用戶認(rèn)證,與以往的手機(jī)、個(gè)人電腦和服務(wù)器3方認(rèn)證不同的是,并不在手機(jī)端存儲(chǔ)用戶的認(rèn)證信息,利用口令和指紋2個(gè)用戶憑據(jù)生成認(rèn)證私鑰,再通過私鑰和HKDF[13]函數(shù)生成認(rèn)證密鑰,從而與服務(wù)器進(jìn)行認(rèn)證.由于HKDF函數(shù)的特性,任何對(duì)手都不能對(duì)密文暴力破解得到密鑰或是口令,也不能無限地試錯(cuò)攻擊從而對(duì)密文解密.由于手機(jī)端沒有用戶的秘密信息,即使手機(jī)丟失,也不會(huì)對(duì)用戶賬戶造成安全隱患.最后我們對(duì)本文的方案進(jìn)行了安全性證明和實(shí)驗(yàn)測試,結(jié)果表明,本文的方案能夠抵御字典攻擊和對(duì)手手機(jī)端的攻擊,能夠保證用戶口令和賬戶安全,且與現(xiàn)有的手機(jī)、個(gè)人電腦、服務(wù)器3方認(rèn)證的時(shí)間無明顯差別,此外還減少了手機(jī)端的存儲(chǔ)壓力,具有很高的應(yīng)用價(jià)值. [1]Carlson N. Mark Zuckerberg broke into a Facebook user’s private email account[EB/OL]. 2010 [2010-03-00]. http://www.businessinsider.com [2]Wu M, Garfinkel S, Miller R. Secure Web authentication with mobile phones[C/OL] //Proc of DIMACS Workshop on Usable Privacy and Security Software, 2004 [2016-06-15]. https://www.researchgate.net/publication/228856911_Secure_web_authentication_with_mobile_phones [3]Thanh D, Jorstad I, Jonvik T. Strong authentication with mobile phone as security token[C] //Proc of IEEE the 6th Int Conf on Mobile Ad Hoc and Sensor Systems.Piscataway, NJ: IEEE, 2009: 777-782 [4]McCune J M, Perrig A, Reiter M K. Seeing-is-believing: Using camera phones for human-verifiable authentication[C] //Proc of 2005 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2005: 110-124 [5]Mannan M, Oorschot P C. Financial Cryptography and Data Security: Using a Personal Device to Strengthen Password Authentication from an Untrusted Computer[M]. Berlin: Springer, 2007: 88-103 [6]Starnberger G, Froihofer L, Goeschka K M. QR-TAN: Secure mobile transaction authentication[C] //Proc of Availability, Reliability and Security. Piscataway, NJ: IEEE, 2009: 578-583 [7]Acar T, Belenkiy M, Kupcu A. Single password authentication[J].Computer Networks, 2013, 57(13): 2597-2614 [8]Chen C L, Lee C C, Hsu C Y. Mobile device integration of a fingerprint biometric remote authentication scheme[J].International Journal of Communication Systems, 2012, 25(5): 585-597 [9]Su Q, Tian J, Chen X. A fingerprint authentication system based on mobile phone[C] //Proc of Audio-and Video-Based Biometric Person Authentication. Berlin: Springer, 2005: 151-159 [10]Xu Qingui, Huang Peican,Yang Taolan. An enhanced biometrics-key-based remote user authentication scheme with smart card[J].Journal of Computer Research and Development, 2015, 52(11): 2645-2655 (in Chinese)(徐欽桂, 黃培燦, 楊桃欄. 增強(qiáng)的基于生物密鑰智能卡遠(yuǎn)程身份認(rèn)證方案[J].計(jì)算機(jī)研究與發(fā)展, 2015, 52(11): 2645-2655) [11]Matt Z. FBI has accessed san bernardino shooter’s phone without apple’s help[EB/OL]. 2016 [2016-03-29]. http://gadgets.ndtv.com/mobiles/news [12]Boyen X. Hidden credential retrieval from a reusable password[C] //Proc of the 4th Int Symp on Information, Computer, and Communications Security. New York: ACM, 2009: 228-238 [13]Boyen X. Halting password puzzles[C] //Proc of the 16th USENIX Security Symp. Berkeley, CA: USENIX Association, 2007: 119-134 An Di, born in 1992, Master candidate in Xidian University. Her main research interests include cloud computing and storage security. Yang Chao, born in 1979. Received his PhD degree in computer science and technology from Xidian University in 2008. Associate professor in Xidian University. His main research interests include cryptography and information & network security. Jiang Qi, born in 1983. Received his PhD degree in computer science and technology from Xidian University in 2011. His main research interests include security protocols and wireless network security. Ma Jianfeng, born in 1963. Professor and PhD supervisor in Xidian University. His main research interests include network and information security, cryptography. A New Password Authentication Method Based on Fingerprint and Mobile Phone Assistance An Di, Yang Chao, Jiang Qi, and Ma Jianfeng (SchoolofCyberEngineering,XidianUniversity,Xi’an710071) (ShaanxiKeyLaboratoryofNetworkandSystemSecurity(XidianUniversity),Xi’an710071) Mobile phones and Internet applications are widely used nowadays,which enables users to authenticate with the server with the help of mobile phones. However,existing schemes need to store the user’s secret or ciphertext on the mobile phone. Once the mobile phone is lost, opponents may get the secret information on the phone, which will bring irreparable loss to the user. Aiming at the above problems, we propose a kind of authentication scheme based on fingerprint and password which has no need to store a secret in the mobile phone. The core idea is to store the encrypted text on the server side. When the user logs in, he uses his mobile phone to generate the private key which is used to decrypt the ciphertext generated during the registration phase. The user needs to enter his password and fingerprint at the private key generation process.When the computer interacts with the mobile phone, the user’s password will be blind so that it can be protected from adversaries’ attacks. Theoretical analysis and experimental results show that our scheme reinforces the security of the user’s secret. Meanwhile,our scheme can resist dictionary attacks,replay attacks and phishing attacks while reducing the storage pressure of the mobile phone along with easy deployment. password-based authentication; authentication based on terminal assistance; fingerprint authentication; password attack and protection; blind password based on fingerprint 2016-06-16; 2016-08-17 國家自然科學(xué)基金青年基金項(xiàng)目(61303219);國家自然科學(xué)基金面上項(xiàng)目(61672415) 楊超(chaoyangcn@163.com) TP391 This work was supported by the National Natural Science Foundation for Young Scholars of China (61303219) and the General Program of National Natural Science Foundation of China (61672415).5 性能分析與評(píng)估
6 總 結(jié)