HTTPS 的认证流程

本文详细阐述了HTTPS协议的演进,从对称加密的快速传输遇到密钥安全问题,到非对称加密的使用及其局限,再到CA证书引入确保身份验证。重点讲解了对称加密与非对称加密的配合,以及如何防范密钥替换攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

渐进式的描述 HTTPS 协议的传输过程。

铺垫知识
非对称加密

公钥(Public Key) 与 私钥(Private Key)是通过加密算法得到的一个密匙对。公钥是可公开的,私钥是需要私有的。公钥加密的内容只有私钥能解,反之亦然。也称为为非对称加密方式,非对称加密和解密花费的时间长、速度相对较慢。

对称加密

那么对称加密又是什么样的方式呢?只有一把密钥,加密与解密都只能通过该密钥。对称加密解密的速度比较快。

公钥加密,私钥解密:

这样的方式称为加密,保证传输内容不被其他人解密。因为只有持有私钥的人可以解开公钥加密的内容,而私钥是非公开的。

私钥加密,公钥解密:

这样的方式称为签名,保证传输内容不会被人篡改,因为若想篡改后公钥能够解密,就必须通过私钥加密,而私钥是非公开的。不过其他人可以查看,因为公钥是公开的。

传输方式的渐进演变
1)对称加密传输

对称加密的速度很快,可以用于传输过程中的数据加密,防止传输内容被泄露篡改。但如何将密钥安全的从Server传输到Client是个问题(该问题就是后面要解决的问题),一旦密钥被中间人获取,那么传输内容就可以被他人解密后查看或篡改了。

2)非对称加密传输 - 1

Server 持有私钥A,Client 持有公钥B。通过私钥加密,公钥解密,可以保证不被篡改,但无法保证被其他人查看。

3)非对称加密传输 - 2

为了解决私钥加密,公钥解密可以被查看的问题,再次引入一对私钥C、公钥D。Client 持有私钥C,Server 持有公钥D。每端都交叉持有一对公、私钥,实现双向安全通信。

  1. ClientServer 传输时,通过私钥C、公钥D实现加解密。
  2. ServerClient 传输时,通过私钥A、公钥B实现加解密。

但是,这种方式虽然可以安全通信,但效率很低。每次通信每方都需要进行非对称的解密、加密。

4)对称加密 与 非对称加密 配合传输

对称加密传输中提到了密钥无法安全传输。那么是否可以这样,Client 获取密钥时,通过非对称加密的方式进行获取。那么后继的请求都通过获取的密钥进行对称加解密?

看起来不错:Client持有密钥A,Server持有公钥B。对称加密 密钥M会被Server通过公钥加密后发送给Client

4)破解对称加密 与 非对称加密 配合传输

有一个坏蛋也配置了一对密钥:私钥X、公钥Y。Clinet 传输给 Server 公钥B时,被坏蛋替换为他的公钥Y。那么就可以通过私钥X解开Server通过公钥Y加密的对称加密 密钥M,复制了一份,进而后继可以继续查看、篡改传输内容。然后又用Client的公钥B加密M后返回给ClientClient可以用私钥C成功解锁对称加密密钥M

也就是说:

  1. Server 拿到的不是 Client 传输的公钥B。
  2. Client获取的密钥M确实Server返回的,但却不知已经被人知晓了。

本质原因就在于公钥B被人替换了。

5)引入 CA 证书认证机构

认证机构也有一对公私、钥:密钥J,公钥K。Client 直接向认证机构发送公钥B,认证机构通过密钥J加密后返回ClientClient在返回给Server。此时坏蛋可以通过公钥K查看到通过密钥J加密的公钥B。但是无法修改它,因为他没有密钥J。(通过私钥加密,公钥解密,防止被篡改)如果坏蛋用其他私钥进行加密,那么Server就无法通过公钥K成功解密,那么Server就会知道这是已经被人修改过了。如果Server成功解密,那么就可以通过公钥B加密M,并且只有Client能通过密钥A解开(通过公钥加密,私钥解密,防止被解密查看密钥M)。

End

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值