• HTTP:聊一聊HTTPS


    一、什么是https

    https是http的升级,因为http是明文传输的,所以非常不安全,https在http的基础上进行了数据加密。

    二、https的加密方式

    1.对称加密

    服务端会给客户端发送一个key,客户端利用key来进行数据加密,传输给服务端,服务端再用key进行解密。

    但是这样黑客依然可以利用劫持key来或者数据

    2.非对称加密

    非对称加密是有一个私钥和一个公钥,服务器会把私钥发给客户端,客户端用来加密传输给服务器,服务器利用公钥进行解密,这样黑客即便是劫持了私钥,也不能解密数据

    三、https会同时使用对称和非对称加密方式

    原因是为了节省成本

    先看看两种加密的运行方式:

    1.服务器会先利用非对称方式给客户端发动一个公钥

    2.客户端利用公钥加密A并传给服务端

    3.服务端利用私钥解密拿到A

    4.这样客户端和服务端都有了A,也就是对称加密的KEY

    5.服务端和客户端利用本地的A进行加密和解密,从而避免了A钥匙的泄露

    这样的加密方式是不是很完美,然而还有漏洞,这就引出了安全证书

    四、什么是安全证书

    在使用对称和非对称加密的过程中看似无懈可击,但是黑客可以在刚开始劫持数据,给客户端发送伪造的私钥,客户端拿到假的私钥进行加密,黑客利用伪造的公钥进行解密,这就造成了数据泄露。

    这时候利用第三方机构提供认证的安全证书作为媒介

    1.服务器会先给浏览器发送安全证书

    2.客户端解析安全证书并验证他的合法性

    3.如果是合法的客户端就拿到了证书里的公钥对A加密并发送给服务器

    4.服务器拿到加密的A利用私钥进行解密(非对称)

    5.这样客户端和服务端都有了A,也就是对称加密的KEY(非对称)

    4.服务端和客户端利用本地的A进行加密和解密,从而避免了A钥匙的泄露(对称)

    五、最后来看一下https传输的全过程

  • 相关阅读:
    python中list添加元素的方法append()、extend()和insert()
    Python中的短路计算
    Python文件的读写
    Python匿名函数
    Python中的引用传参
    持续学习大纲
    【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用
    【JDK源码】 ☞ HashMap源码分析及面试汇总
    算法复杂度实例 -- O(1) O(n) O(logN) O(NlogN)
    Solr使用总结
  • 原文地址:https://www.cnblogs.com/musicbird/p/16165575.html
Copyright © 2020-2023  润新知