智能卡安全报文功能在网络认证和通信中的应用 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

智能卡安全报文功能在网络认证和通信中的应用

来源:中国一卡通网  作者:段 斌  发布时间:2010-07-30 14:43:45  字体:[ ]

关键字:智能卡  网络认证  网上支付  报文功能  

摘   要:智能卡的安全报文功能可以有效地解决数据的可靠性、完整性和对数据发送方的认证等问题, 当智能卡用于网上付费或网上身份认证时, 其安全报文功能对网络认证和网上通信有着极为重要的作用。本文介绍在服务器通过网络对客户端IC 卡发送指令和接收响应的安全报文的实现方法。

    1 引 言
 
    随着电子商务的发展, 对安全可靠地实现网上支付及网上身份认证的要求越来越突出, 而利用带操作系统的智能CPU 卡是解决这个问题的首选方案。为防止信息在网上被截取、篡改或失密, 可以利用智能卡的安全报文功能。智能卡的安全报文功能, 是指若智能卡中的某应用文件的某些操作(如读、写等) 在发卡时已被设定为安全报文形式, 那么在对智能卡的该应用文件进行这些操作时, 终端发的指令和智能卡的应答都必须采用带MAC 或加密数据域的安全报文的形式。安全报文传送的目的是保证终端和智能卡之间所交换数据的可靠性、完整性和对发送方的认证。数据完整性和对发送方的认证通过使用WAC 来实现。数据的可靠性通过对数据域的加密来得到保证。
 
    2 系统结构
 
    2.1.1 概述
 
     本文所设计系统采用客户机ö服务器模式, 其中客户端为用户IC 卡操作方, 它连接IC 卡读卡器读写用户IC 卡, 服务器端为管理方和认证方, 它连接读卡器及PSAM 卡。系统有四个主体: 客户机(软件)、用户智能卡ICC、服务器(软件)、PSAM 卡。为保证系统的安全性, 操作ICC 的指令和应答都由服务器直接负责, 当客户机上有操作ICC 时由客户机通知服务器, 服务器产生操作ICC 的指令代码, 操作PSAM 卡计算出该指令信息安全报文的MAC 或数据域的密文, 形成安全报文形式的ICC 指令, 服务器将该指令经由网络送给客户机, 由客户机将此安全报文形式的指令代码送给ICC。ICC 在执行指令或解密出应答中的数据信息时, 判断ICC执行指令的情况并获得应答中的数据信息。从这个过程可以看出, 服务器事实上是操作用户IC 卡的一个远程终端, 而网络和客户机只是传递信息的媒体。因此, 我们只需构架好服务器和客户机之间信息交换的通信链路, 并设计好传送和接收信息的函数及指令包装方法, 对智能卡的网络安全报文的讨论可以等价于当地终端操作ICC 的安全报文。
 
    2.1.2 服务器和客户机之间通信链路的建立
 


图1 系统结构图

    该过程的实现主要利用了M FC 中的CSocket 类, 分别在客户端建立发送套接字, 在服务器端建立侦听、接收套接字。客户端与服务器端数据通信过程如图2 所示。
 


图2 客户端与服务器端数据通讯过程

    客户端生成一个从CSocket 类派生的CRequestSock 类, 该类的主要作用是向服务器端发出建立套接字连接的请求, 向服务器端发送智能卡的响应数据以及接收服务器端给智能卡的指令。服务器端生成一个从CSocket 类派生的CL isten ingSock 类, 该类的主要作用是侦听信道, 为每一个客户端套接字的连接请求建立一个相应的接收套接字, 并将它放入一个接收套接字队列中。接着服务器端生成一个CSocket 类派生的接收套接字类(CClien tSock) , 该类的主要作用是接收从客户端送来的智能卡响应信息。
 
    Clien t 与Server 数据通信通道建立后, 客户端和服务器发送信息代码时采用各自的函数:SendM sg (CRequestSocket3 pRequestSocket, un signed char3 pM sg. in t pM sgL en)客户端和服务器接收信息代码时采用各自的函数: FetchM sg (CRequestSocket3 pRequestSocket)这样, 服务器通过网络和客户机对智能卡的操作指令及应答信息只需将实际代码加进上面的函数即可。

    3 安全报文传送

    安全报文传送的目的是保证数据的可靠性、完整性和对发送方的认证。数据完整性和对发送方的认证通过使用MAC 来实现。数据的可靠性通过对数据域的加密来得到保证。 

    (1) 安全报文传送格式: 安全报文传送格式符合ISO 7816—4 的规定。当CLA 字节的第二个半字节等于十六进制数字‘C’时, 表明对发送方命令数据采用安全报文传送。卡中文件在文件头的ACs 中设定了该文件的各种操作分别是否用安全SM 1 而在文件头的SM 字节中则设定了安全报文是采用认证模式(A u then t icMode) 还是采用组合(Com b inedMode)。 

    (2) 报文完整性和验证:MAC 是使用命令的所有元素(包括命令头) 来产生的。一条命令的完整性, 包括命令数据域(如果存在的话) 中的数据元, 通过安全报文传送得以保证。MAC是命令数据域中最后一个数据元。MAC 的长度规定为4 个字节。 

    (3) SSC 在安全报文中作用: SSC (Send Sequence Coun ter) 是指传送序列计数器, 在用安全报文保护功能以前, 需执行EXCHAN GE CHALL EN GE 指令获得同时作用于终端和智能卡的SSC。它主要起以下几方面的安全作用:
    ①密文多样性: 同样的数据块加密时有不同的表现形式;
    ②丢失和插入的检测: 因每次生成安全报文的双方SSC 都加1, 所以若有数据块丢失或插入能随时检测出来。检测到数据块丢失或插入的错误后, 需运行EXCHAN GE CHALL EN GE指令重新同步双方的SSC;防止“重放攻击”: SSC 的功能使得同样的数据每次传送时有不同的MAC。所以有“重放攻击”时能够马上发现。 

    在网络应用中, 服务器作为远程终端操作智能IC 卡, 指令和应答都要通过网络来传送, 客户端对指令和应答只起传递作用。为保证SSC 的不可见, 可约定客户机对服务器发来的EXCHAN GE CHALL EN GE 进行一定的处理, 先让智能卡执行无安全报文的EXCHAN GECHALL EN GE 指令, 再发com b ined mode 形式的EXCHAN GE CHALL EN GE 安全报文指令, 将智能卡返回的应答直接传送给服务器, 这样就保证了SSC 对网络的保密性。 

    4 智能卡中文件操作的安全报文特性设定 

    (1) 意义: 对智能卡的身份识别信息文件设定安全报文特性。可以保证身份识别号的完整性和可靠性; 在网上远程识别时, 保证智能卡身份识别号对终端的隐蔽性。 

    (2) 身份识别信息文件的设定: 在发卡程序中, 执行CREA TE EF 指令生成DF Secu rity子目录下身份识别信息文件EF02 时,AC READ 的b it6 设为1, 即设定读操作指令用安全报文SM。将SM b ite 的b it2, b it1 设为11, 设定安全报文采用组合模式(com b ined mode) 在组合模式的安全报文中, 首先要将应用数据加密成密文。然后, 由这些应用数据密文和文件头计算出MAC。智能卡安全报文的另外一种模式是认证模式(au then t ic mode)。在认证模式的安全报文中, 要传送的应用数据不加密, 仅仅检测报文的认证码。设定身份识别号在EF02 的第三条记录中(RECORD= 03)。 

    (3) 设定SM 后文件操作方式的改变: 操作带安全报文的文件需遵循下面两条原则:
    ①已设定的SM 模式必须满足最小要求: SM 模式要求按由小到大的排序是无SM 认证模式、组合模式。按照这条原则, 设定为au then t ic mode 的文件操作指令可以用com b inedmode 传送。但不能用无SM 的模式发送, 而设定为com b ined mode 的文件操作指令只能用com b ined mode 传送。 

    ②每一个响应都是用与之相对应的指令相同的安全报文模式: 若文件操作指令的安全报文设定为au then t ic mode, 则该指令对应的安全报文也为au then t ic mode, 而SM 为com b inedmode 的指令, 其对应的SM 也为com b inedmode。但需注意的是, 此处把CA SE 2 (指令中无数据) 或CA SE 3 (响应中无数据) 的指令或响应的com b ined mode 看作等于au then t ic mode。在对EF02 实现com b inedmode 的安全报文设定后, 传送READ RECORD 指令时必须用com b ined mode, 因指令中无传送数据, 所以指令的com b ined mode 也就等于au then t ic mode。而响应是按照com b ined mode 产生和从用户IC 卡传送出来, 不但带了MAC 认证码, 而且读出的身份认证信息也是密文。服务器(网上认证) 可由MAC 认证码判断响应信息的完整性, 身份认证信息的密文传送保证了身份认证信息的可靠性和对终端和网络的隐蔽性, 服务器须解密密文获得身份认证信息。 

    5 智能卡安全报文密钥的设定
 
    在发卡程序中, 执行WR ITE KEY IN STALL 指令生成DF Secu rity. ISF 中的KEY1 作为SM KEY。KEY1 的A KD 的b it5= 1 (将KEY1 定义为defau lt) , b it4, b it3= 11 (SM 设定为com b ined mode) , b it2, b it1, b it0= 111。在PSAM 卡中发送KEY2 作为计算和验证MAC 的加密、解密密钥。 

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖