长春工业大学人文信息学院毕业设计(论文)
第2章 IC卡自动加油机方案的确定
2.1 IC卡自动加油机的工作原理
本设计的IC卡自动加油机,是用户凭发放的“油量储值IC卡”加油,管理人员通过“油量统计IC卡”对油量的使用情况进行管理,取代了传统的人工登记、结算的管理方式,实现了加油与管理的自动化。
加油时,涡街流量计输出的电脉冲信号通过光电隔离、A/D转换后送至微处理器,微处理器发出控制信号,经晶体管功放带动继电器来控制油泵电机的启停,实现自动加油。微处理器连接并受控制于IC卡、RAM存储器、键盘、显示器、键盘显示控制器。
当用户插入一张有效的IC卡,系统会提示输入密码,用户在键入正确的密码之后,即可输入购油量,在确认卡上剩余金额充足的情况下,开启自动加油机中油泵电机和出油电磁阀,开始加油过程。系统不断累计加油量,一旦达到用户所购油量,便会随即发出指令去关闭油阀,终止加油过程,并将核算消费金额之后的余额计入用户卡中,最后退卡。
根据用户需要,加油通常有两种方式:非定量加油和定量加油。
1.非定量加油是指不预先设定加油量的加油方式。采取这种方式加油时,只需将IC卡插入IC卡加油控制器中,摘下油枪后即可开始加油。当油箱加满或加至需要量时,可停止加油,挂枪后系统自动进行结算,然后退卡。
2.定量加油是指预先给定加油量,然后进行加油。当用户使用现金或油票加油时,一般采用这种方式采用这种方式加油,加油员将自己的加油卡插入IC卡加油控制器,从键盘输入需加油的数量后,用户即可自行摘枪加油。当油量加到预设油量时,加机自动停泵。
- 5 -
长春工业大学人文信息学院毕业设计(论文)
2.2 IC卡自动加油机的总体方案
本加油机控制系统由单片机及存储器、测量及控制、IC卡接口、键盘及显示、看门狗等部分所组成,其硬件原理框图如图2-1所示。
整机控制系统的核心是一片性价比较高的AT89C51单片机。内含4K字节的 EEPROM作为系统的程序存储器,从而简化了系统结构。另外扩展一片NVSRAM DCM0064(8K字节)作为系统的数据存储器用以存储用户的加油信息。因非易失性SRAM—NVSRAM(Nonvolatile SRAM)既有EPROM的不易失性,即断电后数据不变,又像普通SRAM一样可快速读写数据,读写次数无限制。在系统中它的功耗很小,而且连接方法也很简单。
加油量检测使用精度较高的涡街流量传感器。它输出的电脉冲频率和流量成线性关系,同时测量范围宽、重复性好。而且便于实现远距离无损测量。其电脉冲信号经放大处理后.通过光电隔离(TLP521)作为单片机外部中断0的输入信号INTO,这样结合定时器T0就可测频。单片机的P2.5,通过晶体管功放后带动12V低压继电器(SSR),由继电器的触点控制油泵电机的启停接触器的线圈及油路通断电磁阀的线圈,以实现自动加油。
IC卡接口INT1T0-1P2.6 INT0光电隔离信号处理涡街流量计键盘显示看门狗及低电平检测 功能驱 P1.0-7P2.5动 RXDTXD P2.0-3 RESETP0.0-7锁存器 P2.7 图2-1 IC卡自动加油机硬件原理图
- 6 -
油泵与电磁阀NVSRAM
长春工业大学人文信息学院毕业设计(论文)
2.3 IC卡的选择
2.3.1 IC卡应用的安全性和可靠性
1.IC卡的标准
接触型IC卡的国际标准是最广为人知的ISO7816,我国一经采用其第1、2、3部分作为国家标准。此标准主要定义了塑料基片的物理和尺寸特性、触点的尺寸和位置、信息交换的底层协议描述。
按照国际标准ISO7816对接触式IC卡的规定,在IC芯片上覆盖有6或者8个触点和外部设备进行通信。
按ISO标准,IC卡芯片的触点及其定义如下。 (1) C1(VCC):IC卡工作电源。 (2) C2(RST):复位信号(可选)。 (3) C3(CLK):有关信号的定时与同步。 (4) C5(GND):接地。
(5) C6(VPP):存储器编程电源(可选)。 (6) C7(I/O):IC卡中串行数据的输入/输出。
剩下的两个触点(C4、C8)视不同情况可在有关应用标准中予以定义。 2.IC卡类型的选择
根据应用领域不用,IC卡可以分为金融卡和非金融卡两大类;从IC卡的读/写方法上来分类,有接触型和非接触型两种;另外,根据IC卡内部结构还可以分为存储卡、逻辑加密卡和CPU卡。
根据实际使用的安全性和可靠性,以及方便性和实用性,应选接触型IC卡,内部结构应该是逻辑加密型。
3.IC卡瞬间掉电测试
IC卡瞬间掉电是两个原因造成的,一个是因为IC卡卡座质量不好,经过长期插卡、拔卡,使IC卡和卡座触点之间接触不良;第二个原因是人为的插卡不当或带电非法拔卡。
若瞬间掉电发生在卡的个人化过程中,将导致有关信息写入错误,使该卡成为废卡。
- 7 -
长春工业大学人文信息学院毕业设计(论文)
若瞬间掉电发生在对卡内资金的修改过程中,将导致卡内金额错误。 不管挑选何种IC卡座,在长期使用过程中,不可能绝对地避免IC卡的瞬间掉电。IC卡读写机座加强对IC卡瞬间掉电的测试和处理,来减少错误。可以是定时检测,也可以是在对IC卡瞬间掉电应禁止对IC卡操作,并在检测到卡上电后以报
警引起人工干预如重新插卡等。检测IC卡瞬间掉电的手段有读IC卡信息或者读IC卡插入开关状态两种。前一种判断IC卡掉电的正确率高,后一种只能判断是否被取出,但不影响正在进行的对卡操作过程,适用于定时中断程序对IC卡的检测。
2.3.2 SLE4442简介
IC卡自动加油机控制系统是采用IC卡来完成油费的支付,即在IC卡中预先存入一定的金额,每次加油后将应收金额从卡中减去,当IC卡中无钱时,司机持卡前往指定的交费地点充值并将预购金额写入卡中。然而,伴随着现代电子高科技犯罪的出现,需要一种强有力的安全措施来保护机密数据不被他人窃取或篡改。因此,本设计采用了安全性较好的SLE4442 IC卡。
1.SLE4442 IC卡芯片简介
SLE4442 IC卡是由德国SIEMENS公司设计的逻辑加密芯片。它采用I2C总线,支持ISO 7816同步传送协议,芯片采用NMOS工艺技术。含有256字节的多存储器结构的用户区,能满足大部分应用领域的要求,每个字节的擦/写编程时间至少2.5ms,存储器具有至少10000次的擦写周期,数据保持时间至少10年,SLE4442 IC卡芯片包括三个存储器,即主存储器、保护存储器及加密存储器。
2.SLE4442IC卡安全性分析
虽然SLE4442 IC卡自身具有很强的硬件加密措施,但并不是无懈可击的。SLE4442IC卡存在的被攻击途径主要有:穷举法、中途拦截法及终端设备分析法等。
(1)穷举法
SLE4442 IC卡在终端设备上最多只有3次卡密码校验机会,这样3个字节的卡密码总共有1600多万个组合通常可采用在通用读卡器上改写卡密码,在终端上试用,尝试多个组合直至找出卡密码,这就是穷举法。
(2)中途拦截法
- 8 -
长春工业大学人文信息学院毕业设计(论文)
中途拦截法是将通用读写器并接在应用设备的卡头上,或在IC卡上引线并接通用读写器,在卡校验密码后未下电时,通过读卡器读出卡密码。
(3)终端设备信息分析法
从终端设备的存储芯片内读取数据,经过分析,从而破解卡密码。防止终端设备信息分析法一般要对存储芯片上的数据进行软件加密,动态修改数据值。
从以上分析发现:SLE4442 IC卡存在IC的潜在性攻击是终端设备在硬件上无法解决的,需要进一步在软件方面进行加密和数据处理。
3.对SLE4442采取的加密算法
SLE4442 IC卡自动加油控制系统由于涉及到金额、密码等机密数据,因此需要做好完善的加密工作,即要保证系统的安全性和可靠性。所谓安全性的实质就是如何确保当事人以外的客体不得介入;而可靠性的实质是如何鉴定当事人的真伪,以及所传递的信息的真伪和完整性。密码体系安全系统,设计指导思想如下:
(1) 一卡一密;
(2) IC卡的密码与卡号有关; (3) 加密算法的密钥需要安全保存;
(4) IC卡的密码能系统性动态变更; (5) IC卡密码生成采用DES加密算法。
SLE4442IC卡自动加油机控制系统的安全性主要体现在对SLE4442IC卡密码的操作和管理上,因此,密码安全体系即为整个应用系统安全设计的核心。本系统加密算法采用国际上普遍流行的公开加密算法一DES(Data Encryption Standard)加密算法。DES把传统的代替法和换位法进行多次组合,利用分散和错乱的相互作用得出了密码强度很高的密文。
DES算法的入口参数有三个:Key,Data,Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的SLE4442IC卡数据;Mode为DES的工作方式,有两种:加密或解密。
如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64 位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形
- 9 -