一种新的智能卡安全通信机制
文章出处:http://www.singbon.com 作者: 人气: 发表时间:2011年12月11日
摘要:通信协议的改进是目前智能卡通信安全的研究热点之一,其目的是保障与终端通信的智能卡真实、可靠。而对于智能卡来说,现有安全体系并没有建立起与终端通信的安全通信通道。这样就使得攻击者可以截获、修改、伪造指令,从而危及智能卡安全。在智能卡原有安全体系的基础上,增加安全会话要素的定义,通过结合原有安全状态和安全属性概念,可以建立起智能卡与终端之间的安全通信通道,从而形成了一种新的智能卡安全通信机制。
智能卡作为一种保障电子政务、电子商务安全的手段,其应用范围越来越广。美国ROCKVILLE 市场调研组最新发布了关于智能卡的RNCOS 报告[1],其报告表示在2012 年智能卡市场将增长13%。而且,单卡多应用是智能卡的发展趋势。多应用智能卡与单应用智能卡相比,减少了数据的冗余,降低了使用成本。同时,多应用卡的安全性要求更高,需要保障各应用之间保持相互的独立性[2]。如何兼顾可靠性和灵活性,如何兼顾使用过程中的便利和数据安全,这都是智能卡发展中需要解决的问题。智能卡的安全性由其安全体系加以保障, 对智能卡安全体系的研究目前主要集中在安全访问控制模型和设备认证模型等方面。传统的访问控制技术都是建立在口令识别的基础上,这种机制很容易导致用户账户和密码被窃取、口令被修改,以及传输过程中重要信息被窃取等问题。为了解决其不足,目前普遍采用了基于智能卡的访问控制策略,以提高系统的安全性[3]。然而,考虑到个人终端容易遭到病毒木马攻击,终端很可能处于不安全的状态。此时,当一个智能卡应用开始执行之后,如何鉴别当前发送指令的终端应用程序是否可信? 当前发送指令的应用程序是否就是之前通过智能卡安全体系验证的应用程序? 这些问题无法通过传统的智能卡安全体系加以解决。本文通过引入通信安全会话的概念,提出了智能卡安全会话的定义,并给出了完整的安全通信机制流程。
1 智能卡应用安全
1.1 智能卡安全体系
智能卡的安全体系是智能卡的COS(Card Operating System)中一个极为重要的部分,包括三大部分:安全属性,安全状态以及安全机制[4]:
1) 安全属性是智能卡执行某个指令所需要的一些条件,只有智能卡满足了这些条件,该指令才是可以执行的。
2) 安全状态是指智能卡在当前所处的一种安全级别,这种安全级别是在智能卡进行完复位应答或者是在其处理完某操作指令之后得到的。
3) 安全机制是安全状态实现转移所采用的转移方法和手段,通常包括通行字鉴别,密码鉴别,数据鉴别及数据加密等。
1.2 智能卡内部文件安全体系
智能卡的安全体系在其内部文件管理上也得以体现。按ISO/IEC 7816 标准规定,智能卡中的数据在用户存储器中以树型文件结构的形式组织存放[5]。智能卡文件的安全属性是指对某个文件或者文件的一部分进行某种操作时必须达到的状态,有时称为访问权限[6]。智能卡文件的访问权限是在文件创立时指定的,例如,密钥文件的安全属性是在密钥写入时指定的。通过设置文件的安全状态和安全属性,可以有效地控制文件的读写操作,从而保证数据的私密性。
1.3 智能卡的应用控制流程
结合智能卡的安全体系和文件系统,我们可以将一个普通应用的具体流程表述如下:
1) 每个应用由一些具体的指令组成,这些指令通常都是对智能卡内文件的操作。指令的执行有一定的先后顺序,后一个指令的执行必须建立在前一个指令完成的基础上;
2) 和应用相关的每个智能卡文件拥有自己的安全属性,这些属性规定了指令对文件进行操作前应满足的安全条件。在对文件进行操作前,智能卡COS 会检查当前安全状态是否满足相应的安全条件;
3) 每个指令在访问某个具体文件前,必须符合一定的安全条件。一旦该条件被满足,指令就可以执行,并依据相应的安全机制改变文件当前的安全状态;
4) 当指令执行发生错误或者一个应用的所有指令都执行完毕, 智能卡的安全状态被重置为初始安全状态。
以上描述的单一应用工作流程可以用图1 表示。在应用结束前, 随着指令的执行,文件的安全状态被改变,指令所具备的文件访问权限逐步提升,以满足应用需要。
2 智能卡的安全会话
2.1 安全会话的提出背景
在智能卡安全体系的具体内容里,大部分实现都是基于对智能卡的身份认证,以保证终端的安全。从智能卡的角度来看,也面临类似的安全问题,即如何确认当前发送指令的终端应用程序和上一次通过智能卡安全体系验证的终端应用程序是同一个, 例如进行文件操作的指令是否是前一个改变文件操作模式的指令的合法后继操作等。在图1 所示的单个应用工作流程图中,现有安全体系并不能保障是同一个应用导致的状态迁移,从而可能存在以下攻击方式:
1) 旁路攻击:当合法进程以共享模式与智能卡交互、通过安全验证后,智能卡安全状态会提升并保持一定时间,在应用操作结束前,非法进程就会利用已提升的智能卡安全状态访问智能卡,甚至替换卡内的密钥文件,阻止合法操作的顺利进行等;如果完全禁止共享模式,则会影响多个应用同时对智能卡的访问。
2) 中间人攻击:攻击者通过各种技术手段将攻击软件或硬件装置放置在智能卡与终端合法应用程序之间,在智能卡和真正的应用程序之间传递消息,同时监视、篡改它们之间通信的内容。
2.2 安全会话
为了防止出现类似攻击,考虑在现有智能卡安全体系中,引入通信安全会话的概念,增加安全会话要素,以此来提高智能卡与终端通信的安全性。
智能卡安全会话是指在一定时间内建立的、在智能卡与终端应用程序间的一种半永久性的、带有自动回收机制的、交互式的信息交换方式。
安全会话将应用程序与自身发出的不同请求关联起来,从而使得不同的应用程序的安全会话是相互独立的;另外,安全会话一旦建立,就应当一直存在,直到应用程序操作结束,或者其他使得安全会话终止的情况出现。
智能卡安全会话解决了两个主要问题:
1) 通信的唯一性。即在一个安全会话里,与智能卡通信的对象是确定的,不同的安全会话ID 标明不同的通信对象,来自同一终端的不同的应用程序对应不同的安全会话。
2) 通信状态的一致性。在智能卡和多个应用程序通信时,保持安全会话状态的一致性是很重要的;否则,当用户在一个新的、而不是一开始保存安全会话信息的应用程序提交访问请求的时候,智能卡会因为无法获知原来的安全会话状态而产生问题。安全会话的建立,使得不同应用程序与智能卡通信时所影响到的智能卡安全状态之间彼此独立,保障了通信状态的一致性。
第1页第2页 |