美文网首页
详解HTTPS原理

详解HTTPS原理

作者: 林锐涛 | 来源:发表于2018-04-17 16:54 被阅读0次

    一、概念

    协议

    1、HTTP 协议(HyperText Transfer Protocol):超文本传输协议,是客户端与服务器之间的通信协议 。

    2、HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 协议,SSL的作用就是利用多种加密算法对HTTP进行加密,保证客户端和服务器能够安全的进行通讯。

    加密算法

    1、对称加密

    对称加密指加密和解密使用相同密钥的加密算法。它的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。

    常见算法:DES、AES等

    2、非对称加密

    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。它的特点是算法强度复杂、安全性高。但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

    常见算法:RSA、DSA等

    二、HTTPS

    http请求流程

    如上图所示,HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程。服务器只要收到请求,都会给予回应,因此这传输的过程中,数据很容易被黑客窃听和篡改。因此, HTTP 传输面临的风险有:
    (1) 窃听风险:黑客可以获知通信内容。
    (2) 篡改风险:黑客可以修改通信内容。
    (3) 冒充风险:黑客可以冒充他人身份参与通信。

    那么HTTPS是如何保证请求的安全呢?

    如果利用对称加密,双方拥有相同的密钥,信息得到安全传输,但此种方式也存在着明显的缺点,就是一旦公钥被泄漏了,那么服务器的安全就无法得到保障。

    如果利用非对称加密,客户端用公钥对请求内容加密,服务器使用私钥对内容解密,这样即使公钥泄漏出去,也不会影响服务器的安全。但是,由于非对称加密算法的复杂度,解密的过程需要消耗较多的时间,这样子会影响到用户体验。

    因此,https取其精华,弃其糟粕,把两者的优点结合起来。https协议在通信的过程中,会先进行下图所示的握手,第1-5步的过程是利用非对称加密算法,把客户端生成的秘钥传到服务器,服务器利用私钥机密,得到客户端生成的密钥。然后双方再利用这个秘钥对数据传输进行对称加密。这样子,既保证了传输过程的安全,又保证了数据传输的效率。接下来对这个过程进行详细的分析:

    https请求流程

    (1)客户端先向服务器发出加密通信的请求,这一步被叫做ClientHello请求;
    (2)图中第二步的crt是服务器从证书颁发机构申请的crt证书,证书包含证书的颁发机构、有效期、公钥、签名等相关信息。注意,证书中不包含私钥,私钥只存在服务器中
    (3)服务器收到客户端请求后,向客户端发出回应,这叫做SeverHello请求,在这里,服务器会将证书传到客户端;
    (4)客户端收到响应后,会对证书进行验证,如果证书无效,则会发出相应的警告,如果证书是有效的,客户端会生成一个随机的秘钥;
    (5)客户端利用证书的公钥进行加密,把上一步生成的随机秘钥传输到服务器;
    (6)服务器利用对应的私钥进行解密,获取客户端生成的随机密钥;
    (7)服务器利用随机密钥进行加密,把数据传输给客户端;
    (8)客户端利用随机密钥进行解密,获取响应的数据。

    三、总结

    综上所述,相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。所以在这个互联网膨胀的时代,其中隐藏着各种看不见的危机,为了保证数据的安全,维护网络稳定,建议大家多多推广HTTPS。

    相关文章

      网友评论

          本文标题:详解HTTPS原理

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