在 linux 上使用晶片卡

因為辦了自然人憑證,自辦了 visa 卡開始做一些消費, 也一直想用 web atm 讓生活更方便。 於是做足功課後,終於買了第一台支援 linux 的讀卡機, IT-500U 。 在自行編譯最新版的函式庫後,終於成功驅動, 再胡亂摸索後,web atm 與自然人憑證都能使用了。

一開始是想要用新台幣支持支援 linux 的讀卡機廠商, 雖然說 web atm 還是可能要換回 windows 下, 因為各網路銀行還是 IE only, 要用 ActiveX 和 java applet 才能動, 只有讀卡機讀得到是沒用的。 但總之既然有廠商願意支援 Linux, 還是應該要用新台幣給予鼓勵。

所以就 google 了一下,找到哪些讀卡機支援 linux。 很多人說 EZ-100PU 支援,也的確有找到, 但 據呆呆翰的說法 , 他是比較推買支援 ccid 標準的讀卡機, 然後自然各平台都能用。 EZ-100PU 是官方有提供 linux 的驅動, 要自己載下來裝,比較不安全。 而且如果支來 linux 更新了,可能會不再支援。

自然人憑證與健保卡

自然人憑證是電腦報稅時需要用的, 以前就一直被抱怨對 windows 以外系統很不友善, 所以 唐鳳 出任政務委員後, 就風風火火的推出了在 linux Mac 都能用的軟體。

這次本來是要更正駕照的地址, 監理所說要註冊才能線上更改, 可以用健保卡或自然人憑證註冊, 媽就叫我去辦自然人憑證,以後比較方便。

就先裝好 pcscd pcsc-tools 二個套件, 可是讀卡機插進去 pcsc_scan 卻沒反應, 總之先繼續,裝自然人憑證的網頁版元件。 自然人憑證的 linux 版像是在本機執行一個 daemon, 然後和瀏覽器互動。 之後也順手試了健保卡,他是安裝到 /etc/init.d ……, 只好手動 disable 掉,讓他不要自動啟動。

但還是不能動,說抓不到讀卡機。 難道這台其實不能用?有夠倒楣。 總之也試用 windows 下正不正常, 就切到 windows 下試用,到官網裝了驅動就能用。 郵政儲金、第一銀行、自然人憑證、健保卡都能用。

編譯最新的 libccid

然後回到 linux 下不甘心, 想說試下最新版的 pcsc-lite, 先移除 pcscd,重新編譯了 pcsc-tools,還是沒反應。 又編譯了 pcscd,也沒用。 中間也試了幾個不同版本,舊的或新的都沒用。

然後開始仔細研究 pcsclite 官網 , 才發現驅動好像和 pcscd 是不同 repository, 二者都屬於 muscle 專案 , 是另外一個 library libccid 。 在裡面看到 一支程式可以檢驗讀卡機的相容性 , 試了竟然抓到了! 又看了 支援的清單 , 搜得到 IT-500U;上面同為 InfoThinkIT-102MU 是寫 release 1.4.27,但 IT-500U 是顯示 git, 應該是還沒 release 的意思。

所以應該是 libccid 不支援的鍋,只好自己來編譯 git 上的最新版。 這專案的編譯都蠻簡單的, ./configure && make && sudo make install 就裝好了。 如果有缺什麼,在 ./configure 會跟你說,我就用 apt 裝。 忘了哪個有用到 libusb,正常應該是裝 libusb-dev, 結果裝了一看都是 /usr/share/doc 的文件, 又用 apt 找一下,結果應該是裝 libusb-1.0-0-dev。 但 libccid 還有多一個 ./bootstrap 才能 ./configure , 不知道是什麼意思。另外還有用到 lex,就裝了 flex。

之後就裝回 apt 的 pcscd 和 pcsc-tools, 移除 apt 的 libccid,然後 make install。 就抓到讀卡機了!

web atm 可以跨行使用

但抓到後自然人憑證是能用了,但網路銀行還是不行, 不像自然人憑證有提供 linux 的網頁元件。 然後在找有沒有可能時, 無意間發現玉山銀行的 web atm 要求安裝擴充,就裝裝看。

想說好玩,插郵局的卡進去,竟然登入了!還成功轉帳了! 原來 web atm 不一定要同一間的卡片,其它間也能用。 玉山銀行目前是要手動允許外掛程式, 因為我是 debian 的 firefox52-esr , 比較舊,也是最後一版支援外掛程式的 firefox。 設定的部份有點繁雜,我是照 這篇自然人憑證報稅 的, 可以依需求自由刪減步驟。

讀卡機推薦

總之之後就能在 linux 下使用 atm 了。 本來想推薦個 IT-102MU, 畢竟他是 libccid 已經支援的讀卡機。 但他後來發現他價格較高,要 500 多, 其它 IT-1XX 系列的也都是。 最便宜就這台 IT-500U 我買 199。

然後在選購讀卡機時,是跑了交大附近的 nova 和順發。 感覺順發是間好企業,捐出 20% 利潤幫偏鄉孩童, 之後要買什麼盡量去哪買吧。 但昨天是在 nova 日本橋看到 IT-500U 的, 看到還蠻意外的,就立刻買了。

其它在順發有還有看到 EZ-100PU, 和少數幾台有寫支援 linux, 但 google 沒有情報,不太敢買。 在看到 IT-500U 的小店也有一台 KTHCROATM003 才 168, 也寫支援 linux,但也 google 不到。 也許可以買一台來踩雷, 反正家裡也舊的那台也壞了,頂多丟回家用。

最保險可能就是去找 libccid 的支援清單, 有分 supportshould work 二個等級, 看哪些台灣也有賣的。 雖然 據呆呆翰所說 , 台灣只有 InfoThink 的那幾台。

日木橋看到幾台支援 linux 的

最近因為家裡的讀卡機壞了,想就再買一台帶回家, 順便試一下哪些讀卡機也支援 linux, 就又跑了一次 nova。

除了上面說的 IT-500U 之前就知道支援 linux, 又買了上面寫在日本橋看到的 KTHCROATM003,也確定支援 linux ccid 了。 他的品牌是 hotlife, 但名稱有點亂, 之前打的 KTHCROATM003 是 商品型號形式/型號PS-C03 , 然後正面的名字是 超輕薄晶片讀卡機網頁上也沒有寫得很清楚。

另一台是 easy atm k50, 上面那篇 ubuntu 論壇的文章是說不確定能不能用 , 但我看包裝寫支援 pc/sc,那應該在 linux 下也能用。 但比較貴也較確定,就沒有買來試。

包好的 libccid

學會怎麼用 checkinstall 包 deb 後就自己包了一份上傳到 google