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