當前位置:
首頁 > 新聞 > 非接觸支付中的中繼攻擊與近距離攻擊

非接觸支付中的中繼攻擊與近距離攻擊

手機製造商將非接觸式卡融合到手機之中,不僅使支付過程更加方便,而且可以根據需要增加更多金融服務功能。

非接觸支付中發生中繼攻擊的條件

所謂中繼攻擊,就是在兩個合法參與方A和B之間進行的一種攻擊,中間人C篡改A的消息發送給B或將B的消息篡改發送給A。 C這樣做的目的是為了獲得A或B的特權,這樣C就可以把A的錢通過B的非接觸式終端盜走。事實上,EMV(Europay,Mastercard和Visa)支付協議在其非接觸式的支付協議中,很容易發生中繼攻擊。

針對目前已有的手機電子錢包應用,例如:Google Wallet(最新消息,谷歌已經將之前的Android Pay和Google Wallet合二為一,推出了一個新客戶端——Google Pay),研究人員已經指出其存在著安全漏洞。竊聽、數據損壞、網路釣魚、重放和中繼等一系列數據攻擊方式,是通信安全領域的學者所研究的重點。一般來說,近距離通信指的是1m以下,攻擊者在獲得其通信數據之後,對於數據的分析和利用將直接引起攻擊。

近距離的攻擊模型

由於消息交換是一種已知的物理層機制,用於有效降低中繼攻擊的概率,這種機制通常被稱為距離邊界(DB)或近距離檢查(proximity-checking)。但是,距離邊界也有對應的攻擊模型。在遠程欺詐(DF)攻擊中,遠程惡意卡旨在偽造他的在場證據,這是為了讓這個幕後的遠程攻擊者完成此次攻擊。而不是讓DF攻擊者在沒有利用任何其他實體的情況下進行攻擊,你可以把它想像為DF的增強攻擊,我在本文稱為遠程劫持(distance-hijacking,DH)。

在一個被稱為PaySafe的協議中,會執行近距離檢查,以防止中繼。Paysafecard是一家網上領先的預付支付卡金融機構,也是歐洲非常流行的一種銀行匯票,其應用範圍非常廣泛,有遊戲、軟體、音樂、電影、通訊、娛樂業等。Paysafecard已成為全球主要的預付卡支付方式之一。

EMV中的非接觸支付攻擊的解決方案

非接觸式EMV協議主要有兩種:PayWave和PayPass,分別由Mastercard和Visa管理。本文中,我僅僅解釋PayWave中的支付卡和終端之間的交易,如圖1所示。

Visa的PayWave qVSDC協議

該卡包括私鑰PrivC,與它共享的對稱密鑰KM,而銀行卡則有證書授權CA簽署的銀行公鑰PubB上的證書CertPrivCA(PubB),在卡的公用密鑰PubC上有銀行CertPrivB(PubC,SSAD)簽名的證書以及卡上被稱為SSAD的靜態數據的哈希,並包括例如卡上的號碼(PAN)和有效日期。真實的使用者具有證書權威CA的公鑰PubCA,因此它可以從Prbb證書中提取PubB,然後使用PubB從證書P中提取證書的公鑰PubC及其靜態信息rivB(PubC,SSAD)。此時,讀卡器啟動通信,並在第二條消息中發送卡支持的支付應用程序身份(AID)列表。當真實的使用者選擇了其中一個信息時,卡片就會發送PDOL(處理選項數據對象列表),這樣真實的使用者就能夠發送正確指示的信息。此時,真實的使用者生成一個32位隨機數UN。然後它發送GPO(GET PROCESSING OPTIONS)命令,我將它命名為「如果要用這個隨機數UN,就需要付錢」。然後,真實的卡會首先生成一個32位隨機數nC,然後它生成一個會話密鑰KS,作為其在KM下的應用程序事務計數器(ATC)的加密。該卡應該生成「密碼」(又稱AC),真實的使用者可以將該密碼發送給銀行以發出適當的付款信號,密文AC是在包括ATC,隨機數UN和數量的一系列數據的KS下輸入的MAC。該卡還產生了「簽名的動態應用數據(SDAD)」即卡上的消息包UN,金額,貨幣幣種,ATC,nC等等的簽名。最後,在我測試中的第6條消息中,卡片發送密碼AC ,SDAD以及ATC,PAN和AFL(即卡片上記錄的位置)給真實的使用者。之後,通過使用AFL,使用者能夠請求證書。此時,真實的使用者使用它們來檢查簽名SDAD和內部子消息的一致性(例如UN,金額等)。

例如,有人提出了一種名為PaySafe的非接觸式EMV的改進版本(見圖2)。主要思想是挑戰真實的使用者在響應階段檢查卡片與讀卡器的近距離程度。因此,PayWave GPO質詢響應分為兩部分:首先,卡片以靜態數據加上它的隨機數發送,然後卡片生成密碼SDAD並發送它們。第一部分的往返時間由真實的使用者測量,如果它大於一個確定的界限,則該卡被認為是遠處的(因此可能是中繼)並且協議被終止。如圖2所示,從PayWave到PaySafe,幾乎沒有其他變化,不過在PaySafe中比在PayWave中更早完成響應。

PaySafe協議使用ProVerif進行了正式驗證,並顯示正確或安全的w.r.t.中繼攻擊。萬事達似乎在其新的但未公開的v3.1規範中採用了抵制措施,這種對策似乎類似於PaySafe1。但是,正如我下面所解釋的,我發現PaySafe對所有類型的中繼都不安全,因此,如果萬事達確實部署了這個措施,那麼這不足以實現其新的電子支付和非接觸式系統的中繼保護。

PaySafe協議中的中繼和付款欺詐

假如在超市的購買高峰時間裡,攻擊者和他的同夥排隊在支付終端付款。此時,受害者也正在另一個終端上付款。此時,如果兩者的距離小於10厘米。攻擊者就可以使用一些攻擊放大設備靠近支付終端,此時受害者與讀取器之間的協議就會啟動。通過這種方式,受害者的非接觸式卡片就開始與讀取器運行協議傳輸,包括運行時間。如果當受害者遠離讀取器後,基於NFC的協議應該會失敗。不過中繼攻擊仍然會繼續,通過模擬讀卡器繼續讀卡。攻擊者將來自受害者卡(SDAD,AC和證書)的最後三條消息通過中繼的手段發送到讀卡器。請注意,此時,協議正確完成,中繼攻擊將成功,這意味著攻擊者可以用他人的卡支付,即使他們的卡發出最終的支付無效密碼AC並驗證數據SDAD時,即使他們距離終端T1數米。所以,攻擊只需要在中繼開始前讓受害者靠近終端幾秒鐘即可。

所以,通過中繼保護PaySafe進行中繼的欺詐性付款仍然是可能的,PaySafe可能無法完全解決EMV中繼問題。

如何實施中繼保護

將近距離檢查與認證相結合,這樣潛在的攻擊都會被考慮到。但PaySafe並不是要抵制遠程欺詐(DF),事實上,在PaySafe計時器中的響應並不取決於真實的使用者。所以,PaySafe的優點是通過使用符號安全驗證工具顯示了這個DF。並且,研究者為這個DF提出了一個解決方案,我在這裡將其稱為PaySafe 。

在PaySafe中要實施近距離攻擊的防護,就要用到PaySafe ,在PaySafe 中,卡片在付款之前必須等待接收UN。但是,卡可以從MSB(最低有效位)到LSB(最低有效位)逐位採樣UN。所以,對於攻擊者來說,不需要等待讀完UN的所有部分,只要每個人在他的結尾讀完UN的位,他就可以一個接一個地發送UN的位。

但是,目前還不確定PaySafe 對於距離欺詐是否是安全的,因為該方法並不能捕捉到UN隨機數的逐位抽樣。因此,以上討論的只是個理想的模型而已。

其他的遠程欺詐解決方案

在本質上,如果近距離欺詐是PaySafe 所能解決的話,那麼在定時的響應中,卡片應該發回UN,例如,以真實的使用者發送它的方式按照反向位順序從LSB到MSB回復UN。這顯然降低了我在上面提到的DF成功的可能性,請注意,攻擊者可採取更複雜的措施來發起攻擊,即通過通道選擇(CRCS)。

雖然PaySafe 未能實現DF安全性,但PaySafe 還有其他防護功能,例如,防護很明顯存在遠程劫持(DH)攻擊和網路欺詐攻擊。

為了發起網路欺詐行為,在計時階段開始之前,潛在的攻擊者會生成nc並將其提供給攻擊者。如果攻擊者A發現距離終端較近,然後通過定時響應,通過不定時的部分,攻擊者A將所有必要的信息發送給證明者,以便這個人產生SDAD,AC,並將其交給A。然後,A將其傳遞給真實的使用者。在所有偶發事件中,通過檢查最新的隨機數,攻擊者就無法自行通過協議。在本文中,我沒有提到解決這個TF攻擊的方案,因為它不是基於PaySafe 結構的一種解決方案。所以,在EMV中,我並不認為需要分析DH。

類似的PaySafe的解決方案可用於EMV中的中繼攻擊保護。在圖3中,研究者為抵禦PaySafe的中繼攻擊找到了一個被稱為PaySafer的協議。在PaySafer中,使用者發送「GENERATE AC」命令後,它會等待一段時間,這個時間就類似於卡片生成AC和SDAD的時間。不過缺點是市場上所有的卡都必須在這個特定的允許時間段內實現AC和SDAD,這將需要EMVCo普遍實施。我承認這是一個很大的問題,但我相信這不是不可能實現的。

只有等待一段時間過後,真實的使用者才會將新命令「SEND AC」發送給卡片,並伴隨著一個隨機數UN2。該卡以UN2發回的AC,SDAD和UN2 *作為響應,不過要做些處理,即通過改變UN2中的隨機數的位的順序來獲得UN2 *。以這種方式發送UN2 *和UN *對於中繼保護來說不是必不可少的。但是為了解決上面的PaySafe中的近距離欺詐攻擊,所以在我的PaySafer中,我的目標是進行DF防禦,那麼UN需要由虛假證明者進行處理,即至少以反向隨機數的位的順序作為UN *,在第一次定時響應期間後,UN2也需要在第二次定時響應周期中以反向隨機數的位的順序作為UN2 *發回。如果沒有進行DF防護,你可以從PaySafer(及其星號對應部分)中刪除UN和UN2。

PaySafer與PaySafe大部分相同,除了使用第二次計時輪和使用UN *,UN2,UN2 *。

目前,Mastercard v3.1的EMV規範已經開始實施。不過研究者還是提出了以下改進建議,來將攻擊風險降到最小:

1.在EMV中加入近距離檢查;

2.開啟新的遠程欺詐安全防護;

圖4中所示的防護機制與PaySafe不同,這種設計旨在基於共享密鑰sym運行對稱密鑰DB協議。不過需要預先在卡和使用者之間創建該密鑰,方法是基於卡的密鑰sk和公鑰pk運行密鑰協商協議(KA)。不過,也有人建議在這個距離邊界運行之後再進行支付。

總結

於EMV最新標準中的近距離檢查可能被MasterCard和EMVCo所接受,許多新的安全解決方案都還未經過安全驗證。比如圖4所示的解決方案的一個問題就在於,所有EMV讀取器都必須實現與支付結合運行的DB協議,這是一個很大的問題。我對這個解決方案並不完全滿意,就像PaySafe一樣只有在支付之前才會發生近距離驗證,並且在此期間,中繼仍然是可能的。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

信息的利用
「蛛」聯璧合?LUNAR SPIDER活動中發現WIZARD SPIDER的TrickBot定製模塊

TAG:嘶吼RoarTalk |