zoukankan      html  css  js  c++  java
  • 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网景浏览器?)设计的。

    为何要发明SSL这个协议?以为之前的HTTP协议是明文的,存在很多缺点具体的看上面。发明这个协议就是为了解决上述问题。

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

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

    解决方案

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

    这种搭配使用可以延伸到GC,Redis锁。

  • 相关阅读:
    继承映射
    一对多,多对一,自关联的配置
    Spring 配置自动扫描spring bean配置
    Dao 处理
    2019暑假集训 括号匹配
    2019暑假集训 BLO
    2019暑假集训 Intervals
    2019暑假集训 平板涂色
    2019暑假集训 走廊泼水节
    0002-五层小山
  • 原文地址:https://www.cnblogs.com/A-FM/p/11810649.html
Copyright © 2011-2022 走看看