Https加密
介绍
Http直接通过明文在浏览器和服务器之间传递消息,容易被监听抓取到通信内容。
Https采用对称加密和非对称加密结合的方式来进行通信。
Https不是应用层的新协议,而是Http通信接口用SSL和TLS来加强加密和认证机制。
加密方式
对称加密:加密和解密都是同一个密匙。
非对称加密:密钥成对出现,分为公钥和私钥,公钥加密需要私钥解密,私钥加密需要公钥解密。
两者区别
对称加密速度快,非对称加密速度慢。
对称加密要将密钥暴露,和明文传输没区别。
非对称加密将公钥暴露,供客户端加密,服务端使用私钥解密。
Https加密的选择
对称加密弊端
对称加密速度快,适合Https加密算法,但是服务器和浏览器之间传递密钥的过程被人监听,相当明文传输。
非对称加密弊端
服务端只将公钥暴露,浏览器使用公钥对消息进行非对称加密,服务端用私钥解密。但是服务端向浏览器回复的时候,只能用私钥进行加密,浏览器只能用公钥解密。但是:公钥是所有人都知道的,所有人都可以读取服务端回复的消息来进行解密,所以解决不了服务端向浏览器传递消息。
Https加密
对称加密和非对称加密结合方式
浏览器使用Https的URL访问服务器,建立SSL链接。
服务器收到SSL链接,发送非对称加密的公钥A返回给浏览器
浏览器生成随机数,作为对称加密的密钥B
浏览器使用公钥A,对自己生成的密钥B进行加密,得到密钥C
浏览器将密钥C,发送给服务器。
服务器用私钥D对接受的密钥C进行解密,得到对称加密钥B。
浏览器和服务器之间可以用密钥B作为对称加密密钥进行通信。
总结
这样浏览器和服务器就共享一个对称加密密钥B,重要的是不会被拦截到。只在传输密钥B的时候进行了一次非对称加密,之后就用对称加密进行传送数据。