国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TOTP的移動(dòng)端雙因子身份認(rèn)證方法

2021-10-16 06:11:12張佳梁少華
關(guān)鍵詞:服務(wù)端口令計(jì)數(shù)器

張佳,梁少華

(1.湖北文理學(xué)院 理工學(xué)院,湖北 襄陽 441025;2.長江大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,湖北 荊州 434020)

身份認(rèn)證是指用戶在進(jìn)入目標(biāo)系統(tǒng)訪問特定資源時(shí),目標(biāo)系統(tǒng)對(duì)身份的確認(rèn)和權(quán)限的授予。一般情況下,能夠唯一標(biāo)識(shí)用戶身份的介質(zhì)包括:1)私密信息,僅用戶自己知道的信息,如用戶密碼;2)私人物品,用戶的個(gè)人用品,如RFID標(biāo)簽、身份證、U盾、手機(jī)等;3)生物特征,用戶的生理或行為特征,如指紋、面部、虹膜、步態(tài)等。這3種方式為身份認(rèn)證的3種“因子”,理論上在應(yīng)用系統(tǒng)中采用的認(rèn)證因子越多,則用戶的身份真實(shí)性越可靠、系統(tǒng)的安全性越高?;陟o態(tài)口令進(jìn)行移動(dòng)端身份認(rèn)證,除了易于泄露之外,還難以記憶且易被攻擊。私人物品識(shí)別大多需要特定的識(shí)別方式,如RFID標(biāo)簽和身份證等需要相應(yīng)的射頻讀卡設(shè)備才能識(shí)別,U盾需要通過USB接口支持,因此移動(dòng)終端大多采用了生物特征識(shí)別的方式進(jìn)行身份認(rèn)證。隱式身份認(rèn)證是目前移動(dòng)端的主要研究方向。文獻(xiàn)[1]對(duì)基于移動(dòng)終端的隱式身份認(rèn)證技術(shù)現(xiàn)狀進(jìn)行了綜述,并提出了基于本地和網(wǎng)絡(luò)的2種隱式身份認(rèn)證框架。文獻(xiàn)[2]提出將用戶使用系統(tǒng)的多個(gè)正常行為習(xí)慣作為基本屬性并賦以各自的權(quán)重,構(gòu)建相應(yīng)的決策矩陣,從而最終實(shí)現(xiàn)基于移動(dòng)終端的隱式因子身份認(rèn)證。文獻(xiàn)[3]提出對(duì)于物聯(lián)網(wǎng)環(huán)境下的移動(dòng)設(shè)備,針對(duì)用戶的步態(tài)、擊鍵習(xí)慣進(jìn)行識(shí)別,從而實(shí)現(xiàn)用戶身份認(rèn)證。這一類隱式身份認(rèn)證方式雖然簡化了用戶身份認(rèn)證的復(fù)雜性,但目前其準(zhǔn)確性和抗攻擊性還有待進(jìn)一步增強(qiáng),尚未有成熟的產(chǎn)品應(yīng)用。文獻(xiàn)[4]提出移動(dòng)端的雙因子身份認(rèn)證方法,將用戶靜態(tài)口令作為第一認(rèn)證因子,移動(dòng)設(shè)備的動(dòng)態(tài)特征作為第二認(rèn)證因子,解決移動(dòng)環(huán)境下的用戶身份認(rèn)證問題。但該方法需要獲取用戶移動(dòng)設(shè)備的相關(guān)權(quán)限,若設(shè)備未同意授權(quán)則無法獲取設(shè)備的動(dòng)態(tài)特征,因此具有一定的局限性。針對(duì)上述方法存在的局限性,考慮到生物特征識(shí)別技術(shù)的日趨成熟以及安全性的不斷提升[5],提出基于“生物特征+手機(jī)動(dòng)態(tài)口令(一次性口令)”的方法,實(shí)現(xiàn)移動(dòng)端的雙因子身份認(rèn)證。

1 OTP算法

一次性口令(one time password,OTP)也稱動(dòng)態(tài)口令,基于某種算法自動(dòng)生成,能夠保證唯一性,每次生成的口令具有指定的超時(shí)時(shí)間,使用過1次或超時(shí)未使用都將導(dǎo)致該口令失效。OTP算法包括HOTP算 法(hmac-based one-time password algo?rithm)和TOTP算法(time-based one-time password algorithm),TOTP算法基于HOTP算法實(shí)現(xiàn)。

1)基于HOTP的一次性口令I(lǐng)ETF RFC4266發(fā)布了HOTP一次性口令算法,有K、C、P共3個(gè)輸入?yún)?shù)。其中K為在服務(wù)端和客戶端之間共享的密鑰,且每個(gè)HOTP算法都有唯一的密鑰;C為運(yùn)動(dòng)因子,是1個(gè)長度為8B的計(jì)數(shù)器,每次生成新的口令時(shí)都會(huì)自增,在服務(wù)端和客戶端之間保持同步;P為最終生成口令的長度。HOTP算法為

式中:Truncate表示由K、C計(jì)算得到長度為160bit的哈希值轉(zhuǎn)換為一次性口令的過程。主要步驟如圖1所示:1)基于HMAC-SHA-1算法,根據(jù)K與C生成1個(gè)長度為20B的字符串HS;2)獲取HS最后1個(gè)字節(jié)(93)的后4位(3)作為偏移地址Offset,然后從HS中截取HS[Offset]…HS[Offset+3],得到1個(gè)長度為4B的字符串25B91AB2,返回該字符串的后31位25B91AB2(避免某些處理器將最高位作為符號(hào)位);3)將Sbits轉(zhuǎn)換成為十進(jìn)制632887986;4)根據(jù)P(P≥6),將Snum對(duì)10P取模,得到最終長度為P的口令887986。

圖1 HOTP算法步驟

2)基于時(shí)間計(jì)數(shù)器的HOTP-TOTP TOTP算法與HOTP算法基本一致,TOTP中C為

式中:T0為生成口令時(shí)的初始計(jì)數(shù)時(shí)間戳;T為當(dāng)前時(shí)間戳;X為時(shí)間窗口,表示生成1次新計(jì)數(shù)器的間隔時(shí)間,取30s。

2 OTP算法優(yōu)化

2.1 計(jì)數(shù)器不同步問題

OTP的客戶端與服務(wù)端通過各自計(jì)數(shù)器的當(dāng)前值計(jì)算得到新口令,正常情況下,兩端的計(jì)數(shù)器是同步的。OTP客戶端(硬件設(shè)備如口令卡、軟件令牌)計(jì)數(shù)器Cclient自增后,計(jì)算得到新的動(dòng)態(tài)口令Dclient。當(dāng)OTP服務(wù)端接收到該口令后,與通過服務(wù)端計(jì)數(shù)器Cserver計(jì)算得到的動(dòng)態(tài)口令Dserver進(jìn)行比對(duì),每次新生成的口令相同,可以通過驗(yàn)證。

若出現(xiàn)如下計(jì)數(shù)器不同步的情況,則無法通過驗(yàn)證:1)HOTP客戶端請求獲取OTP口令(獲取后計(jì)數(shù)器自增),但未輸入并發(fā)送到服務(wù)端進(jìn)行驗(yàn)證;2)TOTP客戶端與服務(wù)端的時(shí)間不同步。

2.2 同步處理機(jī)制

2.2.1 TOTP算法

為了解決由于時(shí)間不同步導(dǎo)致的計(jì)數(shù)器不同步的問題,可設(shè)置1個(gè)偏移量Tc,當(dāng)服務(wù)端根據(jù)本地時(shí)間T生成的口令與客戶端發(fā)送的口令不匹配時(shí),可分別向前T-X、T-2X、…、T-(Tc-1)X、T-TcX和向后T+X、T+2X、…、T+(Tc-1)X、T+TcX進(jìn)行探測。若得到相匹配的口令后,此時(shí)返回驗(yàn)證通過,否則返回驗(yàn)證失敗。解決方案如圖2所示。

圖2 TOTP同步處理機(jī)制

1)正常情況 客戶端與服務(wù)端的本地時(shí)間同步,兩端的計(jì)數(shù)器也同步。客戶端每生成1次動(dòng)態(tài)口令后,便發(fā)送至服務(wù)端進(jìn)行驗(yàn)證,服務(wù)端根據(jù)通過相同的計(jì)數(shù)器得到相匹配的口令,驗(yàn)證通過。

2)計(jì)數(shù)器不同步情況 當(dāng)出現(xiàn)客戶端生成了口令但用戶輸入滯后、客戶端時(shí)間發(fā)生漂移,或由于網(wǎng)絡(luò)延遲等問題,都將導(dǎo)致Ccltent與Cserver不同步。

3)下一次驗(yàn)證 在Ccltent與Cserver不同步的情況下,客戶端生成動(dòng)態(tài)口令后發(fā)送到服務(wù)端進(jìn)行驗(yàn)證,此時(shí)服務(wù)端根據(jù)計(jì)數(shù)器得到的口令與客戶端不匹配,可設(shè)置1個(gè)時(shí)間窗口,分別向前和向后進(jìn)行探測,在探測偏移量不超過Tc時(shí),若計(jì)算得到相匹配的口令時(shí)返回驗(yàn)證通過,否則返回驗(yàn)證失敗。

4)異常行為 在第3種情況下,若返回驗(yàn)證失敗時(shí),客戶端仍能夠再次提交口令并發(fā)起驗(yàn)證申請,此時(shí)服務(wù)端重復(fù)上1步的驗(yàn)證過程。為了避免惡意用戶(無有效的計(jì)數(shù)器)采用暴力方式破解,算法設(shè)置累計(jì)探測次數(shù)的閾值S,若探測次數(shù)N大于S,則認(rèn)定為異常行為。

2.2.2 HOPT算法

在計(jì)數(shù)器不同步的情況下,服務(wù)端生成的口令與客戶端發(fā)送的口令不匹配。此時(shí)Cserver自增,繼續(xù)向前探測(N≤S),若能夠匹配則返回成功(此時(shí)計(jì)數(shù)器已同步),否則返回失敗。

3 方案設(shè)計(jì)

3.1 身份認(rèn)證流程

基于TOTP算法實(shí)現(xiàn)了移動(dòng)終端應(yīng)用的雙因子身份認(rèn)證,其核心流程如圖3所示。

圖3 身份認(rèn)證流程

3.1.1 用戶注冊

用戶通過手機(jī)進(jìn)行注冊,注冊時(shí)提交包含人臉和聲紋的基本信息到服務(wù)端。此時(shí)服務(wù)端將產(chǎn)生并保存1個(gè)用于生成一次性口令的唯一密鑰,并將該密鑰返回給移動(dòng)終端應(yīng)用,保存在手機(jī)中。

3.1.2 用戶身份驗(yàn)證

用戶身份驗(yàn)證分為生物特征識(shí)別和動(dòng)態(tài)口令驗(yàn)證,實(shí)現(xiàn)雙因子身份認(rèn)證。

1)生物特征識(shí)別 首先通過用戶ID獲取用戶的基本信息,并提取服務(wù)端存儲(chǔ)的用戶人臉和聲紋信息;然后通過移動(dòng)終端錄制1段不超過10s的視頻(基于Android提供的MediaRecorder實(shí)現(xiàn)視頻錄制以及壓縮)。錄制視頻時(shí),要求用戶讀出1段指定的隨機(jī)文本,并對(duì)視頻中的人臉圖像進(jìn)行采集(基于Android提供的統(tǒng)一接口MediaMetadataRe?triever實(shí)現(xiàn)視頻文件的解析并獲取幀和元數(shù)據(jù),得到指定時(shí)間點(diǎn)的截圖)、預(yù)處理以及特征提取,同時(shí)對(duì)聲紋特征進(jìn)行提??;最后采用指定的模式匹配算法對(duì)人臉和聲紋進(jìn)行比對(duì)。

2)動(dòng)態(tài)口令驗(yàn)證 每次認(rèn)證時(shí)分別在移動(dòng)端和服務(wù)端基于OTP算法生成動(dòng)態(tài)口令,并進(jìn)行一致性比對(duì):在移動(dòng)端,首先從手機(jī)中讀取預(yù)先存儲(chǔ)的OTP密鑰,然后基于手機(jī)的當(dāng)前時(shí)間戳生成相應(yīng)的Dclient并顯示在用戶界面中,最后用戶根據(jù)提示的Dclient進(jìn)行輸入并提交;在服務(wù)端,首先根據(jù)用戶請求(含用戶ID與填寫的動(dòng)態(tài)口令)獲取動(dòng)態(tài)口令密鑰,其次根據(jù)密鑰務(wù)器當(dāng)前時(shí)間生成相應(yīng)的Dserver,最后將Dserver與Dclient進(jìn)行比對(duì),并返回驗(yàn)證結(jié)果到客戶端進(jìn)行顯示。

3.2 動(dòng)態(tài)口令算法

1)基于時(shí)間的一次性口令生成算法 假設(shè)系統(tǒng)支持hmac-sha1加密算法,且服務(wù)端與客戶端已保存相同的密鑰;輸入為共享密鑰、當(dāng)前時(shí)間、動(dòng)態(tài)口令長度;輸出為動(dòng)態(tài)口令。

2)動(dòng)態(tài)口令驗(yàn)證算法 假設(shè)服務(wù)端與客戶端已保存相同的密鑰;輸入為共享密鑰、服務(wù)端當(dāng)前時(shí)間、用戶輸入的動(dòng)態(tài)口令、時(shí)間窗口、探測偏移量、動(dòng)態(tài)口令長度;輸出為是否驗(yàn)證通過。

3.3 運(yùn)行結(jié)果

移動(dòng)終端運(yùn)行界面如圖4所示。用戶首先錄制不超過10s的視頻并讀出1段隨機(jī)文本,程序從中截取人臉和聲紋信息;驗(yàn)證通過后輸入手機(jī)上顯示的6位動(dòng)態(tài)口令,并發(fā)送到服務(wù)端進(jìn)行驗(yàn)證,實(shí)現(xiàn)了“生物特征+動(dòng)態(tài)口令”的雙因子驗(yàn)證過程。

圖4 身份認(rèn)證界面

4 結(jié)論

文中提出“生物特征+動(dòng)態(tài)口令”的雙因子身份認(rèn)證方法。采用人臉和聲紋的組合方式進(jìn)行生物特征驗(yàn)證,基于TOTP算法生成動(dòng)態(tài)口令進(jìn)行二次驗(yàn)證,提高了系統(tǒng)的安全性。文中提出的TOTP同步處理機(jī)制中,探測時(shí)間窗口設(shè)置偏大可能給惡意用戶暴露了更大的攻擊時(shí)間窗口,設(shè)置偏小則可能無法實(shí)現(xiàn)正常情況下的身份認(rèn)證,后續(xù)將根據(jù)具體情況在安全性和可用性之間進(jìn)行權(quán)衡。

猜你喜歡
服務(wù)端口令計(jì)數(shù)器
煤氣與熱力(2022年2期)2022-03-09 06:29:30
高矮胖瘦
口 令
云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
在Windows Server 2008上創(chuàng)建應(yīng)用
好玩的“反口令”游戲
SNMP服務(wù)弱口令安全漏洞防范
計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
连州市| 巨鹿县| 东阿县| 栖霞市| 汉沽区| 黑水县| 西平县| 德清县| 温宿县| 顺平县| 云浮市| 蒲城县| 青海省| 东台市| 郸城县| 长沙市| 鹿邑县| 衢州市| 新乡县| 兴山县| 宝山区| 平定县| 澎湖县| 白玉县| 濮阳市| 方山县| 西畴县| 准格尔旗| 清原| 杭州市| 高陵县| 松滋市| 维西| 二连浩特市| 紫云| 南通市| 河北区| 河曲县| 桐城市| 孟州市| 清徐县|