HTTPS

目录

1.为什么使用HTTPS

2.对称加密和非对称加密

3.应用

4.证书


1.为什么使用HTTPS

HTTPS = HTTP + SSL/TLS(安全层,用于加密)

有了HTTP为什么还要有HTTPS?

因为服务器和客户端通过HTTP协议传输是明文传输,传输过程会被小黑劫持修改,不安全。

HTTPS_第1张图片

HTTPS_第2张图片


2.对称加密和非对称加密

对称加密:服务器或者客户端都用相同的密钥进行加密解密。

双方需要约定密钥(就像谍战片的暗号一样,需要事先告诉对方),而通信过程中会被小黑获取到密钥,之后传输相当于还是明文传输。

HTTPS_第3张图片

可见只用对称加密,还是不安全。


非对称加密:服务器生成一对公钥和私钥,客户端持有公钥,服务器持有私钥。使用公钥加密,用私钥解密。(公钥私钥是相对的,通常用于加密的称为公钥)。

HTTPS_第4张图片


3.应用

如果每次传输都用非对称加密也不行,因为开销太大了。因此通常对称加密和非对称加密一起使用

HTTPS_第5张图片


但是上述情况完全安全了吗?

显然不是,因为有个bug:客户端不知道收到的公钥是否真的来自服务器,如果是小黑编造的密钥呢?显然这种情况客户端不该将对称密钥加密传递出去,如果被小黑获取破解,之后通信依旧相当于明文传输。

So,客户端需要对对方身份进行验证。这里也是通过一个权威的证书机构来认证。就像日常看到的店铺的证书,需要权威机构颁发认证它才是合法的。我们在浏览器中有时看到网站不安全弹窗提醒也是如此。


4.证书

具体流程如下:

HTTPS_第6张图片

关于证书以及客户端验证证书:

HTTPS_第7张图片

有小伙伴可能会问,小黑不能冒充认证机构吗?---类似于现实冒充公安局,不可刑。


总结:

1.生成对称加密是针对业务数据

2.服务器生成一对非对称密钥(公钥和私钥),把证书传给客户端

3.客户端拿到证书进行检验,如果检验通过,则会用上面服务器的公钥对对称密钥加密传给服务器,服务器解密获得对称密钥

4.双方通过对称加密传输

(前三步都是为了传递对称密钥做工作)

你可能感兴趣的:(计算机网络,https,网络,http)