《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 两种智能卡应用框架OCF与PC/SC的对比

两种智能卡应用框架OCF与PC/SC的对比

2008-03-19
作者:刘 刚, 李 峥, 杨先文, 时

  摘 要: 智能卡应用框架" title="智能卡应用框架">智能卡应用框架是智能卡软件结构中的重要环节。介绍了两种智能卡应用框架OCF与PC/SC" title="PC/SC">PC/SC,分析了它们各自的特点,并对它们进行了对比分析。
  关键词: 智能卡应用框架 OCF PC/SC COS NC

 

  由于Internet在电子商务和人类生活中占有越来越重要的地位,人们对认证和安全交易的要求也就越来越高。智能卡具有体积小、轻便易携带、可以自行存储和处理数据并能执行加密解密操作等优点,与网络服务相结合,使它成为一个可以方便地存储用户密钥和下载保密数据的设备。智能卡中包含有CPU、RAM、EEPROM、ROM和I/O,就像一部规模较小的电脑。智能卡的软件结构[1]由COS(Chip Operating System)系统、智能卡应用框架及具体应用程序" title="应用程序">应用程序构成,如图1所示。在此结构中,最底层的COS系统负责底层硬件的管理;智能卡应用框架定义了一整套编程接口类,提供应用程序所需要的统一的应用环境;应用程序提供具体的智能卡服务。


1 OCF与PC/SC概述
  PC/SC[2] (Personal Computer/Smart Card)是Windows平台上智能卡访问的标准框架,其目的是减轻智能卡应用程序在PC机上的开发难度。PC/SC的主要优点是:应用程序与智能卡进行通信时不必考虑智能卡读卡器" title="智能卡读卡器">智能卡读卡器的具体细节,即只要智能卡读卡器遵从PC/SC标准,应用程序就能通过智能卡读卡器正常行使功能。PC/SC体系结构如图2所示。其中,智能卡就是Integrated Circuit Card,智能卡读写器" title="智能卡读写器">智能卡读写器就是Interface Devices。智能卡插入读写器后,通过智能卡读写器与驱动程序的智能卡读写控制器(IFD Handler)通信。智能卡资源管理器(ICC Resource Manager)管理各种不同的智能卡读写器和智能卡资源。每一种智能卡读写器都通过各自的智能卡读写控制器接口函数与智能卡资源管理器通信,智能卡资源管理器根据上层软件的要求,将上层软件发来的命令分别发到相应的智能卡读写控制器,再通过它发给智能卡读写器和智能卡。


  OCF[3](Open Card Framework)是一个用于实现智能卡解决方案和智能卡服务的易于使用的标准框架。OCF充分利用Java跨平台、多用途的特性,为实现智能卡解决方案和智能卡服务提供一个开放的架构和一套通用的应用程序(APIs)。OCF的体系结构如图3所示。其中,智能卡服务(CardService)是一个抽象类,其意义是卡上的服务,它的子类通过包装一系列APDUs(Application Protocol Data Units)提供具体的服务内容;智能卡服务标识(CardServiceFactory)同智能卡终端标识(CardTerminalFactory)功能相似,应用服务商提供自己的智能卡服务标识代表其自身,由智能卡服务标识产生它们的各种服务,即一些智能卡服务实例;智能卡服务管理(CardServiceRegistry)管理卡上的所有智能卡服务对象;智能卡服务通信管理器(CardServiceShcduler)为服务所需的通信安排通道,给智能卡服务对象提供一个逻辑通道以便发送接收命令完成任务;智能卡终端(CardTerminal)从各种智能卡终端抽象出来可被继承的类,由其对应的智能卡终端标识(CardTerminalFactory)生产得到;智能卡终端管理(CardTerminalRegistry)管理应用系统中安装的所有智能卡终端,可对智能卡终端进行实例注册、注销等操作;智能卡终端标识同特定的工厂生产的产品一样,不同的智能卡终端制造商提供具体的智能卡终端标识子类,由这些子类产生对应的智能卡终端实例。

 


2 OCF与PC/SC的联系
  OCF与PC/SC均提供智能卡与各种计算机的访问标准,它们在概念与机制方面存在着共同点。通过对比它们的构成,可发现它们之间的共同点与不同点。
  (1)OCF与PC/SC结构上的共同点
  PC/SC中的智能卡服务提供者提供智能卡服务,与其相对应OCF中由智能卡服务来提供;OCF中的智能卡终端与PC/SC中的智能卡读写器系统(Interface Device Subsystem)相对应。因此,OCF与PC/SC有很多共同点。具体如图4所示。
  (2)OCF与PC/SC的不同点
  进一步分析发现,OCF与PC/SC在内部结构也有很多不同。例如,OCF对智能卡终端未提供更进一步的结构划分,而PC/SC中的智能卡读写器系统由智能卡读写器和智能卡读写控制器组成。
  OCF与PC/SC的密码服务框架不同,PC/SC定义了一个密码服务提供者(Crypto Service Provider),而OCF将其封装在内部,没有定义专门的接口。
  OCF与PC/SC最重要的区别是:OCF比PC/SC有更详细的结构划分,OCF对智能卡服务与智能卡服务程序管理(ApplicationManagementCardService)有严格的区分。
  整体对比如表1所示。
  在Windows平台Java语言环境下,OCF与PC/SC出现重叠。具体如表2所示。

 


3 OCF与PC/SC的共存
  PC机上不同的应用程序可能有的使用OCF,有的使用PC/SC,但它们之间不会出现冲突,因为OCF协会与PC/SC协会对两者共用有详细的规定,以保证两者共存而不产生冲突。例如:OCF支持现有的PC/SC接口设备,OCF还提供了一个到PC/SC的接口,使得开发者可以使用现有Win32平台的设备;OCF对智能卡操作系统(Card operating system)、特定的应用程序所对应的智能卡服务(Application-specific card services)和应用程序管理(Application management)的详细定义可以作为对PC/SC的扩展。
  智能卡应用框架的提出给应用程序开发者、智能卡和智能卡终端投资商等带来了极大的方便。使得智能卡的应用实现了从“一对一” 到“多对多”的转换,并为开放式智能卡应用构造了一个统一标准框架。
  (1)对于遵循智能卡应用框架的应用程序,可以适用于任何一张开放式智能卡,应用程序不需重复开发,开发费用大大减少。
  (2)对于遵循智能卡应用框架开发的智能卡,不仅可装载不同组织提供的多个应用程序,而且一旦运用环境变化,可方便地装载和卸载来更换卡上的应用程序。
  像其他许多新技术一样,智能卡有许多令人眼花缭乱的技术标准。本文仅简要介绍了两种智能卡应用框架OCF与PC/SC,并对他们进行了对比分析。对于其他一些系统的特殊标准还须另外掌握。

参考文献
[1] 邵华,王恒奎,王东琳.基于UML建模语言的开放式智能卡应用模型[J].计算机工程, 2004, 30(5):181-183.
[2]  PC/SC Version 2.0 White Paper. http://www.pscsworkgroup.com/.1999.
[3]  OpenCard Framework. http://www.opencard.org/.1997.
[4]  李涛,杨斌. 用VC开发智能卡动态库[J].计算机工程, 2004,30(15):166-168.
[5]  王非,罗海勇. 网络计算机中IC卡读写器子系统设计[J].电子技术应用. 2003,29(5):19-21.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。