徐文華,陳國華,黃國權
(廣東藥學院 醫(yī)藥信息工程學院,廣東 廣州 510006)
生物特征的穩(wěn)定性、唯一性及與實體間的固有聯(lián)系性為身份認證提供了更安全、更便捷的途徑,同時,也帶來日益嚴峻的存儲和傳輸安全問題[1]。生物特征保護問題在國外已有不少的研究成果,在國內最近也有相關的報道,主要有特征轉換[2]、生物特征加密[3]及結合成熟密碼方案三類方法[4-5]。
本文提出一種新的生物特征保護方法。其思想是通過哈希變換和分別傳輸以及異地存儲,使得敵手無法獲得用戶名與特征的關聯(lián)性,從而達到保護特征的目的。參考文獻[4-5]與該方法在形式上很相似,但兩者存在本質的不同:前者是基于傳統(tǒng)密碼技術保護生物特征,其安全基礎是敵手無法獲得密鑰;而本文所提方法的安全基礎是敵手無法獲知特征與用戶名的對應關系。這種差異性的形成原因在于前者直接把生物特征視為需要保密的數(shù)據(jù)進行加密,而本文所提方法是在分析系統(tǒng)四構成要素間信任關系和簽名功能分配的基礎上[5],通過對用戶名與隨機數(shù)的單向轉換,在特征和用戶名的傳輸和存儲過程中采取分別傳輸和異地存儲的方式達到特征與用戶名分離的目的,從而實現(xiàn)“即使敵手獲得用戶密鑰,也不能冒充真實用戶”。
1.1.1 注冊過程
(1)用戶 Ui選取 n=pq, 其中 p=2p′+1,q=2q′+1,|p|=|q|=512 bit,p、p′、q、q′均為素數(shù); 記 QRn為 Zn中的二次剩余構成的群,隨機選取一個生成元h∈QRn。H(·):{0,1}*→{0,1}256為一安全無碰撞的 Hash函數(shù)。 生成PK=(n,h,N),SK=(p,q)。
(2)用戶Ui產(chǎn)生其用戶名 IDi,并經(jīng)過哈希轉換后提交給模板庫,簽名過程中的簽名消息為用戶名的哈希值。傳感器端提取該用戶特征,并傳送至模板庫(模板庫雖然保存的是用戶的原始特征,但由于哈希函數(shù)的單向性,模板庫并不知道該特征對應的用戶名)。傳感器端根據(jù)用戶名哈希值做的簽名一并存儲在模板庫中。用戶產(chǎn)生簽名消息的過程為:首先產(chǎn)生用戶名的哈希值,用戶Ui隨機選取一個長為 257 bit的奇數(shù) e,且(e,φ(n))=1,計算 y 使得 ye=hH(ui)⊕emod n。 簽名消息 Sing=(e,y)。 注冊過程中用戶提交到模板庫的數(shù)據(jù)有:H(ui)、原始特征m及Sing三部分。
(3)服務提供端 S設置門限值值 λ。
1.1.2 認證過程
傳感器端C首先提取特征m′,并提取該用戶模板庫中的特征驗證 H(m′,m)=λ。如果是,則拒絕服務;否則,用戶提交用戶名稱Ui給服務提供端,服務提供端先對該用戶名做哈希變換,然后根據(jù)該哈希值向模板庫提取其簽名進行驗證。驗證簽名時先驗證e是否為257 bit的奇數(shù),并根據(jù)用戶ID號向模板庫DB提取該用戶的注冊特征驗證 ye=hH(ui)⊕emod n。 如果驗證通過,則認證成功,否則認證失敗。
該方案具有以下特點:
(1)特征和用戶名分別傳輸。在注冊過程中,用戶向模板庫傳輸?shù)碾m然是原始特征,但用戶名稱經(jīng)過哈希變換,這種條件下不誠實的模板庫無法獲得模板與特征的對應關系。在認證過程中,雖然用戶名是以明文發(fā)送至服務提供端,但在用戶與服務提供端之間并沒有特征的傳輸,因此,敵手獲得的僅僅是用戶名,而無法獲得特征與用戶名的對應關系。這種情形會導致敵手可能存在的一個攻擊是通過一段時間的攻擊,敵手有可能獲得全部或部分用戶的用戶名或特征。但這種攻擊對于上述方案無法達到有效攻擊,因為認證過程的最后一步仍然需要簽名的驗證,而簽名過程使用了用戶自己產(chǎn)生的隨機數(shù),這就意味著敵手無法偽造用戶的簽名,因此,這種攻擊無法奏效。
(2)特征和用戶名分別存儲。用戶認證過程中H(m′,m)>λ是由傳感器端完成,這個過程用戶與傳感器之間不存在信道傳輸。因此,用戶可以根據(jù)用戶名稱的哈希值從模板庫中提取注冊特征進行距離的判斷。
(3)單向函數(shù)。模板庫存放了用戶的原始特征,但由于哈希函數(shù)的單向性,模板庫并不能知道這些特征所對應的用戶。因此,對于不誠實的模板庫,不能獲得用戶與特征的對應關系。哈希函數(shù)安全性是本方案安全性的基礎。自20世紀90年代中期以來,有不少密碼分析學家對MD系列和SHA系列的函數(shù)提出了各種攻擊算法,尤其是2004年,我國學者王小云教授[6]找出 MD5的一個碰撞。這些攻擊算法對所有以哈希函數(shù)安全性為基礎的安全方案(比如簽名方案、認證協(xié)議、MAC碼等)提出挑戰(zhàn),但并不意味著目前的方案都已經(jīng)不安全。因為從理論上講,所有的密碼體制都可以破解,關鍵是運算時間的問題。而目前對哈希函數(shù)的碰撞是指找出了比理論值更低的碰撞算法,在實際當中,MD5仍然是可靠的。
本文從兩個角度考慮安全的含義:第一個是敵手或第三方不能獲得原始聲紋特征,這是比較直觀的理解;第二個是敵手或第三方不能獲得特征與用戶名之間的關聯(lián)性。
根據(jù)四個要素間(傳感器端、用戶端、服務提供端、模板庫)的信任關系,用戶信任傳感器端和服務提供端,因此把認證的功能分配至這兩個要素。對于不被用戶信任的模板庫和信道,通過在不同信道(用戶與服務提供端、用戶、傳感器和模板庫)傳送用戶名和特征的方法使得敵手無法獲得兩者的關聯(lián)性。并且,用戶名稱是經(jīng)過哈希變換的形式,在存儲了原始特征的模板庫中無論是敵手還是不誠實的模板庫都無法獲得兩者的關聯(lián)性。極端情況下,假設敵手獲得用戶的密鑰,在傳統(tǒng)密碼體制下,上述簽名是可冒充的,但本文所提方案中的簽名驗證是 H(m′,m)≤λ的條件下進行的。而對于敵手,由于無法滿足該條件 (敵手無法獲得用戶名與特征的關聯(lián)性),因此,也就無法進入簽名驗證過程。綜上所述,由于敵手無法獲得用戶與特征的關聯(lián)關系,因此,上述方案是安全的,即“即使敵手獲得用戶密鑰,也不能冒充真實用戶”。該方案的安全性是比較直觀的,下面分析該方案的有效性。
在解決模板保護的基本問題下,方案的最終要求是能夠“有效地認證”,有效性的定義是加入特征保護措施后,系統(tǒng)的識別率不會明顯低于加入前的,也就是不會惡化識別性能。本文所提方法在認證過程中首先采用判據(jù) H(m′,m)>λ,然后才是簽名方案能否通過驗證。 因此,系統(tǒng)的最終識別率等于認證過程第一步 H(m′,m)>λ的識別率和系統(tǒng)對簽名驗證通過率的乘積。
第一部分的概率分析為根據(jù)“同一個發(fā)音人在不同的時刻發(fā)同一個字具有足夠相似性”和“敵手不可能足夠相似地模仿發(fā)音人的發(fā)音”的基本假設。H(m′,m)>λ的識別率等于原有系統(tǒng)的識別率,假設為 1-P(H(m′,m)>λ)。
第二部分為簽名方案的通過率。在認證過程中,認證服務器根據(jù)用戶提交的用戶ID,向數(shù)據(jù)庫提取該用戶名哈希值所對應的用戶名。這一過程驗證公式y(tǒng)e=hH(ui)⊕emod n 中的 H(Ui)與簽名公式中的一致。 在認證過程中,用戶使用的隨機數(shù)e與簽名過程產(chǎn)生的一致。這兩點實質上保證了真實用戶的驗證算法通過率為100%。因此,上述方案的最終識別率仍然等于1-P(H(m′,m)>λ),也就是沒有惡化識別性能。
注意到上述過程中的一個現(xiàn)象是 H(m′,m)>λ的判斷是個概率計算過程,真實用戶的驗證通過率為100%。這是否說明 “不管是否簽名驗證,肯定是要通過認證的”,同時意味著簽名驗證過程是多余的呢?其實不然,上述100%通過驗證是在真實用戶利用其真實參數(shù)去驗證的結果,如果是非法用戶,則不能通過驗證。
有效性的分析包括服務提供端 S驗證 H(m′,m)>λ和簽名驗證。簽名驗證是數(shù)學運算,其通過率為100%。而 H(m′,m)>λ的計算仍然屬于模式匹配,存在某個識別率,并且這個概率與是否采用簽名算法是不相關的。即這個概率與加入簽名前的識別率是相等的,這從邏輯關系上說明了方案的有效性。
由于上述認證過程既包括簽名驗證,也包含模式匹配,使得耗時增加,因此實驗部分需要驗證系統(tǒng)驗證H(m′,m)>λ和簽名所需要的時間是否符合現(xiàn)實要求,通常在幾秒內完成認證為可接受的。實驗所用計算機為奔騰2.4 GHz雙核CPU,1 GB內存,Window XP操作系統(tǒng),軟件平臺為Matlab7.0。語音樣本取自在CADCC (Chinese Annotated Dialogue and Conversation Corpus)、RASC863(863 Annotated 4 Regional Accent Speech Corpus)以 及CMSC (Continous Mandarin Speech Corpus)3 個語音數(shù)據(jù)庫,共選用100個樣本。其中50個為訓練樣本,另外50個為測試樣本;每個樣本的長度都為5 s~6 s。數(shù)據(jù)存儲格式都為16 kS/s采樣,16 bit,單聲道,WAV格式存儲。梅爾倒譜系數(shù) MFCC(Mel-Frequency Cepstrum Coefficients)特征階數(shù)為16階,每一幀的長度為30 ms,幀移為10 ms。實驗采用時間動態(tài)規(guī)整DTW (Dynamic Time Warping)算法。素數(shù)采用randprime()函數(shù)產(chǎn)生,該函數(shù)可以隨機產(chǎn)生1到某給定大數(shù)之間的素數(shù)。采用rsatest()函數(shù)生成密鑰和簽名。
如上所述,在邏輯關系上本文所提方案加入數(shù)字簽名前后的識別率是相等的,滿足了有效性要求。實驗所驗證的是方案所需時間,整個認證所需要的時間包括采用DTW算法判斷特征之間距離的時間和簽名算法的驗證時間。特征間距離判斷采用50個訓練樣本與50個測試樣本兩兩比較,以最小距離為認證結果的方式計算認證的總時間。實驗結果為距離判斷的總時間為166 s。50個簽名驗證所用時間為152 s。因此,整個系統(tǒng)完成50次認證所需要的時間為(166+152)s,即 318 s。平均到每次認證所需要的時間為6.36 s。這就說明在上述實驗環(huán)境下的認證速度可以滿足用戶的需求,一般情況下,實際當中的認證服務器配置比實驗所用機器的高。因此,本文所提方案在時間上也是滿足現(xiàn)實要求。
本文通過用戶名與特征不關聯(lián)的方法解決了聲紋認證系統(tǒng)中的特征傳輸和存儲安全問題。由于敵手無法獲得用戶與特征的對應關系,因而該方法是安全的。邏輯分析和實驗驗證了方法的有效性,該方法在理論上提供了一種解決特征保護問題的新思路,在現(xiàn)實中也能與現(xiàn)有認證系統(tǒng)融合。
[1]JAIN A K, NANDAKUMAR K, NAGAR A.Biometric template security[J].EURASIP Jounmal on Advances in Signal Processing, Special Issucial on Biometrics.2008,2008(1):1-20.
[2]徐文華,賀前華,李韜.基于MRP的可撤銷模板設計及其分析[J].電子學報,2009,37(12):2792-2795.
[3]ULUDAG U, PANKANTI S, JAIN A K.Fingerprint template protection using fuzzy vault[C].ICCAS 2007,Portsmouth, UK:.Springer, LNCS 4707, Part III, 2007:1141-1151.
[4]XU W H,HE Q H,LI Y X,et al.Cancelable voiceprint templates based on knowledge signatures[C].ISECS 2008,Guangzhou, China: IEEE, 2008: 412-415.
[5]BRINGER J, CHABANNE H, POINTCHEVAL D, et al.Extended private information retrieval and its application in biometrics authentication[C].LNCS, 2007,175-193.
[6]王小云,馮登國,于秀源.HAVAL-128的碰撞攻擊[J].中國科學(E 輯),2005,35(4):405-416.