這個章節我要講的是一個可以被偽造的案例,但先說明,這個案例完全是人為規劃上的重大瑕疵所造成的問題,目前為止晶片金融卡本身仍然具安全性,況且到現在全世界應該還沒發生過因晶片本身問題而被偽造的SmartCard案例。(Memory Card與Mifare都不算是SmartCard)

    這個案例是台灣某知名遊戲業者推出的晶片卡,目的想防止遊戲玩家的帳號被盜用問題,在此暫稱為『Play Unsafe數位卡』,此卡至今推出應該有三四年吧,我本身並沒有在玩任何線上遊戲,會發現這張卡有安全上的問題,是在去年做某CASE而接觸到,在我對卡片做簡單的測試後,發現他是一張晶片金融卡規格的卡片,客戶簡單跟我說明這張卡的用途,說此卡是運用PKI機制來達到防盜目的,一聽到這裡我心中出現非常大的疑問,PKI不是跟RSA有關嗎? 不是要運用到Hash與加解密運算嗎? 但晶片金融卡不是沒這樣的功能嗎? 不要說RSA了,就連DES加解密運算的功能都沒有勒(該卡DES運算只用於驗證,並無處理資料加解密的運算功能)!

    發現這個讓人吃驚的問題,我上網找了一下『Play Unsafe數位卡』的資料,發現的以前的新聞資料確實有說這張卡是採用PKI技術,接下來我仔細測試客戶給我試用的『Play Unsafe數位卡』,發現讓我吃驚的結果,裡面總共建立一個基碼資料檔、兩個使用者密碼檔、四個一般基本資料檔,這樣的結果讓我吃驚的原因如下:

一、只有一個基碼資料檔,沒有交談基碼(Session Key),表示在製作這張卡時,基碼值的寫入或更新一定是用明碼在處理,這樣在整個製發卡過程中有很多機會讓基碼外流,例如資料處理人員、系統與製卡程式的開發人員、製卡人員等等,只要有心,絕對能取得每張卡片的Key。好的規劃應該連Coding的工程師都無法利用後門取得任何重要的資料。

二、這唯一的基碼資料檔,通常是卡片廠商出貨的預設基碼檔,若這家業者沒做變更,那鐵定無任何安全性可言,加上這張卡片上其他的資料檔,都是規劃成只要驗證過這把唯一的基碼,就擁有讀取與寫入的權限,光是目前這兩個問題,就已經確定此卡有被(內賊)偽造的風險,真是一張不折不扣的『Play Unsafe數位卡』。

三、另外有兩個使用者密碼檔,我想其中一個就是遊戲玩家的個人密碼,另一個應該是該業者用來處理解鎖用的密碼,這樣的機制很常見,很簡單的用來確認持卡人合法性,也沒啥大問題。

四、最後四個一般基本資料檔,我發現其中一個是存放卡號資料,其他三個應該有兩個是放基碼資料,說到這裡,有資安或密碼學常識的人,應該就發現不對勁了,基碼資料怎可能外露呢? 因此我大膽推測,這張『Play Unsafe數位卡』絕對是用軟體方式處理認證或加解密,卡片只是當作儲存裝置,而無任何運算作用。這樣的作法,代表軟體必須取得明碼的基碼資料,才能進一步做運算,如軟體有被植入後門,那有心人士就可取得基碼值。另一點,在玩家的使用環境中,若電腦被植入木馬程式或是SPY軟體,同樣能取得整張卡片重要資料,換句話說可以被(外賊)偽造。

    以上幾點都是很嚴重的錯誤,有點經驗的資安廠商或卡片廠商不太可能會規劃出這樣的產品,差一點的廠商規劃的產品頂多可能會讓內部人員(內賊)有機會製造偽卡,外賊要做的話是有很大的困難度,但此案例外人要偽造其實不難,也不需去破解他的基碼資料檔和使用者密碼檔(此卡規劃的這兩項機制可用其他技術騙過主機系統),只要利用木馬與監聽技術,就能COPY出某遊戲玩家卡片內的卡號、基碼資料等內容,再寫入特別的晶片卡,或甚至用軟體模擬卡片就能欺騙主機系統。

    這個案例的漏洞大概只能講到這邊,因為木馬與監聽在網路上可以找到很多工具或技術文件,甚至Source code都有,我也相信該業者目前整個系統應該還算安全,至少這張『Play Unsafe數位卡』應該不是他們唯一用來驗證與防盜的安全措施,只是單就卡片技術角度來探討其安全性,因此有意要使用晶片卡的公司行號或個人,最好能深入了解採用的卡片的特性,慎選有能力、有經驗的合作廠商,並確實深入了解廠商所做的規劃與整個系統架構。

    在資安領域上,找廠商最好不要只單一考量價格,能做出安全的系統才是首要考量的因素,很多廠商都敢在客戶面前DEMO時造假(反正很多客戶不懂也不會發現),所以不是花錢外包就輕鬆沒事,自己也必須深入了解相關技術與內容,否則自身的生死大權肯定操縱在他人手上。

 

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

Smart Card雜記

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