文章目录
- HTTPS与HTTP的关系
- HTTPS基本工作过程
- 对称密钥
- 非对称密钥
- 中间人攻击
- 证书
HTTPS与HTTP的关系
HTTPS协议基于HTTP,只是比HTTP多了一个加密层,为什么要加密呢?因为网络传输的过程中,明文传输的数据都有可能被劫持篡改,为了改善这个问题,HTTPS应运而生。
HTTPS基本工作过程
要了解HTTPS的工作原理,我们要先引入一对关键信息,明文和密文。
明文就是真正要传达的信息,而密文是经过一定手段转换明文得到的信息。
明文到密文的过程称为加密,密文到明文的过程称为解密。
对称密钥
对称密钥指的是加密和解密只有一个密钥,加密和解密都是用的这个密钥。
这样即使黑客获取到了数据,没有密钥key,也无法知晓数据的内容,但是服务器如何知道这个密钥key是多少的呢?还是通过网络传输,客户端生成key了之后,将key传输给服务器。
这样就有一个bug了,黑客同样可以截获这个密钥key啊,此时我们需要在对key进行加密,但是如果继续使用对称加密,黑客依然可以获取到key,此时我们就引入了非对称密钥。
非对称密钥
非对称密钥,一个叫做公钥,另一个叫做私钥,使用公钥进行加密,私钥进行解密。
这个过程就解决了之前不能给key加密的问题,但是他一定是安全的嘛?我只能说道高一尺,魔高一丈。
中间人攻击
下面让我们来看看黑客是怎么针对非对称密钥进行反击的:
黑客通过更改服务器的公钥为自己的公钥来骗取客户端发送的key的信息,这样就破解了非对称密钥的限制。在这个网络攻防战中我们又该如何应对黑客的攻击呢?证书又顺应而生。
证书
证书是什么?是由权威机构颁发的,在你做服务器时,就需要申请一个证书,这个证书里面有一系列的内容,证书的过期时间,服务器的URL,颁发证书的机构,服务器自己的公钥pub,这些都是明文的,还有一个权威机构使用自己的私钥加密的签名,这个签名的作用就是一个校验和,通过计算证书的所有属性,计算出的一个校验和。
此时问题来了,黑客是否能对数据进行更改,黑客需要更改的内容有服务器的公钥和证书的校验和,如果只更改公钥,那么当客户端进行签名计算的时候就会发现有人篡改了公钥,那么就需要同时更改公钥和校验和,因为解密校验和的公钥是内置在系统中的,所以黑客可以解密校验和进行更改,但是黑客没有私钥无法再次对校验和加密,此时客户端拿到证书发现校验和没有加密,同样知道了有人篡改了数据,这样我们就解决了问题。
黑客要想更改数据,就需要先黑进权威机构拿到私钥,这个成本怕是远远超过了数据的价值,所以我们的数据是安全的了!!!
以上就是HTTPS的加密流程。