蘋果移動支付系統Apple Pay自推出以來就備受關注。然而不少人在關注其前景的同時,其安全性更是用戶所關注的一個焦點,畢竟這是關乎大家錢包的事情。而且,對於那些不使用iOS設備的用戶而言,Apple Pay能不能在Android或Windows Phone系統上實現也是一個值得關注的問題。
以下便是一些用戶比較關心的Apple Pay最常見問題的詳細解答:
問題1:Apple Pay是什麼,包含哪些必備組件?
Apple Pay是公司的移動支付和數字錢包產品,結合了令牌化和NFC技術,使得用戶可以完成應用內(in-app)和非接(contactless) 移動支付。目前只有最新一代產品(iPhone 6/6+等)對該功能有支持。不同於公司更早時推出的iBeacon產品,Apple Pay不需要專用的線下非接POS終端,在現有的POS終端上就可以完成支付。 Apple Pay在2014年9月份正式宣布,10月發布支持該服務的系統更新,目前僅在美國推廣使用。
Apple Pay是一個整合了各種技術以及資源的產品,其構成比較復雜,核心組件包括:
• Secure Element
簡稱SE,就是我們常說的安全元件。是防物理攻擊的電子元件,其內部包含微處理器、存儲以及加解密 硬件等,可獨立使用或嵌入到其他設備中提供高安全服務。一般來說,SE是普通人所能接觸到的最高安全保證級別的硬件/軟件設備了。
Pay使用的即是eSE這種形式,具體來說就 Pay使用的是經過工業標准認證的、運行Java卡平台(JCP,Java Card Platform)的、兼容金融行業電子交易要求的安全元件。SE是 Pay安全保障的核心,本質上來說,所有和Pay相關的支付處理和安全保障都是由SE負責的,其他組件只是起到輔助作用。
• NFC controller
NFC控制器,在 Pay的場景中,NFC控制器相當於一個路由器,它同三個不同外部實體連接:外部近場設備(例如:銷售終端POS,Point-Of-Sale)、應用處 理器(AP,Application Processor)以及,進而形成兩個通信通道:應用處理器到的通信通道,以及POS到之間的通信通道。
• Passbook
是在Pay產品推出之前就已經存在的服務, Pay推出之後,對其功能進行了擴充,使得其可以為 Pay添加和管理信用卡以及借記卡,當然還可以查看已添加的卡的信息、銀行的隱私策略以及最近交易明細等等。對 Pay來說,相當於的管理客戶端,中添加和刪除信用卡或借記卡信息都可以經由服務進行。
• Touch ID
也就是iPhone的指紋識別服務,其目的在於利用指紋識別使得訪問設備更安全、更快速和更容易。不是對設備安全密碼的替換,而是讓用戶可以使用復雜的設備密碼,同時不損失便利性。換句話說,用戶可以使用復雜的密碼來保護設備,同時還可以使用來方便的訪問設備。
• Secure Enclave
是iOS設備內部的安全執行環境,可以用來進行一些敏感信息的處理。例如:的指紋成像傳感器獲取的數據需要傳遞到來進行實際的指紋識別過程。對於 Pay來說,負責管理認證過程和使得支付交易可以進行。
• Pay Servers
Pay服務器,其用來管理中的信用卡和借記卡的狀態,以及存儲在中特定於設備的賬戶信息。 Pay服務器同時同設備以及支付網絡(Payment Network)中的服務器進行通信,對於應用內支付來說, Pay服務器還負責使用特定於商戶的密鑰,對 Pay產生的支付憑據(Payment Credentials)進行加密,然後將其發送到實際的商戶服務器進行支付處理。
問題2:是否就是ARM TrustZone?
A7以及後續系列的應用處理器封裝在一起的協處理器,它有自己的安全引導過程和個性化的軟件更新過程,並且同iOS系統所在的應用處理器分離。 使用加密(使用臨時產生的密鑰加密)的物理內存(和應用處理器共享的物理內存的一部分空間)進行業務處理,並且有自己的硬件隨機數產生器。同應用處理器之間通過中斷驅動的mailbox以及共享內存來進行通信,對外提供數據保護密鑰管理相關的所有密碼學服務。
ARM TrustZone技術本質上是一種虛擬化技術,通過將處理器狀態分為安全和非安全狀態,並且配合其他總線以及外設上的安全屬性來實現遍布整個硬件系統的 安全。同一樣,ARM TrustZone也有自己的安全引導過程以及個性化的軟件更新過程,也有自己的硬件隨機數產生器(以及其他類似的安全外設),並且同應用處理器之間也是 通過中斷驅動的Monitor模式以及共享內存來進行通信。可以看出,所提供的安全特性並沒有超出ARM TrustZone技術的范圍。
不過就的官方信息來說,從未提過就是ARM TrustZone安全擴展技術的實現(雖然根據官方文檔中關於幾個安全通信通道的描述來看,很可能是ARM TrustZone技術的一種實現),因此我們還是無法斷定究竟是獨立的協處理器還是應用處理器的一種運行狀態(兩種架構都可以提供必須的安全特性),這個有待於公布更多的的實現細節,就目前而言,可以得出的結論是:Apple Pay所提供的安全特性,使用ARM TrustZone技術同樣可以實現。
問題3:Apple Pay如何保證Secure Enclave和Touch ID之間的通信安全?
我們知道Touch ID成像陣列獲取的指紋數據需要交由Secure Enclave進行實際的匹配處理,而在Apple Pay的實現中,Touch ID傳感器通過串行外設接口總線(Serial Peripheral Interface Bus)同應用處理器進行連接,然後再連接到Secure Enclave,換句話說,指紋傳感器獲取的指紋成像數據需要經由應用處理器中轉,這就帶來了安全隱患:惡意程序可以截獲Touch ID傳感器產生的數據。
Apple Pay通過簡單的方式實現了指紋數據的安全傳輸:首先Touch ID傳感器和Secure Enclave會預置一個共享密鑰,然後利用該共享密鑰協商一個會話密鑰,再用協商獲得的會話密鑰使用AES-CCM算法對傳輸的數據進行加密,這樣可以 確保應用處理器無法讀取指紋數據,保證了整個指紋識別過程的安全。
問題4:Apple Pay如何保證Secure Enclave和Secure Element之間的通信安全?
前面介紹NFC控制器的時候已經提到,Secure Enclave和Secure Element之間的物理通信通道需要經過NFC控制器中轉,而兩者之間是沒有直接的物理連接的,具體就是Secure Element同NFC控制器連接,然後NFC控制器同應用處理器連接,而沒有提到NFC控制器如何同Secure Enclave連接(Apple的官方文檔如此說,這裡可以看出Secure Enclave很有可能不是一個獨立的協處理器),那麼既然Secure Element和Secure Enclave之間需要經由應用處理器中轉,那麼也就必須要考慮到通信安全問題。
實現方式同Touch ID和Secure Enclave通信的過程類似,也是通過共享配對密鑰的方式來對通信內容加密,不過因為涉及到了Secure Element,所以共享配對密鑰的預置比較復雜一些,具體就是:共享配對密鑰是在生產階段預置的,而且該密鑰由Secure Enclave利用自己的UID密鑰和Secure Element的唯一標識作為輸入產生,然後在工廠內安全的傳輸到外部硬件安全模塊(HSM,Hardware Security Module),再注入到Secure Element中。實際使用過程中,Secure Element和Secure Enclave之間的通信使用基於AES的密碼學算法進行加密,而且還使用了密碼學機制防止重放攻擊(replay attacks)。
問題5:Apple Pay如何保證Secure Element和POS之間的通信安全?
嚴格來說,傳統意義上Secure Element和POS終端之間的通信是不需要保證安全的,因為兩者必須靠近才能發生通信,實際上相當於認證了人和卡的存在。而對於Apple Pay來說,由於應用處理器也會參與其中的某些步驟,因此情況稍微有些復雜,Apple Pay需要有3個附加的保障機制來確保非接觸式交易的安全:
• 首先:Apple Pay確保只有經過用戶的授權,例如:通過了指紋識別或輸入了設備密碼,非接觸式交易才可能發生,否則裝備了Apple Pay的設備只要處於RF通信場中,就可能在用戶無意識的情況下發生交易。
• 其次:Apple Pay必須確保只有來自外部非接觸式POS終端的支付請求才能被標識為非接觸式交易,這主要和交易費率相關(後面會對其進行說明),通過外部非接通信方式 進行的Apple Pay交易同應用內的Apple Pay交易費率是不同的。
• 最後:如前面所說,非接觸式支付的通信是不加密的,因此Apple Pay通過NFC控制器的卡模擬模式確保非接通信通道交互的數據,因此無論如何不會暴露給應用處理器。
問題6: Pay如何避免對支付交易回放攻擊?
Pay避免支付交易回放攻擊的方法是特定於交易的動態安全碼(Dynamic Security Code)。所有自中的支付t發起的交易都包含一個附帶有特定於交易的動態安全碼的設備帳號(Device Account Number)信息。動態安全碼是一次性的,並且使用中的支付t在個人化時預置的密鑰(該支付t和發卡行共享)以及其他信息進行計算所得,這些信息包括:
• 每次交易都會增加的單向計數器的值;
• 支付t產生的隨機數;
• POS終端產生的隨機數—NFC交易時適用;
• Pay服務器產生的隨機數—應用內交易時適用。
動態安全碼在交易時被提供給支付網絡(Payment Network)和發卡行,可用來對交易進行校驗。根據交易類型的不同,動態安全碼的長度是可變的。不過,雖然使用了動態安全碼進行保護, Pay在正式推出後的確發生了重復交易的問題,目前還不能判斷是因為何種原因導致了重復交易的問題。
問題7:Apple Pay如何控制支付功能的激活?
只在收到來自的授權信息後才會允許支付交易進行。Apple Pay的內有一個特別設計的、專門用來管理Pay的Applet,支付交易是否可以進行即是由Applet該進行控制。
當用戶授權一個交易後,簽發一個有關認證方式和交易類型(非接觸式交易或應用內交易)的數據,然後綁定授權隨機數(AR,Authorization Random)給。授權隨機數AR是用戶第一次部署信用卡的時候在內部產生、並且使用的加密和防回滾攻擊(Anti-rollback)存儲機制保存。當AR產生後,利用同之間共享的配對密鑰將其安全的分發給。授權隨機數還有其他用處,一旦接收到新的AR值,就將所有已添加的卡刪除,這個機制可以用來擦除預置的卡信息。
問題8:Apple Pay中運行何種操作系統?
Apple Pay的需要能處理產生的指紋識別數據,安全存儲敏感信息、還需要具備對稱、非對稱等密碼學計算等能力,其功能已經比較復雜,我們都知道越精簡的系統越容易保證其安全, 而越龐大的系統越不容易。系統已經比較復雜,因此其上運行的操作系統是何種類型是我們要關注的。從蘋果官方文檔可知,運行的是一個L4家族的微內核操作系統,當然對其進行了一些定制。
L4微內核操作系統是一個操作系統家族,微內核操作系統是一種操作系統的設計風格,目的在於將操作系統內核盡可能的小,使系統架構簡單,為了保證 系統資源的安全性,微內核操作系統特別強調對內核資源的訪問控制,通過諸如能力集管理等機制,控制系統內所有資源的訪問,因此很適合安全領域應用。
問題9:Apple Pay中是否運行一個GP TEE?
GlobalPlatform(簡稱GP)TEE(Trusted Execution Environment),是國際標准組織GP,在分析了移動安全需求場景以及現有硬件安全技術的基礎上,制定的可信執行環境標准。TEE在移動設備的安全執行環境(例如ARM TrustZone)中執行,是與設備上的Rich OS(例如Android等)隔離的運行環境,並且可以給Rich OS提供安全服務。GP TEE是一系列規范的總稱,目前正式發布的主要有:Client API規范:用於Rich OS訪問TEE、Internal Core規范:TEE的內部接口以及可信應用(Trusted Application)模型定義、可信用戶界面規范(TUI,Trusted User Interface):用於安全的給用戶呈現用戶界面,防止釣魚等形式的攻擊。由於其符合市場需求,因此GP TEE是目前熱門安全技術標准。
通過上述GP TEE的介紹可以看出,所對外提供的功能同GP TEE很相似,但是目前沒有任何信息表明中運行的是GP TEE兼容的實現。不過,隨著作為GP組織的Full mr加入到該組織中,以及要求給iOS開放更多的安全功能的呼聲越來越高,可以預想,實現完整的GP TEE規范是指日可待的事情。
值得一提的是,GP TEE標准一經推出,就獲得了國內相關金融安全組織和機構的重視。目前國內對該標准的研究已經經過多年的發展,對GP TEE不利於本地化和行業合作的缺點已經進行了充分的分析,並啟動了國內標准(例如:中國銀聯的TEEI和N3TEE規范)的制定工作,目前相關標准已經 基本成熟,預計2015年就會面向全行業公布。
問題10:何為Apple Pay的有卡和無卡模式?
有卡模式(Card-present)和無卡模式(Card-not-present)是支付卡交易的兩種模式,其中無卡模式是指在進行支付交易時,持卡人沒有或不能通過物理的方式出示卡片給商戶,因而商戶無法通過可視的方式檢查持卡人的交易方式,一般來說通過電子郵件、電話、傳真或互聯 網等方式進行交易的場景就屬於無卡模式。有卡模式與此相反,即持卡人必須物理的將卡片呈現給商戶進行交易的方式。無卡模式由於持卡人不直接出現, 很容易通過卡片復制(特別是磁條卡)的方式進行欺詐交易,風險要高於有卡模式,因而兩種的交易費率是不同的。
對於Apple Pay來說,通過NFC和POS之間非接通信通道進行的交易被視作有卡模式,而同Apple早前推出的iBeacon支付類似,Apple Pay的應用內支付被視作無卡模式。不過,就我們的分析而言,無論是Apple Pay的NFC非接觸式交易還是應用內支付,交易都是從Secure Element中發起,且用戶都需要使用Touch ID或密碼的方式進行授權才能進行交易,而且,由於Apple使用的是EMVCo的令牌化方案,因此整個交易過程中都不會有真正的PAN(Primary Account Number)出現,因此將Apple Pay的應用內支付視為無卡模式是很難理解的,或許未來所有的Apple Pay交易都被視為有卡模式也是可能的。
問題11:Secure Element中的支付Applet是如何個人化的?
向Apple Pay中添加信用卡或借記卡的過程其實就是支付Applet個人化的過程,Apple Pay主要使用兩個服務器端調用(同銀行或卡發行商)來進行個人化的處理:卡片信息檢查(Check Card)、連接&預置(Link and Provision)來驗證、承認將要添加到Apple Pay的卡信息,並且預置卡信息到Apple Pay設備中。目前用戶有兩種實施該流程的方法:通過Passbook和通過iTunes。通過iTunes的方式因為有些支付卡或借記卡的信息輸入和用 戶身份校驗可以自動進行,因此較為簡單,不過,無論哪一種方式都涉及到卡片信息錄入、用戶身份校驗、Apple Pay許可條款承認以及將卡片信息同Secure Element綁定的過程。
Apple Pay的核心組件Secure Element是GP卡規范兼容的Java卡,其中可包含多個對應不同發卡行或支付網絡實體的安全域(Security Domain),這些安全域同對應的管理方共享用於驗證管理方身份和安全通信的密鑰。來自發卡行或支付網絡的個人化數據,使用這些共享密鑰進行加密,可以 安全的被分發到對應的安全域中,由此即可完成支付Applet的個人化過程,這和傳統支付卡的個人化過程比較類似。
對於那些在Secure Element中還不存在的支付Applet是如何進行部署的,目前還沒有較為詳細的介紹資料,Apple官方文檔中對其有過簡單的描述,但是由於信息太 少目前還無法進行更進一步的分析,目前只能判斷新安裝的支付Applet是通過OTA方式部署的。
問題12:Apple Pay是否兼容EMVCo Tokenisation規范?
我們得承認,雖然幾乎所有的國外或國內的分析文章都在有意無意的提到Apple Pay實現了EMVCo的規范,但是到目前為止,沒有任何或EMVCo的官方資料提到Apple Pay實現了EMVCo的Tokenisation規范,那麼這種論斷是否令人信服呢?
EMVCo的Tokenisation規范是2014年3月推出的(該技術框架起初由Visa、MasterCard和AmEx推出,後考慮到行業合作的問題遂移交給EMVCo負責),其特點是:以令牌(令牌的格式基本同現有PAN格式相同,可以在傳遞PAN的地方使用令牌)來替代 PAN、同現有支付行業的報文格式以及業務流程基本兼容、並引入了新的角色:令牌服務提供商(TSP,Token Service Provider)和令牌請求者(Token Requester),其中令牌請求者是那些發起請求將用戶的PAN映射為令牌的實體,而TSP則是提供此項映射服務的實體。另外,在一些應用場景,例如:通過NFC設備在POS上支付(類似於Apple Pay的非接觸式支付),移動錢包/電子錢包的電子商務支付(類似於Apple Pay的應用內支付)兩種場景,EMVCo的規范要求提供Token Cryptogram來保證交易的安全。不難看出,EMVCo的規范目的在於減少欺詐行為、以及降低新技術對現有支付行業生態圈的影響。
而添加卡到Apple Pay的過程非常類似於EMVCo的請求令牌的過程,此時扮演了“令牌請求者”的角色(EMVCo的規范明確提到,使得移動支付可以進行的設備 制造商是令牌請求者的主要類別之一),銀行或支付網絡扮演了令牌服務提供商的角色。另外,為 Pay交易提供基礎安全保障的動態安全碼,同EMVCo規范的Token Cryptogram產生方法以及使用方式也是非常相似的。再聯想到Visa和MasterCard在Apple Pay推出後紛紛公開自己的令牌化服務,我們有理由相信, Apple Pay實際上是實現了EMVCo的Tokenisation規范,只是什麼時候會公布具體細節,目前還不得而知。
問題13:Apple Pay如何利用Secure Element盈利?
我們知道,傳統的卡片支付采用的是6-3-1或7-2-1的分成模式,其中發卡行獲得最多的份額,結算機構收取最小的份額,而收單行獲取中間大小的份額。 Pay為移動支付提供了一個新的通道,因此裡所應當,會從整個蛋糕中分得一小塊。從目前公開的信息來看,Apple Pay分得的份額是來自發卡行的那塊蛋糕,具體就是對於信用卡交易,每次收取交易金額的0.15%,而對於借記卡交易,收取固定收 益,即每次交易收取0.5美分。
可以看到,發卡方將自己的收益的小部分讓給了,不過沒人願意將自己的蛋糕輕易分給別人,有消息顯示,令牌服務提供商 (TSP,Token Service Provider)發行令牌時,發卡行需要給Visa和MasterCard這樣的TSP支付費用,例如:每發行一個令牌,MasterCard收取50 美分,而Visa收取7美分。最近有消息顯示,Visa為了促進令牌交易模式的發展,已經准備免除發行令牌的費用了。
雖然看起來Apple Pay分得的份額很少,不過移動支付是非常龐大的市場,而且還在快速發展中。根據央行消息,2014年第三季度國內支付業務統計數據顯示,第三季度移動支 付業務12.84億筆,金額6.16萬億元,同比分別增長157.81%和112.70%,發展勢頭非常好。如果將 Apple Pay的分成模式放在國內市場,可以看到整個智能設備行業將會因此額外獲得巨額收益,這會極大的促進移動支付技術的發展。
問題14:Apple Pay是否足夠安全?
Apple Pay主要的支付流程處理是在Secure Element中進行,其安全程度基本等同於現有的基於芯片卡的支付,而用於激活Apple Pay交易的用戶身份認證過程是在中進行。
一般來說,雖然沒有安全,但是對於認證手機用戶的身份來說已經足夠了,畢竟傳統的有卡交易也只是對持卡人進行簡單認證(例如檢查簽名)。如果交易金額較大,Apple Pay也需要用戶在商戶的專用設備輸入PIN(Personal Identification Number)進行認證(這和傳統芯片卡交易完全一致)。
顯然,我們可以很容易得出結論:Apple Pay是非常安全的,否則也不會有這麼多金融機構和支付機構為其搖旗吶喊了。
問題15:“Android Pay”是否可以做到同Apple Pay一樣安全?
現在終於到了很多人都關心的問題了: “Android Pay”是否可以做到同Apple Pay一樣安全?基於我們先前的分析,這個問題是不難回答的:在整個Apple Pay的支付過程中,主要的支付數據處理全部在內進行,而激活支付流程的處理是在中進行,iOS手機操作系統僅在某些數據傳輸過程中才參與其中,而且由於經由其傳輸的數據(指紋數據和認證結果數據)都經過加密,手機操作 系統對傳輸數據內容一無所知。
因此,手機操作系統本身的安全性對整個Apple Pay的安全性很難構成威脅,無論對iOS系統還是Android系統,或是其他系統來說都是如此。因此我們可以得出結論:只要手機操作系統控制范圍以外的硬件和軟件系統遵循必要的安全原則設計,“Android Pay”可以做到同 Pay一樣安全。