前不久,全球生物特征數(shù)據(jù)大范圍泄露,涉及到83個國家以及2700多個公司與機構,導致許多國家的公司安全信譽岌岌可危。生物特征(指紋、虹膜
前不久,全球生物特征數(shù)據(jù)大范圍泄露,涉及到83個國家以及2700多個公司與機構,導致許多國家的公司安全信譽岌岌可危。
生物特征(指紋、虹膜、人臉)作為識別個人身份的一種方式,帶來了極大的方便。一方面生物特征對于個人是唯一的,另外一方面?zhèn)€人生物特征便于使用。不像口令與密碼還需要記憶。
然而,這是一把雙刃劍。生物特征一旦丟失將會帶來無法挽回的損失。它不像口令和密碼可以隨時更改。就像這次大規(guī)模生物特征泄露事件,遭泄露的個人很可能將來無法再使用其生物特征作為認證方式。對其個人將來的生活帶來極大的影響。
導致生物特征數(shù)據(jù)泄露的一個根本原因是沒有保護好存儲在數(shù)據(jù)庫的中的生物特征模板。
寧波格密鏈網(wǎng)絡科技有限公司一直致力于全同態(tài)加密的應用研究。早在幾年前,陳智罡博士團隊就意識到生物特征的弱點,開始研究如何在密態(tài)下構建生物特征認證系統(tǒng)。
基于全同態(tài)加密技術,陳智罡博士團隊相繼開發(fā)出指紋密文認證系統(tǒng)、虹膜密文認證系統(tǒng),人臉安全識別系統(tǒng)。得到了業(yè)界廣泛認可與關注,目前正在開展產(chǎn)業(yè)化階段。
1. 問題的提出與解決
全同態(tài)加密能夠在不解密的情況下,對密文進行任意計算。如果生物特征數(shù)據(jù)從存儲到認證過程都是在密態(tài)下完成,即使生物特征數(shù)據(jù)丟失了,也不會對系統(tǒng)有任何影響。因為生物特征在系統(tǒng)中是加密的,敵手在無法獲得密鑰的情況下,將無法獲得生物特征的明文數(shù)據(jù)。
這一場景非常適合全同態(tài)加密領域的應用。陳智罡博士團隊就此展開了研究。
難點一
看似很容易,只要將虹膜或者指紋數(shù)據(jù)通過全同態(tài)加密就可以了。但是在構建整個系統(tǒng)中,陳博士團隊發(fā)現(xiàn)一個問題,生物特征數(shù)據(jù)加密后發(fā)送給服務端進行虹膜(或者指紋)比對,盡管特征比對本質(zhì)上是一個海明距離的計算,但是計算后是一個密文,服務器無從知曉比對的結果,也就無法給出通過(或是不通過)的判斷。
如果將密文比對的結果發(fā)送給用戶端,用戶端再返還給服務端,敵手可能會篡改比對結果,或者發(fā)起中間人攻擊。
為此我們構建了一個協(xié)議,引入一次MAC認證方法。
消息驗證碼(MAC)一般是利用可攜帶密鑰的hash函數(shù)來檢驗傳輸數(shù)據(jù)的完整性。常用的hash函數(shù)有MD5、SHA-2和SHA-3等。我們的虹膜(指紋)特征密文的存儲可以使用上述方法將密文進行壓縮,然后數(shù)據(jù)庫只需存放密文壓縮后的摘要。
但是,我們考慮到最安全的方式是采用云端認證策略,即云服務器對密文同態(tài)操作后的結果進行認證,而解密操作只能由用戶完成。因此,采用hash函數(shù)并不能滿足設計的需要,所以我們設計了一種一次性MAC(OTM)認證方式,即MAC方案中的消息密鑰算法生成的密鑰只能使用一次,同時用戶對密文解密后,云服務器可以對解密結果進行認證。
難點二
虹膜或指紋的識別方法是采用海明距離計算來對編碼后的特征模板進行比對。它是通過統(tǒng)計兩個模板上對應編碼不同的個數(shù)作為這兩個模板之間的距離。距離越小,表明兩模板越匹配。
本質(zhì)上計算海明距離是求兩個向量異或的總和。如果虹膜(或指紋)初始模板是長度為n的二進制向量,則計算兩個虹膜特征模板間的海明距離至少需要n次乘法。然而,全同態(tài)加密的密文乘法是其主要瓶頸。如果模板長度為2048,則需要進行2048次密文乘法。顯然,對于實際應用這是不可接受的。
為此,團隊采用了密文打包的方法,即將生物特征模板打包到一個密文中。因此,對該打包密文進行一次乘法,相當于原來的2048次乘法。這種并行的思路極大的提高了效率。使之從不可能到可能。
難點三
上面說過,計算海明距離相當于求兩個向量異或的總和。
由于采用了密文打包的方法,導致對密文無法求和。為了求和,采用了自同態(tài)計算,對密文中的明文位進行旋轉。這樣每次加法后,對密文旋轉一次,一共需要旋轉2013次才能求得最終的結果。這也是影響效率的主要因素。
為此,團隊對算法優(yōu)化,才用了類似于二分法的方法,將加法約減到了log2013次。極大的提高了效率。
除了上述難點外,團隊還在工程化的優(yōu)化方面做出了很多嘗試。例如:將模板分段并行處理,用戶身份與生物特征模板哈?;4?,注冊模塊的安全防護等。
2. 系統(tǒng)架構
系統(tǒng)主要是對驗證服務器進行設計,采用一對一的方式來驗證每個用戶。整個系統(tǒng)由兩個參與者組成,即用戶和認證服務器。用戶U具有從他的虹膜特征中提取的二進制特征模板。服務器S具有豐富的計算資源和存儲空間;因此它可以完成同態(tài)密文的任意函數(shù)計算,但不能解密自己生成的密文以及用戶給出的密文。
系統(tǒng)整體采用C/S架構,客戶端的主要功能是為用戶提供注冊和認證服務,而云服務器端則提供同態(tài)運算和認證服務。
系統(tǒng)的整體功能分為三個模塊,首先是登錄模塊,當用戶輸入已經(jīng)注冊的基本信息后即可進入到認證界面,否則需要點擊注冊鏈接進入注冊界面。其次是注冊模塊,它的主要功能有生成公鑰和密鑰、保存密鑰到移動存儲器中以及加密虹膜信息并將之與用戶基本信息一同存放到數(shù)據(jù)庫中;最后是認證模塊,它的功能是加密當前虹膜信息并將之發(fā)送到服務器端,服務器端完成虹膜認證后,客戶端通過密鑰解密認證結果并提示用戶。
3. 系統(tǒng)實現(xiàn)與效率
本系統(tǒng)是使用C#編程語言在Windows10上開發(fā)的,系統(tǒng)采用B/S架構。
為了加密一個2048位的二進制向量,多項式次數(shù)必須取n≥2048。但是當參數(shù)n過大時,密文計算時間過長,系統(tǒng)效率極低。于是我們將2048位的二進制向量分段進行研究,下表給出了在不同段數(shù)時,完成密文海明距離計算下的log2 q的最小值。
數(shù)據(jù)結果顯示,分段后的密文模q降低的幅度不大,因此分段并不能明顯提高系統(tǒng)的效率。
系統(tǒng)測試處理器為Intel Core i5-6200U,在128位安全等級下,認證過程大概需要100毫秒,系統(tǒng)在圖形界面載入和通信部分用時最長,因此整個生物特征密文認證系統(tǒng)的效率是非常不錯的。該系統(tǒng)設計在2017年已經(jīng)申請專利。(致遠博士)
關鍵詞: 生物特征數(shù)據(jù)大 泄露 國家