iPhoneX人臉識別遭破解,手機上的刷臉解鎖、App的刷臉登錄功能是怎麼實現的?
刷臉解鎖,是目前人臉識別在手機和App中最熱門的應用。無論是iPhone X,還是安卓手機陣營,都已經將刷臉解鎖「裝」入了新款旗艦機中。
當然,除了解鎖手機更加多樣、酷炫,可能最令人擔心的,要算是「安全」與否的問題了。
在iPhone X刷臉解鎖推出後,就有各種各樣的段子傳出,比如睡覺時慘遭解鎖、整容後影響解鎖、或者雙胞胎可以互相解鎖等等。
但可以放心的是,目前無論是安卓陣營的2D刷臉,還是iPhone X上的3D刷臉,最基本的安全性都沒問題,都是金融級應用。
對於平面攻擊,比如照片、視頻或睡覺狀態,基本防禦都沒問題。
安卓手機方案:2D刷臉解鎖具體來說,iPhone X代表的3D刷臉解鎖,比安卓陣營使用的2D刷臉解鎖,安全等級更高一些。
我們先看安卓陣營使用的2D刷臉解鎖,其背後的主要技術供應室是曠視科技,沒錯,就是給支付寶提供刷臉支付的Face++。
2D刷臉解鎖,核心是提取人臉骨骼關鍵點,構建人臉模型,並在每次解鎖時,用實時人臉圖像與該模型進行對照。理論上來講,關鍵點越多,模型也就越精準。當前小米Note3、堅果Pro2的方案,人臉骨骼關鍵點達到了226個——基本達到了有用的骨骼點都用上了的水平,基本驗證機器看到的「你」是不是真的你,已經夠了。
剩下需要解決的問題就是如何驗證這個「你」是「真的」、「活的」你了,也就是活體判斷,在2D刷臉解鎖方案里,主要通過眨眼來解決。
所以通過翻拍照片、翻拍視頻(有眨眼但骨骼點模型對不上)、列印照片等方式盜用用戶設備。當然睡覺狀態下,沒有眨眼的動作,也是無法解鎖的。
那2D刷臉解鎖在哪些方面還不完美呢?比如極度暗光環境,或者需要正對手機,另外在頭套模型方面也比較容易攻破——就好像指紋識別防禦不了指紋套。
3D刷臉解鎖方案相比安卓陣營的2D刷臉解鎖方案,iPhone X的3D刷臉解鎖方案更安全一些,核心在於可以解決2D刷臉解鎖中的不足。
先看硬體結構的不同。2D刷臉解鎖,主要依靠前置攝像頭。而3D刷臉解鎖,專門增加了紅外發射感測器,在iPhone X的「留海」里,集成了好多感測器,有三萬個點識別面部,然後由神經網路進行建模。改變髮型、戴帽子、留鬍子、光線不同等都不影響識別。
在iPhone X上,通過前置感測器組,可以發出一種紅外面部探測光,能夠在數百毫秒內掃描識別用戶的面部,而且你並不需要完全正對著手機才能使用,即便在特殊角度也能工作,比如平放在桌上時一樣用。
通俗一點比喻,3D刷臉解鎖,是iPhone X主動掃描你的臉,而2D刷臉解鎖方案,則需要你的臉主動湊到手機攝像頭前。
那3D刷臉解鎖就完美無缺了嗎?也不是。3D刷臉解鎖雖然是目前安全等級最高的人臉識別方案,但對於強光條件、超級像的雙胞胎等都有可能失效。
另外,3D刷臉解鎖中需要的紅外線感測器,也是會不斷「折損」的,長則3年,短則2年,也就磨損得差不多了。
不過,也是時候要換新iPhone了。
我能不能把這個理解為母子兩個長得特別像,所以面部識別提取的一些特徵是相同的,所以解鎖了。這個就相當於哥哥弟弟兩個雙胞胎,然後弟弟能解開哥哥的手機一樣。老實說,我一直都不知道為什麼要開啟面部識別這個功能,我覺得這個功能特別的雞肋。尤其是applepay面部識別更奇葩,就我刷一下臉,都沒反應過來就錢就支付了,大夥現在真的有那麼急嗎?面部識別一來是沒有辦法根據個人的意志來判斷。例如旁邊有人,我收到消息,可能這個人不方便看到我的消息,結果我因為臉探了一下,被識別了這個消息就跳出來了,我都沒有時間去決定要不要讓對方看到我的消息。而且面部識別最大的雞肋是人五官不是獨一無二的,因為雙胞胎還有長得特別像的父子甚至兄弟姐妹,都可能能解鎖對方的手機。人的五官跟指紋不一樣,指紋是獨一無二的,但是人的五官會撞臉。我覺得面部識別應該不至於這麼簡單的應用。可能是想通過這個方式讓大家接受吧,但是我個人是非常反感面部識別的,我可能我對個人信息安全比較保護,總之我是不會用面部識別這個功能的。這個不算是面部識別的破解,我覺得就是母子兩個人長得太像了,然後面部識別通過了。例如,如果一個人使現在被綁架了。用它面部識別來轉賬根本就不需要從他嘴上套出什麼密碼之類的,直接照一下,我們就把這些密碼和安全系統都帶在了身上看似安全,其實一點也不安全。
先讓我們來看看手機上的刷臉解鎖、App的刷臉登錄功能的實現。Face ID在掃描臉部時,不會顯示任何進度條或相似度分數之類的提示,只會在匹配成功時顯示一個無聲的解鎖動畫,再者就是解鎖失敗的震動提示。
綜合iPhone X發布會上的描述、早期泄露的材料以及蘋果的相關專利,iPhone X所用的面部識別並非簡單的二維面部掃描。面部識別技術並不新鮮,在幾年前的筆記本電腦和手機上便有應用。三星Galaxy S8產品使用的便是平面掃描,這種驗證機制用一張機主照面就能矇混過關。相反,iPhone X的Face ID是將3萬個紅外電投射到人臉,然後使用紅外攝像頭讀取這些光點形成的網路,進而創建一個人臉的三維模型。
另外關於題主所提到的iPhoneX人臉識別遭破解,或許兩人長得太相似了。騙過了蘋果手機。但是也有人想通過嘗試用各種材料製作皮爾斯的面部模型,來騙過iPhoneX人臉識別。但是一般僅憑一個模型是不足以欺騙Face ID的。人臉識別使用「活動探測」來確保只在機主注視手機的情況下才解鎖,而不僅僅是攝像頭檢測到一個熟悉的臉龐。
安卓手機的人臉識別和iPhoneX的有什麼不同?我以華為作為案例,現有媒體稱榮耀用了結構光方案的面部識別,不是說蘋果Face ID領先友商一到兩年嗎,榮耀怎麼也用上了?所以小編趕緊去查了查,才發現原來榮耀發布的是一款攝像頭配件,號稱是全球首款「散斑結構光」手機配件。至於這項技術的來源,其實是光學公司舜宇科技研發的Jupiter X。
華為的散斑結構光聽起來很高大上,但實際上也很好理解,工作時相關器件會投影具備一定結構的光,比如亮滅相間的條紋光線,如果打到平面上,那麼反射回來會是原樣粗細的條紋;而如果打到不規則物體上,那麼反射回來就會時條紋就會發生變化,然後根據計算,就能得出物體的結構了。而榮耀這次發布的這個配件,使用的正是這種形式的結構光,外界將其稱之為「散斑結構光」。
而蘋果是「紅外線點陣」,從官方圖像資料上也不難看出,這個點陣中的紅外線點陣的密度和排列其實是有規律的,所以不出意外應該也是「散斑結構光」方案,這一方案的關鍵並不是「點」,而是「陣」。結構光其實並不是一定要用紅外光的,可見光甚至是彩色光都OK,這次Face ID使用紅外光綜合考慮到了使用環境、使用體驗、功耗、模組大小等一系列因素才決定使用紅外光,並且蘋果為了用上紅外光,也是付出了不少心血。
身為一個計算機專業科班出身的我,多年前的畢業設計就做的人臉識別,不過那時候的人臉識別是簡單的,一個像素一個像素的比較就可以了,現在人臉識別又被提出來自然是跟蘋果的影響力有關,但是還有一點就是卷積神經網路在計算機視覺領域的應用。其實刷臉解鎖和指紋解鎖都是提取生物特徵然後與之前存的面部或指紋特徵進行對比,如果相符就可以解鎖了,不相符就解鎖失敗。至於安全程度就看精度了,這與指紋是一樣的。
華為、小米、VIVO等廠商用的人臉識別是Face++的解決方案,原理上與蘋果的iPhone X刷臉解鎖一樣,但是安全級別上是不如蘋果的iPhone X刷臉解鎖的,主要是人臉的精確度上不如,2D和3D差別巨大。另外不是Android的面部識別與蘋果的面部識別有什麼差異,是蘋果的面部識別技術現在更加的領先,明年Android差不多也能實現iPhoneX的3D解鎖了。
面部解鎖的關鍵是特徵點
我在做畢業設計的時候,那時候的人臉識別很簡陋,就是拍個照片然後跟人臉一個像素一個像素的比較,這個實際使用中會有很多問題。現在的人臉識別不是這麼做的,機器對你這張臉的認識是由不同的特徵點構成的,就像下面這張圖一樣。如果只採樣兩三個特徵點,所有人可能都一樣,如果採取多個點,比如下圖這樣的,識別出一個人是沒問題的,但是能區分出多少人來呢?
不說雙胞胎,面部輪廓稍微像點的就區分不出來,周杰倫和大木老師估計也會被識別成一個人。
為了更精準的提高識別率和準確率就要採樣更多的點,OPPO R11s 的面部識別技術採集用戶的 128 個面部識別點,128個點描述一個人的面部特徵也基本夠了,區分這個人是周杰倫還是大木老師肯定是沒問題的。
現在的人臉識別的大體過程如下圖(圖片來源於Openface)所示,再具體的就要看paper了,還有一個更直接的方法就是去github上找Openface,這是一個開源的基於深度神經網路的人臉識別框架,還有dlib(也是開源的)。
我又在網路上找了一個更淺顯的人臉識別的圖,如下:
但是這還有一個問題,2D的面部識別是一個平面,雖然通過演算法可以區分出簡單的照片,但是還是有很多方法可以用照片來騙過去的,之前VIVO X20就被評測機構踢爆可以用照片解鎖,其實目前這些安卓的面部識別都有這個問題,包括三星。
安全沒有100%,只要代價大過收益就是相對安全的
iPhoneX的面部解鎖採用的3D結構光,增加了一個維度,安全性比2D的大大提高了,另外還解決了暗光環境下的解鎖問題,因為加入了紅外面部探測光。之前有則新聞是iPhoneX發布後有越南人在採取了非常多的方式之後用3D模型騙過了iPhone X,成功解鎖,另外還有一些雙胞胎之類的也完成了解鎖。是說iPhone X的面部識別也不夠安全嗎?
這裡需要說明的是,沒有100%的安全,包括指紋識別,另外這裡要提一下的就是很多國內廠商把解鎖速度當成一個宣傳點,其實這裡有個誤區,不管是指紋還是面部識別,安全都是第一位的,在安全的前提下才能追求速度,國產廠商的面部識別真的還不夠安全。
前不久ARM發布了針對IOT安全的PSA架構,我私下跟ARM的技術人員聊了很多關於安全方面的問題,簡單說呢,對於安全來說,只要破解付出的成本遠大於破解所獲得的收益基本就能保證安全了。道理也很簡單,你會花費100萬去破解一個手機加密嗎?黑客都沒興趣,越南的這個破解iPhone X面部識別也是反覆實驗了多次,一般情況下沒人去這麼大費周折的針對你。但是也有例外,FBI不就花100萬美元去破解蘋果的Touch ID嗎?那個破解方式還是利用的一個0日漏洞,繞過了Touch ID,這還說明了一個問題。安全並不僅僅是技術本身的問題,指紋或者面部識別就像一道門,你可以想盡辦法解鎖開門進去,還可以翻牆頭,挖地道、鑽狗洞,所以說,安全還是一個系統的問題。
總結
對於絕大多數的人來說iPhone X的面部識別足夠的安全,目前安卓機所採用的面部識別方案是落後於蘋果的,還不夠安全,但是明年有望追上。
什麼原因我是不知道,但是我的X剛設置完臉部識別沒到一天,我媳婦無意中就給解開了,跟我說我都沒信,馬上跟我演示下,果然瞬間解鎖,我把面部識別刪除重新錄入,她還是輕而易舉就解鎖了,但是她的X我怎麼試都不行。
能下成本去破解你的iPhone X的面部識別的部門絕對不是一般的政府部門了,應該像中情局國安局那樣的單位了,那你也算是個名人了吧,並且搜集你的面部緯度信息也是要看環境的,你若保護得好的話,幾年到幾十年的時間,也許情報機關能得到你的完整的面部緯度。就談iPhone X的面部解鎖原理吧,通過激光檢測到你的面部,再用高頻投射燈在你面部投射無數個偵測點,再用景深鏡頭收集這些偵測點的數據,構成一個3D的你的面部緯度,存入bionic,每次驗證匹配率大概超過你面部的三分之二,既驗證通過。所以這項技術的關鍵在於你的鼻子,臉頰等凹凸有致的部位。
推薦閱讀:
※【點·解】這是你想要的 vivo X23 嗎?
※聚焦 | 蒼穹數碼研究院正式成立
※更強大,更智能,iPhone XS Max 相機簡評
※兔巴租機CEO徐思源入選福布斯中國30 Under 30榜單
※賓得鏡頭總匯合 賓得 K-m(配18-55mm鏡頭) 數碼相機論壇 - 太平洋產品論壇