萬盛學電腦網

 萬盛學電腦網 >> 手機應用 >> iPhone >> Apple Pay安全性等最常見的15個問題

Apple Pay安全性等最常見的15個問題

   蘋果移動支付系統Apple Pay自推出以來就備受關注。然而不少人在關注其前景的同時,其安全性更是用戶所關注的一個焦點,畢竟這是關乎大家錢包的事情。而且,對於那些不使用iOS設備的用戶而言,Apple Pay能不能在Android或Windows Phone系統上實現也是一個值得關注的問題。

Apple Pay安全性等最常見的15個問題 三聯

  以下便是一些用戶比較關心的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如何控制支付功能的激活?

  只在收到來自的授權信息後才會允許支付交易進行。

copyright © 萬盛學電腦網 all rights reserved