初探Openssl编程

本文介绍了SSL的主要工作流程,包括网络连接建立、加密方式选择、身份识别、密钥确定和数据传输。重点讨论了SSL的握手协议,详细解析了客户端和服务器的交互过程,以及SSL记录协议在数据传输中的作用。同时,分享了OpenSSL编程的经验,提到了SSL_CTX初始化、证书加载和关键函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 SSL 缩写 Secure Socket Layer,在TCP层之上提供安全的网络服务。并且对应用程序透明,应用最广的不过于SSL于HTTP协议结合实现的HTTPS协议。
      SSL主要工作流程包括:1. 网络连接建立;2. 与该连接相关的加密方式和压缩方式选择;3. 双方的身份识别;4. 本次传输密钥的确定;5. 加密的数据传输;网络连接的关闭。
SSL协议建立在传输层和应用层之间,包括四个子协议:SSL记录协议和SSL握手协议,SSL告警协议,ChangeCipherSpec( 更改密钥规格 ),其中记录协议在其他协议下端。
SSL 协议结构如下:
 TLSSSL Protocol Layers
       我们先简单看看ChangeCipherSpec,Alert这两个个协议, 本文将重点介绍握手协议的过程,和记录协议,最后结合最近的经验,给一些SSL编程相关的指导。
       SSL 的告警协议是用来为通信对方发送一条告警消息,告警分为两个级别: fatal 和 warning, 对方收到fatal级别的消息之后会立刻断掉网络链接,需要重连和认证。而收到warming级别的消息就只会输出一条日志。
       SSL 更换密钥规格 (change cipher spec) 协议由单个消息组成 , 该消息只包含一个值为 1 的单个字节。对方收到这个消息之后就表明需要始使用之前协商好的密钥套件发送消息了。
       本文的重点终于来了, SSL握手协议, SSL要提供安全的网络服务,那么双方就必须要协商一套安全的加解密方案,众所周知,SSL只是提供一套安全方案,本身不提供加解密算法,而对于具体加解密算法,认证等,就是握手协议需要干的事情了。
SSL握手协议主要有目的有三:
1.客户端和服务端协商一致的用于保护数据的加解密套件;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值