這個章節我要講的是關於交易上的風險,下圖是在WebATM上的一個完成的查詢交易,內行人大概一眼就能明白這張圖所代表的風險,首先這張圖我只顯示送給卡片的指令與資料,沒有秀出卡片回應的資料,密碼部分也已塗黑,以避免洩漏這張卡的真實資料。

    由下圖可發現交易過程中,與金融卡往來的資料全是明碼方式傳遞,當然這些資料只有持卡人密碼算是重要資料(圖中塗黑部分),其餘像是發卡單位、轉入、轉出帳號等等,這些本來就是允許任何程式或任何人讀取的資訊,因此明碼傳送也無關緊要,可是持卡人密碼用明碼傳送,就代表當你的電腦,或是你使用金融卡的環境中,若是被植入木馬程式,那就很有可能被駭客所擷取,儘管你在WebATM上是用虛擬鍵盤輸入,木馬程式照樣抓的到正確的密碼。目前為止這個漏洞應該是每家銀行都知道的,因此各家銀行已建議持卡人使用具有鍵盤的讀卡機,或使用動態密碼,以解決這個漏洞的風險。

    現行駭客光得到金融卡的密碼,也不容易盜用你的帳號,除非同時拿到你的實體卡片,因為在交易過程中還有一個重要的驗證步驟,也就是在執行各種不同的交易時,金融卡會用交易代碼、交易時間、交易設備代號、金額等等這些資訊,利用晶片內的KEY計算出一個交易驗證碼,再將交易驗證碼送回銀行做驗證,而且即使相同的交易做第二次,也不會產生一樣的驗證碼,因為晶片內有一組累計的序號,每次交易就會累加,駭客除非知道晶片內的KEY與計算的演算法,才能偽造出合法的驗證碼,這樣感覺起來應該很安全,其實未必。

    我們再回到下圖來看,與卡片通訊的過程皆是明碼狀態,包含指令與資料,這些明碼資料中同樣也包含卡片用來計算驗證碼的值,換個角度思考,駭客要破解晶片內的KEY難度很高,但是既然已經能擷取所有通訊內容了,那如果在其中加入駭客想要的交易,並且把這個交易資料也送給卡片,木馬程式一樣能得到卡片計算後的驗證碼,最後再送至銀行端驗證,由於驗證碼是合法卡片計算的,所以銀行端驗證會通過,整個過程神不知鬼不覺,銀行、卡片、持卡人,三方不會有人知道這個交易是非法的。

    說明這樣的交易風險,不是要讓有心人士拿來做壞事,況且凡走過必留下痕跡,做了也會抓的到,重點是要讓大家瞭解使用金融卡上可能發生的風險,進而提高警覺性,建議持卡人在做任何交易後,可查詢最近的交易紀錄,注意是否有多出異常的紀錄,也盡量不要在不安全的環境中使用金融卡,銀行端則建議增加交易風險的監控機制,例如分析是否在短時間內同時有多筆交易產生,監視卡片內的交易序號是否有不正常的累加,與卡片的連線採用獨占模式(下圖範例採用分享模式,讓其他程式更容易有機可趁),根本解決之道應該在通訊過程中加入MAC或加密,但這牽扯到需改變現行卡片規格與銀行端的系統,短時間內很難達成。

    最後附帶一提,EMV晶片信用卡除了增加離線的SDA/DDA驗證外,在連線交易上與金融卡類似,只是除了金融卡的銀行端驗證卡片合法性機制之外,多了卡片端驗證銀行端的合法性,但通訊過程中仍然是明碼傳送,一樣有被偽造交易的風險,只是要做這樣的木馬程式會比做金融卡的困難許多。

金融卡交易LOG ,

創作者介紹
創作者 DerYu 的頭像
DerYu

Smart Card雜記

DerYu 發表在 痞客邦 留言(0) 人氣()