SSL学习笔记

SSL 工作在应用层和传输层之间,—般用于终端到子网之间的通信,称为端到站的通信。

是由多个协议组成的两层协议集合,协议的上层有握手协议等四个协议,下层是记录层协议。

SSL握手协议SLL更改密码规格协议SSL警告协议HTTP协议
SSL记录协议
TCP
IP

SSL 协议中定义了三个更高层协议:握手协议更改密码规格协议警告协议

握手协议实现了服务端客户端之间相互的身份鉴别、交互过程中密码套件与密钥的协商

握手协议的主要作用有两点:一是通信双方对彼此进行身份鉴别;二是协商连接会话所需的密码参数(如密码算法、密钥),其中各类密码算法组成的集合称为密码套件。握手协议工作流程如下图所示,分为四个主要的阶段。

 阶段一:客户端向服务端发送 ClientHello 消息,服务端回应 ServerHello 消息。若服务端未回应,则产生一个致命错误并且断开连接。ClientHello 和 ServerHello 消息用于在客户端和服务端之间进行密码套件协商及确定安全传输能力(包括协议版本、会话标识等属性),并且产生和交换随机数。

阶段二:在客户端和服务端 Hello 消息之后是身份鉴别和密钥交换过程。在服务端发送完 Hello 消息之后,服务端将发送证书Server Certificate(签名证书和加密证书)和服务端密钥交换消息 Server Key Exchange(用于生成预主密钥)。如果服务端需要验证客户端身份,则向客户端发送证书请求消息 Certificate Request,之后发送服务端 Hello 完成消息Server Hello Done,表示 Hello 消息阶段已经结束,服务端等待客户端的返回消息。

阶段三:若服务端发送了一个证书请求消息 Certificate Request,客户端必须返回一个证书消息 Client Certificate。然后,客户端发送密钥交换消息 Client Key Exchange,消息内容取决于双方Hello消息协商出的密钥交换算法,

Eg1.如交换算法为 ECC,则客户端应产生46字节随机数与版本号一起构成预主密钥,并采用服务端的加密公钥进行加密并放在Client Key Exchange 消息中发送给服务端;

Eg2.如交换算法为 ECDHE,则Client Key Exchange消息包含计算预主密钥的客户端密钥交换参数。

同时,客户端根据双方的密钥交换消息生成预主密钥。如果客户端发送了证书消息 Client Certificate,那么也应发送一个带数字签名的消息Certificate Verify 供服务端验证客户端的身份。在对交换数据进行加密和签名计算时,交换数据的加密运算采用对方加密证书中的公钥来完成;交换数据的签名运算采用本方签名私钥来完成,而且签名计算的输入应包括加密证书。

阶段四:客户端发送密码规格变更消息,并立即使用刚协商的算法和密钥,发送加密的握手结束消息。服务端则回应密码规格变更消息,使用刚协商的算法和密钥,发送加密的握手结束消息。至此,握手过程结束,服务端和客户端可以开始进行数据安全传输。

更改密码规格协议则是用于通知对方其后的通信消息将用刚刚协商的密码规格及相关联的密钥来保护

警告协议用于关闭连接的通知,以及对整个连接过程中出现的错误进行报警,其中关闭通知由发起者发送,错误报警由错误的发现者发送,报警消息中包含报警级别和报警内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值