简述HTTPS

作者: DrEnhart | 来源:发表于2022-04-24 16:04 被阅读0次

    要理解HTTPS首先要理解对称加密和非对称加密

    对称加密

    加密和解密用的都是同一个密钥。

    非对称加密

    有两个密钥,一个是公钥一个是私钥。公钥加密的内容只能私钥解开,私钥加密的内容也只能公钥解开。

    对称加密相对来说耗时短,但是安全性差。非对称加密相对来说耗时长,但是安全性好。
    所以HTTPS采用非对称加密来传输对称加密所需要的密钥。通信双方拿到对称加密所需要的密钥就对传输内容进行对称加密。兼顾安全性和性能。
    这个过程中存在一个问题,就是可能会被中间人窃取对称加密密钥。

    中间人攻击

    举个例子:服务器拥有私钥A和公钥A。客户端向服务器发起请求,服务器将公钥A发送给客户端。中间人劫持公钥A然后保存下来,并且自己生成公钥B和对应的私钥B,将公钥B发送给客户端。客户端生成用于对称加密的密钥X,然后用公钥B加密发送出去。中间人用私钥B解开公钥B加密的内容,成功窃取到对称加密密钥X。最后中间人用公钥A加密密钥X发送给服务器。最后客户端服务器和中间人都有密钥X,传输内容也就泄露了。

    其实根本原因在于客户端并不知道服务器传输过来的公钥是不是属于对应的服务器。

    数字证书与数字签名

    为了解决中间人攻击的问题,于是引入了第三方也就是CA机构。由CA机构向服务器发放数字证书(包含服务器公钥和服务器IP等信息)和CA机构私钥。数字证书经过哈希算法之后得要一个哈希值,这个哈希值在经过CA机构私钥加密后得到的就是数字签名。

    最后服务器向客户端传输的是明文数字证书和数字签名,客户端用CA机构公钥(从安装的根证书中获取)解开CA机构私钥加密的数字签名就得到哈希值A,再将数字证书用其中指定的哈希算法处理得到另一个哈希值B,比对两个哈希值就知道服务器公钥有没有被篡改了。如果没有被篡改那么安全的对称加密链接也就建立了。

    相关文章

      网友评论

        本文标题:简述HTTPS

        本文链接:https://www.haomeiwen.com/subject/euptyrtx.html