悠遊卡破解舊事

來簡單聊聊破解悠遊卡這件事情的來龍去脈。

首先,悠遊卡上的資料是有加密的,只是早在 15 年前就被破解了。在 2010 年的 HITCON 上,台大電機系教授鄭振牟給了一個講題:《 Just Don’t Say You Heard It From Me: MIFARE Classic IS Completely Broken》,示範了如何修改悠遊卡的金額,講題中提到的 MIFARE Classic 就是悠遊卡背後所使用的系統(我記得那時就上過新聞了,依稀有點印象)。

在 2010 年底的 CCC(混沌通訊大會)上,資安研究員 Harald Welte 也給了一個講題《Reverse Engineering a real-world RFID payment system - How the EasyCard allows you to print your own digital money》,裡面清楚地描述了破解過程以及方法,現在也都還能看到當時演講的影片以及 PDF

那為什麼 15 年前就被破解,卻一直到最近才出現「首例」呢?答案是:「因為根本不是首例」。

在 2011 年的時候,就有個資安顧問改了悠遊卡金額之後去便利商店消費,被抓到後被判緩刑五年以及賠一百萬。之所以被抓到,是因為悠遊卡改的就是一個卡裡的紀錄,但改不到悠遊卡後台,因此後台發現帳目對不起來,就會被抓到了。

那這次的高中生破解悠遊卡差在哪裡呢?

原理都一樣,就是改卡裡面的金額,但差別是作案手法,這次是直接拿悠遊卡去捷運站退款,而不是上次那樣消費。

由於退款之後捷運公司並不是直接跟悠遊卡請款,因此中間會有時間差,不會馬上被發現。根據新聞報導,似乎是過了幾個月對帳的時候察覺異常才被發現?而且這次的金額滿大的,居然有數十萬。

總之,因為加值紀錄都在 server,所以金額對不上是一定會被發現的,所以終究會被抓,因此就算你懂怎麼改,通常也不會去做,做的話就是跟悠遊卡公司對賭他們不會仔細對帳。

不過呢,悠遊卡能被輕易竄改是事實,雖然終究會被抓,但就是把成本轉嫁給了警察,你改完我報警抓你,根本的問題還是沒有解決。

悠遊卡後來有弄了個新版,底層用的是不同系統,若是要解決,應該只能把所有用舊系統的卡片收回淘汰吧?

,有興趣可參考。另外,我只是個參考網路資料整理的外行人,台灣應該有不少熟悉這塊的專家,希望能有人出來多講一點細節,或是其他系統在資安這塊是怎麼做的XD

影片:

評論