• 计算机网络之HTTPS协议


    • HTTPS协议是以安全为目的的HTTP通道,比单纯的HTTP协议更安全,相当于HTTP的升级版。
    • HTTPS的安全基础为SSL,就是在HTTP下加入SSL层,意思是HTTPS通过安全传输机制进行数据传输,这种机制可以保护网络发送的所有数据的隐秘性和完整性,降低非侵入性拦截攻击的可能性。
    HTTPS是在HTTP的基础上进行构建的,所以他们的基本工作原理是相同的,但他们还是有一些区别的


    实现过程
    1.浏览器发送ClientHello
    其中包含了浏览器支持的TSL协议的版本,支持的加密算法,压缩算法等。同时浏览器端生成一个随机数,一起发送给服务器。

    2.服务器返回ServerHello
    (1)确认TSL协议版本,确定一个双方都支持的加密算法
    (2)发送服务器的证书,发送一个服务器端生成的随机数。(如果访问的网站出于安全性的考虑,要求访问者也提供证书的话会在这一步发出请求。)

    3.浏览器拿到证书后验证该证书是否是可信任的,如果证书可信任,那么其中的公钥也是可信的。
    (1)浏览器生成第三个随机数 pre key,将pre key使用服务器的公钥加密,发送回服务器
    (2)编码改变通知,告知服务器接下来将使用选择的加密算法进行加密通信
    (3)将此前发送过的所有信息的摘要加密后发送给服务器,供服务器进行加密通道验证。最后发出客户端握手阶段结束信号。

    4.服务器接收到对方发来的pre key后,此时通信双方都拥有了三个随机数(前两个是明文发送的,第三个pre key 是非对称加密发送的),由这三个随机数双方可以计算得到两个相同的对称密钥,服务器使用这一密钥验证加密通道后,向客户端发送服务器发出:
    (1)编码改变通知:告知接下来的通信将使用加密通信
    (2)服务器握手阶段结束信号。

    至此握手阶段结束,双方接下来使用普通的http协议进行通信,由三个随机数生成的对称密钥加密内容。

    1.整个过程中靠证书体系为通信双方提供身份信任。
    2.通信双方共生成了三个随机数能最大限度地避免伪随机,保证了生成的对称密钥难以被暴力破解。
    3.第三个随机数的传输使用非对称加密,保证了双方对称密钥的私密性。
    4.整个通信中,只有pre key的发送使用了非对称加密,之后的加密通信都采用对称加密,最大限度地保证了通信效率。

  • 相关阅读:
    类的继承和方法重写
    引用地址的变化
    Java中代码块执行顺序
    冒泡排序实现原理
    JSP九大内置对象
    SSH框架运行流程
    springboot + maven 整合SSM
    Maven创建项目,Index.jsp报错
    一些js在线引用文档
    excel出现虚线怎么去掉?
  • 原文地址:https://www.cnblogs.com/lzlzzzzzz/p/13044285.html
Copyright © 2020-2023  润新知