简单了解HTTPS

HTTPS

HTTPS并非是应用层一个新的协议,通常HTTP直接和TCP通信,HTTPS则先和安全层(SSL、TLS)通信,然后安全层再和TCP层通信。

可以看出HTTPS就是在HTTP的基础上增加了一层SSL/TLS那么SSL都起了什么作用呢?

  1. 所有信息是加密传输的
  2. 配备身份验证(服务端),防止身份被冒充
  3. 具有校验机制,一旦被篡改,通信双方会立刻发现

TLS全称传输层安全协议Transport Layer Security Protocol,TLS/SSL是一种加密通道的规范。

TLS协议是SSL协议发展来的,目前大都用的是TLS协议了

理解HTTPS前需要理解这些概念:对称加密、非对称加密、摘要算法、数字签名、证书、认证中心(CA - Certificate Authority)

1. 对称加密算法

定义:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。

特点:

  • 优点:算法公开、计算量小,加密速度快
  • 缺点:相对来说不算特别安全,如果密钥被劫持,信息容易被破译

常用算法:

  • DES:现在用的比较少,因为加密强度不够,能够暴力破解
  • 3DES:原理和DES几乎一样,只是使用3个密钥,对相同的数据三次加密,增加了加密强度,但是需要维护3个密钥
  • AES:用于替代原先的DES,是现在公认最安全的加密方式,对称加密中最流行的算法。AES128和AES256主要区别是密钥长度不同,加密处理轮数不同(10轮、14轮),后者强度更高

2. 非对称加密算法

定义:非对称加密算法需要两个密钥:公钥和私钥,公钥和私钥是一对。

特点:

如果用公钥加密,只有用对应的私钥能解密;

如果用私钥加密,只有用对应的公钥能解密

由于算法复杂,使得加解密速度没用对称加密那么快。有两种密钥,其中一个是公开的,就不需要传输对方的密钥了,安全性提高了很多。

常用算法:

RSA、DSA、ECDSA

3. 数字签名

数字签名有两种功能:

  1. 能确认消息是由发送方签名并发出来的,因为别人假冒不了发送方的签名
  2. 能确认消息的完整性,校验数据是否被篡改。

数字签名的过程:

将要发送的原文数据用Hash算法(摘要算法,散列算法)生成消息摘要,然后用发送者的私钥加密生成数字签名。

签名校验过程:

接收者用对应的公钥解密开签名,然后也用HASH算法对收到的原文数据生成一个消息摘要。两相对比,如果一致说明信息完整有效。

消息摘要算法分为三类:

  • MD(Message Digest):消息摘要算法
  • SHA(Secure Hash Algorithm):安全散列算法
  • MAC (Message Authentication Code):消息认证码

4. 证书

数字证书:是一种经证书认证构数字签名的,包含公钥,拥有者信息的文件。

SSL证书文件中包含:组织信息、域名信息、公钥、证书有效期等等。

5. 认证中心(CA)

CA是证书的签发机构,它是公钥基础设施的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。

CA把自己的CA证书集成在了浏览器和操作系统里面。客户端浏览器通过这个CA证书能够识别服务器返给他的证书的真伪。

介绍完上述知识后,接着了解下HTTPS的请求流程:

  1. 浏览器给出TLS协议版本号、一个客户端生成的随机数1,以及客户端支持的加密方法去服务端请求证书。
  2. 服务器确认双方使用的加密方法,并给出数字证书,以及一个服务器生成的随机数2。
  3. 浏览器确认数字证书有效,然后生成一个新的随机数3,并使用数字证书中的公钥加密这个随机数,发给服务器。
  4. 服务器使用自己的私钥,解密获取客户端发来的随机数。这时双方交换过3个随机数了。
  5. 客户端和服务器根据约定的加密方法,使用前面的三个随机数经过特定的算法,生成“对话密钥”,用来加密整个对话过程。

客户端怎么校验服务器发来的数字证书的合法性?

  • 证书路径信任链逐级校验通过(证书确有可信任的CA认证签发)
  • 签名解密成功(确系证书持有者亲笔)
  • 签名解析出来的摘要和客户端算出的摘要一致(证书内容完整,未被篡改)
  • 主题子域与URL中的HOST一致,综上确保访问的网站是来自预期目标服务器,没有被劫持。
posted @ 2022-01-13 22:06  女友在高考  阅读(165)  评论(0编辑  收藏  举报