zoukankan      html  css  js  c++  java
  • 浅谈https(创建、传输、断开)

    前言

      比起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。 没什么的。

    参考

    http://blog.csdn.net/fw0124/article/details/40875629

    http://blog.csdn.net/fw0124/article/details/40983787

  • 相关阅读:
    Postman安装与使用
    最新的爬虫工具requests-html
    从高级测试到测试开发
    uiautomator2 使用Python测试 Android应用
    zalenium 应用
    Docker Selenium
    Java 测试驱动开发--“井字游戏” 游戏实战
    DevOps/TestOps概念
    Android测试(四):Instrumented 单元测试
    appium对博客园APP进行自动化测试
  • 原文地址:https://www.cnblogs.com/ELMND/p/5152125.html
Copyright © 2011-2022 走看看