殭屍卡

殭屍卡攻擊:利用 Visa 非接觸式支付漏洞讓過期信用卡復活

作者

此漏洞揭示了支付協議實作中典型的『驗證缺失』問題,將安全性過度依賴於加密簽章而忽略了基礎欄位的一致性檢查,屬於低級但高風險的邏輯漏洞。雖然攻擊門檻需物理接近且部署設備,但 Visa 在通報一年後仍未修補,顯示大型支付組織在應對邊緣案例(Edge Case)時反應遲緩,其安全性評分在同類協議中處於劣勢。

殭屍卡攻擊:利用 Visa 非接觸式支付漏洞讓過期信用卡復活

來自麻薩諸塞大學阿默斯特分校(University of Massachusetts Amherst)的研究團隊近日揭露了一種名為「殭屍卡」(Zombie Card)的新型攻擊手法。該研究顯示,攻擊者可以在不破解任何加密機制的情況下,透過修改非接觸式(Contactless)Visa 信用卡的過期日期,使其在實體店面消費時被 POS 機端接受,從而讓已經失效的過期卡片重新恢復支付能力。

這項研究成果於 2026 年 8 月在第 35 屆 USENIX Security Symposium 上發表。研究人員早在 2025 年就已將此漏洞通報給 Visa 與相關銀行,但截至 2026 年 8 月,Visa 及相關支付標準組織尚未發布正式的修補指南或安全公告。

背景與漏洞成因

在非接觸式支付交易中,卡片會透過近場通訊(NFC,一種短距離無線通訊技術)將資訊傳送給 POS 終端機。Visa 的交易流程中,過期日期會以兩種不同的形式出現,且由不同的對象處理:第一種是應用程式過期日期(Application Expiration Date),由 POS 終端機讀取並用於初步檢查是否符合處理限制;第二種則是軌道 2 等效數據(Track 2 Equivalent Data),這部分資訊會被發送到發卡銀行,由銀行在線上授權階段進行驗證。

漏洞的核心在於 Visa 的 Kernel 3(支付協議的具體實作核心)並不要求這兩組過期日期必須一致。更關鍵的是,終端機用來驗證卡片真實性的快速動態數據驗證(fDDA,一種確保卡片非偽造的加密簽章機制)在計算簽章時,完全排除了應用程式過期日期這個欄位。這意味著攻擊者只要修改傳送給 POS 機的日期,不會影響加密簽章的有效性,因此能輕易欺騙終端機。

殭屍卡攻擊的運作方式

要執行此攻擊,攻擊者必須具備三個條件:首先是持有過期的實體卡片,或能持續靠近該卡片;其次是建立一個中間人(MitM,Man-in-the-Middle)轉發設備,將卡片與 POS 機連接起來;最後是該信用卡帳戶必須仍然開啟(通常銀行在寄發新卡時,舊卡與新卡會共用同一個主帳號 PAN),且發卡銀行在授權時未獨立重新檢查過期日期。

在實務操作中,研究團隊使用兩支安裝了自定義軟體的 Android 手機,一支模擬卡片,另一支模擬 POS 機,透過 Wi-Fi 建立轉發鏈路。當 POS 機請求日期資訊時,轉發設備會將過期日期改寫為任何一個未來的日期,而保持發往銀行的軌道 2 數據不變。由於卡片的私鑰並不包含過期日資訊,且簽章驗證不涵蓋該欄位,POS 機會認為該卡有效並允許交易。

技術對比與實務影響

研究人員針對四種不同的支付協議核心(Kernel)進行了測試,結果顯示不同品牌的安全性差異極大。Visa (Kernel 3) 容易受到攻擊,因為它缺乏日期一致性檢查且簽章未涵蓋日期。相比之下,Mastercard (Kernel 2) 會在解析記錄時檢查兩組日期是否一致,若不符則直接拒絕交易;American Express (Kernel 4) 將過期日期綁定在靜態數據的雜湊值中,修改日期會導致簽章失效;Discover (Kernel 6) 則使用組合動態數據驗證,將所有傳回的物件綁定在交易雜湊中,同樣能有效攔截此類修改。

在針對五家美國銀行的實測中,其中一家銀行(Bank A)完全接受了這種「復活」交易,金額從 1 美元到 500 美元不等,甚至在校園內的零售店與雜貨店成功消費。另一家銀行(Bank B)雖然 POS 機端接受了修改後的日期,但後端銀行系統在授權階段拒絕了交易,並提示持卡人使用新卡。

限制與防禦建議

儘管此漏洞具有威脅,但它並非能隨意觸發。攻擊者必須在物理上接近卡片並部署轉發設備。目前的轉發過程會增加約 70 毫秒的延遲,雖然仍處於 EMV 標準定義的 500 毫秒限制內,但如果終端機啟用了選擇性的轉發抵抗協議(RRP, Relay Resistance Protocol),這種時間延遲將會被偵測到,從而阻止攻擊。

針對此漏洞,研究團隊提出了四項對策:首先,應將過期日期與發行者可驗證的簽章進行加密綁定;其次,POS 終端機應對比兩組日期表示法,若不一致應向銀行發出警報;第三,發卡銀行在授權時,應將主帳號 PAN 與過期日期視為一組不可分割的憑證身分,日期不符即拒絕;最後,終端機的驗證結果應完整傳遞給銀行,而非將錯誤資訊清零。

對於一般消費者,最簡單的防禦方式是在信用卡過期後,徹底銷毀晶片與磁條,而非直接將卡片丟棄,以防止他人拾獲並利用此漏洞進行盜刷。

本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。