關鍵在於「有效日期」同其他交易資料之間的完整性保護並不一致。
真正的過期卡仍然會使用內置的合法密鑰,產生 EMV 流程預期的簽名及動態交易密碼(transaction cryptogram)。中繼裝置並沒有偽造這些密碼,也沒有直接破解卡片的加密機制。問題是,測試中的終端機有效日期,似乎未有被充分加密綁定到之後用於授權的卡片資料和交易資料。
換句話說,可以出現以下落差:
因此,這次攻擊針對的不是加密本身,而是不同資料欄位之間的關係。如果協議沒有將所有會影響決定的欄位緊密綁定,一個簽名或交易密碼即使是真實有效,另一個獨立欄位仍可能被人篡改。研究人員將此形容為 Visa 感應付款流程中的中間人篡改弱點。
這就造成「終端機看到的日期」和「發卡行實際可以驗證的資料」之間出現不一致。只要終端機收到未來日期,而發卡行又收到其他方面看來真實有效的交易證據,系統便未必有一個可靠、而且經過一致驗證的訊號,去確認實體卡其實已經過期。
現有報道指出,同一種有效日期替換方法,在測試中的以下配置並未成功:
較穩妥的結論是,這些受測配置對相關資料的綁定或交叉驗證,比受測的 Visa 配置更有效地拒絕了這次特定篡改。不過,現有來源沒有提供逐個 Kernel 的完整協議分析,未能確定每個系統究竟是哪一項欄位綁定或驗證步驟令交易失敗。
同樣要留意,這並不等於所有 Mastercard、American Express 或 Discover 卡片都能抵禦所有 NFC 中繼攻擊,亦不代表所有 Visa 卡都必然受到影響。實際結果可能取決於卡片產品、終端機、收單行、發卡行及交易設定。
但現有資料沒有清楚列出全部五間銀行的名稱,也沒有提供每間銀行經核實的批准及拒絕结果。因此,不能負責任地製作「哪間銀行一定批准、哪間銀行一定拒絕」的表格。
交易結果可以受多項因素影響,包括:
不過,現有來源沒有提供可核實的 Visa 官方回應、正式安全公告,或者已完成的修補部署證據。換言之,現時不足以斷言:
所以,今次研究較適合作為支付協議設計及卡片生命週期管理的警號,而不是一個可以套用到所有 Visa 卡片的「必然盜刷方法」。
核心修補方向,是確保終端機見到的有效日期,不能夠同經過驗證的卡片資料出現分歧。
首先要跟足發卡行指示。有些發卡行可能要求客戶交回舊卡;如果收到這類要求,應先按對方安排處理,而不是自行剪碎。
如果發卡行沒有特別要求,可以採取以下步驟:
剪卡時,應穿過晶片、磁帶、印刷卡號、簽名欄及安全碼(CVV)。如果可以,使用專為支付卡而設的橫切式碎紙機會較安全;實際可行的話,亦可以將碎片分開丟棄。
這些做法可以減少舊卡資料被人從垃圾中還原的風險,但不能取代戶口監察。如果之後發現任何陌生交易,仍然應立即向發卡行報告。