李 剛,鞠 漢,馬 潔,王海強
(1.公安部第一研究所,北京 100048;2.中移系統集成有限公司,北京 100032)
隨著移動通信技術和物聯網技術的發展,人們的日常消費方式逐步從銀行卡、信用卡和實體公交卡轉變為智能手機的移動支付,該方式十分便捷且適合在購物、乘車等不同場景的不同支付方式下應用。多數用戶在搭乘公交、地鐵時開始采用刷手機APP二維碼的方式進站乘車,但是蘋果手機用戶在使用公交車刷卡機或者地鐵閘機掃碼時經常會彈出Apple Pay支付界面,并存在以下疑問:(1)在使用蘋果手機其他APP二維碼時會觸發Apple Pay支付的原因是什么;(2)哪些設備會觸發Apple Pay操作,并導致支付界面彈出;(3)如果被別有用心的人利用了,用戶的電子支付賬戶是否安全;(4)其他具有NFC功能的電子產品,在上述場景下是否也會被自動激活,是否會出現支付安全問題。上述是蘋果手機用戶質疑較多的問題,其中用戶最關心的是個人隱私與財產安全問題以及公眾的基本權益能否得到保障。
Apple Pay(蘋果支付)是移動通信技術、物聯網技術、移動支付技術以及智能手機應用等共同發展的產物,是蘋果公司發布的一種基于近場通信(NFC)技術的手機支付功能。Apple Pay業務于2016年2月在中國上線,支持該功能的手機包括iPhone 6和iPhone 6 Plus系列以上型號的手機。該服務采用近場通信(NFC)技術,用戶可用蘋果手機進行非接觸支付,免去刷卡支付的操作流程,使用前需要在蘋果系統自帶的Wallet程序里添加本人的的信用卡、借記卡信息,支付時不需要將手機接入互聯網。使用Apple Pay進行線下應用時也不需要點擊進入APP,甚至無須喚醒顯示屏,只要將蘋果手機的NFC天線靠近有銀聯閃付標志的POS機,并將手指放在手機的HOME鍵上驗證指紋即可進行支付,整個過程方便快捷并且所有的支付信息都是經過加密處理的。線上應用時可以在手機處于黑屏鎖定狀態時,輕點兩下HOME鍵進入Wallet進行快速購買,如交易終端顯示需要輸入密碼,輸入銀聯卡密碼就可以完成Apple Pay線上支付。
近場通信(Near Field Communication, NFC)作為物聯網應用中物-物相連的常見、通用和關鍵的技術之一,是由諾基亞(Nokia)、飛利浦(Philips)和索尼(Sony)在2003年共同制定的一種通信標準,是在ISO 18092、ECMA 340和ETSI TS 102 190框架下推動標準化,同時也兼容應用廣泛的ISO 14443、ISO 15693以及Felica標準下非接觸式智能卡的基礎架構。近場通信技術是一種短距高頻的無線電技術,以13.56 MHz頻率在10 cm距離內進行通信,其傳輸速度有106 Kb/s、212 Kb/s或者424 Kb/s三種可選。手機的NFC功能在單一芯片上結合了感應式讀卡器模式、感應式卡片模式和點對點的通信模式,能在10 cm距離內與兼容設備進行識別和數據交換。Apple Pay的NFC支付模式工作在感應式卡片模式下,就是將手機模擬成一張非接觸卡,如門禁卡、銀行卡等。卡模擬模式主要用于商業、交通等非接觸移動支付中,用戶只要將手機靠近POS機,并輸入密碼確認交易或者直接接收交易即可,此種方式下手機NFC天線通過POS機的射頻場來獲取能量供電。在該應用模式中,具有銀聯閃付標志的讀取終端從具備NFC支付功能的手機中采集數據,然后將數據傳送到后臺的應用處理系統進行支付操作。
由于Apple Pay采用的是NFC技術,所以支付方式須符合NFC通信相關的安全認證流程。NFC的安全處理單元與安全芯片通過串口加密通信,加密通信所使用的密鑰對由Secure Enclave生成,并通過iCloud的加密機預置在安全芯片中。交易時安全芯片生成與交易相關的校驗數據,傳遞并加密DAN(終端賬號)。Apple Pay采用的相關安全技術如下:
(1)Token(令牌技術)
Apple Pay服務器不直接存儲用戶的銀行賬號和交易信息,而是以DAN(終端賬號)替代PAN(銀行卡號),DAN是加密的,且與蘋果操作系統(iOS)隔離(Apple Pay服務器不可以訪問DAN),DAN就是支付中使用的Token技術。隨機生成的銀行卡號格式與實體銀行卡號保持一致(如16~19位數字),可以在能夠識別該Token的受理環境中替代真實的銀行卡進行交易,用戶的真實銀行卡號不會被傳遞,避免了敏感信息的泄漏,一旦存儲Token的設備丟失或被盜,令牌可以立即作廢或換發,而不影響原有銀行卡的安全性。
(2)Touch ID(身份識別)
Apple Pay可以通過Touch ID或輸入密碼完成用戶身份驗證。為了保障安全性,用戶須設定一個解鎖密碼作為在指紋識別器失效時的后備措施,只有在接收到正確的身份驗證信息后,安全芯片才會啟動相應的支付操作。
Apple Pay的支付過程(如圖1所示)具體如下:

圖1 Apple Pay支付流程和系統架構
(1)將手指放在手機的指紋識別傳感器上,受理終端POS機通過NFC通信獲取靠近的手機用戶的移動終端賬號(Token)以及支付交易信息提交給支付網絡服務商。此步驟中的安全單元用于存儲安全數據或者用戶的隱私數據等,如用戶的銀行卡信息、交易關鍵數據等,確保敏感數據和用戶隱私的安全性和交易的不可否認性,安全單元以SIM卡、SD卡或單芯片的形式存在。
(2)支付網絡服務商完成Token轉換,得到用于實際支付的銀行卡號(PAN),收單系統負責產生和轉發交易信息以及收集、整理和提交結算數據等,轉賬清算系統實現賬務的轉接和結算功能。
(3)支付網絡服務商將PAN和支付交易信息提交給發卡行,發卡行驗證PAN完成支付,賬戶管理系統中銀行提供資金管理和賬務結算。
(4)在線支付的處理流程:Apple Pay通過第三方可信服務管理(Trusted Service Management, TSM)平臺Wallet相關信息可以實現在線移動支付安全管理等操作。
Apple Pay的線下支付物理上基于NFC技術相關標準,而NFC是兼容應用廣泛的ISO/IEC 14443標準的智能卡,所以Apple Pay移動支付就是將蘋果手機模擬成了一張銀行卡或者公交卡。線下交易中受理終端和移動終端的交互流程如圖2所示,用戶將移動終端放置于受理終端射頻場中,受理終端向移動終端主動發送命令,以獲取發起交易所需的數據信息,交易請求中包含了ISO/IEC 14443標準下的卡片相關找卡、選卡等流程,只有接收了移動終端的正確應答才能進行下一步支付操作,而目前Apple Pay的彈出界面也主要發生在此過程。

圖2 線下支付時受理終端和移動終端的交互流程
NFC手機支付采用射頻識別(RFID)技術,是符合ISO/IEC 14443國際標準的非接觸式智能卡,工作頻率為13.56 MHz,通常情況下的讀取距離為0~10 cm。目前市場上應用的法定證件(二代身份證、電子護照、港澳通行證等)、銀行借記卡、信用卡、門禁卡、公交卡、社保卡、醫療卡等智能卡的讀取模式均符合該標準的相關要求,如圖3所示。

圖3 ISO/IEC 14443常用的智能卡
ISO/IEC 14443國際標準中規定的工作狀態分別是:斷電狀態、空閑狀態、準備狀態、激活狀態、暫停狀態。各狀態及變換流程如圖4所示,具體說明如下:
(1)斷電狀態:非接觸式智能卡(蘋果手機)處于無能源狀態下,也就是沒有進入通信范圍內無法工作。
(2)空閑狀態:當非接觸式智能卡進入通信范圍內(0~10 cm)時,智能卡獲得能量,芯片被激活并進入空閑狀態,準備接收終端發出的信號(手機與受理終端之間雖然出現了射頻耦合,但是實際沒有數據交換)。
(3)準備狀態:當非接觸式智能卡接收到相關指令(REQA/REQB)并完成應答校驗后就會進入準備狀態,如果存在多卡在場時開始進行抗碰撞檢測,以確保通信過程的準確性,抗碰撞的過程是反復進行的。
(4)激活狀態:抗碰撞檢測通過后,智能卡進入激活狀態,該狀態下智能卡(移動終端)可以與讀卡器(受理終端)進行數據傳輸。
(5)暫停狀態:在激活狀態下發送HALT命令到智能卡時,便會進入暫停狀態,等待下一次通信激活指令WAKE UP再開始。

圖4 ISO/IEC 14443國際標準中的工作流程
采用自制的符合ISO/IEC 14443標準的讀卡器模塊進行指令測試,讀卡器周期性地發出REQA/REQB找卡指令。測試對比效果見表1所列,可見Apple Pay彈出的界面會被激活,即使在沒有進行數據交換的情況下也會出現此類情況;但是由于電磁場和指令雖然能夠激活Apple Pay支付操作,但不會進行下一步認證操作,所以用戶賬戶絕對安全,并且不會獲取乘客手機隱私信息。對其他安卓手機也做了相同的NFC指令測試,結果相同。

表1 操作流程對比
使用符合ISO/IEC14443標準的讀卡器(包括二代身份證讀卡器、門禁卡讀卡器、POS機以及地鐵刷卡閘機等)進行了各種NFC手機的接近測試,如圖5所示支付界面會彈出,但同樣也沒有支付信息的交互。

圖5 支付界面彈出情況
由于Apple Pay支付的激活方法是采用磁場和指令激活,因此在沒有收到應答信息的情況下就彈出支付界面,讀寫器無法識別該手機是否入場,所以從讀寫器端解決的難度很大,但可以從具有NFC功能的手機端進行分析和解決。目前解決方式有如下幾種:
(1)對于安卓手機和系統版本為iOS14(含)以上的iPhone手機,目前可以通過系統設置中的NFC功能開關進行選擇,在確定不使用NFC支付時關閉該功能,就不會隨意彈出支付界面,如圖6所示。

圖6 安卓手機和iPhone手機關閉NFC功能界面
(2)某些安卓手機可對NFC的開啟進行智能設置,例如華為手機在“華為錢包”中開啟“雙擊電源鍵喚起刷卡界面”,這樣在刷卡前雙擊電源鍵,手機才會打開NFC功能,可避免NFC功能被意外激活;刷完卡后手機自動關閉NFC,設置方法是“華為錢包—我的—便捷設置”中開啟“雙擊電源鍵喚起刷卡界面”,如圖7所示。

圖7 華為手機NFC智能開啟設置界面
(3)系統版本為iOS14以下的iPhone手機由于沒有系統開關,一旦綁定銀行卡開啟NFC支付后無法自動關閉,只能通過刪除卡片解除或參考專利《一種屏蔽蘋果手機NFC支付功能界面彈出的方法與流程》中通過調用底層庫文件PassKit加載一個已經配置好的本地憑證數據PKPass,在新建底層庫文件PassKit下的票據中添加控制器PKAddPassesViewController類,添加本地憑證數據PKPass,阻止憑證預覽界面彈出,從而屏蔽NFC支付功能界面彈出。
手機使用的NFC技術是物聯網應用中最常見、最基礎的物聯技術之一,可以很方便地實現物物相連。基于NFC的功能特點和工作模式,多個NFC設備可相互靠近和感應,如支持NFC的手機、可穿戴設備、筆記本電腦等。由于手機既可以模擬卡片(銀行卡、公交卡等),也可以模擬讀卡器讀取NFC卡片信息,因此模擬卡片的手機會感應到模擬讀卡器的手機,雖然雙方未進行任何通信,僅僅是感應觸發而已,沒有任何數據交流,不會產生交易行為,也不會造成支付方面的影響,但也會做出相應的觸發響應。很多時候這樣的誤觸發會對乘客的其他應用行為(如使用APP、掃碼支付、看視頻等)造成一定的干擾和不便,而目前的處理方法是從移動設備端入手進行相關配置來解決彈窗,當前安卓手機和系統版本iOS14(含)以上的iPhone手機比較容易通過NFC設置項解決,即在確定不使用NFC的時候關閉該功能,但是系統版本iOS14以下的iPhone手機無法通過自身系統配置解決,添加或刪除卡片操作又比較復雜,暫時無法找到比較快捷而完美的解決方法,今后將繼續探索更加合適的解決方案。