一、HTTPS和HTTP有怎样的区别呢?HTTPS == HTTP + SSL/TLS(SSL或者TLS)
HTTP:应用层 SSL/TLS:协议中间层 TCP:传输层 IP:网络层
HTTPS 是安全的HTTP,他的安全是由SSL或者TLS来决定的!SSL或者TLS是插在应用层之下,传输层之上的协议来保障的
HTTPS和HTTP有怎样的区别?HTTP+SSLTLSHTTPSSSL/TLSHTTPTCPIP协议栈
https://i-blog.csdnimg.cn/direct/128c1dbcefc64d9a9659edf5cb404b7b.png" width="666" />
二、HTTPS连接建立流程是怎样的?(考察安全是怎样保障的)
CLIENTSERVERTLS版本号,支持的加密算法,RANDOM NUMBER C商定的加密算法,RANDOM NUMBER SERVER证书验证SERVER证书组装会话秘钥通过SERVER的公钥对预主秘钥进行加密传输通过私钥解密得到预主秘钥组装会话秘钥加密的握手消息加密的握手消息
https://i-blog.csdnimg.cn/direct/eb983ed200644ec384b39b1b050ee468.png" width="824" />
1、客户端向服务端发送一个报文,报文包含TLS的版本,客户端所支持的加密算法 和一个随机数C
2、服务端收到报文后,给客户端返回一个握手的报文消息,包含确定的加密算法,一个随机数S,一个server证书
3、客户端收到之后,会进行一个证书的验证,验证证书是否合法,也就是 公钥验证
4、验证通过之后,客户端会进行组装会话密钥,预主密钥的生成
5、客户端通过server的公钥对预住密钥进行加密传输给服务端
6、服务端通过私钥解密得到预主密钥,通过随机数C和随机数S然后组装会话密钥
7、客户端向服务端发送 客户端加密的握手消息
8、服务端收到之后返回一个加密的握手消息,建立通信
会话密钥:会话密钥 == random S + random C + 预主密钥(对称加密)
预主密钥:非对称加密(服务端返回的证书,公钥)
三、HTTPS都使用了哪些加密手段,为什么
●连接建立过程使用非对称加密,非对称加密很耗时的!
●后续通信过程使用对称加密
四、什么是非对称加密
非对称加密公钥私钥LKM98N5TA6加密解密"HELLO""HELLO"接收方发送方
https://i-blog.csdnimg.cn/direct/67b166a7bcc84ea0ade3951a2c46ec8d.png" width="804" />
对称加密秘钥LKM98N5TA6加密解密"HELLO""HELLO"接收方发送方
https://i-blog.csdnimg.cn/direct/ff5a329b44a84e22a35937020ee8eaf3.png" width="790" />
对称加密的密钥来回传递的话是不安全的