https简单理解

概念

https全称为Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的http协议,它在http的基础上,在应用层添加了SSL/TLS,保证传输内容的私密性,常用于支付交易等环节。

https简单理解
除了SSL层的添加,CA中心的认证是也是https之所以安全的关键,否则会被中间人攻击所欺骗。
HTTPS传输流程:
https简单理解

  1. 客户端向服务器发起请求

  2. 服务器收到请求后先随机生成一对公钥和私钥,然后将公钥和其他信息使用某种hash算法生成一个消息摘要,传递给CA

  3. CA用自己的私钥加密消息摘要生成数字签名,并返回

  4. 服务器收到CA返回的数字签名后,生成一个数字证书,把CA返回的数字 签名和服务器的公钥及其他信息放到里面,返回给客户端

  5. 客户端拿到消息后,先去CA处拿到公钥,用CA公钥对数字证书中的数字签名部分进行解密,得到消息摘要A

  6. 客户端再用相同的hash算法对服务器的公钥及其他信息部分进行hash,得到消息摘要B

  7. 若消息摘要A和消息摘要B相同,则验证通过,未被篡改

  8. 客户端随机生成一个对称**,并用服务器的公钥进行加密,发送给服务器

  9. 服务器收到后,用私钥进行解密,得到对称**

  10. 用对称**对数据进行加密传送

  11. TCP结束连接

为何用对称加密和非对称加密相结合的方式

  • 非对称加密的算法RSA,PGP等,速度非常慢,不适合https这种实时性较强的场景,但是对称加密的速度很快,可惜在传输对称**的过程中,是一个麻烦,容易被攻击。
    怎么办呢?https采用非对称**和对称**相结合的方式,用非对称加密加***,由于**一般远小于需要传输数据的长度,因此消耗可以忽略不记,我们在实际数据加密解密过程中,采用的还是对称**的方式。这样我们即保证了数据的安全性,又能够使https的性能得到保证。