初探HTTPS

HTTPS可以说是面试问的频率非常高的一个点

如果不知道这个东西,可能就凉凉了,因为现在https用的很多

如果知道,他是安全的,和TLS,还算勉强

如果熟悉他的加密、握手、签名原理,面试官绝对会高看你一眼


学习自

https://www.jianshu.com/p/6c981b44293d


HTTP是明文的,假如你拿到了post的body,里面的数据你会直接看到,是没有经过加密的,这就是明文

HTTP存在3个问题:

1.明文

2.通信双方可能伪造

3.数据被篡改


所以在TCP和HTTP层之间加了一层加密层

SSL/TLS

从SSL逐渐优化,到了现在的TLS


他们是怎么加密的呢?

1.怎么确保加密安全呢?

假如说,服务端和客户端都有一个只有他们知道的共享的密钥,你可以认为这是一道加密算法,服务端面向不同的客户端有不同的加密算法。这个加密方式也叫对称加密。

2.怎么传递这个共享的密钥并且确保这个传递过程也是安全的呢?

需要使用公钥,也就是不对称加密方式。所以发送共享密钥的时候,用公钥加密这个共享密钥,就安全了。

3.为什么说公钥就安全呢?

服务端会把公钥发送给数字证书认证机构,对公钥进行数字签名。然后公钥+签名组成了数字证书。

然后服务端会把数字证书发给客户端,客户端拿到数字证书后,会通过第三方安全认证机构发布的公钥,对数字证书上的签名进行认证。(数字证书有两种,分别用来鉴别客户端和服务端的公钥)


TLS握手挥手流程


具体的每个动作的含义就不说了,哪怕写了,我也记不住。能把每一步的大体意思和所有步骤记下来就不错了。答成这样面试官已经可以接受了,觉得你不会太差,自主学习能力不会太弱。

猜你喜欢

转载自blog.csdn.net/qq_36523667/article/details/80148584