基于DES加密算法的射频智能IC卡门禁系统
【摘 要】 介绍了射频智能IC卡门禁系统的结构和特点,对如何运用加密技术,使系统安全性得到保证作了详细阐述。
1 引 言
射频IC卡与读卡机之间是非机械接触的,所以射频IC卡特别适用于大流量通过的门禁系统。射频IC卡与读卡机之间采用无线电通信技术进行通信,而无线电波在空间上是开放的,很容易被外部截获,因此普通不含CPU的逻辑加密射频IC卡抵抗不了最简单的密码攻击,通信内容很容易被窃取、篡改和假冒复制等,其安全性甚至不如普通逻辑加密的接触式IC卡。因此,只有采用内含CPU的射频智能IC卡,并配以相应的通信加密技术,系统的安全性才能得到保证。
射频智能IC卡所使用的通信加密技术有别于一般通信网络,有其自身特点:
(1)射频智能IC卡上的资源有限,不能做过于复杂的运算。有些低频卡还存在通信速率的瓶颈问题。
(2)读卡机与管理服务器之间用网络联系,但也可以脱离网络各自独立工作,在这种状态下,读卡机与管理服务器之间定期用大容量加密工作卡来传递信息。
(3)射频智能IC卡的工作环境十分恶劣,容易受电磁干扰和机械损坏。
(4)射频智能IC卡有可能被非法读写,受到来自多方各种级别的密码分析攻击,甚至来自于合法用户本身的攻击。
2 系统简介
2.1 系统结构
系统结构简图见图1。
(1)用户卡:射频智能IC卡。内核CPU为8位,CISC结构,4KBFlash,带自毁安全保护电路,128BSRAM;1KBE2PROM。合法用户持有,内部可以存储用户信息。
(2)工作卡:接触式逻辑加密存储IC卡,1MBE2PROM。用于传送密钥或非联网系统传递信息。
(3)读卡机:读取用户卡信息并对其进行鉴别认证。读卡机与用户卡之间通信的载波频率为13.56MHz。
(4)管理服务器:对系统内的信息数据进行处理,产生密钥表。对用户卡进行初始化,执行发行、挂失等操作。对读卡机的运行进行管理。
2.2 工作模式
(1)持卡直接通过模式:用户持卡在读卡机上得到鉴别确认后就可以直接通过。
(2)持卡输入用户密码通过模式:用户不但要在读卡机鉴别所持的卡,而且还要输入预先约好的用户密码。
(3)持卡输入个人特征通过模式:用户在读卡机上鉴别所持用户卡的同时,还要输入个人特征(例如:指纹、眼球虹膜等)。
2.3 工作环境
系统中读卡机总数量不大于200台,用户卡3万张以下,每台读卡机最大通过理论流量为每小时4000张用户卡。各读卡机联网运行,也可以脱离网络独立运行。脱离网络独立运行时,管理服务器与读卡机之间采用工作卡定期传递信息。管理服务器由保密员操作,重要系统需设专用保密室。读卡机不易被偷窃。用户卡所处环境较差,经常发生机械损坏和遗失。整个系统可能遇到不同级别的密码攻击。
3 密码协议
根据系统的特点和条件,选择了对称密码体系。大多数对称算法的加/解密密钥相同,程序设计简单可靠,资源开销较公约密码小,运算速度高。缺点是密钥分发、交换和管理的工作量大。
3.1 密钥生成、分发
管理服务器里的伪随机序列发生器产生长56位的密钥。弱密钥、半弱密钥被自动剔除。整个系统中所有卡和读卡机都编有产品序列号,管理服务器自动给每个产品序列号配以相应不同的密钥,制成密钥表待用,完成密钥分配。管理服务按产品序列号向用户卡注入相应的密钥,保密员用工作卡将密钥表传递给每一个读卡机。完成密钥分发任务。
3.2 鉴别认证协议
设:某台读卡机为A,其产品序列号为XA。设:有张用户卡为B,其产品序列号为XB。
(1)A不停地用XA向周围作明码呼叫,表示自己准备好了。
(2)当B进入A的场强范围,收到XA后,用XB做明码回答。
(3)A收到XB后,查密钥表后得到一对密钥K1、K2。A将随机数Ra与XA、XB放在一起用K2、K1加密后送出。以明文XA当头。
(4)B收到后,根据XA在密钥表中查得K1、K2,解密收到的密文。
B提取密文EK2(Ra,XA,XB)的头部56位为密钥K3,然后将随机数Rb与XA、XB和数据包C放在一起用K3、K1加密后送出。
数据包C内含双方姓名,B与A事先约定的用户密码或个人特征数字信息,校验数字和消息鉴别码(MAC)。MAC确保数据的完整性、正确性,起电子水印作用。
(5)A用与B同样的方法计算出K3,解密B发出的密文,校验数据包C中的项目,最终确认B。
A向机电设备输出执行指令,完成一次鉴别任务。
3.3 明文帧格式与密码分组链接模式
(1)明文帧格式见图2。
(2)密码分组链接模式:最长的明文长256bit,需分组加密。为了抵抗替代篡改攻击,要用密码分组链接法。链接就是将一种反馈机制引入分组密码中,即每个明文块在加密时都与前一个密文块进行异或运算。256bit的明文分为三个64bit的块。第一块中含有随机数Rb,第一块明文加密后的密文可直接当作初始向量与第二块明文做异或运算。
4 密码算法
在众多文献中可查阅到很多密码算法,但真正能适用于IC卡的密码算法并不多。公开密钥算法体系有许多优点,可能是今后发展的方向,但目前在IC卡上应用有许多困难,主要是资源开销过大。例如公开密钥RSA算法,它的主要运算是乘幂运算,用汇编语言实现很复杂。公开密钥算法中的椭圆曲线密码有希望用在IC卡上。
对称密码体系中的分组密码算法经常用在IC卡上,例如:DES、IDEA、RC2、RC5等,这些算法还经常以变形、多重组合形式使用。著名的DES算法虽然老旧,但用汇编语言实现很方便,因此很多安全性要求不是很强的系统还是优先采用它。DES算法使用时没有任何专利和许可证方面的限制。本系统中也采用了·06·DES算法。由于DES算法主要使用复杂的移位方式运行,射频智能IC卡上的CPU使用的汇编中备有多种移位指令,所以运行速度很快。另外,DES算法加密和解密可用同一个程序,只要在迭代末尾加个小变化,因此编程方便简单。
5 安全性
5.1 密钥生成、分发过程中的安全性
密钥生成、分发过程是由保密人员来操作,应该有理由信赖。但同时,人的因素也是所有密码系统中最薄弱的环节,大多数安全失败由系统运行时人的工作失误引起,而不是算法或协议上的失败。管理服务器由保密员操作,有多种软硬件锁来防止管理服务器被非法开启。工作卡由保密员掌握,工作卡内置逻辑加密功能和自毁电路,可以有效防止非法读写。读卡机上的密钥存储单元也具有逻辑加密和自毁功能。用户卡在做初始化时有电磁屏蔽保护。要想从上述硬件设备上获取密钥,代价很高,得不偿失。当然,保护好硬件设备,适时更换密钥是提高安全性的重要措施。
5.2 抵抗对协议的攻击
(1)本系统的密码协议里,后面的密钥都靠先前的消息提供。后面的消息作为所在先前消息的双重认证。这意味着某人不能重放一个旧的消息,否则接收者根本不能将它解密。
(2)协议加强了正确性执行。如果鉴别与被鉴别双方有一个没有正确执行该协议,协议都将终止工作。
(3)每一次发送的数据均有随机数编入,当发送相同数据时,每次所传送的密文不会重复。抵抗重放攻击有很好的效果。选一个好的伪随机数生成算法,能进一步提高安全性。
(4)密码分组链接模式能成功抵抗替代篡改攻击,系统的安全性依赖于基础的密码算法,而不依赖模式,尽管模式算法很简单。密码模式不会损害密码算法的安全性。
5.3 关于DES算法的安全性
DES算法最大的弱点是密钥长度过短,并且超期服役,抵抗穷举搜索攻击已逐渐力不从心,若采用三重DES算法可在一定程度上解决这个问题。完整的16轮DES算法抵抗差分分析能力较强,抵抗线性分析能力相对弱一些。可能有一些未曾公开的分析方法对DES算法构成威胁,但破译DES算法加密的消息需付出一定代价。总之,对安全性要求很高的系统,最好不要选用DES算法。
6 具体系统设计时的注意事项
本文给出的系统是一种较全面的方案。在具体应用中可适当作一些化简。总之,射频智能IC卡门禁系统的工作模式、系统大小、安全性、可靠性、系统成本等因素经常是相互矛盾的。用一种所谓标准系统模式来满足实际中所有要求是不现实的,唯有权衡利弊,根据具体情况来选取方案,才能设计出实用系统。重要系统的设计方案要经安全专家审核。
参考文献
1 卢开澄.计算机密码学.北京:清华大学出版社,1998
2(美)Bruce Schneier著,吴世忠译.应用密码学.北京:机械工业出版社,2000
3 H卡资安.标准数据加密算法.北京:人民邮电出版社,1983