Linux平台下智能卡整体支持方案
时间:03-26
来源:互联网
点击:
0.引言
由于智能卡在身份认证领域的独特优势,实际上已经成为符合法律意义上的电子商务和电子政务领域首选
的合法载体。在Windows Server及其以后的版本中,提供了对的智能卡整体支持,包括智能卡的驱动、身份认证、移除策略等[1]。由于担,r‘,windows安全方面存在的诸多问题,还有愈演愈烈的版权问题。因此不少电子商务和电子政务单位准备采用开源的Linux操作系统作为关键平台首选的操作系统。然而遗憾的是,在开源的Linux领域,智能卡的发展比较缓慢,目前没有提供对智能卡的整体支持[2]。但是所幸的是,由于开发源代码的优势,在世界的开源组织中,出现了不少支持智能卡的软件和相应的实现方案[3]。但是现有的方案和软件存在不少问题:有些软件虽然能够使智能卡在Linux环境下工作,但是仅限于本地认证;而另外有砦软件,则由于对智能卡的型号或智能卡中信息存储的格式有特殊要求,因而限制了其通用性。这些限制不能满足日益发展的电子商务与电子政务的需要。
本文通过对原有技术研究,提出了一个整体方案,可以满足常见的电子商务和电子政务安全需要,如热线彩票机等。
本文首先研究了与智能卡相关的协议,通过编写守护进程实现Linux对智能卡的支持;通过编写身份认证模块,实现相应的智能卡身份认证工作,如果认证失败,还能发出相应的远程报警;通过改写屏幕保护程序,实现智能卡的移除策略。
本文的操作系统选择Linux的redhat9版本;智能卡采用符合PC/SC规范的智能卡,这种智能卡销售广泛,国内有很多公司在生产,如握奇公司的TimeCOS/PK卡。
1.智能卡的技术标准
智能卡很多的技术标准。下面我们主要介绍两个标准:IS07816和PC/SC。
1.1 IS07816标准[4】
智能卡技术是ISO国际标准组织定义的智能卡标准。定义了智能卡的各个方面,包括物理特征、物理接触界
面、电子信号和传输协议、命令、安全体系、应用程序标识符和公用数据元素等。我国目前已经采用了IS07816系列标准中的前三部分作为中国标准。
1.2 PC/SC标准[5]
PC/SC即个人计算机(Personal computer)/智能卡(Smart Card),它原来是为智能卡访问Windows平台(
Windows2000以上支持)而定义的一种标准结构,其实它实质上是一个与平台无关的技术。PC/SC分为以下四层:
1、应用程序层(Smart Card Aware Application)
是根据自己需要编写的应用程序。在我们的应用中,它是使用C语言编写的程序,直接调用读卡器封装好的API。
2、智能卡服务提供者(Smart Card ServiceProvider)
它通常是由智能卡生产商提供的。
3、智能卡资源管理器(Smard Card Resource Manager)
智能卡资源管理器是PC/SC体系结构的核心部分。智能卡资源管理器整合了一些智能卡读卡器驱动程序和应用程序的通用部分,然后到一套可重用的组件之中。操作系统供戍商提供智能卡资源管理器。
遗憾的足,在redhat9系统中,操作系统没有提供相应资源管理器。所以只有靠自己编写或者改写部分厂家
不太完善的组件。
4、智能卡读写器驱动程序(Smart Card Reader Driver)
由生产厂商提供的智能卡读写器驱动程序负责把资源管理器语言转化为读卡器语言。
虽然在Linux平台下,智能卡的应用发展比较缓慢,没有相应的操作系统进行整体性支持。所幸的是,由于
Linux的开放源代码的优势,世界开源组织中,也有了免费的PC/SC智能卡框架,如pcsc-1ite[3]。这样如果我们采用的智能卡和Pc/SC兼容,就能很方便进行应用程序的开发。
2.Redhat9对智能卡支持的实现
要想完成redhat9对智能卡的支持,需要完成以下工作:(1)智能卡与读卡器通信的智能卡驱动程序的安装;
(2)计算机与读卡器通信的PC/SC中间件的安装;(3)PC/SC系统服务的设计;(4)把设计好的PC/SC服务加入系统守护进程,成为真正的系统服务。
2.1读卡器驱动程序的安装
读卡器驱动程序一般由智能卡生产厂商提供,它提供了智能卡和读卡器的通信。负责把智能卡底层符合
IS07816标准的协议数据转换为符合PC/SC规范的数据。从而实现和高层协议的通信。
2.2 PC/SC中间件的安装
首先下载PC/SC的安装包,以成熟的pcsc-lite-1.2.9为例。然后以ROOT用户登录系统。执行下列命令:
//允许作为守护进程运行。在这个系统中,由于我们要实现使用智能卡来做身份认证工作,所以必须做为守护进程来运行
bash# make
bash# make instal l
有关PC/SC其它问题请参考[6],参考[7]中介绍了最新的版本pcsc-1 ite 1.5.1。
安装完成后。运行程序PCSCD一一stdout&。然后用PSTREE查看是否存在pcscd守护进程。如果存在,表明pcsc中间件的安装已经完成。
2.3 PC/SC系统服务的设定
为了提供操作系统对智能卡的良好支持,一般要求PC/SC中间件作为系统服务来运行。在参考[3]中,提供了类似的服务,经过简单修改,即可使用。注意如果有多个智能卡,必须进行配置[5]。
2.4 pcscd)J1]入系统守护进程,随系统启动首先将刚刚编写的PC/SC系统服务PC SCd放入/ete/init.d目录下,然后在指定的rc.d目录下作连接,执行命令:ln-sf/etc/init.d/pcscd/etc/rc.d/
rc5.d/S94pcscdf即可完成。
重新启动系统,运行命令pstree,如果见到pcscd守护进程随系统启动,就完成了操作系统对智能卡的支持
工作。
由于智能卡在身份认证领域的独特优势,实际上已经成为符合法律意义上的电子商务和电子政务领域首选
的合法载体。在Windows Server及其以后的版本中,提供了对的智能卡整体支持,包括智能卡的驱动、身份认证、移除策略等[1]。由于担,r‘,windows安全方面存在的诸多问题,还有愈演愈烈的版权问题。因此不少电子商务和电子政务单位准备采用开源的Linux操作系统作为关键平台首选的操作系统。然而遗憾的是,在开源的Linux领域,智能卡的发展比较缓慢,目前没有提供对智能卡的整体支持[2]。但是所幸的是,由于开发源代码的优势,在世界的开源组织中,出现了不少支持智能卡的软件和相应的实现方案[3]。但是现有的方案和软件存在不少问题:有些软件虽然能够使智能卡在Linux环境下工作,但是仅限于本地认证;而另外有砦软件,则由于对智能卡的型号或智能卡中信息存储的格式有特殊要求,因而限制了其通用性。这些限制不能满足日益发展的电子商务与电子政务的需要。
本文通过对原有技术研究,提出了一个整体方案,可以满足常见的电子商务和电子政务安全需要,如热线彩票机等。
本文首先研究了与智能卡相关的协议,通过编写守护进程实现Linux对智能卡的支持;通过编写身份认证模块,实现相应的智能卡身份认证工作,如果认证失败,还能发出相应的远程报警;通过改写屏幕保护程序,实现智能卡的移除策略。
本文的操作系统选择Linux的redhat9版本;智能卡采用符合PC/SC规范的智能卡,这种智能卡销售广泛,国内有很多公司在生产,如握奇公司的TimeCOS/PK卡。
1.智能卡的技术标准
智能卡很多的技术标准。下面我们主要介绍两个标准:IS07816和PC/SC。
1.1 IS07816标准[4】
智能卡技术是ISO国际标准组织定义的智能卡标准。定义了智能卡的各个方面,包括物理特征、物理接触界
面、电子信号和传输协议、命令、安全体系、应用程序标识符和公用数据元素等。我国目前已经采用了IS07816系列标准中的前三部分作为中国标准。
1.2 PC/SC标准[5]
PC/SC即个人计算机(Personal computer)/智能卡(Smart Card),它原来是为智能卡访问Windows平台(
Windows2000以上支持)而定义的一种标准结构,其实它实质上是一个与平台无关的技术。PC/SC分为以下四层:
1、应用程序层(Smart Card Aware Application)
是根据自己需要编写的应用程序。在我们的应用中,它是使用C语言编写的程序,直接调用读卡器封装好的API。
2、智能卡服务提供者(Smart Card ServiceProvider)
它通常是由智能卡生产商提供的。
3、智能卡资源管理器(Smard Card Resource Manager)
智能卡资源管理器是PC/SC体系结构的核心部分。智能卡资源管理器整合了一些智能卡读卡器驱动程序和应用程序的通用部分,然后到一套可重用的组件之中。操作系统供戍商提供智能卡资源管理器。
遗憾的足,在redhat9系统中,操作系统没有提供相应资源管理器。所以只有靠自己编写或者改写部分厂家
不太完善的组件。
4、智能卡读写器驱动程序(Smart Card Reader Driver)
由生产厂商提供的智能卡读写器驱动程序负责把资源管理器语言转化为读卡器语言。
虽然在Linux平台下,智能卡的应用发展比较缓慢,没有相应的操作系统进行整体性支持。所幸的是,由于
Linux的开放源代码的优势,世界开源组织中,也有了免费的PC/SC智能卡框架,如pcsc-1ite[3]。这样如果我们采用的智能卡和Pc/SC兼容,就能很方便进行应用程序的开发。
2.Redhat9对智能卡支持的实现
要想完成redhat9对智能卡的支持,需要完成以下工作:(1)智能卡与读卡器通信的智能卡驱动程序的安装;
(2)计算机与读卡器通信的PC/SC中间件的安装;(3)PC/SC系统服务的设计;(4)把设计好的PC/SC服务加入系统守护进程,成为真正的系统服务。
2.1读卡器驱动程序的安装
读卡器驱动程序一般由智能卡生产厂商提供,它提供了智能卡和读卡器的通信。负责把智能卡底层符合
IS07816标准的协议数据转换为符合PC/SC规范的数据。从而实现和高层协议的通信。
2.2 PC/SC中间件的安装
首先下载PC/SC的安装包,以成熟的pcsc-lite-1.2.9为例。然后以ROOT用户登录系统。执行下列命令:
//允许作为守护进程运行。在这个系统中,由于我们要实现使用智能卡来做身份认证工作,所以必须做为守护进程来运行
bash# make
bash# make instal l
有关PC/SC其它问题请参考[6],参考[7]中介绍了最新的版本pcsc-1 ite 1.5.1。
安装完成后。运行程序PCSCD一一stdout&。然后用PSTREE查看是否存在pcscd守护进程。如果存在,表明pcsc中间件的安装已经完成。
2.3 PC/SC系统服务的设定
为了提供操作系统对智能卡的良好支持,一般要求PC/SC中间件作为系统服务来运行。在参考[3]中,提供了类似的服务,经过简单修改,即可使用。注意如果有多个智能卡,必须进行配置[5]。
2.4 pcscd)J1]入系统守护进程,随系统启动首先将刚刚编写的PC/SC系统服务PC SCd放入/ete/init.d目录下,然后在指定的rc.d目录下作连接,执行命令:ln-sf/etc/init.d/pcscd/etc/rc.d/
rc5.d/S94pcscdf即可完成。
重新启动系统,运行命令pstree,如果见到pcscd守护进程随系统启动,就完成了操作系统对智能卡的支持
工作。
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 航天器DC/DC变换器的可靠性设计(02-12)
- 我国科学家人脸与笔迹识别领域获突破(04-29)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
