HTTPS的工作过程

一、HTTPS是什么

HTTPS是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层(SSL/TLS),HTTP协议内容都是按照⽂本的⽅式明文传输的.这就导致在传输过程中出现⼀些被篡改的情况.

"运营商劫持"

由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器,交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。

不仅是运营商,黑客也会对此类信息进行攻击,因此,明文传输风险极大,HTTPS就是在HTTP基础上进行加密,从而保护用户的信息安全。

二、工作过程

整体分为两大类:对称加密非对称加密

对称加密

对称加密通过一个同一个"密钥",把明文变成密文。至于密钥的生成,就依据不同的规则设置了。

每个客户端的密钥都应该是不一样的,如果使用统一的密钥,黑客也就容易拿到了。

但是,服务器将要保存每个客户端对应的密钥,这是一个很麻烦的事情,代价极大。

因此,比较理想的做法是当服务器与客户端建立连接的时候,商定好使用的密钥。

但这又会引发一个新问题:

把密钥明文传送的话,黑客也会拿到,那么就需要对密钥进行加密,就得再发送key2,然后对key2加密......

这种方式显然也是行不通的。

非对称加密

为了解决对称密钥面临的风险,引入非对称加密。

非对称加密要用到两个密钥,一个"公钥",一个"私钥",这两个钥匙是配对的,缺点是运算速度非常慢,比对称密钥还慢上很多。

这里的公钥所有设备都能拿到,但是解密的私钥只有服务器有,这样就把对称加密的过程加了层保护。这样看似很安全了。

但上述的过程存在重大隐患。

中间人攻击

黑客自己生成一对公钥私钥,把客户端拿到的服务器换成自己的,这样就能拿到客户端的对称密钥,然后通过服务器的公钥加密,这样就能混入客户端与服务器的会话中。

因此,需要一个校验机制来让客户端判断公钥是否来自服务器。

证书

服务器向可信任的第三方机构申请证书,需要提交材料,包括服务器的域名之类内容,然后服务器依据进行审查,通过后给服务器颁发证书,类似于一个结构体,里面包含颁发证书的机构、证书的有效期、服务器的公钥,服务器的域名等,然后通过机构的私钥进行加密生成一个数字签名,实际上就是一个被加密的校验和。

这个证书在服务器搭建的时候就申请好。因此客户端就需要验证证书:

校验过程:客户端拿到证书后,根据证书里的信息使用同样的算法再次计算校验和,记为a。

通过认证机构的公钥解密数字签名得到第二个校验和,记为b。

比较a和b,如果不同,证书无效,即中间被人修改过。可能遭到第三方攻击。

如果客户端拿到的公钥是黑客生成的呢?

在安装操作系统时,会内置一些知名第三方认证机构的公钥。所以拿到的公钥是安全的。

如果黑客直接修改证书里的公钥呢?

那么计算出的校验会改变,系统会提示网站不安全

如果黑客自己申请一个证书来替换服务器给的证书呢?

证书里包含服务器域名,黑客申请的域名肯定是与你要访问的服务器是不同的,这样会这导致在校验时发现域名不匹配

相关推荐
q5673152311 小时前
企业级 HTTP 代理采购选型:技术评估清单 15 项
开发语言·网络·爬虫·网络协议·http·隧道ip·代理ip
白嫖一茶11 小时前
HTTP 状态码详解:五大类与常见状态码解析
网络·网络协议·http
ai_xiaogui12 小时前
PanelAI没有域名也能装?IP安装+自签HTTPS+安全加固全攻略(私有化部署必备)
tcp/ip·安全·https·私有化部署·自签证书·panelai·自带https自动续证
treesforest14 小时前
如何解决IP定位精度不足导致的投放偏差
网络·网络协议·tcp/ip·ip属地·查ip归属地
2401_8685347816 小时前
《论单元测试及其应用》
网络·网络协议
AlanBruce19 小时前
摩尔信使MThings EdgeWeb HTTP API接口
网络·网络协议·http·上位机·plc·modbus·摩尔信使
神仙别闹21 小时前
基于C++设计一个 P2P 聊天软件
网络·网络协议·p2p
IpdataCloud1 天前
评估交易IP是否来自制裁国家?IP地址查询+政治敏感标签库实操指
网络·网络协议·tcp/ip·ip
映翰通朱工1 天前
从0到1:EC942边缘计算机用Python实现Modbus TCP采集+MQTT上云全记录(附踩坑实录)
网络·python·网络协议·tcp/ip·二次开发·映翰通
Shell运维手记2 天前
ARP 协议超详细讲解(适合网工考试 / 运维理解)
运维·网络·网络协议·智能路由器