https为啥是安全的

背景

在搭建ldap服务时了解到TSL加密认证,想起以前的https,只知道开启https 无法被破解,但是对于https为何无法被破解一点也不知道。

https发展历史

1.裸奔的http

为什么说是裸奔那? 因为在网络中能够被抓包,特别是公共wifi的,使用http协议去请求,那银行卡号,密码等关键信息都能够被窃听到。

比如这里的抓包

2、加密的https

2.1、加密协议的发展历史
1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的1.0版,但是未发布。

1995年,NetScape公司发布SSL 2.0版,很快发现有严重漏洞。

1996年,SSL 3.0版问世,得到大规模应用。

1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版。

2006年和2008年,TLS进行了两次升级,分别为TLS 1.1版和TLS 1.2版。最新的变动是2011年TLS 1.2的

3、加密过程

协议是一个规范,所有的实现都必须按照这个规范来实现。与java的接口类似。

3.1、对称加密

在对称加密是指加密与解密过程都使用同一个密钥。存在

image.png

这个过程存在一个问题,如何将密钥安全的送达

3.2、非对称加密

非对称加密主要特点是:

  • 1、通过公钥加密,私钥解密;私钥加密,公钥解密
  • 2、发送公钥过程完全暴露
  • 3、加密效率低

因为需要通过公钥加密,第三方截获到没有私钥无法解密,所以密文对第三方是无用信息。但是数字非对称加密存在效率问题,为解决效率问题引入数字签名。

3.3、数字签名

因为非对称加密存在效率问题,对称加密容易被串改问题。从而引出数字签名

  • 1.对明文hash算法得到数字摘要
  • 2.用自己私钥加密数字摘要
  • 3.对称加密加密明文(如果明文较短可以使用非对称,如果很长使用对称密钥)
  • 4.对方公钥加密明文的密钥,hash算法的密钥,自己的公钥生成数字签名;
  • 5.将密文,数字签名打包发送给对方
  • 5.对方收到后用私有解密

如果接受方私钥泄露就可随意修改内容,但是对方不知道hash算法就算有密钥也无法串改内容。但是无法避免第三方信任问题

3.4、数字证书

为了解决第三方信任问题,引入是数字证书

数字证书主要组成:

  • 申请证书组织信息
  • 申请证书组织公钥
  • 数字签名
    上述加密过程都采用颁发证书组织的私钥进行加密,由根证书的公钥一层层的解密出需要证书的公钥,这样保证证书的可信任问题。这样获取到了目标服务器的公钥;
3.5、ssl/Tsl协议

ssl/Tsl协议协议是一个规范,是访问https时都需要实现这个逻辑。

主要解决两个问题:

  • 1.加密效率问题
  • 2.对称密钥传输问题

访问过程:

  • 1.在访问https,浏览器去获取服务端数字证书,得到可信赖的服务端公钥
  • 2.用公钥加密公钥
  • 3.用client公钥加密对称密钥
  • 4.用对称密钥加密信息交互
image.png

我们一直说https 是安全的、上述流程解释了为啥https是安全的

附:参考文章

https://juejin.cn/post/6844903764399243278

问题:数字证书加密连是用颁发私钥还是公钥?

我理解是用根证书私钥加密,只有用私钥加密才能保证证书一层一层的拿到公钥

数字签名 -- 阮一峰

问题:鲍勃给苏珊回信时为什么要用数字签名这样的方法?

知乎问题,有大佬回答,认为是因为非对称加密的效率问题导致要引入数字签名。比较赞同这一答案

你可能感兴趣的:(https为啥是安全的)