在這篇文章中我們將討論一種目前較為流行的智能卡:JAVA智能卡。我們將介紹JAVA卡的基本概念和如何用它來開發一些簡單的應用。我們的目的是使一些有初步JAVA語言知識的讀者了解智能卡,了解JAVA智能卡,並能用JAVA卡開發一些簡單的應用。我們在討論JAVA卡和它的APPLET之前先討論一些智能卡方面的知識。
智能卡與安全
本章主要討論智能卡的基本知識和智能卡的安全特性。有關智能卡的基本知識的介紹主要圍繞兩部分進行:智能卡的概念和智能卡與外界的通信。其中關於智能卡的概念,我們將介紹智能卡的定義,類型和它的一些簡單應用。在討論智能卡與外界的通信部分,我們將介紹接觸式智能卡的國際規范ISO7816,從而了解智能卡與讀卡器的通信方式和協議,智能卡的文件系統,和對智能卡操作的指令系統(APDU)。關於智能卡的安全特性部分,我們將介紹智能卡使用方式的安全性和所支持的安全算法。
概述
說到智能卡,相信大家都已經看見過或使用過。例如,打IC電話的IC卡,手機裡的SIM卡,銀行裡的IC銀行卡等等。那什麼是智能卡呢?簡單而言,智能卡是一種芯片卡,計算芯片鑲嵌在一張名片大小的塑料卡片上,從而完成數據的存儲與計算。可以通過一種叫讀卡器的設備訪問智能卡中的數據。那為什麼要使用智能卡呢?因為今天使用智能卡的系統,如銀行,通信,交通等系統,都通過使用智能卡的特性獲取了其他系統所沒有的安全性和靈活性。
為什麼使用智能卡?
正由於智能卡在當今網絡系統應用中的最突出的兩個特點:個人身份性和密文性。智能卡的出現大大提高了交易的方便性和安全性。
個人身份性是指智能卡可以表明持卡人的身份。當今各式各樣的交易最終都要確認交易方的身份。打個比方,你欠了債要寫一張欠條,債主可以讓你簽名來表明這是你的欠條,也可以讓你畫押來表明這是你的欠條。而現在智能卡通過存儲在卡裡的一個ID號就可以方便的表明你的身份了。既簡單又安全。
密文性是指智能卡可以以密文的形式存儲某些數據。有些智能卡還能利用自帶的微處理器進行動態的數據加減密。
充分利用智能卡的個人身份性和密文性,就可以為任何類型網絡的數據傳遞和身份認證提供安全性,從而能大幅度提高現行系統的安全性和便利性。
除此之外,智能卡還有:大容量性,穩定性,可攜帶性,兼容性好等特點。
智能卡應用
如今智能卡在以下行業內扮演著重要的角色:
電信業
智能卡在電信業中最著名的應用是:GSM中的SIM卡,和IC電話機中的IC卡。
SIM卡是GSM網絡中的個人身份模塊,即SIM卡中有一個ID來唯一確定該卡的身份。這個ID號會被GSM的鑒權中心,計費中心等使用。
IC電話機中的IC卡中存儲著剩余話費的金額。IC電話機會依據通話時間,通話的費率對IC卡存儲的金額進行扣除。
銀行業
銀行業是智能卡展示才華的另一舞台。離線交易是智能卡的一大賣點。通過復雜的加減密算法,和完善的密鑰管理系統,POS終端的對銀行智能卡進行離線的交易處理,而無須每次交易都用MODEM撥號到後台數據庫進行查詢。
交通運輸
交通運輸是智能卡另一個舞台,一種叫非接觸式卡的智能卡在這一領域扮演主要角色。如香港地鐵的“八達通”卡,用戶進入地鐵站時,只要將“八達通”卡在人口處的一個裝置上晃一下,地鐵人口處的門就會自動打開,同時“八達通”卡上的存儲的余額就會變少。當“八達通”卡上的存儲的余額變為零時,用戶就需要對卡進行充值。
智能卡的類型
按嵌入的芯片種類分,智能卡可以分為以下幾類:
接觸式卡
這種卡需要一種叫作讀卡器的裝置進行信息的讀寫操作。與信用卡上是一個磁帶條不同,這種卡的表面上鑲嵌著一個小的金屬片,當把卡插入讀卡器時,這個小金屬片就會同一個電子接頭相接觸,通過這個電子接頭對芯片讀寫數據。從卡的結構來分,接觸式卡主要分為以下兩類卡:
存儲卡
存儲卡不包含復雜的處理器,它不能動態的管理文件。存儲卡與讀卡器的通信是同步通信。IC電話機中的IC卡就是存儲卡。