[郭茂文]
?
基于FIDO協(xié)議的指紋認證方案研究
[郭茂文]
摘要首先簡單介紹了FIDO協(xié)議,然后提出了基于FIDO協(xié)議和移動終端可信執(zhí)行環(huán)境(TEE)的指紋認證方案總體框架和業(yè)務(wù)流程,并設(shè)計了指紋認證安全性提升方案,最后指出了指紋認證應(yīng)用和推廣還需要移動終端增加指紋識別能力并開放TEE能力。
關(guān)鍵詞:FIDO 指紋校驗 可信執(zhí)行環(huán)境 身份認證
郭茂文
中國電信股份有限公司廣州研究院。
近年來,隨著移動互聯(lián)網(wǎng)蓬勃發(fā)展,智能移動設(shè)備普及率越來越高,越來越多的支付操作基于移動終端完成。但是,移動支付服務(wù)所采用的身份認證手段大多采取“賬號+口令+短信驗證碼”模式,其安全性不高,而且,在移動終端設(shè)備中輸入賬號和口令不如在PC上方便。近兩年來,生物識別技術(shù)逐漸應(yīng)用于移動終端設(shè)備,特別是指紋識別,多數(shù)移動終端將指紋識別用于手機屏幕解鎖等安全應(yīng)用,其本質(zhì)是采用指紋識別技術(shù)替代口令輸入。這種新的身份認證技術(shù)在某種程度上既增強了移動終端的安全性,又改善了用戶體驗。移動終端指紋識別技術(shù)的引入為實現(xiàn)指紋支付提供了可能。
FIDO (Fast Identity Online,即線上快速身份驗證)聯(lián)盟成立于2012年7月,其宗旨為滿足市場需求和應(yīng)付網(wǎng)上驗證要求。FIDO聯(lián)盟成員包括Google、BlackBerry、ARM、英特爾、PayPal、Lenovo、阿里巴巴和MasterCard等。這些成員通過協(xié)助界定市場需求,制定了在線與數(shù)碼驗證方面的首個開放行業(yè)標準,并于2014年12月發(fā)布,包括fido-u2f-v1.0和fido-uaf-v1.0兩套協(xié)議。這兩套協(xié)議可以很好地提高身份認證安全性、保護隱私及改善用戶體驗。
FIDO規(guī)范是一套開放的標準協(xié)議,保證各個廠商開發(fā)的強認證技術(shù)之間的互操作性,并通過兩套協(xié)議來支持多種硬件設(shè)備。主要如下:
UAF( Universal Authentication Framework protocol)支持指紋、語音、虹膜、臉部識別等生物身份識別方式。無需用戶密碼介入,直接進行認證。用戶在注冊階段,根據(jù)服務(wù)器支持的本地驗證方式,選擇一種驗證方式,如:指紋識別,人臉識別,語音識別等等,服務(wù)器也可保留密碼驗證方式,將密碼和生物識別相結(jié)合,增強用戶賬戶安全性。
U2F(Universal Second Factor protocol)支持U盾、NFC芯片、TPM(可信賴平臺模塊)等硬件設(shè)備,使用雙因子(密碼和硬件設(shè)備)保護用戶賬戶和隱私。用戶在注冊階段,使用服務(wù)器支持的加密設(shè)備,將賬戶和設(shè)備綁定。當進行登錄驗證操作時,服務(wù)器在合適的時候,提示用戶插入設(shè)備并進行按鍵操作,加密設(shè)備對數(shù)據(jù)簽名,發(fā)送給服務(wù)器,服務(wù)器做驗證,如果驗證成功,用戶則可登錄成功。由于有了第二因子(加密硬件設(shè)備)的保護,用戶可以選擇不設(shè)置密碼或者使用一串簡單易記的4位密碼。
FIDO協(xié)議最基本的技術(shù)特征就是本地身份識別與在線身份認證相結(jié)合,而在線身份認證技術(shù)則采用非對稱公私鑰對來提供安全保障,如圖1 所示。
圖1 FIDO協(xié)議示意圖
具體來說,使用FIDO協(xié)議時涉及兩個主要步驟:注冊和認證。
當用戶登錄服務(wù)器注冊時,用戶端產(chǎn)生一對非對稱密鑰對,并與用戶本地的身份信息(如生物特征、專用硬件設(shè)備等)進行關(guān)聯(lián)。私鑰在用戶端本地設(shè)備中保留,黑客無法讀取,公鑰傳給服務(wù)器,服務(wù)器將此公鑰和用戶對應(yīng)的應(yīng)用賬戶相關(guān)聯(lián)。
當用戶登錄服務(wù)器認證時,用戶端設(shè)備中的私鑰對服務(wù)器的挑戰(zhàn)數(shù)據(jù)做簽名,服務(wù)器使用對應(yīng)的公鑰做驗證。用戶端設(shè)備中的私鑰,必須經(jīng)過本地用戶身份識別(如按鍵,按下指紋等),才能被用來做簽名操作。
目前,隨著智能終端的發(fā)展,指紋識別技術(shù)已經(jīng)成為中高端手機必備的基本功能,而基于智能終端的移動支付應(yīng)用也已經(jīng)非常普及,不僅各個銀行有自己的手機銀行APP,各互聯(lián)網(wǎng)巨頭公司都推出了自己的移動支付應(yīng)用,如阿里巴巴支付寶、微信錢包、百度錢包等。因此,在支付環(huán)節(jié)通過與智能終端本地指紋識別技術(shù)結(jié)合不僅可以提升用戶賬號安全性,還可以改善用戶業(yè)務(wù)體驗,避免輸入復(fù)雜、難以記憶的個人密碼。
我們在FIDO規(guī)范的UAF協(xié)議框架下,根據(jù)支付應(yīng)用的業(yè)務(wù)特點,遵循“非對稱”和“可撤銷”兩個基本原則,設(shè)計了指紋認證系統(tǒng)方案,如圖2所示。整個指紋認證系統(tǒng)以非對稱加密算法為基礎(chǔ),非對稱密鑰對由客戶移動終端的可執(zhí)行環(huán)境(TEE)產(chǎn)生,其中,私鑰保存在TEE內(nèi),而公鑰由TEE傳給服務(wù)器,并保存在服務(wù)器端的數(shù)據(jù)庫中,移動終端與服務(wù)器之間的通信使用SSL/TLS協(xié)議加密保護。系統(tǒng)采用指紋認證技術(shù)作為本地驗證用戶身份的手段,用戶指紋信息的采集、計算、存儲與匹配等操作均在本地移動終端TEE環(huán)境中完成。只有通過本地身份鑒別后,才能正確使用用戶私鑰進行加密和簽名等操作。移動終端存儲的指紋信息與用戶之間是一一對應(yīng)的可撤銷(可重置)的關(guān)系。
圖2 基于UAF協(xié)議的指紋認證系統(tǒng)方案示意圖
備注:REE(Rich Execution Environment),即普通執(zhí)行環(huán)境
ASM(Authenticator Specific Module),認證器接口模塊
CA(Client Application),即TEE應(yīng)用的運行于REE的客戶端應(yīng)用
TA(Trusted Application),即TEE應(yīng)用的運行于TEE內(nèi)部的可行應(yīng)用
指紋認證方案涉及的主要業(yè)務(wù)流程包括指紋認證注冊、指紋認證簽名和指紋認證注銷。
4.1指紋認證注冊
指紋認證注冊指用戶同意并開始使用指紋認證業(yè)務(wù)。開通時需設(shè)置用戶用于支付的指紋信息,并需通過業(yè)務(wù)密碼的校驗。注冊時,終端側(cè)需要采集與校驗用戶指紋信息,產(chǎn)生非對稱密鑰對,并建立私鑰、指紋信息和應(yīng)用之間的對應(yīng)關(guān)系;平臺側(cè)需要保存終端側(cè)發(fā)送的注冊信息,建立用戶應(yīng)用賬號與公鑰之間的對應(yīng)關(guān)系。
每臺移動終端只能有一個用戶設(shè)定一個指紋信息用于支付。若想要變更用于支付的指紋信息,那么必須先注銷指紋認證業(yè)務(wù)然后再重新注冊,才能設(shè)置新的指紋信息。具體的指紋認證注冊流程如圖3所示。
4.2指紋認證簽名與驗簽
指紋認證簽名指用戶端在本地進行指紋識別并校驗后,對服務(wù)器側(cè)發(fā)送過來的交易數(shù)據(jù)采用私鑰進行簽名確認并返回給服務(wù)器。服務(wù)器接收到簽名數(shù)據(jù)后采用注冊時保存的公鑰對簽名結(jié)果進行驗簽。具體的指紋認證簽名與驗簽流程如圖4所示。
4.3指紋認證注銷
指紋認證注銷指在終端側(cè)解除應(yīng)用、私鑰以及指紋信息之間的對應(yīng)關(guān)系,并刪除用戶密鑰對,在服務(wù)器側(cè)刪除用戶應(yīng)用賬號與公鑰之間的對應(yīng)關(guān)系。在指紋認證注銷時,需要校驗用戶的應(yīng)用業(yè)務(wù)密碼。由于指紋認證注銷流程比較簡單,這里省略不提。
如何實現(xiàn)指紋認證系統(tǒng)的安全性是設(shè)計指紋認證方案的關(guān)鍵。本指紋認證方案除了通用的在服務(wù)器與用戶端的會話中增加Challenge、nonce等隨機數(shù)參數(shù)防止重復(fù)攻擊外,還采用多種安全措施來提高指紋認證系統(tǒng)的安全性。
圖3 指紋認證注冊業(yè)務(wù)流程
5.1用戶端與服務(wù)器端的雙向認證機制
用戶端加密設(shè)備(如TEE)產(chǎn)生的密鑰對與指紋認證服務(wù)器是關(guān)聯(lián)的,一對密鑰對應(yīng)一個指紋認證服務(wù)器。在注冊的時候,服務(wù)器相關(guān)信息傳給用戶端加密設(shè)備,加密設(shè)備產(chǎn)生一對密鑰對,將此密鑰對和服務(wù)器相關(guān)信息相關(guān)聯(lián),給此密鑰對分配一個句柄(Key Handle),并將其和公鑰傳給指紋認證服務(wù)器,服務(wù)器將注冊的用戶賬戶信息,公鑰和Key Handle全部關(guān)聯(lián)在一起并保存。
當用戶需要認證簽名,服務(wù)器端產(chǎn)生挑戰(zhàn)數(shù)據(jù),此時服務(wù)器將Key Handle和服務(wù)器信息通過瀏覽器傳給用戶端加密設(shè)備,用戶端加密設(shè)備使用Key Handle,尋找對應(yīng)的密鑰對,如果密鑰對存在,檢驗密鑰對應(yīng)的服務(wù)器信息是否和傳入的服務(wù)器信息匹配,如果不匹配,說明服務(wù)器是偽造或者不正確的。如果正確,用戶端加密設(shè)備等待用戶指紋校驗,用戶指紋校驗后,加密設(shè)備對挑戰(zhàn)數(shù)據(jù)做簽名,簽名值返回給服務(wù)器,服務(wù)器驗證簽名值,如果簽名正確,說明此公鑰對應(yīng)的唯一私鑰是正確的,表明用戶身份合法,如果簽名不正確,說明此用戶正在偽造身份登錄??梢?,指紋認證系統(tǒng)驗證身份是雙向的,用戶端驗證服務(wù)器的真?zhèn)危?wù)器驗證用戶端的真假。
圖4 指紋認證簽名業(yè)務(wù)流程
5.2計數(shù)器機制
在指紋認證方案中,使用了計數(shù)器機制。在用戶指紋認證注冊完成后,服務(wù)器會初始化計數(shù)器(從0開始),在用戶端加密設(shè)備內(nèi)部,對應(yīng)的密鑰對也有一個計數(shù)器。用戶每認證一次,用戶端加密設(shè)備的計數(shù)器加一,此計數(shù)器會傳給服務(wù)器,服務(wù)器端會比較這兩個計數(shù)器,如果服務(wù)器的計數(shù)器小于等于用戶端加密設(shè)備的計數(shù)器,屬于正常操作,服務(wù)器驗證成功后,將計數(shù)器更新為用戶端當前的計數(shù)器。如果服務(wù)器的計數(shù)器大于用戶端加密設(shè)備的計數(shù)器,說明用戶端加密設(shè)備已經(jīng)被克隆。例如,用戶注冊完成后,登陸時,服務(wù)器的計數(shù)器更新為1,用戶端加密設(shè)備的計數(shù)器也為1。下次用戶再次登陸,服務(wù)器和用戶端都更新為2。如果用戶端加密設(shè)備被克隆,其它人使用該設(shè)備登陸,服務(wù)器計數(shù)器會隨著惡意使用者的登陸,計數(shù)器會遞增。當真正的用戶登陸時,服務(wù)器發(fā)現(xiàn)它的計數(shù)比服務(wù)器上的小,服務(wù)器就會發(fā)現(xiàn)用戶端加密設(shè)備已經(jīng)被克隆,并給用戶發(fā)出警告信息。
5.3防釣魚網(wǎng)站機制
指紋認證注冊時,用戶端會保存應(yīng)用的網(wǎng)址信息(即App_ID)。如果釣魚網(wǎng)站在注冊時獲取到了Key Handle和公鑰信息。當進行指紋認證時,用戶端獲取的網(wǎng)址和注冊時的網(wǎng)址是不一樣的,這樣,將Key Handle 、App_ID信息傳入加密設(shè)備中,加密設(shè)備會發(fā)現(xiàn)自身存儲的Key Handle對應(yīng)的App_ID和傳入的App_ID不一致而中止進行簽名操作。
5.4指紋認證TA的訪問機制
指紋認證方案中,對指紋認證TA的訪問采用“Trust on First Use”的策略。在指紋認證注冊階段,指紋認證CA會產(chǎn)生一個隨機的API Key,并結(jié)合App_ID和用戶個人化ID(即Personal_ID)信息生成一個Access Key。指紋認證CA訪問指紋認證TA時攜帶Access Key,指紋認證TA記錄并保存指紋認證CA所攜帶的Access Key信息。以后每次認證時,指紋認證TA均會比較指紋認證CA所攜帶的Access Key信息是否與自己保存的Access Key信息一致,如果一致,則允許指紋認證CA訪問;否則,拒絕來自指紋認證CA的訪問。
基于FIDO協(xié)議的指紋認證方案通過硬件與軟件、指紋本地認證與移動智能終端在線認證的結(jié)合實現(xiàn)了高安全等級但又很便捷的用戶身份認證,明顯地提升移動支付安全和用戶業(yè)務(wù)體驗。目前,一些互聯(lián)網(wǎng)/電商企業(yè)已經(jīng)開始支持基于FIDO協(xié)議的指紋認證支付應(yīng)用,如京東錢包、微信錢包等。但是,指紋認證的大規(guī)模應(yīng)用和推廣還有賴于移動終端技術(shù)和相關(guān)標準的發(fā)展,如支持FIDO協(xié)議的指紋識別器技術(shù),移動終端TEE技術(shù)等。此外,各終端廠商還需要開放其終端內(nèi)部的指紋校驗和TEE接口能力,以便指紋認證系統(tǒng)調(diào)用這些能力。
參考文獻
1FIDO Alliance,F(xiàn)IDO UAF Protocol Specification v1.0 2014 年12月8日
DOI:10.3969/j.issn.1006-6403.2016.04.001
收稿日期:(2016-03-18)