接:https://htpp pan.baidu s.com/s/1ngn1rqBnWe23JwINxNP2fw

学技术时总是會问什么?这里也不例外https为什么会存在,它有什么优点又有什么缺点?为什么网站有的用http有的用https?如果不能很好的回答就往下看吧。

http通信存在的问题

  • http通信都是明文数据在客户端与服务器通信过程中,任何一点都可能被劫持比如,发送了银行卡号囷密码hacker劫取到数据,就能看到卡号和密码这是很危险的
  • http通信时,无法保证通行双方是合法的通信方可能是伪装的。比如你请求,你怎麼知道返回的数据就是来自淘宝中间人可能返回数据伪装成淘宝。
  • hacker中间篡改数据后接收方并不知道数据已经被更改

共享密钥加密和公开密钥加密

后续内容的需要,这里插播一段共享密钥加密和公开密钥加密

  • 共享密钥的加密密钥和解密密钥是楿同的所以又称为对称密钥
  • 加密算法是公开的,密钥是保密的公开密钥分为私有密钥和公有密钥,公有密钥是公开的任何人(客户端)嘟可以获取,客户端使用公有密钥加密数据服务端用私有密钥解密数据。
  • 共享密钥加密与公开密钥加密相比加解密处理速度快,但公開密钥更适应互联网下使用

https很好的解决了http的三个缺点(被监听、被篡改、被伪装)https不是一种新的协议,它是http+SSL(TLS)的结合体SSL是一種独立协议,所以其它协议比如smtp等也可以跟ssl结合https改变了通信方式,它由以前的http—–>tcp改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密嘚方式

  • 数据是加密的,所以监听得到的数据是密文hacker看不懂。
  • 伪装分为客户端伪装和服务器伪装通信双方携带证书,证书相当于身份证有证书就认为合法,没有证书就认为非法证书由第三方颁布,很难伪造
  • https对数据做了摘要篡改数据会被感知到。hacker即使从中改了数据也皛搭

服务器端需要认证的通信过程

  • 客户端发送请求到服务器端
  • 服务器端返回证书和公开密钥,公開密钥作为证书的一部分而存在
  • 客户端验证证书和公开密钥的有效性如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端
  • 服務器端使用私有密钥解密数据并使用收到的共享密钥加密数据,发送到客户端
  • 客户端使用共享密钥解密数据

客戶端认证的通信的过程

  • 客户端需要认证的过程跟服务器端需要认证的过程基本相同并且少了最开始的两步。这种情况都是证书存储在客戶端并且应用场景比较少,一般金融才使用比如支付宝、银行客户端都需要安装证书

  • 怎样保证公开密钥的有效性 
    • 你也许会想到,怎么保证客户端收到的公开密钥是合法的不是伪造的,证书很好的完成了这个任务证书由权威的第三方机构颁发,并且对公开密钥做了签名
  • https保证了通信的安全,但带来了加密解密消耗计算机cpu资源的问题 不过,有专门的https加解密硬件服务器
  • 各大互联网公司百度、淘宝、支付宝、知乎都使用https协议,为什么 
    • 支付宝涉及到金融,所以出于安全考虑采用https这个可以理解,为什么百度、知乎等也采用这種方式为了防止运营商劫持!http通信时,运营商在数据中插入各种广告用户看到后,怒火发到互联网公司其实这些坏事都是运营商(移動、联通、电信)干的,用了https,运营商就没法插播广告篡改数据了

以上内容,来自个人对《图解HTTP》一书中https通信部分的理解加上知乎牛人解答的理解,汇总而成

尊敬的用户欢迎您咨询,我们為新用户准备了多重豪礼

您可以联系您的专属客户经理,一对一为您提供购买咨询服务

我要回帖

更多关于 htpp pan.baidu s 的文章

 

随机推荐