新技術趨勢下的多應用智能卡“一卡通”
文章出處:http://hz-huyue.com 作者:語馨 收編 人氣: 發表時間:2011年09月23日
提起“一卡通”,人們可能想到銀行的“一卡通”,某大學的“校園一卡通”,或是市政交通“一卡通”。其實真正意義上的“一卡通”,應充分參與到社會公共事業中來。有這樣一張卡,可以不帶駕照就上路駕車;可以不掛工作牌出入公司;甚至連身份證都不用帶,就可以像乘坐公交車一樣便利地搭乘飛機;學生帶著‘一卡通’去上學,在校門口的銀聯機上輕輕一刷,一條‘我安全到達學校’的短信息就會發到父母的手機上。”可見,“一卡通”業務具有十分巨大的想象空間。
傳統的文件型IC卡多是通過記錄“一卡通”所涉及到的所有應用相關信息來實現“以卡多用”。mifare應用目錄(MAD)方式是一卡通方案的傳統解決之道,它將不同的應用以文件的形式有機組合在一起,只要把這些分別代表不同用途的文件通過讀寫器寫入同一張卡中,就可以實現一張卡片多種用途(即一卡通)。對于不同的用途(例如門禁、停車場管理)以及同一種用途在不同的地方使用(例如各業主的門禁考勤),采用不同的文件名進行區分,例如:同是作為門禁,甲、乙、丙三個業主分別采用三個各不相同的文件名,公用地方的門禁則采用另外一個文件名。
用作不同用途或者同一用途但不同場所使用的讀寫設備上存放著對相應應用文件(代表相應用途)的進行訪問的主密鑰和權限密鑰,這些設備只能對相應的應用文件進行訪問和處理(例如門禁記錄,食堂售飯扣款和交易記錄),不能對其它應用文件進行訪問和處理,即一臺非接觸式IC卡讀寫器只能完成卡片眾多應用中的一個應用。
在文件型IC卡的“一卡通”解決方案中,所有的卡片內容相同,都記錄了卡片的全部用途,這些內容在發卡時確定下來,發卡后不能進行變更。
這種解決方案存在以下問題:
1、 成本問題:為每一種應用服務發行一張卡片,不僅使持卡者感到使用起來不夠方便,也積累了對持卡者使用服務的成本。
2、 硬件選型及開發問題:傳統IC卡的應用開發是在專有環境下封閉、繁瑣的過程。由于上述“一卡多用”的部分解決方案在硬件上,這就造成了對卡系統集成商在硬件選型上的約束。
3、 安全性問題:在一張傳統的文件型卡上存放多個應用的相關信息,由于沒有特殊的機制保證其內容不被其它應用或其它應用提供者的寫入動作所監聽或篡改,具有一定的安全隱患。所以當前的“一卡通” 都是支持同一應用領域之內的、基于相同安全策略的多種用途,而不能實現對跨行業多應用的支持。
4、 定制化需求與服務升級問題:文件型卡由于不支持安裝機制,應用在卡片發行時就固定下來,所有發行卡片的內容都相同,在卡片使用的過程中,卡上的應用服務不能做相應的變更或升級,服務系統的升級將導致卡片的廢棄。持卡人在卡片使用的過程中不能根據自己的需求定制服務。
傳統智能卡應用最廣泛的模式是在一個封閉的方案中為客戶提供單一功能的應用,這很大地限制了客戶可獲得服務的多樣性和潛在的增值服務空間;單一功能應用的局限性成為在同一張卡上提供多功能應用聯盟的驅動力。JavaCard技術和全球平臺標準應運而生。
隨著新技術的發展,未來“一卡通”的解決方案是:基于一個開放的多應用智能卡操作系統整合多種應用服務。其中多應用智能卡操作系統是解決方案的基石,它由符合JavaCard標準的底層運行時環境和上層符合GlobalPlatform規范的多應用卡平臺組成。基于這樣的多應用智能卡操作系統的上層應用開發是獨立的、開放的、可移植和易于操作的。本篇將著重介紹基于Java Card技術的多應用智能卡COS解決方案。
JavaCard是加利福尼亞州的Integrity Arts公司開發的,后被Sun公司收購。JavaCard的誕生使虛擬機技術得以應用到IC卡中。從而打破了傳統IC卡封閉開發模式,使卡上系統具有可移植特征,卡上應用可以“write once, run anywhere”。Java Card技術因提供應用防火墻和應用安裝機制等,從安全上解決了一卡多用和復用的問題。
GlobalPlatform是一個致力于制定智能卡基礎設施標準規范的組織,它成立于1999年,其目標是“制訂、維護并推動標準,以構建一個開放、互通的智能卡、設備及系統的基礎架構,從而簡化并加速行業間智能卡應用的開發、推廣和管理”。GlobalPlatform規范定義了一套完整的端到端的智能卡應用技術體系。它包括對卡、對卡讀寫設備、對卡應用系統的定義。
圖1 多應用智能卡操作系統
1. 一個安全的運行時環境
這個運行時環境包含了硬件無關的應用編程接口,以便支持卡內應用開發的可移植性,GP規范并沒有指定某個特定的運行時環境,我們采用Java Card運行時環境,這包括以下內容:
虛擬機(Virtual Machine):JCVM是“Java卡虛擬機”的簡稱,它負責Java字節碼的解析和執行,一些安全管理工作也是JCVM來做的。JCVM是java虛擬機的一個子集,是精簡了的Java虛擬機,主要是為了滿足IC卡這樣的硬件環境。
運行環境(Runtime Environment):JCRE是“Java卡運行時環境”的簡稱,它是系統的核心部分,Java卡標準中所描述的所有邏輯都是在JCRE中體現出來的。安裝器是JCRE中的重要組成部分,應用的下載、安裝、移除都是通過卡上的應用安裝器來進行的。
核心應用接口The core APIs (the 'framework'):JC API是“Java卡應用編程接口”的簡稱,在Java卡標準中定義了一系列可供卡上應用使用的公共接口,這樣就保證了卡上應用的可移植性,為了保證卡上應用的正常運行就需要對這些API進行實現。
2. 在卡中扮演集中式管理員的角色的Card Manager
圖2 GP卡結構
CM(card manager)是GP卡里的重要組件,它在GP卡里扮演了集中式管理員的角色,其主要職責是在卡上執行卡發行者的職責??偟膩碚f,CM應該由以下三部分構成:
GlogalPlatform的運行時環境 (OPEN):GlobalPlatform環境(以下簡稱OPEN)的主要職責是為應用提供API,這些API的功能包括執行命令的分發,完成應用的選擇,邏輯通道的管理(可選功能)和卡內容的管理。如果運行時環境沒有提供這些功能,或在某種程度上以不符合GP規范的方式提供了這些功能,這時就需要OPEN來實現這些功能。
發行者安全域 (ISD):卡發行者安全域在卡上以卡發行者的身份存在,它的主要職責是在卡上執行卡發行者的職責。有對發行者或其應用提供者提供的應用進行裝載、安裝、刪除的功能。
對卡持有者的校驗方法 (CVM):提供一些對持卡人進行校驗的服務。CVM為提供一種可能卡上所有應用都要使用的校驗持卡人的機制。本規范里給出了一個通過全局PIN來校驗持卡人的方式。
3. 應用提供者安全域(SD)
應用提供者安全域(SD)是一種特殊的應用程序,它的主要責任是管理密鑰和提供這些密鑰相關的加密操作,這些密鑰獨立于發行者安全域(ISD),不受其控制。通過創建應用提供者安全域來保證密鑰和卡發行者以及多應用提供者之間的完全分離。
4. GP API實現
GP API是“GP應用編程接口”的簡稱。它用于給GP卡上的應用提供一些服務。它是GP卡上應用能夠正常運行的保證。
在多應用智能卡上實現“一卡通”是一件水到渠成的事情,不僅有效解決了傳統的文件型卡不能支持跨行業多應用的問題,而且通過支持發卡后應用下載真正使“一卡通”具有可擴展和定制化的應用特征。今天,多應用智能卡正在世界越來越多的國家得以推廣應用。隨著金融EMV遷移計劃(金融磁卡向IC卡過渡)的全球推廣和移動通信3G的到來,多應用智能卡的需求在未來幾年中將呈井噴之勢。此外,這種新技術在社保、交通、電子政務等領域也有廣泛的應用前景。多應用卡替代單一應用卡已成為智能卡發展的必然趨勢,全球Java Card的出卡量已經達到14.5億片。
與國際趨勢相同,在中國,IC卡未來幾年的主要市場集中在金融,移動通信領域,并且IC卡應用融合(即一卡多用)的需求非常突出,這體現在以下幾個方面:
1. 2006年起生效的風險轉移政策將使EMV遷移更具緊迫性;2008年北京奧運會、2010年上海世博會對具有金融支付功能的、附加了多種便利性增值服務的IC卡有大量需求;
2. 未來的3G卡片平臺,必須能夠應付各種智能要求,包括遵循EMV規范的金融應用、卡片漫游及無線通信、數字簽名、保存電子版權證書以及忠誠積分、公共交通的支付等應用,這將大大提高對手機SIM卡的智能要求;
3. 在智能卡領域,銀行卡、電信卡、交通卡等各類卡片功能的相互交叉和融合正成為智能卡發展的一大趨勢。而最突出的,莫過于銀行卡與其他各行業卡的綁定及合作應用。移動支付和社??ㄅc銀行卡綁定項目是最主要的體現;
基于多應用智能卡技術,我們可以設想未來的“一卡通”系統是基于開放網絡的、支持多終端的、開放的多應用智能卡服務體系。通過這樣的“一卡通”系統所搭建起來的平臺,發卡商可以在網絡環境下進行發卡、注銷、掛失等卡生命周期管理;服務供應商可直接將待下載的智能卡應用服務放在網絡的應用服務器上;持卡用戶通過網絡直接向服務供應商請求服務下載,并通過連接在互聯網上的終端將服務下載到智能卡上;注冊認證中心負責對服務提供商、發卡商、卡應用和卡進行認證并頒發數字證書,確保網上行為的合法性。