网络通信的安全性(HTTPS)

网络通信的安全性(HTTPS)

互联网是由无数网络节点组成的,两点之间的通信一般会经过很多个网络节点,因此,我们难免会有疑问:

  1. 作为发送方,我发送的消息内容会不会被中间人看到?(数据窃听
  2. 作为接收方,我收到的消息内容会不会是假的?(数据篡改)
  3. 对方的身份是不是真实的?(身份冒充)

本文就从网络通信的安全性出发,解密HTTPS原理。

数据窃听

如果你把消息内容暴露在互联网传输,中间人是有办法拦截偷看的。所以要加密: 发送方把消息内容放在箱子里面锁起来发送出去,接收方再用对应的钥匙解锁。别人没有钥匙,自然就无法知道箱子里面的消息内容。这就达到了防止数据被窃听的目的。

1. 对称加密

image.png

这里加密和解密用的是同一个秘钥,所以叫对称加密。常用的对称加密算法有AES。

对称加密最大的问题就是秘钥交换秘钥管理。因为加解密用的是同一个密钥,所以当你把加密的秘钥告诉别人的同时,就有可能泄漏了解密的秘钥。另外,如果是多个发送方对一个接收方的场景,接收方就需要维护多个秘钥,不方便管理。

2. 非对称加密

把加密和解密的密钥分开管理: 接收方自己保管好解密的密钥(私钥),然后把加密的密钥提供给发送方(公钥),从而解决秘钥交换的问题,这就是非对称加密。常见的算法有RSA。

首先,为了保证只有接收方能够解密,应该由接收方创建密钥对。其次,接收方自己保管私钥,并把公钥告诉发送方。最终,发送方用公钥加密的数据,只有接收方的私钥能够解密。

实际应用中不会直接用非对称加密对话,因为其算法复杂计算耗时长。更常见的是用非对称加密完成秘钥交换,再用对称加密会话。在正式会话之前,接收方创建一个随机的对称加密的秘钥。然后,通过非对称加密方式发给发送方。最后,用这个秘钥进行对称加密会话。即保证了数据传输的安全性,又能高效地处理加解密。

小结

为了防止数据被窃听,需要对数据进行加密传输。对称加密使用同一个秘钥进行加解密,简单高效,不足之处是存在秘钥交换和秘钥管理的问题。因此,非对称加密把加密和解密的密钥分开管理: 接收方自己保管好解密的密钥(私钥),然后把加密的密钥提供给发送方(公钥);缺点是算法复杂计算耗时长。综上,一般使用非对称加密来完成秘钥交换,然后用对称加密进行会话。即保证了数据传输的安全性,又能高效地处理加解密。

数据篡改

平时我们收到快递,可以核对防伪码来防止东西被调包。在网络通信中,也有一个类似防伪码的机制来防止数据被篡改,这就是摘要

1.摘要

摘要是对原始数据进行压缩生成的唯一标识,不同的数据生成的摘要是不同的。如果原始数据生成的摘要跟报文中的摘要不匹配,则说明数据已被篡改。常用的摘要算法有MD5和SHA-1。

如果中间人修改了原始数据,再生成新的摘要,也是能验证通过的。所以怎么验证报文中的摘要就是发送方生成的呢?

2.数字签名

前面讲到了非对称加密,用公钥加密只有私钥能解密,反过来也是成立的,即能用公钥解密的数据一定是用私钥加密的因为私钥只有一个人知道,所以就能确定发送方身份。首先,为了验证摘要是发送方生成的,应该由发送方生成密钥对。其次,发送方自己保管私钥,并且把公钥提供给接收方。最后,发送方用私钥加密摘要,接收方用公钥解密得到摘要,确认对方身份,然后再进行摘要验证。这样就能有效验证数据完整性身份验证,这就是数字签名

小结

身份冒充

在建立HTTPS安全链接时,服务器会返回一个公钥给浏览器,用于非对称加密完成密钥交换。那么,浏览器怎么核实公钥的有效性呢?

我们都知道乘坐高铁时,工作人员会要求乘客出示身份证以便核实身份。身份证是由具有权威性的公安机关颁发的,所以能够有效证明公民身份。

1. 数字证书

在网络通信中,也有类似身份证的机制来核实公钥的有效性,这就是数字证书

首先,网站要找CA机构申请数字证书: CA机构用私钥对服务器的公钥做加密,生成数字证书。其次,在开始建立HTTPS安全链接时,服务器返回数字证书。最后,浏览器用CA机构的公钥对数字证书做解密,得到服务器的公钥。因为只有CA机构知道私钥,所以能够解密成功就说明证书内容是合法的,即服务器公钥是有效的。

最后一步可能同学会有疑问: 浏览器是怎么知道CA机构的私钥的?因为全球权威的CA机构并不多,所以他们的私钥是直接内嵌在浏览器内核的。

HTTPS

image.png

总结

互联网环境错综复杂,网络通信的安全性更是不容小嘘。首先,使用非对称加密完成秘钥交换,再用对称加密传输,防止数据被窃听; 其次,用数字签名来验证数据完整性和身份验证,防止数据被篡改; 最后,通过数字证书核实网站身份,防止身份冒充。综上所述,这三个核心技术保障了HTTPS通信的安全性。

参考资料

什么是 HTTPS 的证书信任链?自己给自己发行不行?

一直没明白的 HTTPS,今天懂了!

了解 HTTP 看这一篇就够

(建议收藏)前端面试必问的十六条HTTP网络知识体系

爱奇艺海外版HTTPS效率是如何提升的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值