博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈https(创建、传输、断开)
阅读量:6250 次
发布时间:2019-06-22

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

前言

  比起http,https是更安全的,传输过程中加密的。但是具体的加密过程是怎么样我一直一知半解。花了点时间抓包简单分析了一下,希望对大家有用。

  在windows平台下抓tcp包是用wireshark的了。没啥好说的。  

  我们平常的一次https 的请求,如下所示

 

创建https连接

  创建https链接是最复杂的部分。

  首先是tcp三次握手。基于tcp的东西,这是必须的。

 

  然后是客户端告知服务器要创建https连接,这一步称之为 client hello客户端告知服务器要创建一个怎么样的https协议,并且发出一个client的随机数

 

  然后是服务器响应客户端一个ack(服务器说我收到啦^_^)

  接下来服务器向客户端发出server hello服务器与客户端确认https具体什么协议(TLS V1.0? V2.0?等),而且发出一个server端的随机数

  客户端没有ack~,服务器告知客户端证书里面有一个证书,通过diffie-hellman算法来加解密。

  客户端说我收到啦,有一次ack。

  客户端一次diffie-hellman参数校验

  最后,server端响应session-ticket,用于全程加解密

 

  连接就创建完了。以后就是全程加密的传输啦。

 

  简述创建https的过程:

  • tcp三次握手
  • 客户端发送hello client
  • 服务器发送hello server
  • 服务器发送证书、diffie-hellman参数
  • 客户端响应diffie-hellman参数
  • 服务器响应sessionTicket

传输

  全程加密, 没啥。。。

 

断开

  在传统的四次挥手中, 多了一个 Alert Message: Encrypted Alert。 没什么的。

 

参考

 

转载于:https://www.cnblogs.com/ELMND/p/5152125.html

你可能感兴趣的文章
JavaScript(ECMAScript) with 语句
查看>>
在小米工作是怎样一番体验?
查看>>
VS编译链接时错误(Error Link2005)的解决方法
查看>>
Oracle SQL Developer 连接 MySQL
查看>>
PHP 输出数据库中文是问号
查看>>
SameSite Cookie,防止 CSRF 攻击
查看>>
nginx+tomcat+redis完成session共享
查看>>
iOS开发拓展篇—UIDynamic(捕捉行为)
查看>>
Eclipse 编译java文件后出错 左树无红叉
查看>>
Laravel Debugbar
查看>>
CentOS系统程序包管理器【rpm、yum】
查看>>
谷歌浏览器跨域问题,命名行解决
查看>>
MyEclipse生成WAR包并在Tomcat下部署发布(转发)
查看>>
后台管理UI皮肤的选择
查看>>
inline-block 左边固定,右边自适应
查看>>
ubuntu 环境变量PATH的修改
查看>>
动态代理模式
查看>>
进度条,随机数---demo笔记【原创】
查看>>
Android -- 自定义View小Demo,绘制钟表时间(一)
查看>>
Download Free Oracle Reports Building Guide eBook
查看>>