网络传输的安全性(HTTPS)

互联网应用之间是通过网络传输数据的,那么,网络传输真的安全吗?

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

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

1. 数据窃听

如果使用明文传输,数据就可能被中间人窃听。所以要加密传输, 发送方把数据放在箱子里面锁起来再发送出去,接收方用对应的钥匙解锁。其他人没有钥匙,自然就无法知道箱子里面的数据是什么。这就达到了防止数据被窃听的目的。

1.1. 对称加密

加解密使用同一个密钥,所以叫对称加密。常用的算法有AES。

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

1.2. 非对称加密

加解密使用不同的密钥,接收方保管解密密钥(私钥),并把加密密钥(公钥)提供给发送方,从而解决秘钥交换的问题,这就是非对称加密。常见的算法有RSA。

首先,由接收方创建密钥对并保管私钥,保证只有接收方能够解密。然后,把公钥告诉发送方(可以有多个发送方吗?)。最终,发送方用公钥加密的数据,只有接收方的私钥能够解密。

一般不会直接用非对称加密会话,因为其算法复杂计算耗时长 。更常见的是用非对称加密完成秘钥交换,再用对称加密会话。在正式会话之前,接收方创建一个随机秘钥。然后,通过非对称加密发给发送方。最后,用这个随机秘钥进行对称加密会话。从而达到了防止数据被窃听的目的,又能提高加解密的处理效率。

1.3. 小结

为了防止数据被窃听,需要对数据进行加密传输。对称加密使用同一个秘钥,简单高效,但存在秘钥交换和秘钥管理的问题。因此,非对称加密使用不同的密钥: 接收方保管解密密钥(私钥),并把加密密钥提供给发送方(公钥)。缺点是算法复杂计算耗时长。综上,一般使用非对称加密完成秘钥交换,再用对称加密会话。从而达到了防止数据被窃听的目的,又能提高加解密的处理效率。

2. 数据篡改

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

2.1.摘要

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

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

2.2.数字签名

前面讲到了非对称加密,用公钥加密只有私钥能解密,反过来也是成立的,即能用公钥解密的数据一定是用私钥加密的。私钥只有一个人知道,可以作为唯一身份标识 。首先,发送方生成密钥对,自己保管私钥,并把公钥提供给接收方。然后,发送方用私钥加密摘要,接收方用公钥解密得到摘要,进行摘要验证。这样就能验证数据完整性 和身份验证 ,达到防止数据篡改的目的,这就是数字签名。

3. 身份冒充

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

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

3.1. 数字证书

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

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

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

4. HTTPS

5. 总结

互联网应用之间是通过网络传输数据的,网络传输的安全性很重要。首先,使用非对称加密完成秘钥交换,再用对称加密会话,防止数据窃听; 其次,用数字签名验证数据完整性和身份验证,防止数据篡改; 最后,通过数字证书核实网站身份,防止身份冒充。综上所述,这三个核心技术保障了HTTPS通信的安全性。

参考资料

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

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

了解 HTTP 看这一篇就够

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

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

相关推荐
龙亘川4 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19914 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
XUEYUAN52124 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
LorryJovens4 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼4 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
山东科恩光电4 天前
提升安全性的关键技术:安全触边在工业自动化中的应用解析
安全
CHENKONG_CK4 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
2501_916007474 天前
苹果商店iOS应用上架费用全面解析:开发者计划与审核费用计算
android·ios·小程序·https·uni-app·iphone·webview
Lsetea4 天前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链