校园一卡通系统安全机制及应用方案
文章出处:http://www.ifyousmell.com 作者:石润华,葛丽娜,钟诚 人气: 发表时间:2010年07月28日
前 言
Java 卡是一种可以运行Java 程序的接触式微处理器智能卡 。在Java 卡出现前,智能卡应用研发是一个复杂漫长的过程,各生产商对智能卡的研制都各不相同,没有一个通用的开发环境。由于Java 虚拟机的使用,Java 卡的Applet 能够在不同卡片的JCAE(Java Card Application En2vironment) 上执行,即通过Java 虚拟机的机制来达到跨平台的能力,真正实现一卡通的功能,大大增强了智能卡的灵活性。
Java 卡的出现统一了智能卡的编程接口(API) ,统一了智能卡的编程语言(Java 语言) ,为智能卡更大范围的应用提供了基础,真正使智能卡行业成为一个统一标准的产业。
1 校园一卡通应用系统及其安全性分析
校园一卡通系统是一种基于Java 卡的智能卡管理系统,以校园网络为基础,以Java 卡为个人信息载体,以读卡器作为局域网前端设备,直接与持卡人进行信息交换,各个功能子系统间既分工又协作。用户可以通过校园网进行数据查询。使得校园管理工作高效有序、快速简捷。真正做到一卡在手,万事诸行。其功能包括了一般校园管理的诸多方面,其结构如图1 所示。
校园一卡通系统是建立在校园网络的基础上,通过校园局域网,中心系统可以对各功能子系统进行统一管理;各功能子系统可以进行信息传递和交流;用户可以对个人信息进行查询。
为了保护系统数据安全和设备安全,防止对系统的恶意攻击,需要对系统进行网络安全防护。校园一卡通系统的数据量庞大、涉及面广,尤其包含有许多重要、隐私信息。所以确保数据的机密性、完整性、正确性和不可否认性是另一个必须考虑的安全问题。在校园一卡通系统里,数据库是信息存储中心和系统运行的基础。基于它的核心地位,其安全问题更是不能忽视。对于数据库安全问题,首要的任务是怎样控制用户访问权限,只有经过认证、授权的用户才能访问数据库。校园卡自身的安全也是整个应用系统安全的不可分割的重要组成部分。一旦校园卡的安全性受到破坏,那么整个系统也就无安全性可言。
2 校园一卡通系统安全防护
2. 1 网络层安全防护
为了保护系统数据安全和设备安全,防止对系统的恶意攻击,需要对系统进行网络防护。
(1) 设置防火墙:防火墙是一种行之有效且应用广泛的网络安全机制,可防止Internet 上的不安全因素蔓延到局域网内部。在兴邦校园一卡通系统里,为了增强网络安全性,抵抗网络攻击,在各个功能子系统、数据库、中心系统和校园局域网连接处放置防火墙。其网络逻辑结构简图见图2。
(2) 入侵检测:入侵检测技术是为保证计算机系统的安全而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术,是一种用于检测计算机网络中违反安全策略行为的技术。通过引入入侵检测技术,在网络中实时检测攻击事件的发生,并在攻击事件发生的早期阶段,切断攻击者的连接,保护系统安全。这里采用分布式混合入侵检测———基于网络的入侵检测和基于主机的入侵检测的方法。
①在各个子系统服务器进出校园局域网处放置基于网络的入侵检测引擎,不停地监视此网段中的各种数据包,对每个数据包或可疑的数据包进行特征分析。如果数据包与入侵检测系统中的某些规则吻合,则入侵检测系统就会发出警报或者直接切断网络的连接。
②在各个子系统服务器上安装基于主机的入侵检测系统,对该主机的网络实时连接以及系统审计日志进行智能分析和判断,如果其中主体活动十分可疑,入侵检测系统就会采取相应措施。
(3) 病毒防范:在网络环境下,计算机病毒有着惊人的破坏力,病毒防范是网络安全建设中需要考虑的重要环节。因此在各个子系统管理主机上安装有查、杀病毒程序或软件。
2. 2 信息安全———加密与认证为了确保系统数据的机密性、完整性、正确性和不可否认性,需要进行数据加密和实体认证。在兴邦校园一卡通系统里,发行者是整个应用系统中权限最高、最为关键的实体,有权修改卡内数据的权限(虽然不一定是数据所有者) 。要求要有很高的权威性,并被其他实体所信任。在所设计的一卡通应用系统里, 可由发行者代行CA[5 ]签证权力,发行者以自己的私钥向其他实体签发证书,证书采用X. 509 标准 。这里的实体是:持卡者、卡、终端(读写器) 和发行者(校园发卡中心) 。为了防止恶意攻击,需要进行实体认证,增强授权访问控制。授权就是确认其权限的合法性。在校园一卡通应用系统里实体间的认证,主要是指卡对持卡者的认证、终端对卡的认证、卡对终端的认证、发行者对终端的认证。
(1) 卡对持卡者的认证:要求持卡者输入个人识别码pin ,检验pin ,若pin 正确就验证其合法身份,可以为其服务。否则停止服务,并自锁(输入密码不正确超过一定次数后) 。
(2) 卡和终端(兴邦读写器) 的双向认证:
①卡产生一个随机数RC 。
②卡构造一条消息, M = ( TC , RC) ,其中TC 是卡的时间标记。
③卡用终端公钥PT 加密EPT ( C- C , ESC ( M) ) 发送给终端。C- C 为卡的证书, SC 为卡的私人密钥。
④终端用私钥ST 解密DS T ( EPT ( C- C , ESC ( M) ) ) =( C- C , ESC ( M) ) ,确认C- C 并得到PC 。确认密钥没过期。PC 为卡的公开密钥。
⑤终端用PC 去解ESC ( M) , DPC ( ESC ( M) ) = M ,这样既证明了卡的签名又证明了所签发信息的完整性。
⑥终端检查M 中的TC 以证实消息是刚发来的。
⑦作为一个可选项, 终端对照旧随机数数据库检查M 中的RC 以确保消息不是旧消息重放。
⑧终端产生另一个随机数RT 。
⑨终端构造一条消息, M′= ( TT , RT , RC) ,其中TT 是终端的时间标记, RC 是卡在第1 步中产生的随机数。
⑩终端用卡的公钥PC 加密EPC ( C- T , ES T ( M) ) 发送给卡。ST 为终端私人密钥。
1.1 卡用私钥SC 解密DSC ( EPC ( C- T , ES T ( M) ) ) =( C- T , ES T ( M) ) ,确认C- T 并得到,确认密钥没过期。PT为终端的公开密钥。
1.2 卡用PT解密ES T ( M) , DPT ( ES T ( M) ) = M′。以确认终端的签名和消息的完整性。
1.3 卡检查M 中的TT ,并证实消息是刚发送来的。
1.4 作为可选项,卡可检查M′中RT以确保消息不是重放的旧消息。
(3) 发行者对终端的单向认证:其认证过程同卡对终端双向认证的①~ ⑦步。
对于数据加密,混合应用对称加密密码体制(DES) 和非对称加密密码体制(RAS) ,并采用两级密钥:数据加密密钥和密钥加密密钥。数据加密密钥随机产生,一次一密(Java 卡芯片内需要有产生随机密码的专用程序,其他实体相同) 。发送方采用对称加密算法DES ,对保密信息用数据加密密钥k 进行加密。采用公钥加密算法RAS对数据加密密钥k 用接收方密钥加密密钥Px (即用户的公钥) 进行加密。发送方把证书连同两种加密信息传送给接收方,接收方先检验对方证书, 验证后用自己的私钥Sx 解密数据加密密钥k ,再用k 解密保密信息m。
2. 3 校园一卡通系统数据库安全策略
针对数据库具有客体较多、生存周期长、客体具有层次性和多项性、客体逻辑结构与物理结构的分离、数据库的安全与数据语法有关以及防范推理攻击等特点,建立如下多层结构、层层隔离、层层防护的安全模型:
对访问者的请求,通过防火墙的初级过滤之后,交由CORBA 层。CORBA 封装底层网络通信协议,实现跨平台通信,并以组件的形式提交应用服务器(Web 服务器) 。应用服务器接收用户请求,然后把用户请求传送至中间代理Agent 。Agent 请求识别与认证服务程序对用户进行认证。然后Agent 通过访问权限规则库和审计日志库检验用户的请求是否越权。验证为合法用户的合理请求后,则授权访问中心系统数据库;否则拒绝该请求,并且将非法请求记录在审计日志库。若同一来源的非法请求数量过多,将对该来源的请求作一些惩罚性的处理,比如拒绝该来源的一切请求(如图3 所示) 。
2. 4 校园卡的安全防护
校园一卡通系统功能齐全,涉及部门多,尤其校园卡上存储信息量多,要求安全性高。因此,除了一般智能卡的安全机制外,还补加了以下安全措施:
(1) 一卡一密。在校园一卡通系统中,采取了一卡一密安全措施。卡的密钥由用户保管,并且用户可以重新设置密钥,密钥以密文的形式传输与保存。这样攻击者虽然可以窃听通信线,却无法知道某一张卡的密钥,也就无法伪造一张完全相同的卡。因为不可能每个人所持有的校园卡上设置的密钥均相同,所以攻击者即使知道了某一张卡的密钥,也无法推算出其他人的卡上的密钥。
(2) 一次一密。这里的密钥是指会话密钥(数据加密 密钥) 。攻击者即使通过窃听通讯线,获取整个通讯过程中的明文和密文,但系统采用一次一密,密钥随机产生,破解全部密文理论上不可能。
(3) 锁死与解锁。如果连续多次输入密码错误,卡片将锁死,用户只有到发卡机构进行解锁,才可以继续使用该卡片。这样可以防止攻击者偷窃到系统中的一张校园卡,通过试密码的方法试出卡片持有者的密码,从而冒充该卡片的真正持有者进入系统。
3 结束语
校园一卡通系统是今后校园现代化管理的必然趋势,但因为服务种类多、涉及的信息量大,使得安全问题尤其重要。文中从多层次多角度对校园一卡通应用系统进行了安全分析,并采取了相应安全防护,为应用系统安全性分析与防护提供了范例。