HTTPS用于解决HTTP不安全的问题。解决办法是加了一层SSL的建立过程,建立过程大概如下。
1.客户端向服务器发起访问。
2.服务器收到后,向CA机构发送公钥,CA机构向服务器颁发CA数字证书,其中包含了服务器的公钥。服务器讲CA证书发送给客户端。
3.客户端收到CA证书后,得到服务器的公钥,并生成一个随机的密钥,利用公钥进行加密,并发送给服务器。
4.服务器收到后用私钥进行解密,得到客户端生成的密钥,往后都是通过这个密钥进行加密通信。
因为私钥只有服务器有,所以密钥只有客户端和服务端知道,保证了安全。此外,这个过程称为非对称加密,在后续的过程中都用同一个密匙通信,成为加密通信。
中间人攻击:
加入在服务器发送CA证书时,被中间人拦截,中间人讲服务器公钥K1变为自己的K2发送给客户端,客户端不知道被拦截,讲密钥用K2加密发送给服务端,中间人拦截利用自己的私钥解密得到密钥,并且利用服务器公钥K1加密发送给服务器,此时密钥就被中间人知道了。
如何解决呢?
关键在于如何保证CA证书一定是服务器发的。CA机构在颁发证书时,会用自己的私钥对一段消息进行加签,并且把结果和消息都放进证书里,客户端收到CA证书后,会用CA机构的公钥进行解签,如果结果跟消息不一样说明该证书被篡改了。因为私钥只有CA机构知道,所以保证了中间人无法篡改。
标签:总结,公钥,加密,CA,密钥,HTTPS,服务器,客户端 From: https://www.cnblogs.com/benbicao/p/16610079.html