https认证原理
为什么要有https,为了解决什么问题?
在http时代,所有数据都是明文传输,一开始大家都觉得没什么问题,后来发现互联网上存在一种叫黑客的人,他们会去截取和捕获这些信息.
尝试用非对称加密解决该问题
为了加密数据,我们引入密钥将数据加密不就好了吗?是吧
好,我们设计一套数据加密方案,采用非对称式加密
好了,乍看上去好像没什么问题,任何一个第三方在没有私钥的情况下,无法查看报文的内容,也无法篡改,但事实是很有问题的,假如客户端的第一次请求就发送给了一个不可信的第三方,然后第三方作为中转站生成一套它的公钥C私钥C会怎样呢?
看到了吗,这就是中间人攻击,hack作为中间人,接受数据左手倒右手,右手倒左手,中间可以捕获敏感数据也可以篡改页面.
对于client端以为hack就是服务器,对于server端以为hack就是客户端,然而谁也不知道他们通讯的信息实际上已经全部被一个未知的第三方捕获了.
如何解决该问题
解决这个问题的切入点就是保证服务端的公钥不被替换,保证客户端每次都是直接和server沟通
而保证这个东西的手段就是ssl证书
服务端发送给客户端自己的SSL证书+公钥A,然后客户端拿着证书+公钥A找CA认证服务器进行认证,确认是否该公钥被篡改,或者说从本地已有的证书中确认,这样中间人就没办法拿自己的公钥私钥去劫持会话了.