https的实现原理
作者:互联网
Https原理
http协议存在安全隐患
我们都知道http协议存在很多安全问题:
- 隐私隐患:个人的登录密码、隐私信息什么的都可能会别坏人盗走。
- 篡改隐患:很可能坏人会篡改我们要收到的数据,或者植入广告之类的。
- 冒充隐患:坏人可能会冒充浏览器接收我们的请求然后做出一些不好的事情。
- ……
所以我们就会想要保护我们的信息安全,因此那些伟大的科学家们就想出了很多方法来解决http的安全问题。
初步加密(对称加密)
已知传输的数据不安全,因为http协议是基于tcp协议的基础上的,这期间数据都是明文传输的,所以坏人一看就懂。于是科学家们很容易就想到要用加密这个方法来解决http的安全问题。对嘛,既然是明文,那我们加个密坏人不就看不懂了。
所以我们都用同一个加密算法和密钥,不就可以传输加密信息了!于是我们只要在TCP握手的时候交流好密钥的内容就可以了,如下图。
小黑在收到服务器返回的“有内鬼,中止交易!”这个密钥后就知道在每次传输数据的时候根据这个密钥使用加密算法得到密文再发送给服务器了,服务器收到小黑发来的密文也知道小黑要表达的实际内容是啥了,是不是很安全了?
好家伙当然不是了,为啥呢,请看下一张图:
既然密钥也直接在网络上传输了,那我内鬼凭什么不能拦截到,既然我拦截到你的密钥了,我还怕不能得出你的实际数据吗。
那怎么办呢,这也不安全,这时候就又很容易想到:既然密钥也不能明文传输,那我再给密钥加个密?这个思路当然是对的啊,但是要怎么加密呢?你想想,如果直接再用对称加密的方式的话,那是不是还得明文传输密钥的密钥,那说到底内鬼还是能破解,不行,这不够安全!那怎么办呢,科学家们又想出了另一种方法——非对称加密。
进一步加密(非对称加密)
到这一步我们已经知道了数据是使用对称加密的方式进行加密的,而密钥因为不能直接明文传输也需要加密,但是不能用对称加密的方式,得使用非对称加密。
那么什么是非对称加密呢?非对称加密也就是使用一对密钥,公钥和私钥,私钥只有一个且存在服务器,用户使用公钥进行数据加密并传输。为啥这时候传送公钥就不会不安全了呢?这是因为非对称加密有私钥能解开公钥加密的数据,公钥能解开私钥加密的数据,而公钥不能解开公钥加密的数据的特点。如下图。
看这下应该足够安全了吧,我们成功解决掉隐私泄露和篡改数据的隐患了对吧,那么冒充的隐患呢?
内鬼:其实我才是服务器!
如标题,内鬼完全可以冒充成服务端与小黑进行数据交流,反正公钥是服务端发给小黑的,那我也生成一对我自己的公钥私钥,再把公钥发给你不是一样的吗,你又看不出我是不是服务器是吧。
你看这张图:
可把服务器委屈的,可那怎么办呢,小黑不知道,
标签:公钥,加密,证书,实现,密钥,https,服务器,原理,小黑 来源: https://blog.csdn.net/qq_43689029/article/details/112971291