https基础概念

发布于:2024-07-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

1.什么是https

1.1.https概念

1.2.一些术语

2.https如何加密

2.1.使用对称加密

2.2.使用非对称加密


1.什么是https

首先,https不是http的复数形式

1.1.https概念

(1)产生背景

为什么会出现https,是因为http协议在传输数据的时候,数据容易被窃取和篡改,为了安全性,就产生了https协议,也就是在http协议的基础上加上一个加密层。

最重要的原因是:由于万恶的运营商,篡改里面的一些重要数据,成为运营商劫持。

(2)https是什么?

https是http协议加上一个加密层即可,剩下的和http协议一样,没有区别。

要学习https,就需要先学习http协议,在此基础上,只需要学习加密的过程即可

1.2.一些术语

既然需要加密,那就需要去了解关于加密的一些术语,来自《密码学》

把情书用木箱保护起来,送给女神,女神再用打开木箱,拿到情书。

(1)明文

表示真正要传输的数据,不做任何的掩饰或者加密

(2)密文

就是经过掩饰或者加密后的数据

(3)密钥

用来对明文进行加密的道具或者数据

(4)加密

将明文变成密文的过程称为加密

(5)解密

将密文变成明文的过程称为解密

(6)对称加密

加密和解密,使用同一个密钥

优缺点:加密解密速度快,但是安全性较低

(7)非对称加密

加密和加密,使用不同的密钥。其中分为公钥和私钥,都可以进行加密或者解密

优缺点:加密解密的过程较慢,但是安全性高

2.https如何加密

2.1.使用对称加密

https假设采用对称加密的方式

步骤:

(1)每个客户端向服务器发送自己采取的对称加密的密钥(明文传输)

(2)后续发送的数据都采取密文传输

缺点:

(1)密钥采取明文传输,黑客很容易获取到,信息从而被泄漏

(2)所以,都是采取非对称加密的方式

2.2.使用非对称加密

引入非对称加密,并不是直接对数据进行加密,而是在对称加密的基础上,对“对称密钥”的传输进行加密。

(1)普通非对称加密

原理:当客户端连接上服务器后,服务器就会告诉客户端自己的公钥(私钥由自己保存),客户端就可以使用服务器的公钥对自己的“对称密钥”进行加密发送给服务器,服务器就可以拿着自己的私钥知道客户端的对称密钥是啥;后续客户端使用对称密钥对数据进行加密,服务器也可以解密。

这里即使黑客获取到了中间的数据,也是无法解密的。

(2)存在中间人攻击

上述的过程却存在一个问题,也就是存在中间人攻击问题。

问题介绍:

当客户端向服务器询问公钥,服务器并且返回时,中间人就会截获并篡改。将服务器返回的公钥替换成自己的;当客户端收到后,就会拿着中间人的公钥对自己的对称密钥进行加密发送出去,中间人就可以拿着自己的私钥而拿到对称密钥,再把对称密钥使用服务器的公钥发送给服务器;后续客户端发送给服务器的加密数据,中间人都可以解密了。

中间人要拿着服务器的公钥加密的原因就是为了隐藏自己的存在,发送这一切的问题就是客户端没有办法鉴别公钥是否为服务器的。

(3)解决方法

上述的问题也是有解决方案的,那就是引入公证机构,那么中间人就无法伪造公钥了。

解决方案:服务器会向公证机构申请一个“证书”(类似一个字符串),后续客户端第一次连接上服务器时,就不是询问公钥是啥,而是询问证书是啥?从而可以解决问题。

证书是啥:

证书里面会包含这些内容

 

其中:第六项“数字签名”是由:前面五项内容计算出来的校验和,并且使用公证机构自己的私钥进行加密而成。

客户端拿到证书后如何验证真假:

客户端拿到证书后,就会拿着证书的前五项数据进行计算校验和,得到校验和1;再拿着数字签名使用公证机构的公钥进行解密,得到校验和2,比较两个校验和,如果相等,说明是正确的,否是是假的。(原因:数字签名是公证机构的私钥对校验和1加密得到的,拿着对应的公钥解密就可以得到对应的校验和)

上述做法真正做到安全的原因:

1)如果黑客修改的是证书中服务器的公钥,而不修改数字签名?

在客户端拿着自己计算出来校验和1和自己对数字签名解密出来的校验和2进行对比,就会发送不一致,从而发现证书非法

2)如果黑客修改了证书中服务器的公钥,并且重新计算校验和再得到数字签名是否可以?

黑客无法拿到公证机构的私钥,只能使用其他的私钥进行加密;当客户端使用公证机构的公钥进行加密,就会解密失败,从而判断证书非法

为了保证下载证书的安全性,一般所有公证机构的证书都会直接安装在电脑硬盘上了。