博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSL或TLS握手的概述
阅读量:7206 次
发布时间:2019-06-29

本文共 834 字,大约阅读时间需要 2 分钟。

SSL或TLS握手的概述

SSL或TLS握手建立了用于客户端和服务端通信的秘钥。

客户端和服务端SSL或TLS能够相互通信的基本步骤:

  • 确认使用协议的版本
  • 选择加密算法
  • 通过交换和验证数字证书对彼此进行身份验证
  • 使用非对称加密技术生成共享密钥,避免了密钥分发问题。然后SSL或TLS使用共享密钥对消息进行对称加密解密,这比非对称加密更快

综上所述SSL握手的步骤如下:

  1. SSL或TLS客户端先向服务端发送一个加密通信请求,叫做ClientHello请求。该请求包含以下信息:
    • 客户端支持的SSL或者TLS版本
    • 客户端生成的随机数,用于生成后续通信的随机字符串("对话密钥")
    • 客户端支持的加密算法
  2. SSL或TLS服务端收到客户端请求后,向客户端发出响应,叫做ServerHello。该响应包含以下信息:
    • 服务端从客户端提供的SSL或TLS列表中选择的版本
    • Sesstion ID 和 另外生成的随机数
    • 服务端的数字证书(如果服务端需要用于客户端身份验证的数字证书,则服务端发送一个客户端证书请求,其中包含受支持的证书类型列表和可接受的认证机构(CAs)的专有名称。)
    • 确认使用的加密算法
  3. 客户端收到服务端响应后,首先校验服务端发来的数字证书决定是否继续通信。
  4. 证书校验通过,会像服务端发送以下信息:
    • 生成一个随机数,并对这个随机数用从服务端数字证书中取出的公钥加密(用与生成后续通信的“随机密钥”)
  5. 如果服务端发送了一个客户端证书请求,客户端将会发送一个用客户端私钥加密的随机字符串和客户端的数字证书,或者没有数字证书的警告。在某些强制客户端证书的实现中,如果客户端没有数字证书责握手会失败
  6. 服务端接受并验证客户端证书
  7. 客户端向服务端发送一条完成的消息,该消息使用密钥加密,表示握手的客户端部分已经完成。
  8. 服务端向客户端发送一条完成的消息,该消息使用密钥加密,表示握手的服务端部分已经完成
  9. 在SSL或TLS会话期间,服务端和客户端现在可以交换使用共享密钥对称加密的消息

转载地址:http://ljvum.baihongyu.com/

你可能感兴趣的文章
服务器安装环境基本操作
查看>>
nslookup命令
查看>>
c++函数模板作为类的成员函数,编译报错LNK2019的解决方法
查看>>
Tensorflow安装
查看>>
判断个十百千位之后是否大于20 java——CSDN博客
查看>>
.Net插件编程模型:MEF和MAF[转载]
查看>>
java实现excel的导入导出(poi详解)[转]
查看>>
[转载]浅析jQuery框架与构造对象
查看>>
微信小程序基本入门
查看>>
oracl 数字型函数
查看>>
Q443 压缩字符串
查看>>
Bootstrap——网站添加字体图标
查看>>
MVC传递数据-传递对象或对象集合
查看>>
单页应用的三大优势及监控方法
查看>>
菜鸟调错(三)——Jboss与jdk版本号不兼容导致WebService调用出错
查看>>
你是那种仅仅看《XXXXX从入门到精通》的程序猿吗?
查看>>
Python开发【第一篇】:目录
查看>>
《新闻发布》解析
查看>>
C++知识点
查看>>
FTP传输文件被破坏的问题(Linux、Busybox)
查看>>