C/C++的socket、ssl/tls网络编程
本课程的教学内容、适用对象和教学方法
不了解socket编程,如何上手编写socket程序
编写socket服务端代码
编写socket客户端代码
服务端客户端连测,并完善服务端客户端代码
通过网络抓包学习TCP/IP协议理论知识
封装socket系统函数,便于在大型工程中使用
根据实战项目使用封装socket类编写客户端程序
分析SSL/TLS/HTTPS加密通讯,并实战编写代码
- 学习SSL/TLS/HTTS通讯原理,分析X509V3证书
- linux下openssl多版本安装,openssl的目录说明及源码编译和调试
- 如何学习openssl,从手册到源代码,一层层深入学习BIO和METHOD
- 使用openssl封装的BIO编写客户端程序,并分析相关openssl源码
- 使用openssl封装的BIO编写服务端程序,并使用客户端测试
- 从openssl源代码深入剖析BIO的用法,为学习ssl通讯打下基础
- 使用openssl的BIO编写ssl通讯客户端,https访问百度web端
- 编写ssl客户端验签服务端SSL证书代码,并解析X509 V3证书
- 直接使用socket套接字和ssl编写ssl加密https客户端访问百度web端
- ssl编程,使用openssl的BIO编写ssl服务端代码,并用客户端联测
- 直接使用socket套接字和ssl编写ssl加密通讯的服务端,不使用BIO
- 编写ssl双向认证代码,使用新方式加载证书链和根证书
分析openssl源码,修改代码以适应生产环境
- 为什么要分析openssl源码,从TLS_method开始入手分析ssl通讯源码
- 分析openssl的ssl通讯捂手前期的socket读写初始化源码
- 分析openssl的ssl通讯源码,修改服务端代码处理握手超时提高效率
- 分析系统中断对ssl捂手的影响,分析bio_s_socket系统错误码封装
- 增加BIO读写回调函数验证TLSv1.3版本握手使用1-RTT
- 编写和设置SSL握手回调函数,进一步分析ssl捂手协议类型
- 编写SSL通讯的记录层协议格式解析代码,进一步分析SSL捂手协议
- 编写服务端TLS的ClientHello捂手协议回调函数,实现捂手挂起功能
- 分析openssl源码,编写版本控制代码,分析TLS1.2和1.3握手差异
- TLS1.3及1.2如何选择加密套件和套件的区别,并编码控制选择套件
- 分析openssl源码,TLS各版本在client/server的session复用机制
- 编写session tickets复用session代码,使用TLS1.3和1.2版本测试
- 编写使用session id复用session代码,分析两种复用机制设置方式
- 编写服务端控制只使用sessionTicket复用和服务端禁止session复用
- 结合RFC文档和openssl源码,进一步详述TLS各版本session复用机制
- 分析openssl的session复用源码,编写PSK客户端无证书SSL通信程序
- 编写openssl的PSK无证书ssl通信服务端代码,并和客户端联调测试
- 编写指定加密套件PSK无证书SSL通信服务端客户端代码,并进行测试
- 设置校验Key和加密Key,StatelessTicket复用session,并进行测试
- 设置session复用时,服务端在session中添加应用数据,并进行测试
- 分析CH协议中的psk扩展源码,及相关的签名算法验签CH包
- 分析openssl源码的TLS1.3和1.2的身份认证、密钥交换和扩展交互
- 分析openssl源码,TLS各版本的如何根据主密钥生成会话密钥
- 分析状态机并编写early data发送和接收代码,以实现TLS1.3的0RTT
- 分析状态机并编写服务端返回early data数据,以实现TLS1.3的0RTT
- 分析SSL_write源码,编写如何正确使用SSL_write发送数据
- 分析SSL_read源码,编写如何正确使用SSL_read接收数据
- 分析openssl的异步功能,并打上异步标记进行测试,然后课程小结
封装openssl的ssl通讯class、自定义证书和课后总结
提交答案
视频学习中有任何产品建议都可由此反
馈,我们将及时处理!
馈,我们将及时处理!
课时介绍
直接使用socket套接字,不使用openssl的BIO,编写ssl通信客户端代码,并调试和测试程序
课程介绍
c语言编写socket服务端和客户端代码,封装socket的class类,分析openssl的ssl源码,编写SSL/TLS客户端和服务端加密通讯代码,封装openssl的class类。









推荐课程
