1.HTTP的安全问题
(1)客户端和服务端无法互相确认身份。任何客户端都可以向服务端发送请求,服务端对于客户端的请求可谓“来者不拒”,无意义的请求也照单全收,因此无法阻止Dos攻击。
(2)无法保证报文的完整和无误。
混合使用对称加密和非对称加密:用来加解密的密钥用非对称加密方式传输,实际客户端与服务器通信采用对称加密——即使用之前经过非对称加密传输后 的密钥进行加解密。
但是RSA(非对称加密)不能够保证用来加解密的密钥来源可靠,否则就没必要采用HTTPS了,客户端与服务端通信直接采用RSA加解密。因此,需要第三方认证机构认证密钥的身份,办法CA(数字签名)。具体步骤如下:
服务端向CA机构申请,对申请的公开密钥做数字签名,将公开密钥和证书绑定在一起,浏览器预先将该证书进行内部植入。
当然,CA机构也不一定绝对可靠,因此CA机构又分等级。
疑惑:有时候网站协议为https,浏览器还是会提示不安全。
原因——可能是证书颁发机构不受浏览器或者操作系统认可。 比如12306证书是自颁发的,浏览器也会提示安全问题。