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

· 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!!!!!

By 鴨七

Comments

comments powered by Disqus