HTTPS

作者: puxiaotaoc | 来源:发表于2018-08-17 11:16 被阅读8次

一、背景

  • 对于大规模的购物、银行事务或访问机密数据来说,这些重要的事务需要将 HTTP和数字加密技术结合起来使用,才能确保安全;
  • 目标:
    1)服务器认证 (客户端知道它们是在与真正的而不是伪造的服务器通话);
    2)客户端认证 (服务器知道它们是在与真正的而不是伪造的客户端通话);
    3)完整性 (客户端和服务器的数据不会被修改);
    4)加密 (客户端和服务器的对话是私密的,无需担心被窃听);
    5)效率 (一个运行的足够快的算法,以便低端的客户端和服务器使用);
    6)普适性 (基本上所有的客户端和服务器都支持这些协议);
    7)管理的可扩展性 (在任何地方的任何人都可以立即进行安全通信);
    8)适应性 (能够支持当前最知名的安全方法);
    9)在社会上的可行性 (满足社会的政治文化需要);

二、HTTPS

  • HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包,HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性;
  • 使用HTTPS时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密,HTTPS在HTTP下面提供了一个传输级的密码安全层,可以使用SSL,也可以使用其后继者——传输层安全(Transport Layer Security,TLS);


    HTTPS
  • 不使用SSL/TLS的HTTP通信,即不加密的通信,所有信息明文传播,带来了三大风险:
    1)窃听风险(eavesdropping):第三方可以获知通信内容;
    2)篡改风险(tampering):第三方可以修改通信内容;
    3)冒充风险(pretending):第三方可以冒充他人身份参与通信;
  • SSL/TLS协议是为了解决这三大风险而设计的,希望达到:
    1)所有信息都是加密传播,第三方无法窃听;
    2)具有校验机制,一旦被篡改,通信双方会立刻发现;
    3)配备身份证书,防止身份被冒充;
  • 密钥
    1)密钥:改变密码行为的数字化参数;
    2)对称密钥加密系统:编 / 解码使用相同密钥的算法;
    3)不对称密钥加密系统:编 / 解码使用不同密钥的算法;
    4)公开密钥加密系统:一种能够使数百万计算机便捷地发送机密报文的系统;
    5)数字签名:用来验证报文未被伪造或篡改的校验和;
    6)数字证书:由一个可信的组织验证和签发的识别信息;
  • 请求一个客户端(比如web浏览器),对某web资源执行某事务时,它会去检查URL的方案:
    1)如果URL的方案为HTTP,客户端就会打开一条到服务器端口80(默认情况下)的连接,并向其发送老的HTTP命令;
    2)如果 URL的方案为HTTPS,客户端就会打开一条到服务器端口443(默认情况下)的连接,然后与服务器“握手(建立连接和交换参数)”,以二进制格式与服务器交换一些SSL安全参数,附上加密的HTTP命令;
    SSL是个二进制协议,与HTTP完全不同,其流量承载是在另一个端口上的,如果SSL和HTTP流量都从端口80到达,大部分web服务器会将二进制SSL流量理解为错误的HTTP并关闭连接;


    HTTPS请求过程

    (1)客户使用HTTPS的URL访问Web服务器,要求与Web服务器建立SSL连接;
    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端;  
    (3)客户端的浏览器与Web服务器开始协商SSL/TLS连接的安全等级,也就是信息加密的等级;  
    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站;
    (5)Web服务器利用自己的私钥解密出会话密钥; 
    (6)Web服务器利用会话密钥加密与客户端之间的通信;

  • SSL握手(爱丽丝为客户端,鲍勃为服务器端)
    1)爱丽丝给出协议版本号,一个客户端生成的随机数(Client random),以及客户端支持的加密方法;
    2)鲍勃确认双方使用的加密方法,并给出数字证书,以及一个服务器生成的随机数(Server random);
    3)爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃;
    4)鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret);
    5)爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成对话密钥(session key),用来加密接下来的整个对话过程;
  • 注意:
    1)生成对话密钥一共需要三个随机数;
    2)握手之后的对话使用对话密钥(session key)加密(对称加密),服务器的公钥和私钥只用于加密和解密对话密钥(session key)(非对称加密),无其他作用;
    3)服务器公钥放在服务器的数字证书之中;

相关文章

  • https VS https

    HTTPS=SSL+HTTPHTTP协议传输的数据是未加密的 ,也就是明文,因此使用HTTP协议传输隐私信息非常不...

  • HTTPS

    什么是HTTPS HTTPS(全称:Hypertext Transfer Protocol over Secure...

  • HTTPS

    HTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听;(请求时,需加密) 不验证通信方的身份,通信方的...

  • HTTPS

    站点证书的有效性 SSL 自身不要求用户检查Web服务器证书,但大部分现代浏览器都会对证书进行简单的完整性检查,并...

  • Https

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • HTTPS

    1.为什么要有HTTPS2.HTTPS的工作原理3.密码学4.HTTPS的优缺点5.在iOS中使用HTTPS 为什...

  • HTTPS

    精悍小文:https是如何工作的? - 简书 急速开发系列——打造完善的https使用方案 - 简书

  • https

    摘自[白话Https]https://www.cnblogs.com/xinzhao/p/4949344.html...

  • HTTPS

    一、背景 对于大规模的购物、银行事务或访问机密数据来说,这些重要的事务需要将 HTTP和数字加密技术结合起来使用,...

  • HTTPS

    在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。本篇...

网友评论

    本文标题:HTTPS

    本文链接:https://www.haomeiwen.com/subject/eqmobftx.html