智慧校园一卡通系统安全研究

2016-11-21 05:42:24王永建郎丰凯孙鹏飞
信息安全研究 2016年5期
关键词:同态一卡通指针

王永建 郎丰凯 王 迅 孙鹏飞

(中国通信建设集团设计院有限公司 北京 100079)



智慧校园一卡通系统安全研究

王永建 郎丰凯 王 迅 孙鹏飞

(中国通信建设集团设计院有限公司 北京 100079)

(kingselfme@sina.com)

为解决一卡通系统在智慧校园中的安全性问题,首先设计了一卡通系统架构,描述了各层功能.然后根据系统架构,分别从物理层、数据层、逻辑层分析了用户卡片和前端机具、数据访问、逻辑接口存在的安全风险,提出了安全防护方法、实现技术、注意事项.分析了传统存储卡中明文数据存储和运算的弊端,首次在前端机具中引入了同态加密与数据指针.该方案已运用在智慧校园一卡通的建设中,有效地提高了前端机具的数据安全性与处理效率.

CPU卡;前端机具;同态加密;数据指针;Web服务

云计算、大数据、传感器、RFID(radio frequency identification)、NFC(near field communication)等信息技术的发展,对教育的发展与变革产生了重大影响.为促进新形势下教育理念和教育模式的转变,教育部近些年大力推动智慧校园规划与建设的创新工作.

2015年7月8日,教育部、清华大学等机构举行了“2015智慧校园规划与建设暨高校信息化峰会”;2016年2月2日,教育部印发了《2016年教育信息化工作要点》的通知.一卡通在智慧校园中应用广泛,如图书馆管理、教务管理、学籍管理等.

智慧校园一卡通系统不再局限于传统的一卡通应用,它是一个利用IC(integrated circuit)技术、计算机技术和通信技术,集多种功能和应用于一体的面向校园服务的综合性信息处理系统.它已渗透到师生的工作、教务、学习与日常生活的方方面面,涉及到大量的敏感数据与个人隐私信息,因此智慧校园一卡通系统的安全性日益重要.

本文基于智慧校园一卡通系统架构,对整个系统的安全性进行了探究.

1 系统架构

智慧校园一卡通系统的安全体系必须基于其系统架构,本文设计的系统为B/S服务模式,系统架构分为4层,从底层往上依次为物理层、数据层、中间件层、应用层.如图1所示.

1) 物理层.物理层是整个一卡通系统运行的基础信息设施,包括感知层的前端机具、卡片、传感器、网络设备、服务器、磁盘阵列等物理设备以及设备之间互联的物理接口.

2) 数据层.数据层由一卡通中心数据库与灾备中心组成,包括数据缓冲服务系统、数据调度系统、服务组件、技术组件、安全管理系统等.实现校园一卡通系统数据的采集、处理、存储、管理与容灾、备份、检索等.

3) 中间件层.中间件层可实现一卡通中心数据库与应用层的隔离,屏蔽用户直接对数据库的操作,以保证数据的安全[1].

4) 应用层.应用层是用户能够感知、体验到的业务系统,可概括为核心系统、自助服务、其他应用3类.

图1 一卡通系统架构

如图1所示,本文从物理层、数据层、逻辑层(中间件层和应用层接口)等方面对智慧校园一卡通系统的安全性进行研究.

2 物理层安全

本文物理层安全仅考虑卡片、前端机具,暂不考虑网络设备、服务器、磁盘阵列等.

2.1 卡片安全设计

2.1.1 卡片安全要求

一卡通卡片是用户身份信息验证的介质,用户使用最为频繁,若丢失或者被破解盗用损失巨大,所以卡片本身必须具有很强的抗破解性.

一卡通要求用户卡片有唯一的卡片序列号CSN(card serial number),在制卡过程中,主密钥根据该唯一的序列号分发得到用户卡片上的子密钥,实现一卡多密钥、一区一密钥的机制.即使一张用户卡的密钥被破解也不会对其他用户卡造成影响[2].

必须采用国家行业密钥体系,卡密钥体系的安全性是一卡通系统成败的关键,能防止出现盗卡和伪卡的产生[3].

2.1.2 CPU卡

M1卡是目前应用最广泛的卡类,属于IC卡,其成本一般比磁卡高,保密性好,但是IC卡已被破解,本文选用CPU(central processing unit)卡.CPU卡支持一应用一密钥,不同的应用采用不同的密钥,若某个应用的密钥被破解也不会影响到其他的应用.

CPU卡内的集成电路中包括:微处理器CPU;存储单元,包括随机存储器RAM(random-access memory)、程序存储器ROM(read-only memory)、用户数据存储器EEPROM(electrically erasable programmable read-only memory);芯片操作系统COS(chip operating system).CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能[4],如图2所示:

图2 CPU卡组成及认证示意图

CPU卡具有以下完善的安全机制.

1) 持卡者合法性认证.PIN(personal identification number)校验,通过持卡人输入口令来进行验证身份的合法性.

2) 卡合法性认证.内部认证,卡内本身的数据更安全,卡内数据在传输过程中采用了随机数参与的密钥认证方式.

3) 系统合法性认证.用户卡片外部认证引入PSAM(purchase secure access module)卡,将应用程序中的密钥存入PSAM卡中,实现卡对卡的密钥认证,系统商不存在掌握密钥的隐患.用户卡片和PSAM卡中的密钥无法被读出,认证和加密均是在卡内部实现的,中间结果不能获取,以增加卡的安全性.

4) 网络依赖性弱.COS系统使CPU卡对计算机网络系统要求较低,可支持脱机操作[5].

5) 安全隔离性强.一卡多用,每个应用之间相互独立,各自的密钥独立管理[6].

6) 密钥体系安全.采用公共密钥认证,与设备生产厂商无关;一用一密,用后即毁.

2.2 前端机具安全

前端机具包括POS机、圈存机、读写器、签到机、授权机等,是一卡通系统采集数据的主要方式,也是实施攻击破解的常用途径.根据交易流程,安全机制主要从以下方面考虑:1)前端机具与卡片之间双向身份验证;2)交易记录的完整性、合法性、唯一性;3)交易数据存储与运算的安全性;4)交易数据传输的安全性等.

2.2.1 前端机具与卡片的双向身份验证

不管前端机具是在线或者脱机状态,前端机具与卡片之间可双向验证身份的合法性、有效性.当卡片插入时,前端机具首先能够验证卡片的合法性;验证通过后再进一步检查该卡片是否在黑名单中、是否过期、是否功能被限制等,若都不是才确认该卡是合法的.同样,卡片亦验证前端机具的合法性,只有合法的前端机具才能够验证卡片的身份,修改卡片中的数据,持卡人不可自行修改卡中的数据.

通过PSAM卡中存放的消费主密钥和充值主密钥,根据CSN得到用户的消费子密钥和充值子密钥,完成前端机具与卡片之间的双向身份认证,保证卡片与前端机具的合法性.

2.2.2 交易记录的安全性

不管前端机具是在线或者脱机状态均能保证交易记录的完整性、合法性、唯一性等安全要求.

前端机具完成每次交易的同时产生唯一的交易认证码TAC(transaction authentication code),保证交易数据的正确性、完整性、不可篡改或者伪造.TAC码由交易认证密钥对CSN、交易金额、流水号、日期、时间、次数、终端号、机构号等经过加密算法得到.

TAC码产生有2种方式:前端机具在线时的TAC码由后台的硬件加密机生成,离线/脱机时的TAC码由前端机具中的PSAM卡生成.运营机构结算系统与校园一卡通中心清算系统之间的数据交换采用MAC(media access control)认证保证安全,由后台硬件加密机进行MAC的生成和校验.

2.2.3 交易数据存储与运算的安全性

前端机具要求具备独立的存储器,可支持普通存储器和安全加密存储器.

1) 普通存储卡

采用普通存储器的前端机具中,不管在线或者脱机状态,每完成一笔交易记录均采用32 b循环冗余码校验(cyclic redundancy code, CRC)生成唯一的校验码,防止存储器中的数据被非法修改.但是,传统的存储卡数据以明文形式存储,并且以明文形式进行运算,存在被篡改、窃听、截取等安全隐患.

2) 同态加密

如果前端机具中的数据能采用密文存储和运算,将极大提高交易数据的安全性.本文在业界中首次将同态加密(homomorphic encryption)技术引入前端机具中,以解决该问题.

同态加密概念于1978年由Rivest等人[7]提出.同态是指对密文进行操作的同时也对明文执行了相应的操作[8],即对密文进行的特定运算与对明文进行的另一种(可能与前者不同)运算是等价的[9].

本文对同态加密定义如下:设加密操作为E,密文为e,解密操作为D,明文为m,对明文操作为h,则

e=E(m),m=D(e).

若对于E存在操作F,使

F(e)=E(h(m)),

则称E就是h的同态加密算法.

同态加密分为加法同态加密与乘法同态加密.

加法同态加密:设m与n为明文,如果存在有效操作⊕,使E(m+n)=E(m)⊕E(n),则称E为加法同态加密.

乘法同态加密:设m与n为明文,如果存在有效操作⊗,使E(m·n)=E(m)⊗E(n),则称E为乘法同态加密.

同时满足加法同态与乘法同态的称为全同态加密,仅满足加法同态或者乘法同态的称为部分同态加密.

全同态加密是解决本文研究思路的理想方法,不过同态加密概念自提出后即成为密码学界一个开放的难题.虽然研究者先后提出了多种同态加密方法,但是基本都属于部分同态加密.具有代表性的有ElGamal[10]提出的算法,RSA算法[11]属于乘法同态加密;Paillier[12],Benaloh[13],Okamoto[14],Naccache等人提出的算法属于加法同态加密.2005年,Boneh等人[16]利用代数环的结构特性,首次提出了同时支持加法同态与乘法同态的BGN加密算法,支持任意次数加法同态加密运算,但是只能做一次乘法同态加密运算.

由于理论上电路与函数可以互相转化,于是产生了通过电路实现全同态加密的方法,目前全同态加密算法基本上都是电路全同态加密算法,如Fellows等人[17]提出的Polly Cracker同态加密方案.不过函数转化为电路计算非常复杂,设计难度巨大,很难实际应用.所以,全同态加密的应用在于代数全同态加密算法的重大突破.

直到2009年,全同态加密算法有了重大突破,IBM公司的Gentry[18-19]基于理想格(ideal lattice)的方法提出了第1个全同态加密算法,在学术界产生了巨大影响.不过Gentry在算法设计过程中引入了很多数学困难问题假设,这些假设问题并未经过充分论证,还有待进一步研究验证,因此目前还无法实际应用.

在Gentry的基础上,学术界又作了新的研究,如Stehle等人[20]对bootstrapping电路全同态加密作了改进;Coron等人[21]提出了一种短密钥提高计算效率的方法等.这些研究仍然基于电路全同态加密,有许多问题尚未解决或者验证,实际应用难度仍然较大.

鉴于此,本文采用部分同态性加密算法,对完成的每一笔交易记录进行加密,然后对加密数据运算处理,既能保证数据的安全性又不影响数据运算.

2.2.4 交易数据传输的安全性

1) 分布式部署指针

为防止网络拥塞或者中断时前端机具中上一笔交易数据被后一笔交易数据覆盖或者交易数据丢失,本文引入指针(pointer)的技术.指针是编程语言中的一个概念,将一个地址的值指向存储器中另一个地址的值,通过地址查询到所需变量单元,即地址指向该变量单元形象地称为“指针”.在C语言中指针能显著提高字符串查询、表格提取和控制等程序性能,非常适合于一卡通终端数据采集.

前端机具支持重复采集的功能,采集完成每一笔交易数据时只是移动指针,采集完毕后的交易记录仍存于前端机具的存储器中,便于对全部或指定范围的交易记录重新采集[22].为防止由于数据指针丢失造成数据丢失,采用将数据指针保存在存储器中的多处不同位置的方法,只要有一处指针存在即可保证数据正确读取[23].

2) 链式数据结构体

数据结构的设计直接影响着数据读写、存储的效率与可靠性.为保证一卡通中交易记录的“唯一性”和前端机具的数据采集效率,建议采用线性结构体技术.

线性结构体中,数据元素之间是一对一的关系.线性表是最基本的线性结构体,存在顺序存储和链式存储2种结构.顺序存储结构利用一段连续的存储单元依次存储数据,用存储器中的物理位置关系表示数据之间的逻辑关系.链式存储结构利用一组任意的存储单元存储数据,逻辑次序与物理次序无关,数据之间的逻辑关系用指针表示[24].因此,前端机具存储器中的交易记录采用链式存储结构存储.

实现方式参考如下:

typedef structNode{

Data Typedata;/*数据域,存储数据元素*/

structNdoe*next;/*指针域,存储后继节点的地址[25]*/

} Lnode,*LinkList;

LNode*p;/*定义一个LNode类型的指针变量p*/

p->data/*p所指节点的数据域*/

p->next/*p所指节点的指针域,即后继节点的存储地址*/

LinkList:指向LNode类型的指针变量,通常用于定义头指针的数据类型,如:

LinkListhead;/*定义了一个头指针head*/

在p所指向的数据元素之后插入新节点,基本语句为:

LNode*s;/*定义一个LNode类型的指针变量s*/

s=new LNode;/*申请节点空间*/

s->data=x;

s->next=p->next;

p->next=s;

… …

3 数据层安全

数据层安全是一个比较大的概念,本文仅从数据库安全访问控制方面进行探究.

3.1 数据访问安全机制

在B/S服务模式的一卡通系统中,Web服务是系统的基础,也是人机交互的界面和安全事件易发区域.为保证系统的数据安全,借鉴安全域的理念,将一卡通系统划分为前端数据采集域、网络传输域、Web服务域、应用服务域、数据库域.在Web服务域与应用服务域之间,应用服务域与数据库域之间分别设置信任边界,Web服务域和数据库域之间不允许直接访问,用户无法直接访问数据库域.可采用边界控制系统或者堡垒主机的方式,保证用户的可信接入与边界完整性,防止非法用户访问数据库或者合法用户“违规”访问数据.如图3所示:

图3 信任边界示意图

3.2 基于角色与策略的控制机制

采用面向对象的方法,将不同的用户定义为不同的角色,不同的角色对应不同的策略.在系统的业务逻辑层,对不同的角色制定不同的访问策略,用户只能在其权限范围内访问数据库.如图4所示:

图4 角色与策略控制示意图

4 接口安全

本文的接口安全指一卡通系统既能实现与其他系统的互联、信息通信,又能保证数据的安全.一卡通系统中的接口可分为物理接口和逻辑接口两大类.物理接口主要指网络设备、机具等硬件设备互联接口,不在本文探讨范围,本文仅探讨逻辑接口.

4.1 逻辑接口分类

一卡通系统中逻辑接口分为以下类型,如表1所示:

表1 逻辑接口分类表

图5 接口对接示意图

根据表1分析,逻辑接口分为应用层接口与中间件层接口.

4.2 逻辑接口安全机制

4.2.1 应用层接口

对于B/S模式的第三方系统接入一卡通系统,若采用应用层接口互联,接口的方式可以是.dll和.Java Package等形式.

接口程序中将第三方系统智能卡的读写、认证、消费、考勤等具体应用进行封装,只需要第三方应用系统对程序进行相应调整即可[26],如图5(a)所示:

4.2.2 中间件层接口

中间件层统一定义所有的接口规范,制定严格的数据访问策略,必须通过数据访问层才能访问数据库.支持异构数据库操作系统,数据访问层要求标准的接口定义,后台数据库操作系统的变化,前台的应用系统无需变化[27].

对于基于Web Service的第三方应用系统,根据对接需要为第三方提供相应的Web Service接口,采用XML(extensible markup language)格式,如图5(b)所示.

Web Service接口分为调用方法与调用实体实现,在校园一卡通与银行或者其他支付系统的电子账户接口中,建议采用调用实体方法,不仅提高安全性,并且方便编程[28].

但是Web Service接口默认为匿名访问,Web Service的Url若泄露后存在不需任何验证可被随意访问的安全隐患,本文采用以下安全控制措施:

1) 随机Session ID加密验证.调用Web Service的同时产生一个随机的Session ID,将用户名与Session ID存入数据库,并将该Session ID加密后返回给应用程序保存;调用其他方法时需要提供用户名和Session ID验证.

2) Windows集成验证访问.通过设置Server-Config.XML,调用Web Service时需提供User ID,Password,Domain验证.

3) 基于数字证书访问.通过设置ServerConfig.XML,必须在服务器端和客户端安装数字证书才能访问Web Service.

5 结束语

本文基于智慧校园一卡通系统架构,从物理层、数据层、逻辑层等方面对系统的安全性进行了分析研究,并首次在前端机具中引入了同态加密与数据指针技术,已在智慧校园一卡通建设中运用,有效地提高了数据安全性与处理速度.智慧校园一卡通系统的安全是综合的、全方位的,本文只是涵盖了其中一部分,还有不少安全相关的内容没有包含.随着智慧校园的发展,新的建设理念、服务模式、信息技术的产生,将对校园一卡通系统的安全性提出新的要求,并产生新的安全方案,该领域的研究还需不断探索.

[1]王建诚. 服务器虚拟化技术在高校一卡通项目中的应用[J]. 信息通信, 2013 (10): 78-78

[2]郑君, 饶增仁, 陈士成, 等. 无线车载收费机关键数据的安全技术措施[J]. 甘肃科技, 2011, 27(1): 21-22

[3]龚敏, 陆萍. 基于城市通卡的发卡与密钥管理研究[J]. 福建电脑, 2012, 28(5): 105-107

[4]刘善勇, 何维. 基于一卡通应用的CPU卡安全性分析[J]. 现代城市轨道交通, 2012 (3): 84-86

[5]张建军, 包国峰, 马一兵. FM1208非接触CPU卡读写系统的研制[J]. 单片机与嵌入式系统应用, 2009 (12): 56-59

[6]魏晓霞. 浅谈IC卡道路运输证在道路运输行业管理中的作用[J]. 现代工业经济和信息化, 2013 (8): 90-91

[7]Rivest R L, Adleman L, Dertouzos M L. On data banks and privacy homomorphisms[J]. Foundations of Secure Computation, 1978, 4(11): 169-180

[8]任福乐, 朱志祥, 王雄. 基于全同态加密的云计算数据安全方案[J]. 西安邮电大学学报, 2013, 18(3): 92-95

[9]王辉. 同态加密的分析与优化[D]. 杭州: 杭州电子科技大学, 2012

[10]ElGamal T. A public-key cryptosystem and a signature scheme based on discrete logarithms[J]. IEEE Trans on Information Theory,1985, 31(4): 469-472

[11]Rivest R, Adleman L, Dertouzos M. On data banks and privacy homomorphisms[J]. Foundations of Secure Computation, 1978, 4(11): 169-180

[12]Paillier P. Public-key cryptosystems based on composite degree residuosity classes[G] //LNCS 1592: Proc of Eurocrypt’99. Berlin: Springer,1999: 223-238

[13]Benaloh J. Verifiable scret-ballot elections[D]. New Haven, CT: Department of Computer Science, Yale University, 1988

[14]Okamoto T, Uchiyama S. A new public-key cryptosystem as secure as factoring[C] //Advances in Cryptology. Berlin: Springer, 1998: 308-318

[15]Naccache D, Stern J. A new public key cryptosystem based on higher residues[C] //Proc of the 5th ACM Conf on Computer and Communications Security. New York: ACM,1998: 59-66

[16]Boneh D, Goh E J, Nissim K. Evaluating 2-DFN formulas on cipher texts[C] //Proc of the 2nd Int Conf on Theory of Cryptography. Berlin: Springer, 2005: 325-341

[17]Fellows M, Koblitz N. Combinatorial cryptosystems galore[G] //LNCS 1122: Proc of the 2nd Int Symp on Finite Fields. Berlin: Springer, 1993: 51-61

[18]Gentry C. Fully homomorphic eneryption using ideal lattices[C] //Proc of the 41st Annual ACM Symp on Theory of Computing. New York: ACM, 2009: 169-178

[19]Gentry C. A fully homomorphic encryption scheme[D]. Stanford, CA: Stanford University, 2009

[20]Stehle D, Steinfeld R. Faster fully homomorphic encryption[G] //LNCS 6477: Proc of the 16th Int Conf on the Theory and Application of Cryptology and Information Security. Berlin: Springer, 2010: 3771394

[21]Coron J S, Mandal A, Naccache D, et al. Fully homomorphic encryption over the integers with shorter public keys[G] //LNCS 6841: Proc of Crypto 2011. Berlin: Springer, 2011: 487-504

[22]卢冠明. 校园一卡通系统规划与设计[D]. 成都: 电子科技大学, 2008

[23]史光耀. 校园“一卡通”系统方案设计及应用[D]. 北京: 北京邮电大学, 2010

[24]崔敏. 指针和结构体在《数据结构》中的应用[J]. 计算机光盘软件与应用, 2014 (17): 308-309

[25]吕延超. 深度探讨计算机科学数据结构中链表的运用思路[J]. 科技资讯, 2010 (35): 16-17

[26]周兆永. 数字校园环境下的一卡通建设[J]. 中国教育网络, 2014 (1): 45-48[27]张琼. 赣南师范学院校园一卡通项目的研究[D]. 南昌: 江西理工大学, 2011[28]吴卫东. 校园一卡通电子账户接口应用研究[J]. 电脑知识与技术, 2015, 11(27): 194-199

王永建

硕士,高级工程师,主要研究方向为信息安全、信息检索、计算机应用.

kingselfme@sina.com

郎丰凯

硕士,高级工程师,主要研究方向为信息检索、计算机应用.

langfk@sina.com

王 迅

本科,工程师,主要研究方向为计算机应用.

sjywangxun@163.com

孙鹏飞

本科,工程师,主要研究方向为计算机应用.

spf_yicr@126.com

Study on Security of Card System in Smart Campus

Wang Yongjian, Lang Fengkai, Wang Xun, and Sun Pengfei

(ChinaInternationalTelecommunicationConstructionGroupDesignInstituteCo.Ltd,Beijing100079)

It is increasingly important of the security for card system in smart campus. Firstly, it designs the system architecture of card system, and describes the function of each layer. Then, according to the system architecture, it analyzes the existing security risks about user card, fore-terminal, data access and logical interface, respectively from physical layer, data layer and logic layer. It proposes the methods of security protection, implementation technology and the matters needing attention. By analyzing the disadvantages of data storage and operation of plaintext data in traditional memory card, for the first time, it introduces homomorphic encryption and data pointer in fore-terminal. The scheme has been applied in the construction of card system in smart campus, and it effectively improves data security and processing efficiency of fore-terminal.

CPU card; homomorphic encryption; fore-terminal; data pointer; Web service

2016-04-27

TP393

猜你喜欢
同态一卡通指针
关于半模同态的分解*
拉回和推出的若干注记
偷指针的人
娃娃画报(2019年5期)2019-06-17 16:58:10
为什么表的指针都按照顺时针方向转动
一种基于LWE的同态加密方案
基于“一卡通”开发的员工信息识别系统
电子制作(2016年19期)2016-08-24 07:49:44
HES:一种更小公钥的同态加密算法
向心加速度学习一卡通
向心加速度学习一卡通
基于改进Hough变换和BP网络的指针仪表识别
电测与仪表(2015年5期)2015-04-09 11:30:42