https是如何保证安全的?

总所周知,http是明文传输的,也就是你在发往目标服务器的过程中,中间路径下的所有的计算机都能抓取到ip数据包。中间服务器作为路由中转,数据流只会到达网络层,但是因为是明文传输,所以可以看到ip数据包上面携带的http明文。

https之所以安全,是因为使用了tls、ssl协议(下文所有安全协议都以tls讲述)。同样是建立在http的基础上的,对于http协议的应用程序开发者,其实是透明的,因为是相当于在http的传输道路上开辟了一条安全绿色通道,而这条通道,就是tls协议干的。

tls协议是建立在传输层以上,应用层以下,也就是应用层和传输层之间,我们这里简称为L层。客户端使用https传输的时候,在应用层还是明文,经过L层后,变成了密文,所以到了传输层的时候,其实变成一堆加密后的东西了。注意https的加密只在L层做了处理,所以下面的传输层以下都不会加密,明文传输(如果把ip头这些加密了,你还能确定网络包能到达目标服务器?)
这里写图片描述
此时加密后的ip包在网络之间游荡,当中间不轨的计算机抓取ip包后,由于不能到达L层,所以看到还是密文。而当数据包真正到达目标服务器的时候,传到L层的时候,由L层进行解密,所以到达应用层http的时候,又恢复了明文。关于L层是如何加解密的,这个涉及到了http证书和加密的东西,就是在这层干了这件事。这样对于发送端和接收端都做到明文传输,而中间路由者看到的都是密文。

猜你喜欢

转载自blog.csdn.net/jerryJavaCoding/article/details/81323317