• 《一篇文章读懂HTTPS及其背后的加密原理》阅读笔记


    HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。这篇文章深入介绍了它的原理。

    当我们适用浏览器发送比较隐私的数据时,如果适用http进行通信,则安全性将得不到保障。在数据传输过程中,数据可能会被中间人抓包拿到,那么数据就会被中间人窃取。数据被中间人拿到之后,可能会对数据进行篡改,然后再发往服务器,造成严重后果。在这种情况下,服务器收到数据之后,也无法确定数据有没有被修改或者替换,无法判断数据是否真的来源于客户端。

    总的来说,http存在一下缺点:

    l  无法保证消息的保密性

    l  无法保证消息的完整性和准确性

    l  无法保证消息来源的可靠性

    https就是为了解决上述问题应运而生。https并非是一项新的协议,而是在http上披了一层加密的外壳。

    https建立到断开分为6个阶段,12个过程:

    1.客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密匙长度等)。

    2.服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容时从接收到的客户端加密组件内筛选出来的。

    3.服务器发送证书报文。报文中包含公开密匙证书。

    4.最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。

    5.SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密匙进行加密。

    6.接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密匙加密。

    7.客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。

    8.服务器同样发送Change Cipher Spec报文

    9.服务器同样发送Finished报文

    10.服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。当然,通信会收到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。

    11.应用层协议通信,即发送HTTP相应。

    12.最后由客户端断开连接。断开连接时,发送close_notify报文。上图做了一些省略,这步之后再发送TCP FIN报文来关闭与TCP的通信。

  • 相关阅读:
    post和get请求
    博客开通了
    【树形动态规划】【CTSC1997】选课 解题报告
    【动态规划】天堂(Heaven) 解题报告
    [NOIP2013]积木大赛
    [树状数组+逆序对][NOIP2013]火柴排队
    [快速幂][NOIP2012]转圈游戏
    [前缀和+二分]借教室
    [字符串]TrBBnsformBBtion
    [NOIP2012]国王游戏
  • 原文地址:https://www.cnblogs.com/lzq666/p/11046316.html
Copyright © 2020-2023  润新知