4.2 数字签名实现
5.程序运行效果
6.总结
本课题着重在于即时通讯方面的网络安全应用,因此模仿QQ实现了一个基于TCP/IP的即时通讯软件,采用客户端与服务器Client/Server模型,在此基础上,使用数据加密以及数字签名来保证信息传输的安全性和完整性。
本系统主要分为三部分,服务端、客户端以及access数据库。
服务端和客户端使用了封装了socket的更高层次的TCP套接字来实现消息传输,在传输过程中,需要对客户端与服务器的消息进行统一的设计,并对此有深入的了解;另外,需要运用C#网络编程,包括网络套接字、监察器等的使用,IP地址、端口、TCP/IP网络等的知识,并需要充分了解TCP/IP模型,特别是应用层;当然,还有C#线程编程。 消息传输的安全性主要依赖了对称加密以及不对称加密相结合的方法。对称加密处理速度快,但是对称密钥在网络中传输造成了一定的不安全因素;不对称加密通过公钥加密私钥解密来实现,更加安全,但是速度比较慢。本课程设计中,考虑到即时通讯消息传输的及时性,将两者结合,用不对称加密算法(RSA)加密对称加密算法(tripleDES)的密钥,在使用对称加密算法加密实际数据,进行传输。
消息传输的完整性则通过数字签名来实现。消息在传输过程中可能受到一些因素影响导致缺失或者出错。数字签名使用了hash算法来验证数据与原始数据,保证了完整性。通过RSACryptoServiceProvider类,利用私钥加密公钥解密的方法来验证签名。 实验过程中也遇到了不少困难,比如客户端和服务端消息传输的统一设计、通信的异步实现,使用了异步方法调用同步方法、加密与解密数据块的分割等等。
以下是软件值得改善的地方:
1.功能方面没有实现文件传输,并且添加文件的加密以及验证; 2.数据库的设计比较粗糙,用户密码的安全性没有得到保证;
3.可恰当增加聊天记录查看、表情发送、字体调节等功能;对于表情,我想在传输时可以通过制定一个特定的符号表示,当到达客户端时,可以通过翻译此符号得到表情库中的表情;文字等可以增加控件处理字体等。
4.界面上,美观性和易用性有待改善;
5.在网络技术上,可以扩展到因特网模式,或者使用多播技术以减少服务器的发送次数。鉴于多播技术,查阅过一些资料,觉得实现Internet上的多播是挺有趣的扩展。
课程设计对一个学生来说是一个非常的重要的学习过程,是一个动手实践的好机会。虽然课程设计接近尾声,但是我还会继续坚持去完善各模块功能,尤其是对加密算法的具体实现还不是很清楚,我将继续深入学习。
总的来说,这次的课程设计是非常有意义的,在我的大学学习道路上起到了一个里程碑的作用,让我有一个质的飞跃!
参考文献
[1] 马骏 《C#网络应用编程》第二版.人民邮电出版社,2010 [2] 萨师煊,王珊 《数据库系统概论》第三版.高等教育出版社,2000 [3] 钱乐秋,赵文耕,牛军钰 《软件工程》.清华大学出版社,2007 [4] 张跃廷,王小科 《C#程序开发范例宝典》. 人民邮电出版社,2007
相关推荐: