磁條、晶片、指紋、虹膜 — 守護財產安全的進化論

磁條、晶片、指紋、虹膜 — 守護財產安全的進化論

台灣自然人憑證安全性登上美國媒體

日前美國科技網站 Ars Technica 網站發佈了一篇標題為「Fatal crypto flaw in some government-certified smartcards makes forgery a snap」的文章,開頭就赫然看見我國的自然人憑證的照片。文章主要指出我國自然人憑證的金鑰亂數的產生過程有瑕疵,產生多人共用一把金鑰以及金鑰可以被預測或簡單破解的情況。

圖片來源:Ars Technica

內政部在不久前也發佈新聞澄清,此研究正是內政部委託學術單位研究之結果,有問題的卡片也已經回收進行更換。新的自然人憑證已採用長度更長的 2048 位元的非對稱加密演算法。

如今我們的生活已經離不開網際網路,像是繳稅這類的事情得透過自然人憑證來完成。包包裡的悠遊卡、金融卡、信用卡,各式各樣的卡片在日常生活都扮演重要角色,相信讀者一定很好奇,究竟這類卡片是用什麼樣的方式在運作,又是如何達成所謂的安全?

數年前銀行 ATM 提款機的磁條卡頻傳遭人側錄,導致後來磁條卡全面更新換成晶片卡,磁條卡與晶片卡之間又有什麼差別呢?在此筆者用簡單易懂的方式來解釋這些安全機制的運作原理。

智慧卡的前輩 ─ 磁條卡

像是自然人憑證這類的晶片卡,一般通稱智慧卡(Smart card)。在智慧卡普及以前,市面上大多數的卡片都是以磁條卡為主。磁條卡為何這麼容易被側錄?

簡單的來說,磁條卡就只是一個密碼儲存裝置,當有需要的時候使用者就可以從磁條卡讀取出密碼。例如當你要在銀行提款時,插入提款機,此時提款機就會直接從卡片上讀取當初發卡時存進去的密碼,與資料庫中的密碼進行比對。如果正確表示此人正是合法的持卡人。

然而這樣做有個很大的缺點,當密碼是直接儲存在卡片裡,讀取沒有任何限制,歹徒便可利用這點,趁使用者不注意時偷偷讀取出磁條中的密碼,然後再轉存在另一張卡上。如此一來只要再取得使用者的提款密碼,就能輕易地用偽造的卡片在 ATM 提款機提取受害者的存款,如下圖所示:

這種驗證方式,就好像守門人只認固定的口令,在一旁偷聽到就可以用同樣的口令告訴守門人而通過認證。正因為有這樣嚴重的安全缺陷,所有提款卡才全數從磁條卡更新為智慧卡

智慧卡是一台小電腦


智慧卡和磁條卡一樣都是一種密碼的儲存裝置,然而有一點最大的差異,就是智慧卡除了儲存的功能,還多了運算能力。這些藏身在皮夾裡的不起眼小卡片,其實每張都是一台獨立的電腦,它們滿足了電腦的基本元素:儲存、運算、輸入與輸出,如下圖所示:

究竟智慧卡如何進行使用者認證?相較於磁條卡直接將重要的密碼任人輕易讀取,智慧卡一般都會將最重要的密碼儲存在卡片中保護,外界無法直接讀取。每當遇到需要進行驗證時,由外界輸入驗證的請求資料在晶片卡裡面與儲存的密碼進行運算之後,再輸出到外界。透過這些運算結果想要反推出晶片卡裡的密碼是非常困難的事情,如此一來就能確保密碼的安全,在不知道密碼的情況下,歹徒自然也無法複製智慧卡,如下圖所示:

公開金鑰加密演算法只是保密方法之一,對此可以參考筆者先前所寫的「兩年升值2萬倍,最划算的投資 — 深入了解 BITCOIN」一文。簡單來說,公開加密演算法有數位簽章的作用,要由公鑰或是簽章的結果去推算出私鑰到底是什麼,目前是非常困難,可以視為不可能。只要私鑰不外露,就沒有任何人可以偽造或複製這張晶片卡。

除此之外,一般智慧卡還會有物理上的安全設計,例如將晶片以易碎的方式封裝。如此一來當有人試圖使用物理的方式拆解晶片卡來取得密碼時,很難不同時破壞卡片,也就是寧為玉碎不為瓦全的設計。

如果讀者有看過電影「達文西密碼」,在電影裡達文西設計了一個「藏密筒」,將密秘用草紙寫下並鎖在筒中,只有透過正確的密碼才能打開。而筒中藏有易碎的醋罐,如果用暴力強行將筒子打開,將會導致醋液流出將草紙溶化而將秘密銷毀。電影中的設計是否可行不得而知,但設計概念是相同的。

藏密筒。圖片來源:Wiki

用更簡單的方式來解釋,想像晶片卡好像一個小小金庫裡面住了一個辦事員,他平時用的印章跟他在一起鎖在這金庫裡面。每當有外界需要認證,都會將認證請求透過金庫的窗口交給辦事員進行簽章,簽完章後再由窗口遞出來。如此一來只要金庫不被打開,印章不被外面取得,任何人都無法複製卡片或是偽造認證資料。

理論上安全,不代表實作安全

晶片卡的大略原理如上面所述,實作上有各種變化,像是加上近場通訊功能(NFC)就變悠遊卡的形式。加密的方法也不一定都是公開金鑰。

理論上許多東西可以假設是完美的,但完美並不存在。資訊安全就像是蓋一道長城,這麼長的城牆總有弱點。不管是挖地道、正面攻擊,總有可能有辦法突破。很多時候設計或是實行上的失誤也可能導致城門大開。

曾有晶片卡密鑰亂數產生器出了問題,導致某些金鑰重覆或是輕易被正面突破。還有更多一般人想不到的攻擊方式,例如極速冷凍,利用記憶體在低溫情況下也會有資料留存的特性進行攻擊。有人利用晶片在運算密碼時電壓微小的變化來反推出密鑰的內容,也有人利用密碼運算的時間差,來反推出密鑰的內容。甚至直接使用精密儀器來取得晶片裡藏的密鑰都有可能。

多一層的保險 ─ 雙要素認證

然而除了設計和實行上有重大瑕疵以外,前面所提的各種攻擊手法都需要特定條件、不少心力和高昂的成本才。除非你的假想敵是 CIA、NSA 或是山姆費雪(編按:遊戲「縱橫諜海系列」的主角),否則晶片卡雖然有弱點,但它確實提供了多一層的保護。比起使用者密碼只需電腦上被植入鍵盤側錄器就會被盜取要安全許多。當登入時需要有第二種要素來證明你是帳號的擁有者時,要盜取帳號就不這麼容易。

在專業術語上稱這類方法為「雙要素認證」,有些更為嚴謹的環境下甚至會有「三要素認證」或「多要素認證」。一般第三種要素通常是使用生物特徵,例如密碼加上智慧卡加上虹膜辮識,此類系統要破解更為困難,但使用上更為困難,成本也更為昂貴,一般大眾沒有使用的必要。

雙要素認證的替代方案 ─ 智慧型手機

使用雙要素認證可以大幅降低帳號被盜取或冒用的風險。對攻擊者而言,偷到你的密碼很簡單,但偷取或破解你的智慧卡就沒那麼容易。不過,智慧卡雖然提供額外的保障,但是沒有讀卡機就無法使用。

幸運的是現在智慧型手機普及率很高,它可以被拿來當做第二項認證要素的替代方案。雖然安全性不如專業設備,但就像筆者以往提到的,沒有攻不破的系統,重點在於花多少成本。現在許多網站都有提供智慧型手機的雙要素認證機制,例如 Google 的兩步認證和 Facebook 的兩步驗證,希望讀者除了在瞭解資訊安全知識的同時,也能運用在日常生活中,平時養成良好的習慣。比起帳號被盜取再來遺憾來得好不是嗎?


–>鼓勵言之有物的分享者,按讚分享!臉書搜尋「有物報告

«

»

科技島讀-你的未來趨勢嚮導

有物推出新產品囉!

由有物報告團隊製作的最新產品-科技島讀

透過閱讀科技島讀,你將能夠掌握科技趨勢,從更高的視角觀察科技將如何改變世界。

現在就前往 >> 科技島讀