浅谈基于IC卡数字签名在卷烟物流送货的应用
文章出处:http://www.singbon.com 作者:卷烟物流配送中心 王晋冰 人气: 发表时间:2011年12月03日
在如今这个以电子信息技术、计算机网络技术为先导的信息时代,烟草行业作为一个特殊的行业应当在信息系统的使用上更为实际和广泛。随着IC技术和网络技术的不断完善和普及,IC芯片和相关产品的成本也逐年下降,使用IC卡与加密算法相结合来搭建数字签名系统已经不再是一件复杂和不可思议的事情。
在卷烟物流过程中,时时刻刻都存在货物交接手续的签办和管理,而目前大多在交接过程中都是使用传统纸笔签字确认方法造成纸张上的巨大成本浪费和操作的不便。本文中,我们将介绍一种基于IC卡和加密算法结合的数字签名技术在卷烟物流配送过程中经营户收货后的确认应用系统。
目前贵阳市烟草专卖局(公司)卷烟物流配送中心在卷烟送货与客户进行货款交接时仍然采用传统的客户签字确认方式,需要在每次送货的前一日打印当日所有订货客户的《卷烟销售单》,在交接过程中采用销售单一式两份的形式,由卷烟物流配送中心及卷烟零售经营户两方各持一份,并要求卷烟零售经营户在《卷烟销售单》和《客户服务手册》上分别签字确认收货,作为收货送货凭证。
在目前实际情况下使用这一传统签字确认方式将会出现如下问题:
1. 卷烟零售经营户文化程度高低不同,部分卷烟零售经营户不会写字或拥有私人印章,同时由于不同原因该部分经营户也不愿在《卷烟销售单》上按手印以确认收货,所以造成双方在货款交接过程中造成不便,降到可追溯性,同时也不能更顺利的完成整个物流手续流程。
2. 《卷烟销售单》采用纸质材料,并在交接中由送货员粘贴在卷烟零售经营户的《卷烟零售客户服务手册》上,由于各种原因有少许卷烟零售经营户丢失《卷烟零售客户服务手册》或由于粘贴不牢、撕扯等造成《卷烟销售单》的丢失,造成经营户端历史订烟数据的丢失,并失去收货确认的法律凭证。给卷烟市场的规范管理也造成一定困难。
3. 在打印《卷烟销售单》过程中耗费大量纸材,增加物流成本费用,同时产生的大量的历史数据带来了存放得很大不便,使用纸张打印也将成为环境污染的原因之一,都是不利于当今和谐社会和可持续性发展战略的。若按照贵阳市目前卷烟经营情况,平均每周送货户数约1万7千户户,拟每户按最小打印数量为一张送货销售单,一式两份则一周将耗费打印销售单的纸张达3万余页,再加上每户经营户每年将用于粘贴销售单用的《卷烟零售客户服务手册》1万余本,累计耗费纸张的数量是相当巨大。
4. 每次卷烟零售经营户在完成卷烟交接过程中需要签字2次以上,造成卷烟零售经营户不理解以致厌烦情绪上升,客户满意度下降,同时也降低了送货效率。不利于市场抢占和市场竞争力的提高。
烟草公司作为烟叶收购、卷烟销售服务行业,首要任务就是不断降低成本的同时不断提高服务质量,抓住市场,理解客户心理,采用新技术,提高生产力不断提升内部素质增加竞争力战斗力去面对即将到来的市场竞争和挑战。
磁卡,IC卡以其方便携带,成本低廉,不存在二次投入和多次长期投入,具有良好的数据存储性的特点,在银行,公交,电信,电视,电力等部门用于存放客户信息,计费信息,消费信息和消费凭证已被广泛使用。是一种成熟而具有很大应用潜力的技术。
该文将介绍的基于IC卡和加密技术的数字签名技术直接针对上面使用传统签字方法存在的问题隐患提出,在提高服务质量,提高竞争力,降低成本上也有较大帮助。
IC卡及相关技术
1. IC卡
IC卡 (Integrated Circuit Card,集成电路卡)是继磁卡之后出现的又一种新型信息工具。IC卡在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO7816标准的卡基中,做成卡片形式;其特点是功耗低,效率高,有一定存储能力和信息高安全性,成本低廉,使用于面向大群体,低数据存储,高安全性的应用。
IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(Interface Device)。IFD内的CPU通过一个接口电路与IC卡相连并进行通信。IC卡接口电路是IC卡读写器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C通信等不同的IC卡读写芯片。
1.1 IC卡读写卡原理简介:
IC卡读写器要能读写符合ISO7816标准的IC卡。IC卡接口电路作为IC卡与IFD内的CPU进行通信的唯一通道,为保证通信和数据交换的安全与可靠,其产生的电信号必须满足下面的特定要求以完成IC卡插入与退出的识别和对卡的读写操作
IC卡接口电路对IC卡插入与退出的识别,即卡的激活和释放,有很严格的时序要求。如果不能满足相应的要求,IC卡就不能正常进行操作;严重时将损坏IC卡或IC卡读写器。
①激活过程
为启动对卡的操作,接口电路应按图2.1所示顺序激活电路:
RST处于L状态;
根据所选择卡的类型,对VCC加电A类或B类,
1. VPP上升为空闲状态;
2. 接口电路的I/O应置于接收状态;
图2.1 触点接通与冷复位时序
3. 向IC卡的CLK提供时钟信号(A类卡1~5MHz,B类卡1~4MHz)。
在t’a时间对IC卡的CLK加时钟信号。I/O线路应在时钟信号加于CLK的200个时钟周期(ta)内被置于高阻状态Z(ta 时间在t’a之后)。时钟加于CLK后,保持RST为状态L至少400周期(tb)使卡复位(tb在t’a之后)。在时间tb,RST被置于状态H。I/O上的应答应在RST上信号上升沿之后的400~40 000个时钟周期(tc)内开始(tc在t’b之后)。
在RST处于状态H的情况下,如果应答信号在40 000个时钟周期内仍未开始,RST上的信号将返回到状态L,且IC卡接口电路按照图2.2所示对IC卡产生释放。
图2.2 触点释放时序
②释放过程
当信息交换结束或失败时(例如,无卡响应或卡被移出),接口电路应按图2.2所示时序释放电路:
RST应置为状态L;
CLK应置为状态L(除非时钟已在状态L上停止);
VPP应释放(如果它已被激活);
I/O应置为状态A(在td时间内没有具体定义);
VCC应释放。
1.2通过触点向卡提供稳定的电源
IC卡接口电路应卡类型不同,电压范围分别为1.8~5.5V不等,向IC卡提供相应稳定的电流为ICC<10 mA。
1.3通过触点向卡提供稳定的时钟
IC卡接口电路向卡提供时钟信号。时钟信号的实际频率范围在复位应答期间,应在以下范围内:A类卡,时钟应在1~5MHz;B类卡,时钟应在1~4MHz。
复位后,由收到的ATR(复位应答)信号中的F(时钟频率变换因子)和D(比特率调整因子)来确定。
时钟信号的工作周期应为稳定操作期间周期的40%~60%。当频率从一个值转换到另一个值时,应注意保证没有比短周期的40%更短的脉冲。
(注:IC卡在目前读写方式上可分为非接触读写和接触读写两种类型,由于本文提到的IC卡只涉及使用接触式IC卡,所以不对非接触式卡进行解释。)
1.4通过触点对IC卡的读写
这里对基于CPU IC卡T=0的通信协议进行简单描述,按照ISO7816标准,CPU IC卡在采用T=0模式下与读写器通信将采用半双工异步模式传输,从T=0协议的功能出发,该协议的实现可以分为物理层、数据链路层、终端传输层和应用层。
1) 基于T=0传输协议的CPU IC的APDU指令流程
终端传输层根据卡片返回的过程字符和状态字节执行相应的操作,使读写器对数据的处理过程明朗清晰。卡片返回的过程字节和状态字节跟应用层发送给卡的APDU(Application Protocol Data Unit,应用协议数据单元)和VPP使用等有关。表2.1为VPP未用时的终端传输层中返回的过程字节。
表2.1 终端传输层中返回的过程字节
应用层即为由CLA、INS、P1、P2、P3作为命令头组成的命令消息体的APDU响应和应答处理层。其中CLA为指令类别,INS为指令码,P1、P2为参数,P3为根据APDU的不同格式为发送给卡的数据长度或期望响应的数据长度。APDU的几种情况如表2.2所列。
表2.2 APDU的几种情况
CPU卡对接口设备(即读写器)的应答APDU情况如表2.3所列。
表2.3 CPU卡对接口设备的应答
其中体中的数据字节数由命令APDU中的LE指出;SW1、SW2是必备的,可以指明命令APDU执行正确或执行出错的错误类型。
2) 基于T=0传输协议的CPU IC的APDU指令流程
图2.3 T = 0 的CPU卡APDU指令实现流程
根据目前CPU卡的常用T=0协议、自带编程升压电路的应用情况,以及本读写器接收IC卡数据报文直接发送PC机处理的特点,本读写器可行的APDU命令和响应的处理流程如图2.3所示。
2.IC卡读(写)器设计简要
读写器的硬件部分主要由IC接口管理芯片TDA8007、MCUAT89C52、外部数据存储器W24257S、串口电平转换芯片MAX3226、安全IC卡座(即SAM卡座)、应用IC卡座、键盘口供电的串口通信线及其它相关元器件组成。
图2.4 IC卡读写器简单框图
图2.4所示为通过PC机控制管理的外置于PC机的接触式CPU IC卡读写器。通过定制的数据线,该读写器的5V直流电源可直接由键盘口提供,同时数据线还负责PC机与读写器的串行数据交换。在大部分IC卡读写应用中,都涉及到IC卡的认证和数据读写的国解密问题,所以本读写器除了提供一个供用户使用的IC卡接口卡座外,还内置了一个SAM卡,即安全IC卡卡座,以方便安装SAM卡,保证应用IC卡读写时的数据安全,保护用户的利益。
硬件的其它组成部分,如处理器,目前采用Atmel的89C52。其4KB的Flash程序存储器可以满足读写器的程序空间需要。由于PC机与89C52、89C52与TDA8007的数据交换要求的暂存数据空间比较大,89C52提供的256字节不够,需外加一片数据存储器。本读写器中使用的是华邦的W24257S。其有32KB存储容量,IC接口部分的主要芯片为Philips的TDA8007。
图2.5 IC卡接口芯片TDA8007的原理框图
TDA8007芯片能够提供两个能同时满足ISO7816标准及EMV和GSM11-11标准的IC卡读写接口。在本读写器中,一个用于与应用IC通信,另一个用于与安全IC卡通信。与上文CPU卡的触点图相对应,CLKi、RSTi、VCCi、I/Oi、GNDCi、PRESi、C4i、C8i(其中i=1,2;C4i、C8i未用;PRESi可用于检测IC卡是否插入。具体应用可参看TDA8007的技术文档)都直接由TDA8007提供给IC卡接口相连,MCU只需通过其接口控制并行通信来管理TDA8007,便可实现对IC卡的上电、下电及读写数据处理。其中,微处理器既可以通过总线复用把TDA8007内部的所有寄存器作为外部存储器,用MOVX寻址,也可以通过非总线复用方式访问,此时TDA8007用AD0~AD3来区分内部各寄存器。另外,TDA8007的片选信号和外部中断信号线可以方便读写器处理多个IC卡头。TDA8007的特别硬件ESD处理、接口短路处理、电源出错处理等也给IC卡和IC卡读写器提供了比较高的安全保护;同时,TDA8007内部集成的电源管理功能允许TDA8007的供电范围可达2.7~6.0V,并且TDA8007通过电源管理可以给IC卡提供5.0V、3.0V及1.8V的电源,以适合不同工作电压的IC卡应用。
本读写器是通过总线复用对TDA8007的寄存器进行控制的。其中MCU的P1.5为TDA8007的片选,P0口为与之通信的8位数据线,TDA8007的各寄存器预先被宏定义的成微处理器的一个外部数据单元(下面电程序处的定义),从而方便MCU访问。下面结合TDA8007寄存器的定义和位分配,给出应用TDA8007接口芯片对IC卡进行上电激活和下电的程序。TDA8007的寄存器主要三类。第一类,通用寄存器:①卡槽选择CSR;②硬件状态HSR;③定时器TOR1、TOR2、TOR3。第二类,ISO7816串行处理寄存器:①串行状态USR;②混合状态MSR;③串行发送UTR;④串行接收URR;⑤队列控制FCR。第三类,卡专属寄存器:①可编程分频PDR;②保护时间GTR;③串行控制UCR1、UCR2;④时钟配置CCR;⑤上电控制PCR。注意:对于卡专属的寄存器,即卡接口1、卡接口2分别对应的寄存器,逻辑上具有相同的名及访问地址,因而,对不同的瞳操作,需要通过CSR选择对应的卡槽来切换卡专卡属寄存器的映射的物理空间。所以,接口设备每次从一个卡的上下电或读写转向另一卡,都需要访CSR设定对应的卡槽。对于每个寄存器的位定义不再多述,可参看TDA8007的相关技术文档。
加密技术及数字签名
1. 加密技术简要
信息加密技术属于信息安全技术,是在计算机科学技术不断发展的过程中为保证计算机数据在传输和存储过程中数据的安全、保密、真实、完整性发展起来的。传统的加密系统是以密钥为基础的,是一种对称加密技术,即加密者和解密者使用相同密钥进行数据加密和解密。另一种是公钥加密技术,采用一对非对称密钥进行消息的加密,加密者和解密者各自拥有不同的密钥。同时还有其他诸如流密码等加密算法。
1.1 数据加密原理
数据加密时防止未经授权的用户访问敏感信息的手段,是人们通常理解安全措施,也是其他安全方法的基础。现代密码学是经典密码学的进一步发展和完善,由于加密和解密此消彼长的斗争永远不会停止,所以密码学者们科学将继续发展下去。
一般保密通道如图3.1所示,在发送端,把明文P用加密算法E和密钥K加密,变成秘文C,在接收端采用相反解密算法D使用密钥K,将秘文C解密得到明文P。完成数据安全传输。即P = D{K,C}。
这里加解密函数E和D是公开的,而密钥K是秘密的,只有收发端知道,在传输过程中第三方在不知道密钥的情况下,是不可能得到明文的。
不论偷听者截获多少秘闻,但密文中没有足够的信息以得可以确定的对应的明文,则这个密码体制叫做无条件的安全,或称理论上不可破解。否则破解给定的密码,取决于使用的计算资源。所以密码学主要研究的核心问题就是设计出在给定计算费用的情况下,计算上安全的密码体制。
1.2 经典加密及现代加密技术简介
经典数据加密主要有以下3种加密方式:
1. 替换加密
2. 换位加密
3. 一次性填充
以上加密方法存在共同缺点就是明文和密文存在很明显的数学对应关系,能通过文字出现的概率等数学方法很容易推算出明文和密文之间的对应关系,但作为早期密码学的经典加密方法,对现代加密技术给出了很好的发展方向。现就对现代加密技术做以下简绍:
现代密码体制仍然使用替换和换位的基本方法,但采用了更加复杂的加密算法和简单的密钥。而且增加了对付主动攻击的手段,例如加入了随机的冗余信息,防止制造假消息;加入时间控制信息,防止消息重放攻击等。
替换和换位可以采用硬件电路实现,将一连串加密盒通过不断的调换顺序和重复跌代实现复杂的乘积密码,如DES加密,IDEA加密,基于椭圆算法的公钥加密算法和基于大素数分解的RSA加密算法等。
比如RSA算法中,如果攻击者要将分解n为当初生成密钥使用的P,Q,得到Z,在使用Euclid算法,由e和z得到d,再分解200位的数,需要40亿年,分解500位的数则需要1025年。
2. 数字签名与加密技术
与人手写签字的作用一样,数字签字的目的同样是为了确保该信息是由本人所发送或确认,不由他人改动,存在一定法律效应。数字签字系统向通信双方提供服务,使A向B发送的信息上留有A的签名,以便得到:
B可以验证消息P确实来源于A。
A以后不能否认发送信息P给B。
B不能编造或改变P。
数字签字是基于密码学发展而来,主要运用了对消息或消息摘要的加密方法完成。
1.1 基于对称密钥的数字签字
这种系统如图3.2所示,设BB是A和B共同信赖的仲裁者,KA和KB分别为A和B与BB之间的密钥,而KBB是只有BB掌握的密钥,P是A发给B的消息,t是时间戳。BB解决了A的报文{A,RA(B,RA,t,P)}以后产生了一个签名的消息KBB(A,t,P),并装配成发给B的保温{KB(A,RA,t,P,KBB(A,t,P))}。B可以解密该报文,阅读消息P,并保留证据KBB(A,t,P)。由于A和B之间的通信是通过中间人BB的,所以不必怀疑对方身份。又由于证据KBB(A,t,P)的存在,A不能否认发送消息P,B也不能改变得到的消息P,因为BB仲裁时可能会当场解密KBB(A,t,P),得到发送人,发送时间和原来的消息P。
1.2 基于公钥体制的数字签字
在某些场合为使签字过程更加简单,同时为保证签字的有效性,利用公钥加密算法也可以搭建数字签字系统,如图3.3所示,如果A否认了发送给B的消息,B可以拿出DA(P),并用A的公钥EA解密得到P,从而正明P是A发送的。如果B把消息P窜改了,当A要求B出示原来的DA(P)是,B拿不出来。达到消息签字的目的。
1.3 基于IC卡的数字签名
正如上面所说的,IC卡将记录A端个人信息(公钥),只有在A同时持有IC卡(公钥)连同A的本人记忆的密码K(私钥)同时正确时才能开启上述数字签字,做到了数字签字合法意义。IC卡中将存放A本人公钥密钥和通过A私钥加密的消息摘要,摘要中可以包含客户的所有个人信息和订货情况,客户自己记忆个人密钥(私钥K)以确定IC卡与A本人确实来自于同一个人,排除了IC卡丢失后仍然可以签字,或者不使用IC卡进行签字的冒签现象的发生。给双方带来更高的安全性可信任性。
下面图3.4介绍数字签字系统的工作流程。
首先A将消息P与签字时间拼接,形成新用于验证发送消息的信息,在经过MD5杂凑算法计算出消息摘要,成为用于验证消息时的消息指纹。同时A使用自己的密钥K对该消息进行加密后连同原P消息一同发送给B。完成对消息签字的过程。
如果A否认发送消息P,则B可以提供由A加密过的签字数据,并用A公钥匙(IC卡信息)进行解密,得到消息指纹,确定消息由A发送。如果B修改信息,则A可以要求B提供由A签字过的信息,但由于B没有A的密钥K所以无法提供该信息,所以B是不能修改又A发送的消息的。同时由于第三人不可能同时得到IC卡和A的私钥,所以第三方C是不可能伪造和盗取A,B间的交易数据,保证了双方交易信息的安全。通过数字签字技术实现很好的交易信息验证、保存。
卷烟物流配送中实现IC卡数字签名的途径和方法
1. 卷烟物流配送中IC卡数字签字系统
在卷烟物流配送过程中采用IC卡数字签字系统,首先需要一次性为每位卷烟零售经营户配备“卷烟销售一卡通”IC卡,由客户设定私钥,并在IC卡中记录用户设定的初始密码的MD5密码指纹和客户的公钥数据,同时为每台送货车辆配备IC读写卡器(PDA),用于在卷烟交接时对经营户的“卷烟销售一卡通”IC卡进行读写操作,客户通过输入密码完成收货确认的操作。具体签字系统工作流程如下:
卷烟物流配送中心在前一日将次日需要配送的卷烟零售经营户的订单信息通过无线方式存入每台送货车载IC读写卡器(PDA)内,同时按照原工作流程对卷烟进行分拣。
送货当日,送货组提取读卡器(PDA)信息代替现《送货销售单》,对照信息完成卷烟的核对和装车过程,实现数字化装车和分拣送货数字化一体对接。达到卷烟物流配送整体数字化提升,使用数字系统提高配送效率。
当卷烟送达卷烟零售经营户手中后,卷烟零售经营户通过将本人的“卷烟销售一卡通”IC卡插入车载IC卡读卡器(PDA),进行零售户身份确定,并提取正确的卷烟送货序号,方便送货员将卷烟送到经营户门面。同时读卡器显示客户该次卷烟的订单信息,方便经营户对卷烟进行核对,在双方完成货物货款的交接后,经营户通过输入本人密码完成收货确认。如果卷烟零售经营户决定退货,同样可以在读卡器上操作退货。如果客户关门或不在家,系统将自动定义关门退货等操作,在得到部门管理员确认后自动完成退货操作。收货或退货的确认信息将通过签字技术存储在“卷烟销售一卡通”IC卡上,同时记录在PDA上以存入数据库备查。
送货员完成送货后将读卡器(PDA)上数据通过无线传输方式将送货情况数据和收款数据导入送货部结算计算机,由系统自动完成当日送货结算任务。
整套数字签名系统将原来卷烟物流配送过程中需要手工重复操作,造成工作效率下降的主要过程全部改变为自动完成,同时通过加密方法提高信息安全性,在一些更高级操作中,还需要主管领导的密码授权来完成,使用数字技术加强了卷烟送退货管理,使管理更加透明化,直观化,和高效化。
同时在整个卷烟物流配送过程中不再出现纸质记录,全程数字化记录,高效且节约成本,降低污染,也更容易与世界信息接轨,透过数据库更便于对销售情况的查找和管理,提高生产效率,准确及时的对市场进行了监控管理。
2. 卷烟物流配送IC卡签字系统扩展应用
上述所述的卷烟物流配送中使用的IC卡数字签字系统可以经过网络系统扩展后实现营销、稽查的综合使用。
营销客户经理可以使用IC卡读卡器(PDA)读取卷烟零售客户的“卷烟销售一卡通”IC卡得知客户的订单信息和送货情况,方便对客户进行卷烟的引导销售。不会由于经营户丢失《卷烟销售单》而失去客户的订货送货的历史情况。
稽查同样可以通过读取经营户的IC卡得知客户订货情况,同时在系统扩展的情况下,可以在IC卡内存储卷烟的喷码信息,稽查人员直接可以得知卷烟的真伪,规范卷烟销售市场,打击不法卷烟销售。
系统可将整个卷烟销售、稽查、配送部门整合到一个信息系统下,更便于对全市经营户卷烟销售的统一管理。该系统可以在很大程度上提高卷烟市场的管理能力。是实现数字化烟草的一个必经之路。
在中国加入WTO的今天,中国卷烟市场将面临着有史以来最大的一次挑战,如何去面对这个挑战,将它转变成中国烟草再次腾飞的一个机会,使中国卷烟销售更具竞争力,提供更好、更优质的服务,实施更便捷、更高效的管理,不断使用新技术武装中国卷烟销售,使之不断壮大是必然的趋势。
使用数字化技术来管理卷烟销售市场,使用数字化销售系统,方便经营户的同时降低成本的同时加强市场监管能力,是该系统的主要设计思想。
由于时间和能力所限,系统尚有多处不到之处,请各位高明指正,共同研究。