作者:小灰灰@百度安全實驗室
如今越來越多的智能設備都采用了各種各樣的生物特征識別技術,例如指紋、虹膜、人臉等。在大家心中,這些生物識別都是安全性極高,不會有風險的。但是我們深入研究后發現,其實這些生物特征識別技術都存在傳感器容易被欺騙的安全問題。同時在今年的10月24日舉行的Geekpwn破解大賽上,我也向大家展示了常見生物特征識別的破解show。由于現場電源干擾的原因導致指紋采集噪點過多,指紋破解show存在些小的問題沒有成功展示。應安全界朋友邀請,特以本文對手機指紋的安全問題做深入剖析。
為了更清晰的給大家展示指紋識別使用過程中的安全風險,同時也是希望各個手機廠商增強對指紋識別傳感器的安全性重視,百度安全實驗室對常見手機型號進行了大量測試,編寫并發布了這個智能設備指紋安全調研報告,包含指紋識別的原理、攻擊方法、測試統計等。測試結果非常令人憂慮,所有測試品牌和指紋芯片都沒有承受我們的5-5攻擊(制作過程不超過5分鐘,耗材不超過5角錢)。我們呼吁手機廠商以及指紋芯片廠商重視這個威脅,保持對持續對抗的技術投入,并且在重要場合使用復合認證技術,不要采用單一指紋認證做大額轉賬等高敏感操作授權。
同時我們也需要指出,實現手機上的假指紋攻擊需要攻擊者拿到對方手機這個前提,而對于大部分國內用戶而言,這個風險并不大。指紋解鎖和指紋支付目前已經十分流行,在網絡環境下也比Pin Code/Password等傳統手段更安全。我們不希望普通用戶因為這個安全問題產生對指紋識別驗證的恐慌。同時我們也提醒帶有指紋識別功能的手機用戶:請妥善保管自己的手機,防止他人輕易拿到。只要壞人拿不到手機,指紋復制攻擊也是無法實施的;而手機一旦落到壞人手中,指紋復制攻擊將可能是他們最好的突破口。
1 指紋圖像提取原理
現階段,任何一種生物特征識別,都是通過傳感器把生物特征投影成像為數字信號,指紋也不例外。具體來說分為指紋圖像提取、預處理、特征提取、比對等步驟。
根據指紋圖像提取技術的不同,現階段主要分為光學指紋識別模塊、半導體(電容)指紋識別模塊兩大類。我們希望通過對這些指紋圖像提取模塊工作原理的介紹,讓大家對硬件傳感器層面有更直觀更深入的了解,同時便于對后續攻擊方法的整體理解。
1.1 光學指紋識別
因為這個技術應用的最早,現在依然有很多門禁、打卡機等等在使用這種技術。技術原理是利用光的折射和反射。優點是造價低、可靠性高。不過由于光學本身的特點,所以想要集成到小模塊當中,應用到手機上是個難點。另外光學指紋識別之前有一個麻煩的地方,就是如果手上有油污或者汗水,識別效果就會大幅度降低。
當光源在全反射角以上,就是光源側著照進去時,光線會側著反射出去,在反射光的角度用鏡頭拍攝,就能拍到很亮的背景。如果指紋在棱鏡表面光源照亮的區域接觸,那么指紋凸出的部分(脊線)和棱鏡接觸,凹下的部分(谷線)不會接觸,接觸部分因為全反射效應會有一個受抑制的情形(光線從脊線接觸的地方透射出去了),反射光的對應區域會變弱,這時候CMOS傳感器會收到一個脊線暗、谷線亮的圖像,原理圖如圖2所示:
而當光源在全反射角以下時,光線從正下方射入,這時候光線不會從棱鏡上透射出去,但是手指與棱鏡接觸的區域,光線會發生所有角度的散射,這時候就會出現凸出的脊線部分為亮(看起來就像是接觸到玻璃的脊線把光都導走了并且亮了),谷線為暗(沒有接觸的部分CMOS看到的是黑色底板反射的黑像),這樣就可以形成指紋圖像,例如我手中的光學指紋模塊就是這種,工作時成像如圖3所示。當沒有手指放入的時候,由于CMOS只看到了反射的黑底板,會呈現全黑的圖像,光路圖如圖4所示。
圖6左邊是這款FPC 1042光學指紋識別模塊采集到的圖像,其他光學型號類似,特點是圖像分辨率較低、間斷點較多、受手濕等影響較大。例如圖6右邊是在手上有水的情況下的指紋成像。
1.2 電容指紋識別
電容式指紋識別要比光學式的復雜許多,其原理是將壓力感測、電容感測等感測器整合于一塊芯片中,當指紋按壓芯片表面時,會感應放出瞬間電壓導向手指(我們會發現各種電容傳感器周圍都會有一圈金屬圈,為的就是把電荷導向手指),這時硅傳感器成為電容的一個極板,手指則是另一極板,每一個像素的電容感測器會根據指紋波峰與波谷距傳感器距離的不同而產生相應的電荷差,最終所有像素的感測器形成8bit的灰度圖像,原理圖如圖7所示。
這里以國內常見的FPC1020電容指紋傳感器為例,給大家介紹下結構。
我們可以發現,采集部分結構比較簡單,由一個比5角硬幣還小的傳感器便完成了采集任務,相比于光學傳感器體積小、集成度高。所以這種傳感器廣泛應用于手機、便攜設備等地方。(例如早期指紋手機H廠商的M系列就是直接采用的這片FPC1020傳感器,國內很多高級門鎖、保險箱也是采用的這款)
圖9是這款電容指紋識別模塊采集到的圖像:
從圖像中我們可以明顯感覺到采集精度、抗干擾等相比光學指紋傳感器都有了明顯提高,同時采集速度也快了很多。
這些指紋模塊一般都支持二次開發(傳感器+主控芯片),具有指紋圖像采集、指紋比對的功能,既可以使用內置算法對獲取圖像進行特征匹配給出結果,又可以支持圖片下載到用戶端進行其他算法的匹配、公民指紋圖像采集等。我們主要是用了其中的圖片下載功能對指紋進行復制、研究。而手機中、我們平常見到的指紋鎖等,不會存儲用戶的指紋圖像,僅會存儲幾組指紋的特征數。
2 指紋識別匹配算法
最基礎的指紋圖像已經獲取到,有的同學可能會認為指紋的匹配就是用傳感器現在獲取到的指紋圖像與最初存儲的圖像做比對。實際上考慮傳輸&存儲成本、效率等問題,指紋的識別匹配算法是通過對傳感器獲取到的指紋圖像進行迅速提取特征,對特征進行比對實現的。
整體的特征提取需要如下步驟:圖像預處理、指紋圖像增強、二值化、細化、提取特征點等。其中指紋圖像增強方面最為重要,眾多學者做了大量研究工作。
由于網上關于指紋識別算法信息很少,沒有較為完整的實現,部分實現方法也千奇百怪(甚至有通過圖片相似度實現,效果大打折扣)。我們通過分析實際使用的指紋系統并查閱大量論文,給大家整理下一般的指紋識別算法流程,并通過代碼實現,希望通過這些具體的步驟,讓大家更直觀的理解指紋識別軟件層面的處理、識別方法。
2.1 預處理
我們以上面通過電容傳感器得到的指紋為例,這張圖片的主要問題有:
首先進行圖像預處理,主要是規格化和圖像分割。規格化是把不同原圖像的平均灰度和對比度調整到一個固定的級別,為后續處理提供一個較為統一的圖像規格,以減少不同指紋圖像之間的差異。圖像分割是把指紋前景區與背景區分開。指紋圖像的前景區是由脊線和谷線交替組成的,其灰度統計特性中局部灰度方差比較大,而指紋圖像的背景區,這一值是很小的。基于這一特性,可以利用圖像的局部方差對指紋圖像進行分割,去除無用圖像部分。
圖12是通過局部方差獲取到的圖像分割邊界,后續處理都是在這個邊界里進行:
2.2 圖像增強
這里首先介紹下指紋的圖像增強處理。我們通過圖6以及圖9可以知道,通過傳感器采集到的指紋紋理并不是十分清晰,而且經常會伴有中斷、粗細不均等現象。為了“修復”這些瑕疵,讓指紋特征更好的體現出來(例如讓紋理看起來更平滑、統一),引入了這種處理方法,利用相關的算法完成修復增強效果。
首先我們來求一下方向場和頻率。方向圖是指紋圖像中脊的走向所構成的點陣,是指紋圖像的一種變換表示方法,它包含了指紋形狀和特征點的重要信息。這些信息為后續的去除指紋干擾&噪點濾波,提供了每個塊的重要的方向、頻率信息,作為一個重要的參數傳遞給下一步的方向濾波。
Lin Hong等人提出了一種利用梯度算子求取方向圖的方法。通過這種算法,得到上面指紋的方向場圖像,同時存儲方向場數組(大家仔細觀察,每個塊的方向跟對應位置的指紋紋理走向是一致的),如圖13所示。
下面我們來引入對指紋紋路的濾波優化。一般一幅指紋圖像是脊線和谷線組成的線條狀圖像 ,因此其灰度直方圖應表現明顯的雙峰性質 , 但是由于指紋采集時受到各種噪聲的影響(采集設備污染、手指干燥&脫皮等),使得實際得到的灰度直方圖往往并不呈現雙峰性質,并且伴有中斷、紋路深淺、粗細不均等(可參見圖6的情況)。因此一般的基于灰度像素處理的圖像增強方法如色階調整、直方圖校正、對比度增強、銳化等很難取得明顯的效果(大家可以把這些圖像放到PS里各種處理,發現不管怎么處理,不均勻的粗細、中斷等都無法解決)。
為了解決這些問題,我們嘗試使用Gabor 濾波對指紋圖像進行處理。對于指紋圖像, 局部區域的紋線分布具有較穩定的方向和頻率,根據這些方向和頻率數值,如果嘗試設計出相應的帶通濾波器就能有效地在局部區域對指紋進行修正和濾波。由于Gabor濾波器可以同時在時域和頻域上獲得最佳的分辨率,具有良好的帶通性和方向選擇性,可以采用Gabor 濾波器來實現指紋圖像的增強。經過濾波器的增強,指紋圖像會變得粗細均勻、平滑、修補間斷點等。
圖15即為Gabor濾波器的一般形式,其中Φ表示濾波器的方向,f 表示 脊線形成的正弦波頻率,δx 和δy 為沿 X 軸和 Y 軸的空間常量,x、y為每個像素的位置。結合之前得到的每個塊的方向場數組,同時這里設定頻率為常數(很多研究表明,指紋頻率在一定范圍內不影響整體濾波效果),帶入處理結果如下:
通過結果可以看到,指紋圖像經過Gabor 濾波后變得十分平滑均勻,這為后續的特征點確定打下基礎。
2.3 二值化及細化
指紋圖像二值化的目的是把灰度指紋圖像變成 0、1 的二值圖像 , 使指紋的紋線信息更加清晰簡潔。二值化方法較為簡單,主要是根據一個閾值進行像素去留判斷,這里就省略。由于指紋圖像二值化以后 , 紋線仍具有一定的寬度 , 為了進一步壓縮數據 , 簡化、統一特征提取的計算, 需對指紋圖像進行細化處理。這里使用基于領域的判斷算法,決定某個象素該移去還是保留。如圖17既是細化后的指紋圖像。
2.4 特征點提取
最后就是對細化后的指紋圖像取特征點了。提取原則是根據細化后的圖像,提取分叉、交匯、末端、單獨點作為特征點,同時在一定距離范圍內減少過多特征點、刪去邊界特征點。我們來看下最終提取結果:
可見紅框中既為指紋的特征點,其中標注出的關鍵點均是指紋紋路的末端、交匯等。最終把特征點存儲在只有指紋模塊才能訪問的存儲器中。當下一次指紋進行比對時,用同樣方式提取特征點,并把特征點數組進行逐個對比。結合手指的一些蠕變變形誤差、傳感器誤差等,當匹配誤差小于一定閾值(例如使用排序算法,逐個匹配特征點,存在一個點與鄰點的關系和原始特征相比,距離誤差小于5%,位置角度誤差小于10度),可認為是同一個手指,比對通過。
我們來總結下傳統的指紋比對識別過程。指紋紋路對于每個人來說都是唯一不變的,利用這個特征我們可以用來進行身份驗證。但是由于指紋圖像受傳感器污染、按壓力度大小、脫皮、干燥等影響,初始圖像并沒有很直觀、統一的特征,同時存在很多噪點、干擾,需要對其進行進一步歸一化、濾波處理。處理后便可進行指紋特征的提取,以便特征存儲或比對。
但是由于小型化、易用性的需求,現在的指紋識別傳感器在手機上已經做的非常小了,需要在更小的空間上對指紋特征進行識別提取,相應的傳感器單位面積分辨率也會大大提高,軟件識別算法也有些變化。篇幅原因,這里不做展開。
3 假指紋的攻擊實現
通過上面對原理的介紹,我們可以了解到,手機等設備通過指紋特征進行特征提取、身份驗證。這里面就會存在一個真假指紋的問題,而我們的攻擊目標便是:如何制作出一個假指紋并像真指紋一樣通過驗證。
通過大量分析研究,我們提出了如下兩個攻擊思路:
- 通過指紋采集的方式獲取原始指紋圖像,進而制造一個假體指紋,可以通過認證
- 通過文件讀取等獲取到指紋特征文件,根據指紋特征制造一個假體指紋,可以通過認證
由于指紋特征一般情況下都采用了安全存儲,平常較難獲取到,我們這篇文章主要研究下思路1,具體概括如下:
我們首先通過指紋膜的制作,證明假指紋制作的可行性以及活體檢測的普遍缺失。然后尋找出獲取到一個人的指紋紋路圖像的有效方法。最后通過指紋膜中一些原理的啟發,結合剛剛得到的指紋紋路圖像,制作出可以騙過傳感器的假指紋。
我們希望通過這些探究和實際測試,可以給大家直觀的展示指紋識別所存在的安全風險,展示一些簡單又有效的指紋采集方式,讓模塊生產商、廠商、用戶對這些攻擊方法予以重視,并加以防范改進。
3.1 重現007中的指紋膜
通過一些影視劇作品,我們可以發現假體指紋的制造在很多年以前就已經存在了(1971年的007電影首次出現指紋膜),現在主要在考勤機代打卡、駕校代簽到等場景中有使用。通過萬能的X寶(由老司機指點,較為隱蔽),我們購買到了指紋膜制作套件。套件根據賣家詢問:按手指時機器是否發光,會推薦光學或者電容型。我們兩種都購買了,來研究其制作過程。
制作說明(參見圖19):
- 滴幾滴蠟燭到紙上,沒干透的時候把指紋印按上;
- 另取1毫升膠,3滴左右固化劑,攪拌均勻,將攪拌好的膠轉移到剛才印的指紋印中間,該上個塑料袋,從中間往兩邊抹平;
- 等一個小時后,揭下指紋印,大功告成。
跟著步驟做了個模型,興沖沖的測試了多個手機(包括幾款最新型號)、模塊(包括光學模塊),發現均可以順利解鎖。同時經過儀器測試,材料中包含導電硅粉,具有導電性(參見圖20),結合之前的成像原理,我們可以總結出如下結論:
- 不論是光學或者電容傳感器,根據前面提到的成像原理,成像都需要制造出指紋的凹凸
- 各個系統所謂的活體識別(稍后介紹各產品在這方面的描述)貌似并沒有奏效的,所測試十余款設備均可解鎖
- 如果可以做出具有凹凸、任意成型紋路的假指紋,便可直接騙過光學傳感器
- 如果在這個基礎上再實現導電特性,便會直接騙過電容傳感器
總結一下就是:通過測試發現,現階段設備對假指紋的鑒別非常有限,只要復制出指紋的紋路并且具有導電特性即可。
同時,通過制作自己的假指紋我們已經成功實現了解鎖手機等通過驗證。但是這種制作實際上是沒有安全風險/攻擊場景的!我們在制作的過程中,需要把手指放到蠟燭等上面去定型制作指紋模具,然后再用其他成型材料去倒模,最終得到指紋假體。試想:誰會讓你去拿著你的手指去按壓、定型呢?這只能是一種自己制作自己假指紋的行為,以此來指紋打卡簽到等。
所以,我們把攻擊目標確定為:獲取并仿制出別人的指紋紋路,以此來騙過傳感器通過驗證。不過首先需要解決第一個問題:如何獲取到別人的指紋紋路信息?
3.2 第一步:指紋圖像獲取
經大量測試,有以下幾種有效途徑均可順利取到有效指紋(這些方法都可以通過簡單的手機相機實現,不需要電影里那些玄乎的技術):
直接獲取:
- 帶有指紋的高清晰照片(例如領導人揮手示意時)
- 合同、按手印活動等上面的指紋圖像
- 通過模具成型獲取到的指紋(例如明星在星光大道留下的掌印,有時精度較低)
間接獲取:
- 獲取手機、玻璃杯、指紋模塊等上面留下的指紋痕跡
- 用電容指紋傳感器經過偽裝成按鈕、特制的門把手等得到的指紋
下面舉例說明。
1.合同中指紋獲取:
使用手機拍帶有指紋印的合同等,即可提取可用的指紋紋路信息,便于后續假指紋制作等。
如下是用手機拍攝的這枚指紋進行預處理、圖像增強、細化后的結果:
總之,只要是提取到了指紋紋路圖像,就可以對圖像進行進一步優化處理了。由于后續步驟一樣,以下只展示提取原始指紋灰度圖像部分。
2.相機拍攝的圖片中指紋獲取:
3.手機后殼上的指紋獲取(可以清晰的看到,換一種角度/一種光照,這些指紋就可以變得很明顯了)
順便說一句,其實指紋圖像獲取會有很多方法、擴展。例如我也是個攝影愛好者,曾經成功的用佳能70-200鏡頭獲取到了10米外的筆記本電腦屏幕上的指紋,也算是一種遠程打擊了吧。
同時,這里必須指出,指紋圖像的獲取是在破解指紋驗證中至關重要的一環,可以說只要獲取到了指紋圖像,就成功了一大半了。因為圖像里面已經包含了指紋的全部原始信息,后面要做的無非就是拿著圖像或者圖像對應的特征,讓傳感器正常感應/感光,同時繞過各種活體檢測攔路虎,完成對傳感器的欺騙。
3.3 第二步:假指紋的制作
我們已經成功獲取到目標的指紋圖像了,那如何重制出高精度的假指紋呢?我們測試了包括高精度3D打印、針式打印機成型、導電墨水打印機多層打印、激光雕刻等多種技術方案,這些方案有個共同的特點:由機械進行傳動成像成型。由于機械部件之間往復運動會存在一定的曠量,位置傳感器、電機通常也有一定的誤差,最終導致分辨率有限,現有這些設備均無法滿足指紋細小紋路的精度要求,成型模型細看上去會呈一定程度的非線性(當然,我們猜測幾十萬+的工業級設備例如超高精度3D打印可以完成這個工作,但是成本太大)。
既然這些激光頭、打印頭無法滿足精度需求,我們又把目光放到了腐蝕成像這種不依靠機械,而是依靠光學or化學進行成型的方案,例如光敏成型、化學腐蝕成型。這種方案的特點是:只要原像清晰,由于是對原像進行投影成像,最終成像會無限接近原像,肉眼一般無法分辨。考慮到精度、成本、速度等因素,最終選用了一種光敏成型方案,靈感來自于光敏刻章方法,下面簡單介紹下這種技術。
光敏印章是上個世紀九十年代初由日本發明的,它使用了一種超微泡材料完成成型,其表面的微孔孔徑非常小。這種材料在受到強光照射的時候,見光部分會瞬間吸收大量的光能,溫度迅速上升并達到熔點,使材料表面發生光氧化及熱交聯作用,最終效果是迅速收縮塌陷,而不受光射部分保持之前的狀態。
根據光敏材料的這種特性,人們在材料表面覆蓋了一張用黑白激光打印機打印出的印章圖像(最好使用硫酸紙這種透明紙),在受到強光照射時,白色透光部分就會收縮塌陷,而黑色部分保持原平面高度,最終形成一個具有凹凸不平表面的印章圖像,速度和精度比原始的刻章快了好多。
受到光敏印章的啟發和指紋識別的成像原理(光學和電容指紋,都需要有凹凸不平的表面),我們想到如果把打印的印章圖像換成指紋紋路圖像,是不是也可以成型出凹凸不平的指紋紋路呢?經過大量測試發現,只要調整指紋紋路的粗細和強光的功率,完全可以滿足假指紋制作的精度要求。
我們以圖21中的指紋圖像作為樣本,嘗試制作指紋印章。具體的細節出于安全目的本文就不詳述了。我們可以看到,使用這種方法生成的指紋印章如果再沾上些印泥,印出來的指紋圖像可以和實際用手指印生成的指紋圖像相比十分相似,甚至很難做區分,存在很高的合同欺詐等風險。如圖28所示(如果不告訴大家,大家會發現左邊的那個指紋是用印章印出來的嗎?)
指紋印章的測試證明了光敏方法可以生成精度較好的指紋模型,可以得到了和原指紋紋理一樣的具有凹凸不平的假指紋模型。
這種方案的優點如下:
- 成型快,瞬間成型(小于一秒),優于紫外線腐蝕照射等長時間等待
- 精度高,完全滿足指紋識別需求
- 成本低(耗材一次成本不超過5角,輔助設備生活中常見:激光打印機、普通閃光燈、透明紙、玻璃板)
經測試,制作出來的假指紋可以順利解鎖智能門鎖、考勤、門禁等光學指紋模塊,但對電容指紋模塊似乎沒有效果。回想之前我們通過滴蠟模具做的假指紋,是可以通過電容模塊的,同時具備導電的特性。所以我們光敏成型的假指紋如果需要通過電容模塊,必須具備導電性,也就是需要在凹凸不平的整個表面覆蓋一層導電材料,同時不影響本身紋理。這種材料可能是一種粉末、或是液體狀的。
我們首先想到的是鉛筆粉,容易獲取到同時具有導電特性。經測試,如我們所料,在抹上一層均勻的鉛筆粉末后,假指紋模型可以順利的通過驗證。但是這種方法的成功率較低(與無法均勻覆蓋有關),同時發現測試兩次以后,由于粉末掉落,導致失去導電性。但是這種方式證明了我們的方向是正確的,后續又測試了幾種材料,最終發現一種導電液體可以很好的在表層形成均勻的導電膜,而且晾干后會一直覆蓋在表面不易脫落。其成本也很低廉。
4 假指紋問題受影響統計
至此,我們完成了在已有目標指紋圖像的前提下,順利的解鎖了目標設備(包括光學、電容傳感器)。為了證明指紋生物特征安全風險的嚴重性、廣泛性,我們做了一系列測試和統計,統計結果顯示市面主流的指紋識別方案均受假指紋問題的影響。我們希望通過對主流手機假指紋風險進行測試,并基于這些較為全面的測試結果,讓傳感器生產商、手機廠商直觀的看到這種安全風險廣泛的受影響面,以及當前每種識別方案存在的具體問題。
如下是統計詳情:
4.1 手機常見指紋識別方案
我們對常見的手機指紋識別方案進行了調研,發現市面上主要有:
- AuthenTec方案(蘋果已經收購該公司,主要提供給I系列手機使用)
- FPC方案(主流方案,早期Android手機大量采用,當前出貨量級依然top2)
- 匯頂方案(匯頂科技是近來新起之秀,國內多款暢銷、旗艦手機均有使用)

4.2 假指紋問題統計結果
我們針對每一種方案,均挑選了幾款代表機型進行測試驗證。得益于兄弟團隊移動安全部門的設備支持,所測試手機基本覆蓋了國內能買到的各家旗艦/最新款。
統計目標:測試統計各手機廠商旗艦型號、廣泛使用型號手機,使用假指紋能通過指紋驗證的情況。
步驟:
- 首先制備出目標手指(假定右手食指)的假指紋模型(這里我們直接選取傳感器間接獲取指紋圖像的方法),同時進行導電處理,待用
- 取各廠家型號手機,分別僅注冊錄入一枚固定手指作為屏幕解鎖認證。確認真實手指可以順利解鎖
- 分別測試在鎖屏狀態下,使用假指紋模型解鎖的情況

注:FPC是著名指紋設備和解決方案提供商FingerPrint Cards 公司的系列產品名稱,廣泛嵌入在各家Android手機的指紋解鎖模塊中。
演示視頻:
通過上面的測試統計結果,我們可以清晰的看到:市面上三個主流方案均受假指紋的影響,可以順利解鎖,而各家所謂的生物識別、活體識別等似乎都沒有奏效。
這里需要指出的是,雖然三個主流方案都受到影響,但是表現出的攻擊難易度、特點各不相同,其中我們花費了很多時間在匯頂的方案上,經過多次反復優化、測試才得以通過,安全性在三者中相對最高。詳情如下:
- FPC方案:對指紋大小比例較不敏感,對導電特性的要求不敏感,接受優化過的指紋圖像
- AuthenTec方案:對指紋大小比例很不敏感,對導電特性的要求敏感,接受優化過的指紋圖像
- 匯頂方案:似乎對我們的指紋優化不買賬,需要十分精確的對指紋紋路進行克隆,比例和導電性要求都很敏感,是我們測試的所有方案中攻破難度最大的一家。
5 脆弱性分析及攻擊場景
5.1 活體檢測貌似并不奏效
概念解讀
先來看一下活體檢測的官方解釋。2014年6月,國家知識產權局專利局王馨寧審查員發表了《生物特征識別中的“活體檢測”概念及分析》,作為專利審查工作中遵循的科技名詞定義規范。其中活體檢測概念定義為:“為了防止惡意者將偽造的他人生物特征用于身份認證,在生物特征識別過程中,針對待認證樣本的是否具有生命特征進行檢測的技術,稱為活體檢測。活體檢測是將具有生命特征的人的樣本,與仿制的人造樣本進行區分的過程,是欺騙檢測中的一種”。
實際情況
了解官方解釋和測試標準后,我們來看下當前指紋識別的活體檢測防范攻擊情況和我們的待測假體的攻擊級別。
首先介紹下指紋識別中各家常用的活體識別方案:
- 對于光學傳感器,一般都沒有任何活體檢測方案。少數會聲稱有如下方法:玻璃使用導電材料,主控檢測是否帶電(例如走廊的觸控感應電燈);檢測玻璃溫度。這里有個很奇怪的現象,主控檢測是否帶電主要是為了感應手指接觸,接觸時打開led光源,同時通知傳感器采集指紋。而這樣一種本身的功能需求實現竟然變成了一個活體檢測的方法。
- 同樣的現象也存在電容傳感器中。很多廠家會聲稱自家的模塊帶有手指導電性檢測,以此來判斷是否是真手指。但是根據前面的成像原理我們可以知道,電容傳感器電荷感應是建立在手指導電的基礎上的,是本身識別實現的要求,并不是一個加持檢測方法。
下面我們分別對手機上的這三種指紋方案活體檢測能力做下分析:
首先看下Apple的情況。網上關于IPhone 6系列手機的指紋模塊安全性資料顯示,touch ID很可能采用了更加先進的活體識別方式(有大量關于射頻真皮識別的新聞)。查閱相關專利,確實發現蘋果在這方面有所研究,例如蘋果公司的US 8180120 B2專利,使用固定角度的偏振光對手指進行照射,根據獲取到的手指中的氧合血紅蛋白和脫氧血紅蛋白、β-胡蘿卜素等等光譜情況來判斷真假手指。但是這種技術是否在TouchID中有使用呢?答案當然是沒有,否則我們的假指紋攻擊也不會通過。查閱了蘋果官網對TouchID的安全性介紹,我們可以發現,Touch ID仍然還是傳統單一的電容檢測技術,只是蘋果強調了它的精度是很高的。
再來看看指紋識別處于領軍地位的Fingerprints,以手機廠商1最新M系列上的FPC 1025為例,通過查閱Fingerprints公司對FPC 1025介紹,并沒有發現提及活體檢測方面的安全內容。
最后看下近來勢頭很猛的匯頂科技。其官網介紹文中有提到具有通過血液、心率信號檢測來識別假指紋的技術。但是在我們測試的使用匯頂方案手機廠商5的X系列和手機廠商6的M系列產品中,依然可以通過我們制作的假指紋通過驗證。可能這些手機并沒有采用帶這些高級活體檢測的傳感器,我們不得而知。
通過上面的分析,我們可以得出一個結論:現階段擁有指紋識別模塊的產品中,基本上沒有使用有效的活體檢測的技術去對抗攻擊。
5.2 極低的攻擊成本:5-5攻擊
我們一直認為,一切不切合實際的、超高成本的攻擊方法,都是耍流氓。舉個例子,最近IPhoneX很火,大家都在致力于破解FaceID。不少研究機構使用了高精度3D打印、高精度臉膜制作等方法,即使證明了可以破解,也很難在現實場景中產生危害。在一個安全漏洞的安全等級確定中,攻擊成本占很大一部分分值。只有當這個安全問題的攻擊成本很小,但是可以產生很大的危害時,才有可能影響到大部分人的利益,大家才會受到重視并且想辦法去解決。
我們順便再看下待測假體的攻擊級別定義。在由多家單位、企業共同起草的行業標準《安防生物特征活體檢測技術要求》的征求意見稿中,對待測假體類型劃分了輕度、中度和重度三個級別:
- 輕度攻擊性假體指以簡單的技術手段為工藝獲得的、具有低攻擊能力的假體
- 中度攻擊性假體是指以復雜的技術手段為工藝獲得的、具有一定攻擊能力的假體
- 重度攻擊性假體是指以非常復雜的技術手段為工藝手段制造的、具有極高攻擊能力、十分逼真的假體
根據這個級別劃分定義,結合我們之前假指紋制作中所使用方法,以及攻擊成本和達到的效果,我們的攻擊方式可以劃分到一個新級別: 以簡單的技術手段為工藝獲得的、具有很高攻擊能力的假體。
回到我們探討的指紋安全問題上,我們在前面的測試中已經實現了低成本的指紋圖像獲取和假指紋的制作,最終結果是可以順利通過各種指紋驗證。現在我們來總結下成本究竟有多低。

可見,最低成本只需要一部能拍照的手機、一個能用的打印機、一塊幾毛錢的光敏材料和一根鉛筆就夠了,一次性耗材不超過5角錢,制作時間不超過5分鐘,我們稱之為5-5攻擊。
5.3 其實你只剩一枚指紋
指紋、虹膜、人臉、靜脈這些生物特征,是人生下來就有的,并且具有不重復唯一性,可以用來很精準的對一個人進行識別判斷。在大家意識中,生物特征識別的安全性要高于傳統密碼的,同時生物特征又有驗證便捷的特點(相對于密碼輸入)。但是大家可能忽略了一點:這些生物特征數量少而且無法更改,一旦泄露就會存在安全風險,除非是剁手指、整容&毀容、扣眼珠,開個玩笑。而密碼,如果用了一個弱口令被猜出來了,你還可以換一個更復雜的。拿指紋舉例來說,一個人的指紋只有十枚,泄露了就再也無法挽回。更重要的一點,我們經常使用的手指,只有一或兩枚,我們做了一個20個人的小樣本統計,統計結果如下:(由于手機指紋識別有正面和背面兩種,分別對應拇指和食指,這里我們統一為拇指)

統計結果顯示:
- 沒有人用單一偏門手指進行解鎖的(例如無名指)
- 所有人都錄入了一枚右手拇指
通過數據來看,似乎只需要得到一枚被攻擊者的右拇指指紋,便可以進行假指紋制作完成解鎖手機,而不是之前的十個手指。也就是說,泄露機會從10次變成了一次,只要泄露一根拇指,指紋這個生物特征識別就和你拜拜了。而這個泄露,通常來說非常簡單,招一招手,或者拿一下杯子、手機,指紋已經泄露了。
6 總結與展望
綜合前文分析,我們可以得出:
- 由于大部分指紋模塊都缺少對活體的識別,這給假指紋攻擊帶來了極大的便利,無需進行各種防御手段繞過,降低了攻擊成本,同時提高了成功率
- 由于指紋識別的原理(指紋采集、驗證),我們找到了一套低成本的假指紋制作方案5-5攻擊,表明假指紋攻擊的威脅遠比大家普遍認識的更加嚴重
- 由于大部分用戶只使用少數的固定手指進行驗證,增大了指紋信息泄露的風險,即只需要少數手指的泄露,便可造成被攻擊者指紋驗證系統被破解。
通過上面的介紹,我們可以看出,看似便捷又安全的指紋識別驗證,其實很容易被仿制攻破。既然存在了安全風險,就需要解決方案。通常對于軟件層面的一些安全問題,都可以通過系統升級解決,對出問題的代碼進行打補丁,一定時間的收斂后,威脅會大大降低。而我們今天所展示的是硬件指紋識別模塊層面的安全問題,很多是由于硬件層面對安全考慮的不充分導致的,例如模塊本身并沒有設計足夠抵抗假指紋的活體檢測功能,也沒有相應的傳感器(例如真皮檢測傳感器)。這種硬件功能設計上的缺失,很難通過軟件更新去解決。
在此,我們呼吁指紋方案廠商、手機廠商增強指紋防攻擊方面的能力,讓每一個人可以安全、便捷的使用指紋識別。包括:指紋模塊制造商需要增強指紋模塊的活體檢測能力,例如對手指真皮進行檢測、對脈搏進行檢測,同時手機廠商應該優先采購這些安全性高的模塊;高安全需求的場合,采用多因素復合認證,同時建議多采用基于用戶行為習慣的識別、基于行為風控的判斷。
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/471/
暫無評論