带宽指的是网络可以发送或者接受最大字节数
对称加密指的是信息交换用一个密钥来完成的,就是加密解密都是用的一个密钥,这种加密方式比较简单,快速。但是相对的不够安全
中间人攻击就是可以截取客户端或者服务端的传输内容,进行纂改的攻击方式。对于对称加密,因为需要进行一次密钥的传递,这个传递很容易被第三方的服务器拦截,从而进行信息获取。对于非对称加密虽然拦截了客户端或者服务器的公钥没什么用,因为公钥的加密是需要私钥解密的,但是了,中间人攻击一般都是很厉害的,他可以拦截你的公钥,换成自己的公钥,那么你们所用的公钥都是中间人的,他自己有私钥,完全可以解密。
既然HTTPS协议号称很安全,那么它的加密过程肯定不是这么简单的。HTPPS加密的其实是比较复杂,需要利用CA证书,为什么说CA证书是安全的了,那么就要看一下他的整个流程。
我们的浏览器已经和很多证书机构合作,很多认证机构的根证书都会保留在我们的操作系统里面。如果没有的话,就得上传证书了。我们假如我们操作系统已经有了某一个认证机构的根证书。当他收到服务端发送过来的CA证书之后,根据该根证书拿到了这个证书的公钥,如果能解密,那么这个证书就是合法的,那么中间人攻击就不会获取到这个根证书么?上面已经说了,颁发证书没那么容易,需要线上线下调查确认的,所以不用担心中间人伪造证书的。
上面我们说了,证书合法性保证了之后,虽然黑客不会替换证书,但是他还是有能力纂改证书的,那么这个时候我们怎么保证证书没有被篡改了,这个时候证书里面的摘要就发挥了作用,如果中间人改变了证书内容,那么客户端根据自带的根证书在生成一个摘要,如果摘要和服务端发送给过来的摘要不一样就是被纂改了,那么有人会说中间改了证书信息,然后自己也把摘要换了,这个是没可能的,因为一旦你想动数字签名的内容,首先你得有对应的CA证书公钥才能解密签名替换摘要,一般不会有,因为上面说了你想得到根证书,需要CA机构认证,外一就算你得到了公钥,替换了摘要,但是签名是需要CA机构的私钥加密摘要生成的,CA机构的私钥一般的黑客肯定是没有的,所以这种情况我们认为是不可能实现的。
对上面的图进行一个大概的解释
在TSL握手第一阶段的时候。客户端首先发起ClientHello,这个请求包括了
在接受到了ClientHello之后,服务器就得回复了
这个过程就是上面说的服务器给客户端发送证书的过程,客户端拿到证书之后,首先确认证书的合法性,然后再看一下证书内容是否被纂改了。如果都是正常的话,那么就会获取证书里面的内容,拿到服务器的公钥,此时这里回答上面的一个问题,这个公钥并不是最终的会话加密的密钥,而是为了生成最终对称加密的密钥。这里的公钥其实是一个非对称加密的公钥,目的是为了加密预主密钥,所以HTTPS加密其实是一个包含了非对称加密和对称加密的过程,最终的通信加密其实是一个对称加密。
这个告诉客户端这次的服务器发送已经完毕,等待客户端响应
这个协议指的是告诉对方,我已经计算出来了(下面会讲,此时客户端有了预主密钥,客户端随机数,服务端随机数,有能力制做会话密钥了)
告诉服务端,我这边的信息已经发送完成了
告诉对方(客户端),我会用你发过来的预主密钥(服务端自己有私钥可以解密),加上你的随机数和我自己的随机数,生成一个相同的会话密钥的