http-https为何更安全?

241 阅读2分钟

http/https区别:

  • http明文传输无状态连接80端口,通信内容会泄露
  • httpshttp的基础上加入了ssl协议,可以加密传输,需要身份认证CA认证需要收费443端口,建立安全的通信通道,并确认网站的真实性

为什么https安全

  • 加密通信,即使别人获取到了信息也没法复原成原来的信息
  • 防止中间人攻击,黑客没法冒充服务端。因为服务端给了客户端一个CA证书。
  • CA证书的公信力:CA证书需要由公司或者个人发出申请,再通过邮箱验证等方法验证域名存在,避免了黑客冒充网站获取证书的可能。
  • 技术层面上,CA机构的公钥是写在操作系统或者浏览器里的。只有用CA机构的私钥加密的内容才能完成解密。确保了证书的确是CA机构发行的。

对称加密

  • 加密和解密都用同一个密钥,密钥也会被截取

非对称加密

  • 加密和解密用不同的密钥,但是黑客也可以获得服务器发给客户端的的公钥,所以需要服务端自己的公钥通过CA私钥加密发送给客户端客户端通过CA公钥认证获得服务端公钥

密钥

  • CA机构发行的私钥和公钥:验证服务器是证书的正规所有者,避免中间人攻击
  • 服务端发行的私钥和公钥:用于加密/解密客户端发行的密钥
  • 客户端发行的密钥:用于加密/解密客户端与服务端之间传输的数据

加密传输过程

  • 客户端需要将自己的密钥通过服务端的公钥加密后发送给服务端
  • 服务端自己的公钥通过CA的私钥加密后和CA证书一起发送给客户端
  • 客户端通过CA的公钥验证CA证书是否有效并解密获得服务器的公钥
  • 客户端自己的密钥通过服务端的公钥加密后发送给服务端
  • 服务端通过自己的私钥解密自己的公钥并获得服务端的密钥
  • 客户端服务端都拥有同一把密钥,就可以通过密钥加密/解密所有信息