HCE技術(shù)在移動支付中的應(yīng)用與安全分析
在非接觸式移動設(shè)備進(jìn)行現(xiàn)場支付業(yè)務(wù)時,一般是利用NFC技術(shù)的卡模擬方式來實現(xiàn),即把移動設(shè)備模擬成一張非接觸式的金融IC卡,與支持非接觸式受理的POS終端進(jìn)行交互。在這種傳統(tǒng)的卡模擬方案中,需在移動設(shè)備內(nèi)加載安全單元(SEcure E1ement,SE),用于支付應(yīng)用及其數(shù)據(jù)的安全存儲和安全運算,為支付過程提供了芯片級的可靠安全保障。該安全單元的載體形式可以是智能SD卡、智能SIM卡或者移動終端內(nèi)部的嵌入式獨立單元。這些安全單元的存在確實保障了金融數(shù)據(jù)安全,但同時也在卡的發(fā)行運營方面增加了移動支付的復(fù)雜性。

中國銀聯(lián)股份有限公司技術(shù)部助理總經(jīng)理 李偉
2013年底,安卓操作系統(tǒng)4.4以上版本支持了主機卡模擬(Host-baSEd Card Emulation,HCE)技術(shù),該技術(shù)使基于操作系統(tǒng)應(yīng)用軟件直接實現(xiàn)卡模擬技術(shù)成為可能,不再要求手機中必須存在安全單元。HCE技術(shù)的應(yīng)用可以大幅降低支付應(yīng)用的門檻,減少移動支付的推廣成本,因而引起了業(yè)界的廣泛關(guān)注。但是,由于HCE方案軟件卡支付應(yīng)用不再要求移動終端中必須存在安全單元,因而需要應(yīng)設(shè)計一套完整的安全加固方案以保護(hù)支付應(yīng)用數(shù)據(jù)的安全。本文將對HCE技術(shù)在移動支付的應(yīng)用安全進(jìn)行分析,并提出典型的技術(shù)解決方案。
一、基于HCE的軟件卡技術(shù)方案整體架構(gòu)
圖1給出了一個較為全面的能夠涵蓋多種具體解決方案的整體架構(gòu),其關(guān)鍵模塊介紹如下。

1.移動終端
移動終端是用戶支付應(yīng)用的載體,具體形態(tài)可以為支持NFC功能的手機、平板或者可穿戴設(shè)備等。移動終端應(yīng)具備用于支撐各類應(yīng)用運行的執(zhí)行環(huán)境,執(zhí)行環(huán)境為上層應(yīng)用提供運算、存儲管理、輸入輸出界面等一系列功能和服務(wù)。通過移動終端,用戶可以下載、安裝基于HCE技術(shù)實現(xiàn)的軟件卡支付應(yīng)用軟件(如數(shù)字錢包應(yīng)用等)。通過支付應(yīng)用軟件,實現(xiàn)支付應(yīng)用的管理、非接觸式支付或遠(yuǎn)程支付等功能。可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)技術(shù)被視為是未來進(jìn)一步提升移動終端執(zhí)行環(huán)境安全的一個重要方向。
2.軟件卡支付應(yīng)用
軟件卡支付應(yīng)用是解決方案中最為核心的組成要素,一般而言,其主要功能如下:
用戶軟件卡賬戶信息的管理,如申請、下載、刪除、暫停、恢復(fù)等功能;用戶賬戶信息的保存和處理,如賬戶參數(shù)的保存和更新等;支付過程中的數(shù)據(jù)運算,如非接觸支付中對終端指令的處理和響應(yīng)、遠(yuǎn)程支付中交易驗證數(shù)據(jù)的生成或驗證等;可提供賬戶信息查詢、余額查詢、圈存等操作入口。
軟件卡支付應(yīng)用可以有多種實現(xiàn)形式,可以作為獨立的移動應(yīng)用軟件存在,也可以作為插件的形式集成在其他服務(wù)提供商的移動應(yīng)用軟件中。
3.移動應(yīng)用平臺
移動應(yīng)用平臺是移動應(yīng)用軟件接入的既有或新建的后臺管理系統(tǒng),提供移動應(yīng)用的下載和管理功能。在云端支付解決方案中,它還可負(fù)責(zé)移動應(yīng)用與云端支付平臺之間的數(shù)據(jù)轉(zhuǎn)發(fā)或路由。
4.云端支付平臺
云端支付平臺是云端支付解決方案中使用到的后臺系統(tǒng),可提供云賬戶生命周期的管理服務(wù),包括云賬戶為創(chuàng)建和初始化、活躍賬戶管理、交易驗證、交易處理、生命周期管理及后交易處理。除了這些基礎(chǔ)功能外,云端支付平臺可同時提供一些輔助功能,例如賬單服務(wù)、報告服務(wù)等。
5.標(biāo)記化服務(wù)提供商系統(tǒng)
標(biāo)記化服務(wù)提供商系統(tǒng)是指在符合EMVCo標(biāo)記化規(guī)范架構(gòu)下,能夠完成從標(biāo)記生成和發(fā)布功能的系統(tǒng),并在標(biāo)記請求者發(fā)出請求時維護(hù)已建立的“標(biāo)記一主賬號”的映射關(guān)系。
6.安全單元
在某些應(yīng)用場景下,如果移動終端中存在安全芯片,軟件卡解決方案也可以結(jié)合SE,由其來提供更為安全的支付應(yīng)用數(shù)據(jù)存儲和運算功能。
7.遠(yuǎn)程支付網(wǎng)關(guān)
用于處理遠(yuǎn)程支付交易的系統(tǒng)前置平臺。
二、安全性分析
相比于傳統(tǒng)基于SE實現(xiàn)的支付應(yīng)用(主要由SE提供安全存儲和安全運算保障),軟件卡支付應(yīng)用的安全防護(hù)需要由整體解決方案來提供。在軟件卡支付解決方案中,每一個部件都分擔(dān)了系統(tǒng)安全的一些責(zé)任,同時實現(xiàn)了系統(tǒng)安全的一些功能。安全性不再以某單獨部件的安全與否進(jìn)行衡量,而是以多部件系統(tǒng)整體為單位進(jìn)行衡量。
軟件卡解決方案的安全性可以從兩個角度來衡量,一方面是發(fā)現(xiàn)漏洞以及利用漏洞的難易程度,另一方面是一旦漏洞被利用之后造成損失的大小。由于軟件卡支付應(yīng)用所處的移動終端操作系統(tǒng)能提供的安全防護(hù)較為薄弱,軟件卡支付應(yīng)用一般在整體解決方案中不是獨立存在的,它一般與其它安全環(huán)境或者云端支付系統(tǒng)架構(gòu)緊密結(jié)合。總體看來,軟件卡解決方案的安全性可以從前端和后端兩個方面來考慮:前端包含移動終端能提供的安全環(huán)境及軟件卡支付應(yīng)用,后端主要是移動應(yīng)用平臺、云端支付平臺等。
在前端的安全考慮中,由移動終端操作系統(tǒng)自身提供的安全防護(hù)在目前階段往往存在安全漏洞。因此,建議應(yīng)用提供方在實現(xiàn)軟件卡支付應(yīng)用時,應(yīng)該著重分析會有哪些可能存在的風(fēng)險,然后采用相應(yīng)的防護(hù)技術(shù)降低風(fēng)險。比如,針對支付應(yīng)用自身,可采用白盒加密、代碼混淆等技術(shù)手段來提升安全防護(hù)能力,減少漏洞,降低漏洞暴露的可能性,提升漏洞被利用的難度;另一方面,盡量降低漏洞被利用之后造成的損失,如可采用賬號標(biāo)記化、限制密鑰使用等手段。
在后端的系統(tǒng)實現(xiàn)中,從安全的角度看,一個關(guān)鍵前提是在設(shè)計服務(wù)器端時不應(yīng)該假設(shè)前端是安全的,應(yīng)該要考慮到前端安全有被攻破的可能性。基于這個思想,系統(tǒng)做支付授權(quán)時,不應(yīng)只根據(jù)前端信息做決定,而應(yīng)根據(jù)前端和后端的信息做出綜合決定。另外,服務(wù)器端應(yīng)該實現(xiàn)一些遠(yuǎn)程管理的功能,保障一旦前端出現(xiàn)安全漏洞服務(wù)器能采取一定的措施去修復(fù)。同時,應(yīng)充分利用移動終端和前端支付應(yīng)用提供的信息,比如位置服務(wù)(LBS、指紋識別、交易頻次、設(shè)備指紋等,建立模型進(jìn)行綜合風(fēng)險監(jiān)控。
因此,就軟件卡支付應(yīng)用作為單個部件而言,和基于SE的支付應(yīng)用實現(xiàn)相比,其風(fēng)險無疑大幅增加。但如果能合理結(jié)合多種安全加固措施和后臺服務(wù)平臺,從系統(tǒng)整體上來看,其安全性能夠得到保障。此外,在實現(xiàn)軟件卡支付的安全解決方案后,相應(yīng)的檢測與認(rèn)證也將面臨一個新的挑戰(zhàn),此時,檢測和認(rèn)證的對象不再只是系統(tǒng)內(nèi)的某個部件,而應(yīng)針對整個解決方案進(jìn)行綜合的評估。
三、典型解決方案示例
以下列出幾個典型的軟件卡解決方案,重點描述實現(xiàn)過程中需充分考慮的安全要點。
1.云端支付解決方案
云端支付產(chǎn)品是目前基于HCE實現(xiàn)的軟件卡主流解決方案。在本方案中,支付應(yīng)用的核心數(shù)據(jù)在服務(wù)器云端(云端支付平臺),軟件卡支付應(yīng)用的管理模塊、支付運算模塊以及存儲模塊都基于移動終端的操作系統(tǒng)實現(xiàn),與POS終端交互,實現(xiàn)非接觸式移動支付。移動終端需支持基于HCE實現(xiàn)的NlFC功能。
由于本方案中前端支付應(yīng)用運行在普通移動設(shè)備的操作系統(tǒng)之下,所以在服務(wù)器端需采取較為嚴(yán)格的參數(shù)管理、交易風(fēng)險控制策略,比如,不允許基于本模型實現(xiàn)線下脫機交易、減少交易參數(shù)的有效次數(shù)和縮短有效周期、控制基于該模型實現(xiàn)的支付應(yīng)用單次交易限額和累計交易限額等。通過較為嚴(yán)格的后臺風(fēng)險控制,可以降低系統(tǒng)性攻擊的風(fēng)險。
后臺服務(wù)器應(yīng)對用戶身份、移動設(shè)備及移動應(yīng)用等進(jìn)行全方位的驗證。在驗證通過后,軟件卡支付應(yīng)用與后臺服務(wù)器之間的數(shù)據(jù)通信建立在安全連接的基礎(chǔ)上,敏感數(shù)據(jù)通過安全通道進(jìn)行傳輸。
2.標(biāo)記化技術(shù)在云端支付解決方案中的應(yīng)用
在云端支付解決方案的基礎(chǔ)上,后臺服務(wù)器為了進(jìn)一步加強風(fēng)險控制力度,可以進(jìn)一步增加標(biāo)記化服務(wù)器(Token ServICe Provider,TSP)的角色,云端支付平臺可向標(biāo)記化服務(wù)器申請標(biāo)記(Token),進(jìn)一步解決在手機中存放卡號等敏感數(shù)據(jù)形成潛在風(fēng)險的問題。國際金融IC卡聯(lián)合組織EMVCo統(tǒng)一在全球范圍對TSP進(jìn)行了編號,并通過各卡組織分別建立技術(shù)業(yè)務(wù)體系,管理卡組織自身銀行卡對應(yīng)Token的注冊、標(biāo)記庫、標(biāo)記提取、生命周期管理等功能。
相比于普通的云端支付解決方案,疊加標(biāo)記(Token)技術(shù)后,對軟件卡支付應(yīng)用中所存儲的支付卡信息的保護(hù)和管控得到進(jìn)一步加強,后臺服務(wù)器可基于標(biāo)記化技術(shù)有效控制因前端安全漏洞所造成的卡信息泄露帶來的損失,同時也進(jìn)一步提高了對持卡人各類交易風(fēng)險的綜合管控。
3.TEE技術(shù)在云端支付解決方案中的應(yīng)用
由于以上解決方案的前端應(yīng)用客戶端仍處于安全級較低的操作系統(tǒng)環(huán)境下,理論上仍存在一定的安全漏洞,為進(jìn)一步增強安全,還可進(jìn)一步引進(jìn)TEE技術(shù)。
通過運用移動終端所提供的TEE環(huán)境,可有效提升前端應(yīng)用的安全防護(hù)水平。TEE是移動終端中一個與通用環(huán)境相隔離的執(zhí)行環(huán)境,能夠提供例如應(yīng)用隔離運行、可信應(yīng)用及其資源完整性和保密性保護(hù)等安全功能。不過,TEE的安全除了需要自身軟件保障以外,還需要依賴于移動終端平臺硬件的保障。
利用TEE提供的安全環(huán)境,軟件卡應(yīng)用可以通過多種方式提升自身安全防護(hù)能力,比如,可將軟件卡應(yīng)用中的敏感數(shù)據(jù)如交易參數(shù)、與后臺服務(wù)器的通信密鑰等存儲在TEE環(huán)境下;軟件卡應(yīng)用與NFC芯片之間的通信信道可通過TEE環(huán)境進(jìn)行安全隔離保護(hù);將軟件卡應(yīng)用的支付運算模塊以可信應(yīng)用(TA)的方式運行在TEE環(huán)境下;對用戶身份的認(rèn)證(例如指紋識別)可通過TEE內(nèi)置的安全服務(wù)來實現(xiàn)等。
四、總結(jié)
通過云端存儲和控制、Token技術(shù)、TEE環(huán)境等技術(shù)的運用,基于HCE技術(shù)的移動支付應(yīng)用成為安全可行的業(yè)務(wù)模式。當(dāng)然,軟件卡支付應(yīng)用還可以直接利用移動設(shè)備中已有的SE提供的安全環(huán)境來存放敏感數(shù)據(jù),從而進(jìn)一步提升自身的安全防護(hù)能力,對此,發(fā)行方需根據(jù)實際具體情況進(jìn)行綜合考量。
基于HCE技術(shù)的軟件卡方案可降低NFC支付的門檻,減少NFC技術(shù)的推廣成本,已成為支付產(chǎn)業(yè)界的新熱點,相信在卡組織和發(fā)卡機構(gòu)的創(chuàng)新推動下,相關(guān)的移動支付產(chǎn)品不久即將為持卡人廣泛使用。