摘 要:動態(tài)口令廣泛應用于網(wǎng)上銀行、電子支付等領(lǐng)域,目前朝著多因子認證的方向發(fā)展,其令牌種類眾多,移動互聯(lián)網(wǎng)時代下移動設(shè)備將成為一種重要的選擇。本文介紹了各類動態(tài)口令及其令牌并分析了其面臨的安全挑戰(zhàn)和解決方案,對其應用和發(fā)展作了展望。
關(guān)鍵詞:動態(tài)口令;令牌;移動設(shè)備;時間;事件;挑戰(zhàn)應答
DOI:10.16640/j.cnki.37-1222/t.2016.04.193
1 引言
動態(tài)口令是一種重要的身份認證技術(shù),常用的密碼很容易被竊取或猜測,動態(tài)口令克服了其長期使用同一口令的缺陷。動態(tài)口令在電子商務(wù)、互聯(lián)網(wǎng)金融等領(lǐng)域得到了廣泛應用,企業(yè)或銀行開發(fā)了自用方案如SecurID、U盾、口令卡等,一些企業(yè)也推出相關(guān)定制產(chǎn)品。本文重點介紹動態(tài)口令的類型及令牌和近年來的研究成果,并其發(fā)展方向作了展望。
2 動態(tài)口令技術(shù)的分類
動態(tài)口令主要有基于事件同步、基于時間同步、基于挑戰(zhàn)應答三種類型,傳遞使用的令牌包括短信、手機、專有令牌(智能卡和芯片設(shè)備)、網(wǎng)頁、硬拷貝等。
2.1 基于事件的動態(tài)口令
基于事件的動態(tài)口令通過特定的事件次序及相同的種子值作為輸入,通信雙方維護相同的計數(shù)器以得到一致的口令,當前口令的產(chǎn)生依賴先前的口令,如哈希鏈方案和S/Key方案。哈希鏈方案通過哈希函數(shù)F對種子x進行迭代運算(F(…F(x)…))生成口令,第i次認證要求客戶端提供哈希鏈上的第N-i個口令FN-i(x),服務(wù)端驗證F(FN-i(x))是否等于FN-i+1(x),一定程度上解決了不安全環(huán)境下的認證問題;S/Key方案選擇MD4作為哈希函數(shù),在生成的128位摘要只取64位轉(zhuǎn)換為單詞,通信雙方需要維護相同的字典庫和計數(shù)器,S/Key方案能夠有效防止重放攻擊,但并不能抵抗小數(shù)攻擊,攻擊者冒充服務(wù)端要求客戶端提供一個迭代數(shù)M的口令,得到FM(x)后就能計算出所有滿足M 近幾年RFC-4226提出了更安全的HMAC-base OTP(簡稱HOTP)方案,應用于各類專有令牌。該方案中令牌和認證服務(wù)器共享加法計數(shù)器C和對稱密鑰K,通過HMAC-SHA1/MD5算法生成消息認證碼HMAC提供給用戶,認證碼具有抗碰撞性和消息認證屬性。該方案克服了多重哈希運算產(chǎn)生口令的弱點,即運算量過大和小數(shù)攻擊。HOTP需要解決對稱密鑰共享的和計數(shù)器同步(如文獻[1]的基于窗口的重同步方案),并使用智能卡或芯片設(shè)備。 2.2 基于時間的動態(tài)口令 基于時間的動態(tài)口令按時間的使用方式分為兩類:第一類只是用時間間隔作有效性約束,如短信驗證碼要求在一分鐘內(nèi)使用;第二類使用時間作為輸入?yún)?shù),如RFC-6238中提出的time-based OTP(簡稱TOTP)方案。TOTP和HOTP的主要區(qū)別是用時間代替計數(shù)器作為輸入?yún)?shù),使用HMAC-SHA-256/512算法生成消息認證碼,每個時間間隔產(chǎn)生一個口令,間隔之外口令即失效,同步標準統(tǒng)一且不會有重復的輸入,時效性更強。在一些場合可用TOTP替換HOTP,如文獻[2]實現(xiàn)了一種高效的基于各類芯片的TOTP動態(tài)口令卡,依靠晶體振蕩器提供時間因素。TOTP目前較多使用手機令牌,如用于兩步驗證的 “Google Authenticator”,用于更換設(shè)備登錄賬戶的“Facebook Login Approval”;文獻[3]基于手機令牌提出了可應用于網(wǎng)上銀行和ATM系統(tǒng)的TOTP認證方案;時間同步在移動設(shè)備上實現(xiàn)也較容易。 2.3 基于挑戰(zhàn)應答的動態(tài)口令 基于挑戰(zhàn)應答的動態(tài)口令在每次認證時服務(wù)器端都給客戶端發(fā)送一個不同的挑戰(zhàn),客戶端程序收到挑戰(zhàn)后做出相應的應答,雙方通常會共享密鑰、應答產(chǎn)生函數(shù)等,挑戰(zhàn)應答可以結(jié)合時間或事件作為輸入的口令生成算法,比如加入時間的有效性約束;反之,對于HOTP和TOTP也可加入挑戰(zhàn)應答機制來提高安全性。為了判斷請求證明者的合法性,一般需對挑戰(zhàn)加密或簽名,并與其他因子結(jié)合。文獻[4]結(jié)合S/Key與挑戰(zhàn)應答機制,通過與密鑰異或計算加密的挑戰(zhàn)和序列數(shù)實現(xiàn)了雙向認證,但多次使用相同密鑰可能帶來風險;文獻[5]將用戶信息和挑戰(zhàn)連接后再進行哈希生成挑戰(zhàn)碼,并使用了公鑰算法加密認證過程,但需要可安全攜帶數(shù)字證書或密鑰的專有令牌。 3 安全挑戰(zhàn)和解決方案 安全挑戰(zhàn)無處不在,目前在安全敏感的場合一般都會使用動態(tài)口令,若每一項應用都使用獨立的令牌,需要管理的令牌數(shù)量和種類將越來越多,使用成本過高;動態(tài)口令存在著各種潛在漏洞,主要體現(xiàn)在密鑰、鹽、生物特征模板等秘密信息的保護,公鑰、數(shù)字簽名、挑戰(zhàn)等認證因素的防偽等方面;此外還要防范攻擊者截取口令在惡意篡改的會話中使用。 目前動態(tài)口令的令牌以智能卡和芯片設(shè)備為主,隨著移動互聯(lián)網(wǎng)的發(fā)展,基于移動設(shè)備的應用越來越多,移動設(shè)備是一個新的選擇,對客戶端的數(shù)字簽名還能攜帶公鑰。秘密信息保護包括存儲和傳輸兩個方面。在存儲方面,芯片設(shè)備的安全性最高,通過用戶設(shè)置PIN碼保護令牌的安全即可;若采用移動設(shè)備,可通過PIN碼、圖案識別等方式保護令牌,但需防止木馬竊取信息??蛻舳说臄?shù)字簽名可以完成對服務(wù)端的認證,在不使用CA證書的情況下達到較好的安全性。 4 結(jié)語 動態(tài)口令技術(shù)目前基本采用多因子認證,基于事件、時間和挑戰(zhàn)應答三類動態(tài)口令方案有著各自的優(yōu)勢,應根據(jù)不同場合選擇因子設(shè)計合適的方案。在可預見的將來,智能卡和芯片設(shè)備仍是主流令牌,移動設(shè)備則展現(xiàn)了獨有的優(yōu)勢,不僅通用性高,而且可以使用時間、數(shù)字簽名甚至生物特征等因子(指紋/虹膜識別設(shè)備陸續(xù)出現(xiàn)),移動設(shè)備還可作為鑒別用戶的關(guān)鍵信息,在移動互聯(lián)網(wǎng)時代擁有良好的應用前景。 參考文獻: [1]劉瀟,劉巍然,李為宇.一種改進的動態(tài)口令生成算法及重同步方案[J].計算機研究與發(fā)展,2012,49(12):2611-2618. [2]鄭強,高能,張令臣.基于SM3算法的動態(tài)口令卡的設(shè)計與實現(xiàn)[J].計算機應用與軟件,2013,30(02):14-17. [4]何冰.簡單易行的S_KEY認證改進方案[J].計算機應用,2011,31(04):996-998. 作者簡介:陳澤凱(1990-),男,福建漳州人,碩士,研究方向:信息安全。