作者:Nicky@TSRC

一、概述

隨著手機功能越來越多,其在我們生活中扮演的角色也越來越重要,除了保存傳統的通訊錄、短信、照片等個人隱私,現在的手機還是一個支付工具,如果手機被盜用,手機鎖屏密碼就是保證大家數據和資金安全的第一道屏障。我們最近也研究和總結了一些手機解鎖的新老姿勢的安全性,在此分享給大家,歡迎大家上車一起交流。

本次測試的手機包含了蘋果,三星,華為,小米,VIVO,Google,一加,樂視等品牌的熱銷型號手機,測試的解鎖姿勢主要有以下5種:

1. 手勢/PIN碼解鎖
2. 藍牙設備解鎖 3. 指紋解鎖 4. 人臉解鎖 5. 虹膜解鎖

測試結果表明,以上的解鎖姿勢都存在一定的安全風險。

二、手勢密碼/PIN碼解鎖

在傳統角度上來說,手勢/數字密碼是最安全的手機解鎖姿勢,一般的4-6位數字或圖形密碼結合錯誤次數限制,可以有效的防止攻擊者通過暴力破解等方法(當然通過刷機重置系統或非通用 BUG 繞過不在討論范圍內)。雖然很難繞過此類姿勢,但我們還可以想想如何在已經解鎖的狀態去清除密碼。

圖一

我們團隊的安全研究員 Xbalien 在研究后發現了一個影響 Android7.0 及 7.1 的通用手勢密碼/pin碼清除的漏洞,而條件就是只需要在解鎖狀態下安裝運行一個 APP 或開啟 ADB 調試即可清除已設置的密碼(如上圖一)。

在 Android7.0 及 7.1 系統中,系統導出了一個選擇解鎖方式的系統組件,第三方應用可以調用此接口發送特定參數的 Intent 即可關閉所有鎖屏認證功能,包含手勢密碼/PIN碼/指紋等等。目前谷歌已經確認為中危并在新版本中修復了此漏洞(CVE-2017-0704),詳見谷歌2017年7月 Android 安全公告。

圖二

除此之外,德國斯圖加特大學的一個團隊的研究報告指出,由于人體手指溫度與手機屏幕溫度存在一定溫差,可以使用紅外熱成相相機能夠拍攝出手指點擊或滑動過程中產生的細小溫差,從而破解輸入的手機鎖屏密碼(如上圖二)。

圖三

不過經我們實際測試,距離,成相像素,手機與人體溫差,輸入時間,都會影響拍攝效果,在日常生活環境中很難使用熱成像儀還原出手指操作的軌跡。比如我們使用 seek thermal xr 熱成儀(分辨率為 206*156 像素),拍攝距離屏幕 20-30cm 的范圍內手指長按屏幕 5 秒后得到的照片(上圖三),也只能分辯一個比周邊屏幕稍亮的點,如果按正常速度解鎖,幾乎拍攝不到任何解鎖軌跡,所以說這種方法離實際利用還是比較遙遠的。

三、藍牙設備解鎖

圖四

早在 2014 年小米手環一代上市,小米就專門為小米手環在 MIUI 中開發了一個新功能叫做手環解鎖,隨后谷歌在 Android5.0 及以上版本的的 GooglePlay 組件中也加入了一個 smartLock 功能(上圖四),支持藍牙設備/地理位置/人臉解鎖功能。而華為從 EMUI3.1 也開始引入智能解鎖功能,支持手機在連接信任的藍牙設備時無需密碼直接解鎖。在一段時間的測試后,我們發現華為的智能解鎖功能存在漏洞可被利用于繞過手機鎖屏密碼。

華為 EMUI 在系統設置“鎖屏與密碼”中存在一個“智能解鎖”功能,支持使用手環等藍牙設備解鎖,其中主要實現代碼位于 com.huawei.trustagent 包中。主要原理為當用戶開啟智能解鎖功能后,可選擇添加可信手環設備,添加成功的手環設備 MAC 地址添加到白名單中。之后當手機亮屏時,后臺會自動檢測當前手機連接的藍牙設備MAC地址是否在白名單中且信號強度( rssi )是否在指定范圍內,如果符合特定條件則自動免密碼解鎖。

圖五

一看到單純的 MAC 地址白名單機制,老司機們都會想到各種“猥瑣流”思路去繞過白名單。了解藍牙設備的同學應該知道部分藍牙芯片廠商的的設備 MAC 地址是可以直接任意修改的,同時手環設備 MAC 地址是公開信息,所以攻擊者可以修改藍牙 USB dongle 的 MAC 地址并主動查詢手機藍牙提供的服務項,此時藍牙 usb dongle 并沒有與手機成功配對,但已經建立連接,從而可以直接繞過手機鎖屏密碼(如上圖五)。

而之前說到的 Google 的 SmartLock 功能在剛上線也出現過類似漏洞,Google 的修復方案是在解鎖時檢測當前連接的藍牙設備是否已經配對成功,小米手環則在固件中自定義一個藍牙 profile 在解鎖前與手機通信進行身份校驗(這也是小米藍牙解鎖只支持小米手環的部分原因)。 目前華為已經致謝并修復此漏洞,CVE 編號為 CVE-2017-2728,詳見華為 PSIRT 安全公告,后續對于這類涉及智能設備的系統漏洞我們也會繼續保持關注。

四、指紋識別解鎖

2013年蘋果發布了第一款按壓式指紋識別的手機—iPhone5S,之后指紋識別幾乎是所有旗艦手機的標配,而隨著技術的成熟與成本的下降,現在更是普及到了百元機標配。從手機指紋識別技術原理上來看,主要有以下三種方案:

1. 電容指紋識別

圖六

最早也是應用最廣當屬電容指紋識別,目前蘋果iPhone全系及大部分Android手機都使用了這種技術的芯片。其主要原理是利用硅晶元與導電的皮下電解液形成電場,指紋的高低起伏會導致二者之間的壓差出現不同的變化,借此可獲取準確的指紋圖像。

2. 超聲波指紋識別

圖七

小米5S與樂視樂 Max Pro 均使用了高通的超聲波指紋識別芯片,它的原理是通過超聲波信息反射來感應指紋形態,能穿透玻璃、金屬表面,因此,這項技術不需要集成在 Home 鍵上同時還能解決濕手情況下的電容指紋識別不靈敏的問題。而在6月28號的上海 MWC2017 大會上 VIVO 還聯合高通發布了第三代超聲波指紋識別技術,直接將指紋識別功能集成在屏幕內,并支持水下操作和心率檢測。

3. 屏下光學指紋識別

圖八

早在3月巴塞羅那MWC2017展會上,國內的匯頂科技展示了一項的 “In-Display fingerprint” 光學指紋識別技術,直接將指紋識別功能集成在手機屏幕中,吸引了不少消費者的關注。其原理主要是借用手機屏幕自身的光源,將指紋反射到屏幕內部的感應器,結合芯片與軟件算法獲取指紋圖像。而蘋果之前也申請了一項利用紅外光與傳感器實現的類似屏下光學指紋識別方案,所以從目前消息來看iPhone8可能會成為上此這項技術的首發機型。

圖九

在指紋識別安全方面,國內外已經有不少這方面的研究,如上圖九,在2014年德國CCC黑客大會上研究員 Starbug 從德國國防部長一張看似普通的新聞照片中成功提取出了其指紋圖案,然后大家可能會想起電影里的用膠帶復制玻璃杯上的指紋繞過指紋門禁(一般為光學指紋識別)的方法,不過在這想和大家說的是由于復制的只是平面的指紋圖像且膠帶并不導電,這種方法并不適于主流的電容式指紋識別手機。

不過極客們又想到了另一種方法,也就是所謂的電容指紋膜。通過混合電容液與電容材料,得到可以導電的指紋套,當套有人手指的指紋套放在電容傳感器上時,可產生與原版手指相同的電容值從而被電容指紋芯片成功識別。借助于萬能的淘寶,我們只需要40元就能買到一套完整的指紋復制工具,以上就是我們制作一個電容指紋膜,測試可以成功解鎖 iPhone7/iPhone6s/Google Pixel/小米Mix/一加2/Vivo Xplay5 等手機(如下圖十)。

圖十

對于超聲波指紋識別來說,由于電容硅膠等物體的反射的聲波與人體皮膚并不一致,所以用電容硅膠或其它物體復制的指紋是無法被識別的,而高通的第三代超聲波指紋識別技術還加入了心跳/血液檢測,所以理論上來說超聲波指紋識別安全性要高于電容式指紋識別。屏下光學指紋識別由于暫無實際產品正式發布,安全性還暫時無法判定。

為了提升指紋識別安全性,一些廠商推出了新的活體指紋識別與3D指紋識別方案,活體指紋識別(如金立M2017)在原有的指紋識別的同時檢測了心率,膚色。3D指紋識別(如華為Mate9)則在原有的表層指紋識別基礎上加以改進,使電信號直抵真皮層,讀取深層指紋。這兩種方案都可以解決目前常見的指紋復制帶來的風險,但日后是否還會出現新的對抗方法還有待研究。

五、人臉識別解鎖

人臉識別技術作為應用最廣范的生物識別技術也最容易被破解。和其他的生物特征相比,人臉特征是最容易獲取的,偽造者可以通過網上搜索、偷拍等途徑獲取用戶臉部照片或視頻。因此針對人臉識別認證系統的欺騙手段一直是人臉識別系統所面對的主要問題。

常見的繞過人臉識別的主要有方法有:
1. 人臉照片: 拍攝二維平面圖像人臉; 2. 人臉視頻:利用軟件模擬或偷拍方法生成的動態人臉視頻,具有眨眼等運動信息以及表情信息; 3. 立體人臉模型:通過對人臉進行3D建模并打印實物;

圖十一

由于手機設備的能耗與體積限制,目前手機上的人臉識別大多依靠的只是一個普通的前置攝像頭,我們之前實測三星S8的人臉解鎖用一張照片進行移動即可解鎖,而在S8最近的更新中,三星已經提升人臉識別算法的準確性,測試已經無法通過照片解鎖手機。

在手機端針對人臉照片的活體檢測技術主要有眨眼生理行為檢測等;針對人臉視頻與立體人臉模型的活體檢測技術主要有結合特定唇語/語音識別,特定行為交互等需要用戶配合的交互手段及近紅外人臉識別技術等。下圖為部分廠商所使用的人臉識別活體檢測方法:

六、虹膜識別解鎖

圖十二

三星在Note7上首發了手機虹膜解鎖功能,由于之前的爆炸門事件,這項技術在最新的三星S8上才被大家所熟知。說到其原理,首先需要知道的是人的眼睛結構由鞏膜、虹膜、瞳孔晶狀體、視網膜等部分組成。虹膜是位于黑色瞳孔和白色鞏膜之間的圓環狀部分,其包含有很多相互交錯的斑點、細絲、冠狀、條紋、隱窩等的細節特征,一般用紅外光才可以拍清楚完整的虹膜細節。由于虹膜特征點遠多于指紋且難以復制,理論上虹膜識別安全性要高于指紋識別。

圖十三

三星所采用的是斯坦福研究院旗下的 Princeton Identity 公司提供的虹膜識別模塊,其通過正面屏幕上方的 850nm 的LED紅外補光燈+紅外攝像頭,可以在近距離(20-30cm)拍攝到使用者虹膜紅外圖像并提取特征點與已有圖像進行對比判斷其身份。而在今年德國一個“CCC”黑客俱樂部會議上,之前用公開照片復制了德國國防部長指紋的黑客小哥告 Starbug 訴了我們虹膜識別是一樣能夠用相機拍照去破解的。

圖十四

這個安全熱點之前也被大部分媒體報道過,主要的破解過程大概是這樣的:

  1. 用一臺相機拍攝眼部照片;
  2. 用激光打印機打印眼部虹膜細節照片;
  3. 貼上隱形眼鏡;
  4. 拿上照片就能成功通過虹膜識別。

而在實踐之后我們發現事實上并沒有這么簡單,正如三星官方所回應的,目前市面要想找到一部能拍攝到清晰的虹膜細節的相機太難了。在試過了手機,單反,單反+濾鏡,紅外夜視撮像頭后,均沒能拍到清晰的虹膜照片。于是我們在萬能的淘寶上買了一部 Starbug 所用的同款古董級 SONY DSC-V1 紅外夜視相機(2003年產),苦于其500萬像素值及本身對焦素質,我們測試了多次仍沒拍到一張能通過三星的 S8 虹膜解鎖的清晰虹膜照片。

圖十五

此外根據類似原理,我們還可以用人造眼,定制隱形眼鏡去模擬指定虹膜破解虹膜解鎖,不過最難的部分始終還是如何先取到清晰的虹膜圖像。

七、總結

上文中說的各種解鎖姿勢其實只是移動端身份認證方式的一部分,這些解鎖姿勢同樣廣范用于支付認證/實名認證等領域,從目前趨勢上來看,生物識別技術可能將成為未來主流的身份認證手段。

而從安全性方面考慮,相比傳統的密碼認證與設備認證方法,生物識別技術其實適合用于身份識別(identification)而不是身份認證(authentication),像指紋,虹膜等識別技術只能代表某個人生物特征,由于生物特征存在不可更改性與一定的可復制性,一旦用戶生物特征信息泄露,則其身份就可能其它人被復制利用,手機鎖屏密碼也當然能輕易繞過。

在此我們給大家的防范建議是:

1. 盡量少在社交平臺發自拍照,特別是高清無碼的;
2. 最最最重要的:不要輕易將手機借給其它人;
3. 使用傳統的(6位數字或更長)PIN碼解鎖手機最安全;

不過大家也不用太擔心,以上破解各種解鎖姿勢的方法在實際生活場景中都有一定的利用難度,廠商們也早已經認識到了此類風險,不斷在推出新的帶活體檢測的生物識別技術方案,相信日后還有更多姿勢等待我們去探索,在此也歡迎大家與我們交流。

參考資料:

【1】 http://bbs.pediy.com/thread-216706.htm
【2】 http://securityaffairs.co/wordpress/59381/hacking/samsung-s8-hacking.html
【3】 https://mherfurt.wordpress.com/2015/05/08/tricking-android-smart-lock-with-bluetooth/
【4】 http://d.wanfangdata.com.cn/Periodical/kjsyyj2014z1030
【5】 http://www.huawei.com/cn/psirt/security-advisories/huawei-sa-20170323-01-smartphone-cn
【6】 https://source.android.com/security/bulletin/2017-07-01?hl=zh-cn


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/369/