论文部分内容阅读
近年来,随着互联网和通信技术的不断发展,人们的通信方式发生了巨大变化。借助于互联网以及移动网络,即时通信已经成为了当下最流行的通信方式之一。但是人们在享受即时通信带来的便利的同时,也面临着巨大的安全威胁,其中最突出的就是用户数据在传输和本地存储过程中发生的泄露风险。为此,本文针对即时通信中数据的传输和存储安全问题展开研究,设计并实现了一种基于XMPP(可扩展通讯和表示协议,Extensible Messaging and Presence Protocol)的安全通信应用系统。该系统基于客户端/服务器架构设计,借助于XMPP框架完成用户之间的即时消息通信,客户端和服务器之间通过XMPP协议进行通信和数据交换。客户端包括Android端和PC端,能够完成用户不同客户端上消息的实时同步更新。而应用的安全性保障则基于第三方可信PKI(Public Key Infrastructure)体系,并引入认证中心CA(Certificate Authority)对用户身份进行身份认证,针对每个用户的不同设备客户端颁发一套双证书。双证书将单个数字证书的身份验证和数据加密的职能进行分离,签名证书用于身份验证,加密证书用于数据加密操作,对不同的设备颁发双证书可以保证签名证书的唯一性和保密性。另外,针对本地存储数据以及通信中传输的数据,系统均支持国密算法进行加解密,达到了国家安全标准。同时,针对当前加密通信应用中的文件共享效率低下问题,本文设计并实现了一种改进的文件加密传输与共享机制。该机制将密文文件与文件会话密钥进行分离,密文文件被上传至文件服务器,而文件会话密钥与密文文件的路径信息首先经过群聊或者单聊加密处理,然后通过即时通信传递给目标用户或用户群。由此,转发者只需要对文件会话密钥与密文文件的路径信息进行简要的处理即可完成文件的转发。在保证安全性的同时,它有效的降低了客户端和服务器的资源消耗,提升了密文文件的利用率,并进一步减少了相关的文件操作。该应用系统主要包括用户注册、用户登录登出、好友管理、群管理、即时通信管理以及用户界面管理六大功能模块。其中,用户注册功能模块主要完成对注册手机号码的验证,并向CA申请双证书,最后完成XMPP服务器账号的注册。用户登录登出功能模块主要完成用户的登录鉴权,保证合法用户才能使用应用系统的其他功能模块。好友管理模块主要完成用户好友的管理,并为单聊中传输数据的加解密提供加密证书支持。群管理模块则是对聊天群组进行管理,并为群聊传输数据的加解密提供群会话密钥支持。即时通信模块则主要完成单聊和群聊中消息的发送、接收和存储等操作,并通过第三方密模块对传输数据和存储数据进行加解密操作,进一步保障即时通信模块中数据的安全。最后,本文基于Linux操作系统(Ubuntu 16.04)实现了该应用系统的服务器端功能,分别基于Android 6.0/7.0版本和Windows 7/10版本实现了其移动客户端和PC客户端软件,并对系统的各个模块进行了功能测试和性能测试,测试结果验证了系统的有效性和高效性。基于本文成果开发的“密聊”产品已经被应用到新疆CA和深圳CA的相关业务系统中。