HTTPS详解及常见面试题

僤鯓⒐⒋嵵緔 提交于 2020-01-16 16:01:44

  1.HTTP缺点:

  无连接: HTTP/1.1之前每次请求都要通过TCP建立连接断开连接,HTTP/1.1实现了持久连接

  无状态: Cookie技术和持久连接解决

  明文传输: 不安全

 

  HTTPS:简单讲是HTTP的安全版,在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

  2.HTTPS特点:

  内容加密:采用混合加密技术,中间者无法直接查看明文内容

  验证身份:通过证书认证客户端访问的是自己的服务器

  保护数据完整性:防止传输的内容被中间人冒充或者篡改

 

 

  加密算法 --- RSA(混合加密机制)

    (1)共享密匙加密: 公开密匙加密解密,但是无法保证安全发送密匙

    (2)公开密匙加密: 公开密匙加密,私有密匙解密

    HTTPS:混合加密机制: 结合对称加密和非对称加密技术

    用对称加密生成的密钥对通信数据加密

    用非对称加密生成的公钥对密钥加密

    这样在保证密钥的安全性下,提高了效率


  认证 --- 防止"中间人"攻击,并验证服务器身份

    证书: 认证机构(CA)信息,公钥,域名,有效期,指纹(对证书进行hash运算,即证书摘要),指纹算法,数字签名(CA私钥密的指纹)等

    通信过程: 

    1.客户端发起 HTTPS 请求,服务端返回证书

    2.客户端对证书进行验证,验证通过后本地生成用于改造对称加密算法的随机数

    3.通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密

    验证过程:

    1. 证书是否过期

    2.CA是否可靠(查询信任的本地根证书)

    3.证书是否被篡改(用户使用CA根公钥解密签名得到原始指纹,再对证书使用指纹算法得到新指纹,两指纹若不一样,则被篡改)

    4.服务器域名和证书上的域名是否匹配

 

    助于理解,知乎上down的HTTPS通信流程:

                 

 

  

  常见面试题 :

    Q:HTTP与HTTPS区别?

    A: 1.HTTPS需要申请购买CA证书, HTTP不需要

      2.HTTP是明文传输,不安全, HTTPS是在HTTP基础上加了SSL层,更安全

      3.HTTPS效率低,HTTP效率高

 

    Q:HTTPS传输过程?

    A:客户端发起 HTTPS 请求,服务端返回证书,客户端对证书验证,验证通过后本地生成用于改造对称加密算法的随机数,通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的数据交互通过对称加密算法进行加解密。

 

    Q:为什么需要证书?

    A:防止中间人攻击,验证服务器身份

   

    Q:怎么防止的篡改?

    A:证书是公开的,虽然中间人可以拿到证书,但私钥无法获取,公钥无法推断出私钥,所以篡改后不能用私钥加密,强行加密客户也无法解密,强行修改内容,会导致证书内容与签名中的指纹不匹配

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!