欢迎您访问九游体育·官方网站官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

一种IC卡应用系统的防窜改技术

文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年03月18日

[文章内容简介]:针对目前一些IC卡应用系统存在的某些漏洞,设计了一个IC卡应用系统来防止非法用户对IC卡的窜改。本系统按不同的安全级别使用了摘要、认证、加密等技术,保证了IC卡应用系统的正常运行。

    摘要:针对目前一些IC 卡应用系统存在的某些漏洞, 设计了一个IC 卡应用系统来防止非法用户对IC 卡的窜改。本系统按不同的安全级别使用了摘要、认证、加密等技术, 保证了IC 卡应用系统的正常运行。
    关键词:安全级别; 摘要; 认证;加密

    1 引言

    目前许多院校采用IC卡应用系统在校园内实现售饭、消费、管理等功能“一卡通”, 但是有些IC 卡应用系统存在着漏洞。在一些院校IC 卡系统中, 学生往往通过窜改IC卡载体的信息来破坏IC卡系统, 从而达到非法的目的。同样, 在一些电话IC卡系统中也存在着这样的问题, 用户通过分析、比较IC卡载体所载信息, 从而得到IC 卡内部各比特位的意义, 而后更改特定比特位, 以达到盗打电话的目的。在某些IC卡系统中,读写终端与服务器的通信是以明文方式传输, 这样非法用户往往可以通过侦听获得大量信息, 进而进入系统, 修改系统信息。本文从IC卡防窜改着手, 提出了一个可行的方案来解决IC卡防窜改的问题。

    2 防窜改安全需求分析

    IC 卡系统一般由以下几部分组成: IC卡、读写终端设备、通信网络和后台管理服务器。对IC卡系统进行窜改往往采用以下几种方式:

    ( 1) 解剖分析IC 卡的内部结构。将IC卡的电路进行解剖分析, 并利用较先进的仪器设备测试IC卡的各种密钥的位置和状态字, 从而破译整个系统。
    ( 2) 窜改IC 卡。通过解析IC卡后, 获取IC卡各比特位的意义, 利用先进设备可以窜改IC卡特定比特位的值。
    ( 3) 冒充合法持卡人使用IC卡。在IC卡使用过程中, 由于被盗或遗失, 使得非授权持卡人可能冒充合法持卡人使用IC卡。
    ( 4) 通过网络途径截获有价值的信息。在IC 卡应用系统中, 截获和分析通过网络传输的各类信息, 得到各种有价值的信息。
    ( 5) 对数据库服务器或系统服务器进行网络攻击, 瘫痪服务器, 使其中断服务, 窃取有价值的信息或者修改个人资料等。

    通过以上分析可以发现, 要防止IC卡的窜改应该在系统中增加以下两个模块: IC 卡认证模块、用户认证模块。同时为了保护服务器与终端之间的数据通信, 应该采用加密技术对信息流进行加密, 保证信息不会外泄。在服务器端, 要保证服务器数据的安全, 即使服务器被攻击, 造成部分数据泄露, 也不会危及到整个系统, 所以应该对存放的数据进行处理。

    为了保证IC卡内部结构不被解析, IC 应该有较强的抗解读性。在本文参考模型中IC 卡类型采用PHILIPS 公司的MIFARE1 型的非接触式逻辑加密卡, 该卡有较好的抗解读性; 它具有全世界唯一的序列号, 固化于IC卡内, 不可更改; 卡片分为16 个扇区, 每个扇区能存放不同信息, 便于安全等级的分类。本文主要是从软件上着手设计系统, 硬件不在本文讨论范围之内。

    3 应用系统防窜改整体设计

    3. 1 系统模型

    一般地, 校园IC 卡应用系统分为食堂消费、图书管理、校内消费以及校园银行等几个子系统, 不同的子系统安全等级也是不同的。例如在食堂消费子系统中安全等级最低, 图书馆借阅子系统安全等级稍高, 校园银行子系统安全等级最高。在低级别安全等级中没有过多的安全措施, 过多的安全措施往往会带给用户使用上的不方便, 也没有必要增加安全措施。在中等级别安全等级中, 在系统中加入了对IC 卡认证模块。在高级别安全等级中, 在系统中加入了对IC 卡和用户认证模块。对于后两种安全级别的数据通信是经过加密保护的, 防止信息泄露, 而在数据通信之前, 需先完成终端与服务器的相互认证。

    所有的数据在服务器的存放是经过加密处理过的。具体的模型图如图1 所示。

 

图1 参考模型

    3. 2 IC 卡认证模块

    本文参考模型所采用的IC 卡有固化、惟一的ID 号, 可以通过验证当前的IC 卡的卡号来防止伪造IC 卡, 但是仅仅靠检测卡号是无法防止窜改IC 卡内容。为此设计了以下方案: IC卡初始化时, 将卡号以及所要保护扇区的随机内容作为一个摘要算法的原文, 生成一个摘要值, 传送到服务器。当用户使用IC 卡时, 首先由读写终端读出IC 保护扇区内容, 以及IC 卡号作为一个摘要算法的原文, 生成摘要值, 传送到服务器。服务器根据IC 卡号在数据库中找出相应的摘要值进行匹配, 如果匹配, 认为此IC 卡在上次使用过后没有进行窜改, 是合法的IC 卡, 允许IC 卡使用; 否则IC 卡将在系统中被注销。当此次IC 卡使用完毕, 读写终端将结束时, 保护扇区的内容与IC 卡号再作一次摘要计算, 将摘要值传送到服务器, 服务器用此摘要值更新此IC 卡在服务器数据库中的摘要值。

    本模块采用的摘要算法是MD5。MD5 是一个典型的摘要算法, 其工作过程大致如下: 以512 位分组来处理输入文本, 每一分组又划分为16 个32 位子分组, 算法的输出由四个32 位分组组成, 将它们级联形成一个128 位散列, 当文本长度不够时进行填充, 而后进行四轮的运算, 取得良好的雪崩效应, 最后得出一个128bits 的摘要值。MD5 是一种无碰撞的压缩函数,有很好的安全性, 目前还没有有效的攻击方法。用MD5 可以完全满足IC 卡认证模块的安全要求。

    3. 3 用户认证模块

    用户认证的原理是用户向服务器证明自己拥有某个惟一性的、足以证明自身身份的秘密参数, 服务器对之验证。用户认证模块有两种: ①依托于IC 卡认证模块; ② 可以单独工作。在参考模型中采用的是前者, 其具体过程如下: 用户在终端输入口令, 读写终端将其口令作为密钥, 对被保护扇区进行一次加密运算, 将所得的密文作为IC 卡认证模块中摘要算法的原文进行摘要计算, 将摘要值送与服务器。服务器匹配摘要值,如果匹配则认证身份, 确认此用户是IC 卡的合法用户, 同时也完成了对IC 卡认证。采用这种方式的另一个好处是, 服务器端不需要存放用户口令, 所以服务器端的数据即使泄露也不会对用户口令造成威胁。

    DES 是20 世纪非常流行的加密算法, 但因其密钥长度不够长, 安全性在当前的计算强度下已显得力不从心。本参考模型采用IDEA 算法。该算法是利用“来自于不同代数群的混合运算”, 在三个代数群的基础上进行运算, 既能达到混乱, 又可以用于扩散。它的密钥长度为128 位, 可以有效预防穷举攻击和差分攻击。

    3. 4 通信网加密

    IC 卡认证与用户认证模块在一定程度上可以预防IC 卡的窜改, 但是非法用户可以在通信网中通过窃听通信流来获取有价值的信息, 从而可以模拟报文, 对服务器数据库进行更新以后, 再对IC 卡的内容进行窜改。例如非法用户要在校园银行子系统中更改自己的账户余额, 可以先在网络中用虚假的报文骗取服务器修改数据库数据, 然后再更改IC 卡内的数据, 从而达到窜改的目的。为了避免这种情况的出现, 必须采取数据加密的方式来保证信息流的安全。

    加密的方法可有三种方式: ①一次会话一个密钥。这种方式安全性好, 即使非法用户在已知明文攻击下也有相当高的安全性, 因为即使当前会话密钥被破解也不会对其他会话造成影响, 但是安全性的代价是系统的开销增加。因为在每一次生成会话时, 系统会为生成会话密钥消耗系统开销, 这对服务器和终端的性能提出一个更高的要求。②一个终端使用一个密钥。在开机时, 终端获取服务器的分配给当前终端的一个会话密钥。在终端没有退出应用系统以前, 终端发向服务器的所有报文都用此会话密钥来加密。③伪一次会话一个密钥。第一种方法增加了系统开销, 第二种方法会产生已知明文攻击, 因为报文的内容是可以猜测到的, 密文则可以在网络上侦听到, 而已知明文攻击会降低系统安全性。折中两者, 采用一种伪一次会话一个密钥方法: 在通信之前, 通信双方已经获得一个会话密钥, 并且由通信发起方生成一定长度随机数T, 将会话密钥作为密钥加密此随机数T得到一个密文C, 而用随机数T加密通信报文得到另一个密文M。将密文C 与M一同发送给通信接收方。接收方首先用会话密钥解密C, 得到随机数T, 再用T解密M 得到报文内容。如此非法用户无法获取明密文对, 避免了已经明文攻击。本参考模型使用第三种方法。

    但是, 仅仅用加密方法保护数据流的安全还不够, 为了防止非法终端接入应用系统, 骗取服务器的信任, 从而达到修改服务器数据库的目的, 必须在读写终端与服务器之间实现相互认证。Kerbors 认证协议是当前流行的认证协议, 现在一些操作系统支持此协议, 可以方便地实现认证。但是考虑应用系统的可移植性和可用性, 本参考模型并没有采用此方法, 而是实现了另一种较为简便的认证, 具体过程如下: 当读写终端要求接入IC 卡应用系统中, 首先服务器生成一个随机数R, 用该终端的用户口令K 加密R 得到一个报文M送与终端; 读写终端用K 解密M得到随机数R, 然后用K 加密R +1 得到一个报文M1 , 将其送与服务器; 服务器解密M1 得到R +1, 从而验证终端身份; 当服务器完成对读写终端认证后, 用终端口令K 加密一个终端操作员预留于服务器的一段认证码T与随机数R +2, 发送给读写终端;读写终端解密, 认证T与K +2, 读写终端完成对服务器认证, 至此完成服务器与读写终端的相互认证。

    经过认证后的通信双方可以开始通信, 但是在通信过程中, 非法用户可以通过重放、中间人攻击等方法对系统进行攻击。因此, 为了防止重放攻击, 应在报文中加入检测报文新鲜性的信息; 为了防止中间人攻击, 应在报文中加入检测报文来源的身份信息。在参考模型中的报文内容如图2 所示。

图2 伪一次会话一个密钥方式的报文格式

    密文C: 由会话密钥加密并由终端生成的随机数R。
    密文M: 由随机数R 加密。发送者身份编号: 在应用系统中唯一标志该终端或服务器的编号。
    发报日期: 报文发送的日期, 只要求精确到日期, 如果严格要求到分秒的话, 往往会因系统时间难以协调而产生大量被认为是重放报文的无效报文。
    报文编号: 当日报文的编号, 从0 开始计数, 每发送一个报文编号增加1。

    3. 5 服务器的数据存放

    目前的操作系统都或多或少地存在一些漏洞, 存在着被非法用户入侵的危险。如果操作系统一旦被攻入, 数据库数据被窃取或者被修改, 那么整个应用系统的安全性就受到极大的危险。所以对数据存放的设计目的是: 即使一旦数据文件被非法用户获取也不会有太多有价值的信息, 不会对应用系统造成大的危险。换言之, 服务器的数据是不应该明文存放的, 而是应该经过某种函数处理过的。

    考虑到入侵服务器操作系统并不是一件容易的事, 尤其是当服务器经过安全设置后, 为此在服务器端进行安全处理并不需要太高的强度。DES 加密算法的安全强度完全可以满足需要, 以此减少系统开销, 使安全模块工作透明化, 不给整个应用系统服务造成影响。每次服务器进入IC 卡应用系统时由操作员输入密钥, 当读写终端传来数据要求服务器认证时, 服务器根据IC 卡ID 号从数据库中取出数据, 用此密钥解密, 得到原明文; 当读写终端传来要求入库的数据时, 服务器用此密钥加密数据后得到密文再放入数据库中。而即使非法用户攻入了操作系统, 获取的数据也是经过加密, 不会获取有价值的信息,但是无法阻止其恶意的窜改数据库信息, 只有依靠经常性的备份来减少这种恶意窜改所带来的破坏。

    4 应用系统安全性分析

    在本参考模型中, 中等安全级别可以防止第( 2) 、第( 4) 和第( 5) 种攻击; 高级安全级别可以防止第( 2) 、第( 3) 、第( 4) 和第( 5) 种攻击。预防第( 1 ) 种攻击需要在硬件上进行重新设计。例如在IC 卡内加入触点, 一旦非法用户试图解剖IC 卡时, IC 卡内信息全部丢失, 或者对IC 卡内容加密等。这些方法不在本文的讨论范围内, 就不再赘述。

    现具体分析该系统的安全性( 以高级安全级别为例) 。为了预防第( 2) 种攻击, 系统使用了IC 卡认证模块, 该模块的安全性在于摘要算法的安全性, 在参考模型中所采用的MD5 算法的输出是128bits, 若采用强力攻击寻找一个原文具有某一个特定的Hash 值的计算困难性为2128 , 若采用生日攻击法, 寻找有相同Hash 值的两个输入需要试验264 个输入, 这样的计算难度对于目前计算机的计算能力是安全的。对于第( 3 ) 种攻击, 系统使用了用户认证模块, 该模块采用了IDEA 加密算法,该算法提供了比DES 更高的安全性, 目前还没有一个可行的破解方法。对于第( 4) 种攻击, 系统对通信过程双方实现严格的认证, 在保证通信双方都是合法用户后, 系统采用伪一次会话一个密钥的方式对报文内容进行了加密, 同时在报文内容加入保证报文新鲜性以及报文身份的信息以防止报文被窃听, 被重放, 并避免了中间人攻击。对于第( 5 ) 种攻击, 系统对服务器端所存放的数据用一个管理员所设定的密钥加密, 而这个密钥并不存放于服务器内。虽然采用的算法仍是DES, 但是考虑到入侵一个操作系统的难度以及数据库所存放的数据都是经过摘要计算以后再加密的, DES 的安全等级已经足够了。

    5 结束语

    在本参考模型中, 在不同的安全等级场所采用了不同的安全措施, 对低等级的子系统甚至不需要过多的考虑安全性, 而在高安全等级要求的应用场所则加入了足够的安全性。因为参考模型是一个校园IC 卡应用系统, 对安全性并没有过于苛刻的要求。在一些要求更高的安全应用场所, 可以在相应模块中采用安全性相同的算法, 或者采用更安全的认证协议来实现服务器与读写终端的相互认证, 从而提高系统的安全性, 更加有效地防止对IC 卡的窜改。

    参考文献:
    [ 1] 美] Bruce Schneier. 应用密码学———协议、算法与C 源程序[ M] . 北京: 机械工业出版社, 2000.
    [ 2] 王育民, 刘建伟. 通信网的安全———理论与技术[ M] . 西安: 西安电子科技大学出版社, 1999.
    [ 3] 杨南海, 王秀坤. 一种安全的IC 卡数据加密算法及其应用[ J] . 计算机工程与应用, 2002, ( 38 ) : 249- 250.
    [ 4 ] 王卓人, 邓晋钧, 刘宗祥. IC 卡的技术与应用[ M] . 北京: 电子工业出版社, 1998.

    作者简介:周洪伟( 1979 - ) , 男, 硕士生, 研究方向为计算机网络安全; 张来顺( 1963- ) , 男, 教授, 硕士生导师, 研究方向为软件工程、计算机网络。

   【稿件声明】:如需转载,必须注明来源和作者,保留文中图片和内容的完整性,违者将依法追究。

本文关键词:防窜改技术,防窜改,IC卡应用,IC卡
回到顶部