Http和HTTPS

Http和HTTPS

Tags: 面试面试


1. 为何须要Https

1.1 Http协议的缺点

  • 通讯使用明文传输,内容可能会被窃听。
  • 不验证通讯方的身份,有可能遭遇跨站请求伪造。
  • 没法证实报文的完整性,有可能发生报文被修改的情况。

1.2 Https如何解决上述问题。

Https是在Http的基础之上加入加密处理,认证机制和完整性保护的。即Http+加密+认证+通讯保护=Https浏览器

  • 经过加密能够防止明文传输的时候密码等关键信息被窃取。
  • 经过认证确保通讯方的身份,防止出现跨站点的请求伪造攻击。
  • 经过完整性保护,确保在信息的传输过程当中没有遭到信息篡改的情况。

1.3 实现方案

Https并非一种新的协议,只是http通讯接口部分使用ssl/tls协议代替而已。一般http是直接和tcp进行通讯确保在不收到外部干扰的状况下,保证信息的完整性接收。可是Http协议是在httptcp之间加入了ssl/tls。让http先和ssl/tls进行通讯,而后ssl/tls再去和tcp进行通讯。在中间的ssl/tls的过程当中对传输的信息进行加密,认证,保护。 去防止上面讲到的Http的缺点。安全

其实所谓的Https就是在Http和TCP之间加了一个SSL。服务器


2. SSL/TLS是什么

SSL是(Secure Sockets Layer)的缩写,中文成为安全套接层。这个是网景公司(NetScape网景浏览器?)设计的。tcp

为什么要发明SSL这个协议?觉得以前的HTTP协议是明文的,存在不少缺点具体的看上面。发明这个协议就是为了解决上述问题。加密

SSL/TLS协议的基本思路就是采用公钥加密,也就是说,客户端向服务端索要公钥,而后用公钥加密信息,服务器收到密文以后,用本身的私钥解密。可是这里存在两个问题:设计

  1. 如何保证公钥不被篡改
  2. 公钥加密,私钥解密计算量太大,比较耗费时间如何减小耗用的时间。

解决方案code

  1. 将公钥放在数字证书当中,只要证书是可信的,那么公钥就必定是可信的。
  2. 每一次对话(Session),客户端和服务端都生成一次对话秘钥,又变成了对称加密,且对称加密的秘钥泄露的风险会大大下降。

这种搭配使用能够延伸到GC,Redis锁。接口

相关文章
相关标签/搜索