目录
1. 什么是对称加密?
客户端和服务端有相同的密钥,通过这个密钥进行加密和解密。
对称加密的问题是客户端和服务端如何约定这个秘钥,在约定秘钥的时候,客户端和服务端需要对暗号,可是这个暗号也需要约定,这时约定就成了一个循环。
2. 什么是非对称加密?
服务端有公钥和私钥,私钥自己保存,公钥可以在互联网上随意传播。客户端的信息通过公钥加密,服务端通过私钥进行解密,服务端使用私钥进行加密,客户端使用公钥进行解密。
此时的问题是,服务端发给客户端的数据是通过私钥进行加密,公钥可以进行解密。而且黑客可以获得服务端的公钥,此时黑客可以使用公钥解开服务端发送的数据,没有保护到服务端发送给客户端的数据。
因此可以让客户端也有自己的公钥和私钥,把自己的公钥给服务端,这样服务端和客户端的数据就都进行了加密。
3. 对称加密的私钥和非对称加密的公钥,如何传输给对方?
一种是放在公网上,让对方去取,一种是在建立连接的时候,传给对方。
4. 如何鉴别获得的私钥或公钥是合法的,非冒充的?
需要权威机构CA(Certificate Authority)背书(对证书进行签名),被权威机构背过书的公钥称为证书,此时对于非对称加密来说,客户端获得不再是公钥,而是证书。客户端拿到证书之后,到CA上去请求一个公钥,这个CA的公钥需要更厉害的CA为这个公钥背书,然后获得CA的CA的公钥来验证当前CA的公钥是合法的,通过这种层层背书的方式,保证公钥是合法的。此时根据获得的最底层的CA给的公钥去解密证书上的签名,如果解密成功,说明这个公钥是合法的。
5. HTTPS是如何工作的呢?
HTTPS利用非对称加密用来传输随机数,然后客户端和服务端根据随机数计算出一个秘钥,双方利用秘钥进行对称加密传输数据。
6. 抓包查看握手过程是什么样的?