一种实现多任务访问智能卡的方法技术

技术编号:2928193 阅读:154 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现多任务访问智能卡的方法,把所有与智能卡交互的操作交由一个守护进程处理,用户程序依靠消息交互的方式向守护进程发送操作请求,间接地访问智能卡。守护进程一方面监听来自用户程序的操作请求消息,并将其插入到消息队列中;另一方面,从消息队列中获取操作请求消息,用于与智能卡交互,并把最终的结果发送给相应的用户程序。操作请求包括复位请求和读写请求。本发明专利技术依赖守护进程逐个处理消息,保证了每一条操作请求消息都能在不受干扰的情况下被处理,从本质上解决了多用户访问的互扰问题,从根本上实现了多任务访问智能卡的功能,提高了系统的稳定性和可靠性。

【技术实现步骤摘要】

本专利技术涉及通讯领域中对智能卡的应用技术,尤其是智能卡在数字版权管理(DigitalRight Management)设计方案中的应用,是一种实现在异步半双工字符传输协议应用中支持多任务访问智能卡(Smart Card)的方法。
技术介绍
近年来网络技术与多媒体技术的高速发展,为大容量媒体内容的快捷传播提供了一个崭新的渠道。随之而来的是媒体安全和数字版权遭受到空前的挑战和威胁,数字版权管理技术在纷乱中腾空而出,有效地保护数字内容的版权,从技术上防止数字内容的非法复制,或在一定程度上提高复制的技术和成本门槛。在数字版权管理的方案设计中,如果引入了智能卡,将会使系统的性能得到显著的提高,并且不容易遭受到攻击,从而改善了整体的安全性。从图1中,我们可以清楚看到智能卡完全分担了CPU处理解密所消耗的能力,大大地提升了系统的性能。在数字版权管理技术方案中引入智能卡,标志着又一种新的信息处理手段的问世,并且已被越来越多的设计人员所采用。然而,智能卡和读卡器是通过一个串行通道通讯的,在多任务同时访问智能卡时,很容易造成混乱,威胁到系统的稳定性和可靠性。
技术实现思路
本专利技术的目的在于提出一种实用可靠的方法来解决智能卡在异步半双工字符传输协议中的应用难题,实现支持多任务访问智能卡的功能。为实现上述目的,本专利技术提出的实现多任务访问智能卡的方法如下创建一个消息队列,队列中的元素包括操作请求类型和操作请求内容。操作请求类型有两种,即为复位请求(Reset Request)和读写请求(IO Request)。如果是复位请求,则请求内容为空;如果是读写请求,则请求内容为后续交互中所用到的指令和参数。把所有与智能卡交互的操作交由一个守护进程来完成,用户程序依靠消息交互的方式向守护进程发送操作请求,间接地访问智能卡。守护进程起到中间桥梁的作用一方面,监听来自用户程序的操作请求消息,并将其插入到消息队列中;另一方面,从消息队列中获取操作请求消息和操作请求内容,用于与智能卡交互,并把最终的结果发送给相应的用户程序。对于复位请求消息,守护进程首先做硬件复位操作,然后读取智能卡的在位状态,分不同情况向用户程序回复复位报告(Reset Report)。对于读写请求消息,守护进程按照如下步骤与智能卡交互第一步,向智能卡发送请求指令;第二步,接收来自智能卡的请求指令应答;第三步,向智能卡发送待处理数据;第四步,接收来自智能卡的状态字和处理后数据的长度;第五步,向智能卡发送请求指令和处理后数据的长度;第六步,接收来自智能卡的请求指令应答、处理后数据、状态字。经过上述六个步骤,守护进程已经获取到了被处理后的数据,于是通过读写回复(IOResponse)把结果发送给相应的用户程序。本专利技术依赖守护进程逐次完成上述步骤,保证了每一条操作请求消息都能在不受干扰的情况下被处理,从本质上解决了多用户访问的互扰问题。采用本专利技术所述的方法,从根本上实现了多任务访问智能卡的功能,提高了系统的稳定性和可靠性。附图说明图1是智能卡在数字版权管理方案中的解扰图。图2是守护进程处理读写请求消息的流程图。图3是守护进程的有限状态机图。具体实施例方式以下将结合附图和具体实施例对本专利技术方法作进一步的说明。创建一个消息队列,队列中的元素包括操作请求类型和操作请求内容。操作请求类型有两种,即为复位请求(Reset Request)和读写请求(IO Request)。如果是复位请求,则请求内容为空;如果是读写请求,则请求内容为后续交互中所用到的指令和参数。把所有与智能卡交互的操作全部封装在一个守护进程里,用户程序依靠消息交互的方式向守护进程发送操作请求,间接地访问智能卡。守护进程起到中间桥梁的作用一方面,监听来自用户程序的操作请求消息,并将其插入到消息队列中;另一方面,从消息队列中获取操作请求消息和操作请求内容,用于与智能卡交互,并把最终的结果发送给相应的用户程序。守护进程可以依据不同机理插入和提取操作请求消息,比如一种简单可行的处理方式是按时间排序,插入时将操作请求消息插到消息队列的尾部,提取时从消息队列的首部取时操作请求消息,当然也可以根据需要采取其他方式处理。对于复位请求消息,守护进程首先做硬件复位操作,然后读取智能卡的在位状态。如果不在位,则向用户程序回复卡不在位的复位报告(Reset Report);如果在位而获取的复位应答(Answer To Reset,简称ATR)无效,则向用户程序回复卡出错的复位报告(Reset Report);如果在位而获取的复位应答(ATR)有效,则向用户程序回复卡在位的复位报告(Reset Report)。读写请求消息的操作请求内容主要有“分类(Class,简称CLA)”、“指令(Instruction,简称INS)”、“参数1(Parameter 1,简称P1)”、“参数2(Parameter 2,简称P2)”、“参数3(Parameter 3,简称P3)”、“数据(DATA)”。对于读写请求消息,守护进程按照如图2所示步骤与智能卡进行交互,具体如下第一步,守护进程把操作请求内容中的五个连续字节CLA、INS、P1、P2、P3传送到智能卡里;第二步,智能卡回复确认字节ACK;第三步,守护进程将待处理的数据(DATA)送到智能卡里;第四步,智能卡依次回应状态字节1(Status Word 1,简称SW1)和状态字节2(Status Word2,简称SW2)。SW1表示处理的状态,SW2表示处理后生成的数据长度。如果智能卡不能立即处理完毕,将先回复一个字节表示需要继续等待新的数据,比如回复一个字节0x60。如果能及时处理完毕,则该字节不是必需的。第五步,守护进程再次把五个连续字节CLA、INS、P1、P2、P3传送到智能卡里,其中CLA、P1和P2的值与第一步相同,INS为0xfe,P3为第四步中的SW2;第六步,智能卡回复确认字节ACK,接着是被处理后生成的数据,最后是结束序列SW1-SW2,表示智能卡的状态。经过上述六个步骤,守护进程已经获取到了被处理后的数据,于是通过读写回复(IOResponse)把结果发送给相应的用户程序。守护进程的内部处理机制可以使用一个具有7种状态的有限状态机(Finite StateMachine)来表示。图3所示守护进程的有限状态机图,详尽地介绍了读写请求、复位请求以及热插拔被处理的状态转换情况。图中的圆角矩形表示状态,箭头表示状态之间的转换,各状态的描述如表1所示。图中的每条状态变换线上均标有“事件/动作”,其中“-”表示什么也没有。表1守护进程的有限状态机的状态表 参照图3,以下进一步阐述读写请求和复位请求正常处理的状态变迁情况1、读写请求被正常处理的状态变迁情况,图中用粗实线的路线表示(1)收到读写请求消息之后,守护进程从“空闲”状态切入到“发送请求指令”状态,开始发送请求指令;当收到请求指令应答后,切入到“发送待处理数据”状态。(2)发送待处理数据。当收到状态字及处理后数据的长度后,守护进程切入到“发送请求指令及处理后数据的长度”状态。(3)发送请求指令及处理后数据的长度。当收到请求指令应答、处理后的数据、状态字后,守护进程切入到“读写结果校验”状态。(4)校验读写结果。如本文档来自技高网...

【技术保护点】
一种实现多任务访问智能卡的方法,其特征在于,创建一个消息队列,队列中的元素包括操作请求类型和操作请求内容,把所有与智能卡交互的操作交由一个守护进程处理,用户程序依靠消息交互的方式向守护进程发送操作请求,间接地访问智能卡;守护进程一方 面监听来自用户程序的操作请求消息,并将其插入到消息队列中;另一方面,从消息队列中获取操作请求消息,用于与智能卡交互,并把最终的结果发送给相应的用户程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:方世煌
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1