基于OpenSSL的安全聊天系统

preview
5星 · 超过95%的资源 需积分: 0 47 下载量 47 浏览量 更新于2014-12-19 2 收藏 382KB DOC 举报
openssl 的强大功能,其内部包含了大量加密算法程序.其命令行提供了丰富的加密,验证,证书生成等功能,甚至可以用其建立一个完整的CA.与其同时,它也提供了一套完整的库函数,可用开发用SSL/TLS的通信程序. 在本实验报告中,学生贾桂斌通过《网络安全程序设计》课程设计了一个基于OpenSSL的安全聊天系统,旨在实现点对点的加密通信,确保在Windows或Linux平台上进行安全的聊天。OpenSSL是一个强大的安全工具包,它包含了各种加密算法,如RSA、AES等,以及SSL/TLS协议的支持。该系统设计包含以下几个关键方面: 1. **实验环境**: - 操作系统:Windows XP SP3 - 开发工具:VC++6.0 - 其他依赖:OpenSSL和ActivePerl 2. **系统设计**: - **OpenSSL编程步骤**: - 安装ActivePerl,用于编译和操作OpenSSL库。 - 配置和编译OpenSSL源码,生成动态链接库。 - 创建自签名的CA证书,然后生成客户端和服务器的公钥和私钥对,用于身份验证。 - 使用OpenSSL命令行工具生成证书文件,如.crt和.key格式。 - 学习OpenSSL编程接口,包括SSL连接、身份验证和加密解密函数。 - 在客户端和服务器端编写代码,实现SSL/TLS套接字通信。 - 集成所需的证书和密钥文件,调试并运行程序。 - **系统框图**: - 虽然未提供具体框图,但可以理解为包括客户端和服务器两部分。客户端负责发起连接,发送和接收加密的消息;服务器端负责监听连接,接收和回应客户端的请求。 - **关键函数**: - `ClientThreadProc`是客户端的重要函数,用于创建网络连接、初始化SSL上下文、建立SSL连接,并处理与服务器的通信。这个线程函数中,还会进行消息的加密和解密,以及证书的验证。 3. **实验过程**: - 实验涵盖了从安装OpenSSL和ActivePerl到编写和测试代码的全过程。 - 展示了客户端和服务器端进行安全通信的截图,证明了系统的功能实现。 4. **实验与课程总结**: - 学生通过实验掌握了OpenSSL库的使用,理解了SSL/TLS协议的工作流程,以及如何在实际项目中应用这些技术。 - 实现了客户端和服务器之间的双向身份验证,保证了聊天记录的安全性。 5. **源代码清单**: - 提供了完整的源代码清单,表明了系统实现的所有组件和功能模块。 通过这个实验,学生不仅学习了OpenSSL的使用,还深入理解了网络安全的基本原理,如公钥基础设施(PKI)和证书验证,以及如何在C++环境中使用SSL/TLS进行安全通信。这对于网络工程专业的学生来说,是一次宝贵的实际操作经验,有助于提升他们在网络安全领域的技能。