美文网首页网络
网络慢走-8

网络慢走-8

作者: 昵称与隐藏 | 来源:发表于2019-01-24 23:48 被阅读13次

    HTTPS协议

    前面讲过HTTP协议,http协议在通信过程中都是明文传送,黑客通过http抓包很容易把请求内容拦截,因此是不安全的。所以通信内容要加密,加密一般有两种方式

    一种是对称加密。服务端和客户端约定好了一个加密密钥,双方都通过这个密钥来加密和解密通信内容。这种方式有个问题就是加密密钥也要通过网络传输给对方,黑客如果在传送密钥的时候拦截住获取到密钥,那他完全就能够在后续通信过程中拦截通信内容并解密。

    另外一种就非对称加密。客户端和服务端分别生成各自的私钥和公钥,公钥用来加密数据,私钥用来解密数据。那所谓的非对称是什么呢,意思是我服务端发送的数据肯定不能是服务端的公钥来加密,因为只有服务端的私钥才能解密,如果你这么加密发出去没人能读的懂,所以一定是服务端用客户端的公钥加密数据然后发给客户端,这样客户端在收到数据之后就可以用自己的私钥解密了,同样客户端向服务端发数据要用服务端的公钥加密,这样服务端收到数据就可以用自己的私钥解密了。这样有没有发现需要把各种的公钥通过网络传送给对方。那问题来了既然公钥可以在网络上传输那自然可以拦截,如果有人拦截了服务端的公钥冒充服务端跟客户端通信,那我客户端如何才能辨别我拿的公钥是合法的服务端的公钥了呢,这个时候就需要一个权威机构的介入了。

    CA机构

    有了这个CA机构,服务器要项CA请求一颁发个证书,这个证书经过签名算法会给服务器公钥一个签名。这样客户端获取服务端的公钥就不是直接从服务端去拿,而是从CA上去拿,CA通过公钥加密客服务端证书把服务端证书给到客户端,客户端只要得到CA的公钥,就可以解密证书如果解密成功,签名hash对的上,那说明这个服务端的公钥没啥问题。但是如何知道我得到的CA的公钥就是合法的公钥呢,那就要往更高级的CA机构请求CA的CA签名 一次一次网上知道几个顶级权威的CA,我们称为root CA

    HTTPS的工作过程

    https结合了对称加密和非对称加密的优势,在生成对称密钥的过程使用非堆成加密,生成对称密钥后通信采用对称加密。

    HTTPS工作过程

    首先客户端会项服务端发用Client hello到服务器随着一个随机数用于后续加密,

    然后服务端收到消息后发送Server hello消息到服务器也随带一个随机数用于后续机密

    然后服务端会发送个客户端自己的证书。

    客户端收到服务端证书,不能轻易相信,于是到自己信任的仓库中拿CA的公钥机密服务端证书,可能需要层一层的网上认证,如果解密成功,说明服务端证书可信。于是生成一个pre-master随机数用证书中的公钥机密传输,这样服务端通过私钥就可以拿出来。

    这样服务端和客户端都有了各自的随机数,还有相同的pre-master,通过这三个随机数一起算出堆成密钥,

    用这个对称密钥进行一对握手验证,以后通信都用这个对称密钥进行加密通信了

    相关文章

      网友评论

        本文标题:网络慢走-8

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