0
雷鋒網按:在周一(指紋傳感器和假指紋攻防技術)和周三(指紋識別原理和萬能指紋攻擊猜想)的兩期雷鋒網公開課上,邁瑞微電子創始人李揚淵分別從指紋識別本身的角度分析了指紋識別的安全,而本期公開課他將從移動支付安全整體的角度來看待指紋識別。
在前兩場課程中,李揚淵提到了指紋識別的幾種攻擊方式,其中之一就是攻擊數據庫,盜取指紋信息來制作假指紋。在指紋識別已經成為了移動支付技術入口的時代,保護指紋信息安全的重要性不言而喻。
那么在移動支付的安全話題上,我們應該了解哪些問題?Android手機和蘋果手機在安全策略上有何差異?雷鋒網再次邀請了李揚淵為你繼續解答。

李揚淵,蘇州邁瑞微電子創始人;指紋識別領域唯一貫通算法、傳感器、IC設計的從業者;密碼芯片領域最早的開發者之一;基于李揚淵所發明的“C-Q-T”電路,僅成立3周年的蘇州邁瑞微電子已成為中國大陸電容式指紋傳感器出貨量第二名的供應商。
我們所看到的銀行柜臺和ATM機的網絡連接模式都是物理隔離網絡,也就是銀行的專用網絡。
物理隔離是最直接的安全防護,它杜絕了監聽、中間人等基礎攻擊手段,幾乎不需要建立安全技術。常見報道的某地區或某軍區建立的安全網絡,大多都是指物理隔離網。
但是這種網絡的缺點也很明顯,它的終端會受限,僅能在固定的柜臺和ATM機辦理業務,而且其攻擊方式也主要是內部人業務級的攻擊,或者說是銀行雇員監守自盜,例如行長挪用,柜員盜竊客戶帳戶,以及ATM機維護人員搬走現金。
這在POS機進入了各個商戶后,POS機對銀行來說是一種第三方網絡,但考慮到是電信運營商的網絡還算可靠。
傳統的POS機以電話交換網絡連接入銀行主網,也就是傳統物理電話交換網絡,在雙方之間建立唯一的物理通道,這是人工切換,隔絕了中間人的攻擊,但對監聽難以防御。在這之后,還出現了自動切換以及軟件切換,軟件分組交換網絡可能因軟件系統漏洞,導致中間人攻擊和監聽。
再來看看POS機。早期申領POS機的商戶都要被嚴格的審核,而且POS機和人一樣有個一一對應的身份,不過我們近幾年看到推銷的各種POS機都沒有沒有獨有的身份。
嚴格來講,作為終端,POS機配還是備了一定安全手段的:
POS的領取受到管控,POS使用者和唯一序列碼綁定;
POS在技術手段上實施了一定程度的加密;
POS畢竟是安全設備,提前內置密鑰,無須分發,沒有分發環節風險;
當然,這不代表POS機就不存在安全風險,比較常見的攻擊方式就是刷卡套現,屬于業務級而不是技術級的攻擊。
互聯網引入金融系統,就意味著要在不安全的網絡之上建立一個安全的體系,最基本的要求就是終端要有保障。我們看到這類最早的產品是U盾,現在U盾已經從第一代發展到了第三代(支持指紋識別功能),在這過程中U盾的成本增加了,但交易風險在降低。
那么,網上銀行終端以互聯網接入銀行主網存在哪些風險呢?
最致命的就是互聯網是不安全的網絡:分組轉發傳輸方式決定了物理信道不確定性;數據層面,監聽、篡改、阻塞、中間人攻擊五花八門;軟件系統層面,病毒、木馬、遠程控制層出不窮。
針對這些問題,可以基于數字證書和安全模塊來增強終端的安全:
數字證書體系由非對稱密碼、對稱密碼、安全協議構成;
安全模塊具備設備唯一碼、安全儲存器、安全計算環境,等等;
攻擊方式:
為抵抗偽造交易,所以U盾從1代發展到2代,增加了現實和確認物理按鍵;
為抵抗竊取U盾,第3代U盾引入指紋識別;
銀行卡受限于成本只相當于1代U盾。
移動互聯網的支付風險比互聯網要大,因為攻擊手段增加了,從技術角度上講,終端的接入入口是變化的,從法律管控來看,終端的身份認定更加困難,所以說移動互聯網比固定互聯網更加不安全:
假基站攻擊、復制sim卡等新攻擊手段;
設備不易追蹤,犯罪風險更小。
因此,在網絡變弱的情況下,對移動設備終端安全也提出了更高的挑戰:
移動設備仍然是開放的軟件平臺;
安全鏈涉及的環節和廠商更多;
沒有成形標準,很難協同一致。
一言以蔽之,移動支付遍地漏洞,攻擊方式非常多樣化,主要防御手段就是大數據統計風控,以支付寶為例,他們早期的發展主要原因之一就是敢賠,中國的移動支付能走在世界前列靠的就是統計風控,這間接打了技術安全的臉。
一般情況下,網絡越開放,終端安全技術要求越高,所以標準化不如PC的手機,所面臨的安全風險也會更高。
一是硬件漏洞和硬件驅動程序作惡防不慎防,舉個例子,去年我們一競爭對手用驅動程序檢測內置的芯片,而他們就在此做了些動作,當檢測到不是他們自己的芯片時,就會影響用戶手機的運行速度甚至導致死機。硬件驅動程序在系統的權限級很高,而手機生態對硬件驅動程序沒有做很全面的代碼審核,尤其是指紋識別。
另外,手機操作系統尤其是碎片化的Android面臨的安全風險很高,例如舊版本維護問題,安全補丁及時性問題。
除此之外,惡意軟件管控面臨巨大挑戰,軟件分發缺少安全標準和執行,防御性軟件式微,手機平臺不具備PC平臺那樣成熟的安全軟件行業。
所以,移動支付面臨的問題是網絡安全以及技術安全的實施條件都變差了,支付平臺必須付出很高的代價來完善統計風險控制,但需要注意的是,統計風控也存在一定的局限性,例如用虛假交易來擾亂金融,這是統計風控無法避免的。
SE是一個符合金融標準的芯片、軟件系統標準技術,以U盾芯片和CPU銀行卡芯片為例,SE代表了金融信息安全的一系列標準技術,它有以下技術特征:
封閉的軟件環境;
與金融信息化系統的兼容性接口;
具備內存保護的安全動態儲存器;
防靜態破解的安全靜態儲存器;
密碼加速硬核;
真隨機數發生器;
防動態功耗分析的機制,等等。
對以移動支付為代表的移動互聯網金融而言,SE的作用是銜接終端安全體系和金融安全體系。
蘋果就是以標準SE作為兩套體系的接口,還兼顧了部分服務端的架設工作,這使蘋果公司向金融業的接入方式更靈活更有兼容性;而Android陣營則為SE的價值爭論不休,并沒有什么作為,仿佛做夢由金融系統主動改變技術標準來適應自己。
答案是否定的,央行正在大幅度地提高監管力度,以前松技術監管的好日子是給互聯網金融試水成長的;技術監管趨嚴,互聯網金融已經面臨與銀行業一致的監管標準和安全要求,隨時間推進會整體性越來越嚴格;不安全無金融,金融就是以可控的風險進行資金的流動;安全技術攻防中,互聯網金融平臺取代傳統金融業成為防守方的主力,這本身也是整個金融業的進步。
蘋果的安全架構有三個部分:Open OS、Secure Enclave和SE,這是Apple終端安全的三大件,一個都不能少:
Open OS(IOS)用于運行軟件,作為兼容性平臺先天弱安全,即使IOS也不停暴露致命漏洞;
Secure Enclave用于運行安全軟件,擁有獨立的片上安全SRAM,不安裝第三方軟件,是一個封閉系統;
SE作為與金融信息安全系統的標準接口,同時提供安全儲存功能,為前兩者提供密鑰儲存等服務;
總結來說,Apple設計理念是硬件隔離風格,這是可證的安全。
Android沒有SE,這使得金融體系要接入的時候安全性不高,它主要的兩個組成部分是Open Zone和Secure Zone,但二者的關系設計不合理:
Open Zone(Android)往往不具備獨立的Secure Boot Chain,而由運行于Secure Zone的Secure OS引導;
Secure Zone雖然和Secure Enclave都遵從ARM的Trust Zone標準,但配置不一樣:Android陣營使Secure Zone與Android復用DRAM,等于對內存補丁攻擊不設防,一旦關鍵數據地址暴露,則可以被Android運行的軟件鎖定變量值;部分Android陣營廠商設置的開發規則使Android App成為Secure App的精細調用者,對調度者攻擊不設防,可以誤導操作組合實現業務層攻擊。
所以Android陣營的設計理念是軟件防御式的擾亂,而不是硬件隔離,它的安全不可證。
金融業玩的就是量化風險,風險越高保險費越高,消費者付出的手續費就越高。
對于安全可證的Apple平臺,給予符合其可證安全等級的低費率。蘋果在低費率上再加一點點抽水,還能使總費率低于平均水平;
對于安全不可證的Android平臺,基本費率以可能的最低安全等級為準。正因為Android手機支付的高費率,Apple Pay才能在盈利的同時擁有費率競爭力。也正是因為這種安全機制的差異,造成了現在Apple Pay和Android賠的局面。
Trust Zone是ARM提出的標準,這個標準強調的是隔離軟件和硬件,但具體把安全做到哪一步依賴于完整的Soc設計甚至整機設計。
Apple的Secure Enclave和Android的Secure Zone都基于ARM的Trust Zone。Secure Enclave的storage(靜態存儲器)、dynamic memory(內存)、boot chain都是獨立的,且不安裝第三方應用;
Secure Zone的storage、dynamic memory與Android是復用的,靠AP的寄存器配置來分離,一旦Android App獲得改寫權限,那么就只有指望攻擊者不知道該怎么辦了。
Apple的指紋子系統有3個角色:一是傳感器,主要任務是采集指紋數據;第二個是加密芯片,將指紋數據加密傳輸到AP;第三個是Secure Enclave,與加密芯片在出廠前匹配密鑰,指紋圖像明文只有在Secure Enclave里才被解密,且由于Secure Enclave使用的SRAM在片內,數據不可取出,掉電即失,蘋果拿不到指紋數據是由硬件隔離保證的。
Android的指紋系統有2個角色:一是傳感器,主要是采集指紋數據,明文傳輸給AP;二是Secure Zone,獲得指紋數據明文,并儲存在共享DRAM里,并對其進行運算。
但是有個問題,指紋數據傳輸給Secure Zone還是Open Zone,是由寄存器設置決定的,一旦寄存器被改指紋信息也就被盜取了,這是軟隔斷思路的局限性。
一方面是因為SE本身有成本,另一方面是Android引入了也沒什么用:
SE只是一個保險箱,確保保險箱里的東西不被盜竊。這么一個赤身裸體的Android體系作為SE的調度者時,即使保險箱永遠不打開,手機永遠不丟失,Hacker遠程控制你的手機根本不在話下。
前面比較了蘋果和Android的安全,蘋果把Secure Enclave作為一個絕對獨立的東西,Android則做不到。作為開放性兼容體系,Android陣營在安全上天然不利。
Secure Zone需要安裝第三方軟件,決定了Secure Zone的安全性是有限的;Secure Zone需要富資源,尤其是存儲器資源,導致成本上無法像蘋果一樣接受片上專用的SRAM。
硬件不行軟件上,Secure Zone對Secure OS要求極高,導致對Secure OS的限制也就極大。再把Secure Zone作為安全根顯然是不可行的。
Secure Element除了作為金融安全標準件外,還可以為終端提供安全根和安全儲存服務:
SE需要自主運行,免受調度者攻擊;作為Secure boot chain的第一環節,由SE來校驗Secure Zone,Secure Zone再來校驗Open Zone,將SE集成于AP的設計需要充分考慮到這一需求;
SE提供密鑰安全儲存服務,當Secure Zone被攻破的時候,數據還存在SE里。充分活用SoC和SiP技術,杜絕該安全儲存服務本身受到鏈路攻擊;
把指紋識別的運算從Secure Zone轉移到SE,使指紋識別得以輔助SE成為最后一道關卡,這就構成了下面這個架構圖。

這是基于FSE的安全架構,它以Secure Element作為安全中心節點:SE左側為指紋和金融體系,AP關閉時可以獨立支付;SE右側逐次連接Secure Zone和Open Zone,從左到右實現Trust Boot Chain等安全機制。
這一體系的價值在于可以降低支付的手續費,而且還提高了手機的業務級安全能力。
Q:指紋識別方案現在有沒有和支付平臺和系統廠商協作?以及怎么承擔風險?
A:指紋方案現在只是兼容性接入,沒有量化,沒有風險評估。不止指紋,安全操作系統提供方也以軟件授權,而非安全服務的形式存在。風險只在系統集成那里,畢竟安全鏈沒有閉合,安全沒量化,一旦出錯,怎么分責任呢?而安全領域的做法是,安全商集體為最終客戶背鍋。手機還沒有達到信息安全標準,目前只有信息安全噱頭
Q:Secure Enclave和ARM的TrustZone區別在哪?
A:Secure enclave是基于trust zone標準做了配置和再開發的成果,至于蘋果干了什么,并沒有通知ARM。事實是,ARM靠蘋果用了trust zone給自己打廣告,并且把蘋果沒有使用ARM參考方案給忽略了。
我需要強調一個觀念,產業級企業,一家的力量,可以比平行產業整體的力量大很多,中國有企業,缺完整產業,更加沒有產業級企業,華為肯定走在最前面,但路還長。
Q:前不久看到印度推出的指紋支付計劃,就是指紋支付系統和印度的“生物識別數據庫”連接,這種安全性是好是壞?我只要保護一個數據庫就可以防住所有人的信息泄露...
A:我只要攻破一個數據庫就拿到所有的數據,攻防相長,一切是動態的。雞蛋放在一個籃子里,不是安全領域人員可以接受的想法。像蘋果一樣,用機制確保指紋數據拿不出來才是王道,我給出的以SE為中心的架構建議就遵循這個思路。安全技術在于提升天然等級達到需要的等級,如果天然等級足夠高,就不必擔心技術的發展使得未來得以破解,安全產品的生存期也就提高了,同一維度的攻防,只有殺毒軟件才喜歡,升級越頻繁,收費越自然。從架構設計來看,不到迫不得已,就不要指望同一維度的防守,盡量比攻擊者高一個等級。
本期公開課視頻如下:
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。