現今的交易行為從以往的以物易物、貨幣交易,乃至發展到今日的電子商務、行動商務,考驗著系統設計者的資安意識。本文將介紹NFC的基礎概念,並從電子商務所使用的EMV、行動支付等交易機制著手,結合情境探討現行的NFC安全架構風險,以及因應的預防方式。
EMV智慧卡(也稱為Integrated Circuit Card,IC卡)的資訊是儲存在積體電路中而非早先所使用的磁條(例如電話卡),但大部分EMV卡背亦可以與磁條向下相容。晶片可以與插入式讀卡機交換資料,非接觸式智慧卡還可以使用RFID技術在一定範圍內交換資料(圖1)。
|
▲圖1 EMV交易流程。 |
目前EMV標準由EMVCo機構管理,EMVCo最初由EMV三大組織於1999年2月共同成立,目前由Visa、MasterCard、JCB、美國運通、中國銀聯和Discover共同負責。主要任務乃是發展、制定與主管維護EMV支付晶片卡的規格、標準與認證,監督並確保此標準是否符合全球的安全互通需求,與其作為付款環境的可用性。
行動支付
行動支付是指使用行動裝置進行付款的服務。在不須使用現金、支票或信用卡的情況下,消費者可使用行動裝置支付各項服務或數位及實體商品的費用。
NFC的支付方式經常在實體商店或交通設施中使用。消費者須使用配備有智慧型卡的行動電話,並將行動電話置於感應器模組前。大多數的交易並不需要額外授權,但也有部分交易在完成前要求輸入密碼或使用指紋授權,以達成安全機制,再從預付帳戶或銀行帳戶中扣除支付款項,或計入電信費用中收取。
結帳時,使用虛擬卡號支付,減少實體卡號暴露給有心人事盜用,可有效防止資料外洩與攻擊的支付技術。國際市場上較為知名的如Google的Google Pay、蘋果(Apple)的Apple Pay、三星(Samsung)的Samsung Pay均有使用NFC透過Token(隨機虛擬的代碼)技術傳輸的概念,來設計該公司的信用卡行動支付功能。
如圖2所示,利用Token取代傳統卡號的帳號資訊,店家收到刷卡要求時,刷卡機會向發卡機構提出使用者的信用卡代碼請求授權,授權獲准後雙方以Token交流,只要核對手機裡的Token和刷卡機收到的Token一致,就可確認雙方身分,並開始進行交易。
|
▲圖2 利用Token的交易機制。 |
NFC安全發展史簡介
NFC是由Nokia、Sony與Philips(後來的NXP Semiconductors)於2002年共同研發的技術,用於各種資訊交換,如電話號碼、圖像、MP3檔、數位式授權等等。這種交換可在兩個具有NFC功能的電子設備(如手機)之間進行,或於具有NFC功能的手機和與其相容並位於近距離內的RFID晶片卡或讀取器來完成。後來在2004年,成立了NXP論壇,藉由率領業界相關人士互相合作,以推動NFC技術標準化,將該技術進一步發展。
在2015年,有研究者提出基於移動非接觸式支付應用程序Google Wallet之基於軟體的中繼攻擊可行性,例如透過外部(非接觸式)插槽存取設備的安全元件,而不是透過內部介面從設備的應用處理器進行存取。同年,學者Fan等人提出了一種基於OSI參考模型的NFC安全模型。儘管使用NFC技術可以利用其短距離傳輸的特性,降低可能的安全風險。然而,在當時的架構下,使用NFC傳輸資料仍然無法斷言是絕對安全的,於是Fan便提出了NFC技術對應於OSI不同層級中可以採取的保護措施。
後來,隨著NFC技術的進展,在遊戲開發的領域也有相關設計,而解決可能的作弊行為,對遊戲公司來說就成為了必須考慮的議題,該遊戲開發商便對於應用NFC製作的遊戲研究,確定了基於活動的NFC對象、對作弊者的可能手法,以及保護遊戲的四種現實和成本效益的安全要求。
後續研究則進一步在NFC應用於經濟的領域做探討,現今最流行的交易形式之一就是透過行動設備的行動支付,由支付交易的中繼攻擊開始,就現有的EMV和設備實施、分析由中繼攻擊及惡意的木馬應用程式兩種攻擊模式下,使用時的安全性。經過對兩種攻擊模式的樣態分析,證明無論是在智慧卡晶片或安全元件上的應用程序,均與使用它們的環境一樣安全。
而後在2017年,亦有研究者針對NFC的傳輸過程提出了一種演算法SOFT,透過NFC標籤在兩個NFC設備之間以多個週期傳輸數據,以處理NFC標籤的儲存器限制。並發現讀╱寫模式的一個重要特性是,寫入設備在被動式標籤(即沒有供應電源的標籤)上寫入任何數據時,可以直接寫入,不會留下任何跡證或數位證據。
EMV支付交易潛在危機
行動支付與EMV卡、NFC技術相結合已成為了近年的趨勢,以下說明EMV支付可能遇到的問題。
交易詐欺
交易詐欺是一種特殊形式的身分盜竊,涉及未經授權的情況下收取其他信用卡訊息,以便向帳戶收取購買或從中移除資金。從技術角度而言,有各種方法可以獲取這類訊息,例如竊取卡片發行資訊、社交工程或從發卡機構竊取個資。
對手機木馬的應用重定導向支付憑證
攻擊者可以使用特殊形式的中間人攻擊從遠端利用受害者手機的安全元件。其中Android的主要問題是寬鬆的更新策略,Google使用無線(OTA)更新流程,不定期為其設備提供錯誤與安全修復程序。其他供應商則用自己的方法更新,並自行決定發布更新時機。安全漏洞可能長期存在,然後才能解決並派送到受影響的設備,而造成零時差攻擊。
從應用程序存取安全元件需要透過Android的系統框架、系統服務、操作系統和硬體驅動程序的多層傳遞請求,直到執行實體層存取。因此,簡單的中間人攻擊就有可能造成資安漏洞。假設這種攻擊是成功的,它將給攻擊者帶來與網路連接之中間人攻擊相同的風險。