基于混合加密算法的安全通讯系统的设计与实现
2022-09-24陈金娥童绪军
陈金娥,陈 涛,童绪军
(安徽医学高等专科学校, 安徽 合肥 230601)
0 引言
21世纪以来,互联网技术飞速发展,各行各业的发展对通信系统的依赖性越来越强,保障通信过程中信息的安全性成为了首要任务[1-2].目前,信息安全所面临的威胁包括:窃听,造成秘密泄露;篡改,发送的信息被修改;伪装,伪装成真正的发送者;否认,事后否认自己做过此事.这些威胁破坏信息的机密性、完整性、认证性以及不可否认性[3].悉宇航等[4]设计实现了一个基于国密算法混合加密系统,该系统更适用于军工、政府等机密要求较为严格的机构.鲍海燕等[5]设计了一个RSA算法、IDEA算法及MD5算法混合加密的系统,能有效的预防外来攻击.关宇哲等[6]设计了一个基于RSA算法和DES算法混合加密的通信系统,通过混合算法提高加密、解密的时间效率.
通过对比分析相关学者的研究结果,本文设计了一个适用性更广、时间效率更快、安全性更高的混合加密算法的通信系统.本系统实现安全通信的思路如下:首先采用RSA算法对服务端和客户端进行双向认证,即验证通信双方证书的合法性.考虑到RSA是一种非对称加密算法,计算较为复杂、耗时较长,不适用于对明文实时进行加解密;从而双向认证通过后,采用由客户端向服务端发送其支持的所有对称加密算法,服务端选择本文系统使用的AES-SHA组合加密算法,并将选择结果反馈给客户端;然后通信双方随机生成一个通信会话密钥,该随机密钥在通信双方发送接收数据的加解密过程中被使用;最后通过SHA算法对数据的完整性、准确性进行验证,从而能有效避免接收篡改后的数据,保障系统的安全性.
1 通信系统总体框架设计
1.1 加密算法的介绍
RSA算法是目前最常用的非对称加密算法之一[7],算法首先需要生成一对公钥pk和私钥sk,然后使用pk对明文进行加密,使用sk对密文进行解密,大致归结为以下步骤:
(1)选择两个大素数x和y;
(2)计算a=x*y;
(3)计算b=(x- 1)*(y- 1);
(4)选择公钥指数k,k小于b且不是b的因子;
(5)计算私钥指数t,t小于b且根据(k*t)modb= 1计算出t;
(6)生成公钥pk=(a,k),私钥sk=(a,t);
(7)明文M加密成密文C,C = Mkmod a;
(8)密文C解密成明文M,M = Ctmod a.
分析以上步骤可以得出,RSA算法的安全性与大整数做因数分解的难度密切相关,即算法的安全性与公私钥的位数相关,位数越大越安全.然而,RSA算法的加解密的运算都是指数级的运算,计算起来较为复杂,耗时较长.综合考虑之后,本系统选择了2048位的公私钥,既能大概率保证RSA算法的安全性,又能节省加密解密的耗时.
AES算法是一种对称加密算法,相对于非对称加密算法来说,加解密的速度会快几百倍[8],因此在双方通信证书验证通过后,将改为使用AES算法对双方发送的数据进行加解密.AES算法加密过程如图1所示.
图1 AES算法的加密过程
解密过程是加密过程的逆操作,加解密使用的密钥是相同的.根据AES算法的加解密流程可知其安全性的关键是保障密钥的安全,而密钥的安全性是由加密链中的RSA算法保障的.根据密钥长度分为3个版本AES-128、AES-192、AES-256,为了加快其加解密的速度,本文系统选择了AES-128版本.
SHA算法是继MD5算法之后使用最广泛的Hash加密算法,该算法具有加密不可逆性,通常用作数字签名,来验证数据签名的合法性.本文系统选择采用SHA-256加密算法,该算法相对于MD5、SHA1算法的耗时要高200 ms左右,但是安全性较高,综合考虑还是通过牺牲一点时间换数据的安全性.
综上所述,本文系统是由RSA算法、AES算法和SHA算法混合形成了一套安全的通信加密链.RSA算法的优点是安全性高,因此通信双方使用其传递并协商通信密钥;其缺点是加解密计算耗时长,因此当通信双方协商好通信密钥后,将改为使用AES算法对数据进行加解密操作.在整个系统的通信过程中,RSA算法对数据加解密的运算量占比非常小,因此其对整个系统的加解密耗时影响可忽略不计[9-10].加密密钥协商完成之后,将使用AES算法和SHA算法一起对通信双方发送的数据进行加解密操作,从而实现保障通信过程中双方数据的安全.
1.2 通信系统建立连接的过程
本文是基于混合RSA算法、AES算法及SHA算法实现的安全通信系统,通信系统建立连接的流程如图2所示.
图2 通信系统建立连接的流程图
当客户端向服务端发起通信连接请求后,首先双方根据证书对其身份的合法性进行验证,验证通过后双方使用RSA算法商榷出用于之后通信使用的加密算法AES和加密密钥,最后再通过SHA算法对接收数据进行签名验证.双方握手通信的具体步骤如下所示:
(1)客户端A向服务端B发起通信连接的请求, A将生成的第1个随机数random_f和通信双方支持的加密算法cipher suites列表一起发送给B.其中random_f需要A和B双方各自保存好,生成通信加密密钥时会用到.
(2)服务端B接收到连接请求后, B将其证书cert_s、生成的第2个随机数random_s和在cipher suites中选择的加密套件一起发送给A,并向A索要证书,来验证A的身份的合法性.其中random_s也需要A和B双方各自保存好,生成通信加密密钥时会用到.
(4)服务端B对客户端A的cert_c进行验证,验证失败则会断开通信连接,并给出相应的错误提示;验证成功后,B使用自己的私钥key_s将pre-master解密,将解密后的pre-master、random_f和random_s一起计算生成AES算法的通信密钥session_secret_s.
(5)客户端A将pre-master、random_f、random_s一起计算生成AES算法的通信密钥session_secret_c,A使用SHA-256算法将“步骤3”中发送的数据进行计算后得到hash值,然后通过AES算法使用session_secret_c对hash值加密后得到handshake_message_c,A将handshake_message_c通过B的公钥key_p使用RSA算法加密后发送给B进行数据签名验证.
(6)服务端B使用自己的私钥key_s将收到数据进行解密,然后使用“步骤4”中的session_secret_s对handshake_message_c进行解密,解密得到的hash值和 “步骤4”中接收到的数据使用SHA-256算法计算后得到的hash值进行比较,比较结果相同则签名验证成功,表示数据没有遭到篡改,是A发送的完整数据.B通过同样的方法计算生成签名数据handshake_message_s,并将handshake_message_s通过A公钥key_pc使用RSA算法加密后发送给A进行数据签名验证.
(7)客户端A使用自己的私钥key_sc将收到的数据进行解密,然后使用“步骤5”中的session_secret_c对收到的加密数据handshake_message_s进行解密,解密得到的hash值和“步骤3”中接收到的数据使用SHA-256算法计算后得到hash值进行比较,比较结果相同则签名验证成功,表示数据没有遭到篡改,是B发送的完整数据.此时通信双方的通信加密协议和通信加密密钥协商完成,安全通道正式建立.
1.3 通信系统安全性的分析
通信系统在双方通信的过程中,会面临各种各样的攻击风险,其中主要存在以下几方面的安全风险如图3所示.本文系统通过各种技术手段和管理措施,使系统正常工作,从而确保通信系统的可用性、完整性和保密性.
图3 通信过程中面临的几种风险
(1)窃取信息的情况分析
有些不法分子通过网络监听系统通信过程中发送的数据信息,可能会获取到双方通信的公钥和通过公钥加密的通信密钥.2009年RSA-729算法已经被成功破解,因此RSA-1024算法的安全性受到威胁.根据之前RSA算法的原理分析,算法的破解难度在于大素数的分解,穷举难度大,耗时长,当位数足够大时,算法的安全性是能够得到保障的.本文系统选择的2048位RSA算法,安全性高,因此通信过程中即使被人监听获取数据信息后,也不能在短时间通过公钥破解出私钥,再通过私钥破解出通信的加密密钥,再通过加密密钥破解出通信过程中的明文,系统的安全性有保障.
(2)篡改数据的情况分析
语言作为一种重要的非物质文化要素,是推动历史发展和社会进步的重要力量,是文化得以发生、发展、传递的根本保证,因此应该把开发和运用方言所承载的优秀文化视为当前语言文字工作中的重点。在语言可持续发展道路上,要突出方言文化多元丰富的特色,要依靠新技术、新媒体进行创新传播,最大程度地激发大众的自我需求和文化认同,真正做到在新媒体环境下保护、传播和传承优秀传统文化。
有些不法分子通过网络截获到系统双方的通信数据后,将数据进行篡改后再发送给对方,想通过发送篡改数据来攻击通信系统,造成通信系统数据的损坏.本文系统在发送数据的同时会将数字签名信息一起发送过去,当数据遭到篡改以后,接收方通过验证数字签名即可发现数据的完整性遭到破坏,则会自动丢弃数据,并断开连接来保障系统的安全性.
(3)伪装通信双方的情况分析
有些不法分子在通信双方建立连接时,截取双方的通信证书,并将自己生成的伪造证书发送给双方,想充当中间者跟双方建立通信连接,从而给双方发送虚假数据.本文系统中双方各有一个CA证书,CA证书能判断发送者的证书是否是经过CA证书认证过的安全证书.当有中间人将通信证书替换为自己生成的证书来进行通信时,在CA证书认证的过程中会被判断出是假证书,从而断开连接,保证系统的安全性.
通过对以上几种安全威胁情况的分析可以看出,本文系统对于以上几种安全攻击行为,都有对应措施来避免系统遭到攻击.因此当通信双方成功建立通信连接后,通信双方发送数据的安全性能够得到保障.
2 安全通信系统的实现与分析
采用C/S架构模式,运用IDEA工具进行系统测试和开发,双方通信连接遵循HTTP协议.服务器和客户端均使用java语言进行开发,搭建SSM框架(Spring+SpringMVC+MyBatis),应用MySQL数据库.本文系统主要实现了双向认证后的安全的实时通信功能,针对系统实现的功能分别进行功能测试、运行时间效率测试以及系统安全性的测试.
首先测试系统双方建立安全通信连接的功能,能保证客户端连接的服务端是指定合法服务端,保证服务端连接的客户端是合法授权的客户端,即双向认证的过程.然后再测试双方发送数据和接收数据的功能,具体的测试内容和反馈结果如表1所列.
表1 系统功能测试表
本文系统的服务端是支持多用户并发访问进行通信连接的,因此系统的运行效率对用户的使用体验至关重要.系统的运行时间效率主要包括两方面:建立通信连接的时间效率和通信发送数据的时间效率.本文系统主要针对这两方面的时间效率进行了测试和优化.首先测试系统的通信建立连接时间,如图4所示.本文共进行30次实验测试,根据30次实验结果数据取平均值得到的通信建立连接时间为155 ms,符合预期效果.
图4 系统建立通信连接的时间
然后再对系统发送数据的加密解密时间进行测试,对于20个字节的数据进行加密解密操作一共耗时28 ms.为了检测本文系统的时间效率有没有优化,将与文献[5]中的基于公钥密码的通信网络安全加密系统和文献[6]中的基于混合加密算法的通信网络密文防丢失传输加密系统作为对照组,共同完成性能验证.对本文系统的加密解密速度进行测试实验共30次,利用3个大小分别为466944字节即456 KB(文件1)、4739564字节即4.52 MB(文件2)和93847556字节即89.5 MB(文件3)的文件进行测试,将30组测试结果取平均值.不同加密系统的加密解密耗时测试结果如图5所示.
图5 系统对文件加密解密的耗时
由图5可以看出:本文系统的加密解密过程平均耗时在1 300 ms左右,文献[5]系统的加密解密过程平均耗时在1 500 ms左右,文献[6]系统的加密解密过程平均耗时将近2 500 ms左右.由此可以看出:本文系统所提出的基于混合加密算法的安全通信系统的系统耗时更短,整体性能得到优化.
为了对本文系统的安全性进行验证,在系统双方进行数据通信时,采用wiershark抓包工具对其数据进行捕获,进而模拟通信数据被监听的情况.捕获数据内容和发送数据进行对比如表2所列.
表2 系统发送数据与抓包数据对比
由表2可以看出,系统的通信数据被不法分子截获以后,不能在短时间内破解出通信明文的内容.当发送明文数据微小变化时,观察到捕获的信息变化很大,即系统加密的“雪崩效应”好,从而能保证通信系统数据的安全性.
3 结语
本文中设计实现了一种基于混合加密算法的安全通信系统,根据RSA算法、AES算法以及SHA算法各自的优势融合组成了一套安全的加密链,实现了系统双方安全即时通信,并通过测试验证了系统的高效性和有效性.
(1)系统在双方首次握手连接时通信时耗为155 ms左右,发送数据的耗时大小跟数据的大小密切相关,测试时对于10字节的数据,数据从发送方到接收方的耗时为20 ms;对于20字节的数据,数据从发送方到接收方的耗时为28 ms.由此可看出:当通信双方发送数据不频繁时,应当采用短链接,虽然首次握手的耗时长,但相对于不发送数据却一直占用通信通道所消耗的资源来说可以忽略不计;当通信双方发送数据频繁,且即时性要求高时,应当采用长连接,从而避免不断地重新建立通信连接导致增加系统的响应耗时.
(2)系统通信双方收发数据时获得的数据是明文显示的,发送过程中的加密过程被黑盒化,但是当第三方通过抓包工具截获的数据确实经过系统加密后的数据.由此可以看出系统只会对通信双方展示明文数据,其他人获取到的数据都是经过加密后的数据.
与之前传统的SSL通信加密系统相比,本文所提出的系统在整个通信过程中的耗时较短、安全性也能得到很好的保障.下一步将计划考虑通信数据的存取效率的问题,将重要的通信数据已密文的方式进行存储,当需要获取数据时再将密文转换成明文的形式[11-12].当然,现在应用的通信算法也面临着攻击破解的风险,随着加密算法的不断成熟,应该不断地对系统的加密算法进行更新替换,从而不断地提高系统的安全性.