YORKXIN×YORKXIN

鴨七的人生,不是夜市人生

[亂來] 智慧晶片讀卡機 EZ100PU

with 13 comments

揭露:這篇我真的沒有拿錢打廣告。

警告:本文是標準的外行看熱鬧,您在本文無法取得任何關於智慧型晶片卡 (Smart Card) 或與PC/SC 規範相關的技術知識。

為了使用某些網站上的 IC 晶片服務 (e.g. iCash 餘額查詢郵局網路 ATM內政部自然人憑證,以及其他),我決定去買一台簡單的智慧卡讀卡機。

當然,「Windows Only」這件事已經沒甚麼好驚訝了,這年頭政府的網站都嘛 Windows IE Only,沒甚麼好稀奇;早就寄生了一個 Windows XP 在 OS X 裡面了 (ㄎㄎ)

我買的是這一台:EZ100PU。就我所知台灣師範大學也是用這台(為甚麼我知道?因為我看過啊 = = )。

插上去然後安裝 Windows 的驅動程式就行了。如果你發現不能使用,說什麼「服務未啟動」或「找不到讀卡機」之類的,試試到「控制台」→「系統管理工具」→「服務」,找一個 Smart Card 的服務,把它設定為「自動」,並按一下「啟動」。

包裝裡除了本來就該有的讀卡機之外,還有 SIM 卡的轉卡(讓你可以插 SIM 卡上去),雖然有轉卡,但你會發現內附光碟的安裝程式提示你「只有 EZ100 Mini 才能使用 SIM 讀寫程式」…。沒關係,其實官網已經有新版可以抓了,來這裡下載「電話簿編輯程式」…。

官網提供的工具下載其實蠻多元的 (沒有照順序):

  1. 電話簿編輯程式 (2008102717204657952.exe)
    - 就是 SIM 卡編輯程式,可以讓你編輯 SIM 卡的 PIN1 、通訊錄和簡訊(兩者包括匯入匯出) 。不過別忘了「只有儲存在 SIM 裡面的資料才能讀取
  2. 電子錢包讀取程式 (2008102717204630195.exe)
    - 這個就很厲害,等等說明
  3. 健保卡讀卡程式 (2008102717204628957.exe)
    - 這個實際上不能用,不用理它。其實讀健保卡可以用 2. 那支程式
  4. 安裝檢測程式 (2008102717204653343.exe)
    - 隨附光碟裡面就有了
  5. IC 卡工具程式 (2008102717204670555.exe)
    - 這個是工程師在用的,一般來說不會用到。

以上全都是 WinRAR 自解壓縮檔,當然你也可以用 WinRAR 解壓縮。除了 IC 卡工具程式是安裝程式之外,其他全都是可以獨立執行的。

來介紹一下電子錢包讀取程式…這個很厲害

解壓縮開來是一個名叫「ICC Utility v1.2」的資料夾,執行裡面的「IC_Card_Utility.exe」就行了。

它的功能如下↓

IC Card Utility - EZ100PU et al.

  1. iCash / iCash 波™ Wave  餘額查詢 (這個到 iCash 官網可以查到很多資訊)
  2. 健保卡查詢,包括就醫剩餘次數(我不知道是甚麼意思)
  3. 電子收費 ETC,這個我(當然)沒有卡,所以沒得試
  4. 中油便捷卡(同上)
  5. MasterCard Cash → 這個我有

為甚麼說我有  MasterCard Cash 呢?當然我年紀這麼小(未滿 20)是不可能去申請那個甚麼神奇的卡,我擁有的是這個↓

TaiwanMoney 卡實物近照

這叫 TaiwanMoney 卡。反正是在南部七縣市通行的 RFID 非接觸式交通票證,在高雄捷運一卡通上市之前,這玩意兒可是稱霸南台灣的,我到現在還是拿它搭台南市公車,因為有優惠 + 不想拿零錢(2 小時內轉乘半價,可累計,甚至台南刷完兩小時內到高雄刷公車也有半價…),不過拿來搭高捷可是相當崩潰,除了感應慢之外,還得要走一個奇怪的公務門,而且優惠條件還跟一卡通不一樣……。這張卡的細節可以去官網看。

反正這張卡說穿了也是 MasterCard Cash-compatible 的(它右下角不就寫了),所以直接插進去,然後按一下程式的「MCASH卡」標籤,再按「讀取」,欸還真的可以耶

EZ100PU reads TaiwanMoney

所以你不用再跑去玉山銀行 或國泰世華銀行 或高雄客運 或興南客運查詢餘額了…。

我比較好奇的是,為甚麼 MasterCard Cash 的網站上沒有查詢的功能…

update: 玉山銀行可以查詢,剛剛在 PTT 捷運板某人分享的。可是…你不覺得查詢出來的記錄很奇怪嗎?(裡面那個 iFrame 是 SSL 安全加密連線的)

玉山銀行 MasterCard Cash (TaiwanMoney) 查詢

除此之外,還有更神奇的。為什麼健保 IC 卡要查詢個人資料和就醫記錄(健保局網站),竟然要用自然人憑證勒!?我還沒有自然人憑證,所以就沒試了。

郵局的網路 ATM 你有晶片金融卡的話可以直接用,可以查詢存簿餘額、未補摺細目、未補摺次數(原來未補摺細目超過某種數量,就會把你的金融卡停掉)和轉帳;當然不能提款……。至於跨行轉帳的手續費多少,其實我還沒查明,不過應該會比實體 ATM 機器還要低…?

神奇的是,郵局的網路 ATM 輸入密碼的地方,除了要用滑鼠點之外,它的按鍵位置竟然還會洗牌 XD 我是不知道這樣比較安全的意思是在哪裡啦?

�華郵政 WebATM 鍵盤洗牌

最強的是

這隻讀卡機

竟然有 Mac 版驅動程式!

竟然有 Mac 版驅動程式!!

竟然有 Mac 版驅動程式!!!

我真的不是在唬人,官方網站就有得抓了,抓下來之後是一個 gz 檔,你的 Safari  應該會自動解壓縮,然後出現一個名叫「2008122218204253343」的二進位檔,這時候請把它改名為「xxx.tar」,再按兩下(或 tar xf xxx.tar )把它解開來…你就得到它了

EZ100PU Mac OS X Universal Driver

按兩下「ezusb_setup」就可以安裝了,這是一個 Mac OS X 10.4 的 pkg ,不過 10.5 也可以用。

接著要怎麼使用呢?

其實也沒甚麼好玩的…事實上它只提供了一個測試程式,使用方法是直接在終端機裡執行它,但在這之前要先以 root 權限啟動 pcscd 這支程式:

sudo pcscd

接著讀卡機應該會閃紅燈。

使用測試程式的方法很簡單,在你解壓縮的路徑底下執行:

./mifdtest/mifdtest

會出現以下畫面:

EZ100PU Mac OS X Test Utility Loaded

然後會進行一系列測試(其實也三個),例如插拔偵測測試,照著它的指示,插拔卡片。如果執行測試程式前就已經先插上卡,那不會顯示「<< Please insert card」那一行:

EZ100PU Mac OS X Test Utility Part A

接著是連線測試和… Transmit 測試?

EZ100PU Mac OS X Test Utility Part B and C

以上測試是插 iCash 的。我插 TaiwanMoney  就不會進入第三步。

要關掉 daemon 的話就是

sudo killall pcscd

除了 mifdtest 之外,安裝到系統的還有 pcsctestpcsctool,以及剛剛講過的 pcscd 這隻 daemon。實際執行之後老實說我不知道 pcsctestpcsctool 是在幹嘛的,我對 Smart Card 其實也不懂。

我想這個 Mac OS X 驅動程式,只是工程師拿來測試的… XD

官網也有提供 Linux 版的驅動 (2008 年 11 月 26 日),而且下載回來竟然有 mifdtest 的原始碼 (C 語言) ……不知道有沒有勇者要玩玩看?

最後來講一個有趣的東西

官方網站上提供了SDK 下載 (Software Development Kit,簡單來說就是可以給你寫程式控制這台讀卡機的東西),下載回來裡面除了有 Windows 的 API (VC++、Borland C++,包括一個已編譯好的 DLL),還有 Linux 的 API (也有一個已編譯好的 .so 檔),兩者皆包含範例程式以及函式庫標頭檔  (include/*.h),以及兩本厚厚的 API Document (PDF)。

上網查了一下,我現在知道這種晶片卡的規格叫作「PC/SC」,它在 Windows 2000 以後已經成為系統內建服務,而 Open-source 的 implementation 叫作 PC/SC Lite,根據維基百科的說法,支援 Linux 及 Mac OS X。

這隻 EZ100PU 官網上發佈的 SDK 裡,Linux 版本也是以 PC/SC Lite 寫出來的,Mac OS X 的驅動程式,根據 pcsctest 這支程式的描述(寫道 『MUSCLE PC/SC Lite Test Program』),也是 PC/SC Lite 的成品。

所以說到底,根本沒有什麼「只有 Windows 可以用智慧晶片卡」的理論,而是「寫應用程式的只會寫 Windows 的版本」

換句話說,這是政府單位、銀行機關聘用的程式設計師功力不足的問題

試想,API 都擺在那裡給你用了,為甚麼沒有任何一個單位肯撥出人力來寫 Linux 、 Mac OS X 版本的應用程式呢?

通常你打客服去幹譙,得到的答案都是「我們以多數人為主」、「Mac 和 Linux 我們不支援,請使用 Windows 與 IE」 blahblah。

我對 Linux / OS X  硬體層的程式設計不懂,但我不認為,當有人餵給你 API 的時候,擁有足夠能力的人會寫不出來。

所以更深一層說,這是主管單位的心態問題:不想多花人力($)在其他作業系統上,所以乾脆裝作沒看到,省時省力又可以打太極。

當然這年頭在台灣,你在非 Windows 的環境就只能認命一點,有些東西(包括政府或學校提供的服務)並不是如你想像的那麼美好,即使你根本就知道它可以很美好(例如一個 IE-only 的校務網頁,或是一個 Windows-only 的選課系統…)

話說回來,我其實很期待這家廠商會搞出一個 Mac OS X 的解決方案… 不管是提供一個 API 讓程式設計師可以寫出 Linux / OS X 版本的應用程式(Java 是一個可能性?),或是針對自家產品做更進一步的演化(把你們家的 ICC Utility 搬到 OS X 如何?)。我想既然他們做了 Linux 和 OS X 的驅動程式,就表示它們至少有在實驗這些東西。

不過,又不是只有他們提供 Linux / OS X 的驅動程式啊… (一時不知道還有哪些廠商)

update 2009/12/25: 沒想到玉山銀行竟然開發了 Mac OS X 專用的 WebATM Plug-in非常 GOOD JOB!!!!!

作者為Chitsaou Yorkxin

2009 年 二月 13 日 星期五 於 23:44:10

張貼於嘴炮不用錢

Tagged with , ,

13 回應

RSS訂閱留言。

  1. 其實看狀況,至少就這裡而言,如果已經用 C 寫出來 Windows 程式,那麼 Linux 或 Mac OS X 程式完全可以 port 過去,可能甚至不用什麼複雜的改寫,只是想不想研究的問題。更進一步,不只一家公司有提供直接就地把 Windows 程式移植的服務,當然是要一點服務費…所以與其說是能力不足,不如說他們根本懶得鳥這雞蛋都比你們大的社群,大不了老子不賺你們,用不了就拉倒。

    當然我在這邊嘴砲是很簡單啦…要說能力我也是沒有啊XD

    uranusjr

    2009 年 二月 14 日 星期六 at 02:15:59

  2. 這個…

    就交給專業的五樓吧 (嘴炮 +1

    Chitsaou Yorkxin

    2009 年 二月 14 日 星期六 at 03:37:11

  3. 關於郵局網路ATM登入輸入密碼的方式

    基本上可防 keylogger 或會紀錄滑鼠 click position 的 malware

    有興趣可以看一下 ant 大的 blog,第三份 slide 裡有稍微介紹相關的資訊 (http://antbsd.twbbs.org/~ant/wordpress/?p=1432)

    money

    2009 年 二月 16 日 星期一 at 14:08:00

  4. @money

    感謝大大 (worship)

    Chitsaou Yorkxin

    2009 年 二月 16 日 星期一 at 14:14:51

  5. 『神奇的是,郵局的網路 ATM 輸入密碼的地方,除了要用滑鼠點之外,它的按鍵位置竟然還會洗牌 XD 我是不知道這樣比較安全的意思是在哪裡啦?』

    我猜是有些病毒會讀滑鼠座標等資訊,要是每次都按同一種順序,那密碼應該會很容易被偷走吧~~~

    HAHAHA

    2009 年 二月 21 日 星期六 at 20:48:39

    • 應該是吧~ 謝謝 ^^

      Chitsaou Yorkxin

      2009 年 二月 21 日 星期六 at 20:57:43

  6. 今天也去買了讀卡機^^』,大大請問一下,用玉山的網站查TM卡交易資料奇怪在什麼地方呀?我看不出來@@謝謝

    Tom

    2009 年 三月 24 日 星期二 at 23:19:13

    • 連結在這裡喔XD

      http://www.esunbank.com.tw/credit/MCC_index.aspx

      Chitsaou Yorkxin

      2009 年 三月 24 日 星期二 at 23:28:48

  7. ㄜ…我知道那個網站啦XD
    不過大大你文中提到:可是…你不覺得查詢出來的記錄很奇怪嗎?(裡面那個 iFrame 是 SSL 安全加密連線的)
    這段我看不懂@@
    謝謝

    Tom

    2009 年 三月 24 日 星期二 at 23:49:25

    • 你去比對一下那個餘額數字就知道了 XD

      Chitsaou Yorkxin

      2009 年 三月 25 日 星期三 at 00:04:02

  8. 囧…真的耶…感覺像是程式有錯誤,前後弄錯了,但最新的那筆又怪怪的,赫然發現我的紀錄也是這樣XD 大概只有餘額是正確的…TM要加油了,唯一最強勢的服務(可用讀卡機)竟然如此的詭異XD

    Tom

    2009 年 三月 25 日 星期三 at 00:12:21

  9. 大大,TM卡計算錯誤的問題我已經反應給Mondex了,我發現出問題的地方只有在「票證交易」裡的「交易後餘額」,這裡的數目會發生誤加的問題,其他的地方都OK^^ 或許過些日子就可以有正確無誤的資料了^^ 大大你買的讀卡機是幸運草對吧?!我也剛買一台說XD
    對了大大,我發現你製作的一個網頁好厲害唷
    http://fare.yorkxin.org/about
    請問製作這個會很困難嗎?謝謝

    Tom

    2009 年 三月 28 日 星期六 at 19:22:53

  10. [...] 在做這項操作之前,你必須要擁有一台讀卡機,可以參考我之前的文章。 [...]


發表迴響