Https请求的加密过程

一、http与Https的区别

https是在https的基础上做了一层数据加密处理,在一些安全要求比较高的场景中,数据在服务器和客户端之间传输的过程中,是要求对数据进行加密处理后再传输的,以保证被传输数据的安全性。

二、加密方式

1、对称加密

  • 对称加密的话,加密和解密过程中使用到的秘钥都是同一个,因此,对称加密要保证安全的话,秘钥就必须做好保密,只能让使用的人知道,不能对外公开。
  • 对称加密存在一个问题就是,秘钥的传输不能够保证安全。因为在通信过程中,秘钥必须是需要有一个从服务器到客户端的一个传输过程,一但在秘钥传输过程中这个秘钥被黑客截获,那么接下来的通信过程就可能存在安全隐患了。

2、非对称加密

  • 非对称加密加密使用的秘钥和解密使用的秘钥是不相同的,一把是作为公开的公钥,另外一把是作为谁都不能给的私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。
  • 非对称加密的私钥放在服务器中,不会在网络中传播,这样就能保证这个私钥的私密性。但是对应的公钥,是可以在互联网上随意传播的,只要网站把这个私钥传给客户端,两端就可以相互进行通信了。

1)存在的问题

如果只用一对公钥和私钥的话, 那么服务器网站发送回复消息的时候,这个时候的数据加密就会有问题,如果用自己的私钥加密的话,因为对应的公钥谁都可以拿到,所以这样肯定是行不通的,如果用对应的公钥加密的话,加密后的数据只有服务器本身能解密出来,因为私钥只掌握在他自己手里。

2)问题的解决方案

上述情况我们知道一对公钥私钥,是存在问题的。所以我们需要客户端和服务器端各自都得有一套公钥和私钥。通信过程中,客户端需要把自己的公钥传给服务器端,服务器同时也需要把自己的公钥传给客户端。

三、公钥的传输

通过上面我们知道,非对称加密最终要解决的就是公钥在互联网上的安全传输。公钥的传输方式一般有两种:

  • 1)放在一个公网地址,让对方去下载。
  • 2)在建立连接的时候,传给对方。这两种方式都存在一个问题,就是如何鉴别别人提供的公钥是对的,不是冒充的?这个时候就需要一个权威机构部门作为中间坚定者。

四、证书和CA

上面说的权威机构部门就是CA,客户端通信的时候不是直接获取一个公钥的,而是获取到一个CA发布的一个对应的证书,证书里面包含了要用的公钥以及其他一些信息,在通信开始前客户端需要做一次证书的签名校验,只有通过了这个签名校验才认为这个证书是合法的证书,里面包含的公钥才是我们真正需要的公钥。

五、Https加密的工作模式

我们知道Https在通信过程中时对数据进行了加密,上面我们已经知道加密方式存在对称加密和非对称加密。那么https在加密过程中采用的是哪一种加密方式呢?

1)对称加密和非堆成加密的对比

我们知道非对称加密在性能上不如对称加密,但是对称加密的安全级别要更高一些。那么综合双方的优缺点,我们能不能把这两种方式结合起来呢?我们利用非对称加密来传输对称加密的秘钥,而真正在双方进行大数据量的通信的时候就采用对称加密来进行加密处理。 其实这也是https内部加密过程中采用的工作模式。

2)https内部采用的也是非对称和对称加密两者结合的机制

  • 1. 首先客户端会给服务端发送一个随机数,并且保存这个随机数以备后用。同时服务端收到这个随机数之后立马也会回复服务端这边产生的一个随机数给客户端。
  • 2. 然后两端交换CA证书。
  • 3. 客户端再产生一个随机数,利用公钥加密然后传递给服务端。
  • 4. 加上之前的两个随机数,现在两端都有三个随机数了,两边分别利用这三个随机数生成对称秘钥。
  • 5. 后面的通信数据加密就用第4步生成的对称秘钥进行对称加密了。

发表评论