https认证原理

HTTPS通过非对称加密确保数据安全,防止中间人攻击。当客户端和服务器交换公钥时,中间人可能篡改公钥,导致通信被监听。解决办法是服务器发送SSL证书给客户端,客户端验证证书的合法性,确保公钥未被替换,从而防止中间人攻击。
摘要由CSDN通过智能技术生成

https认证原理

为什么要有https,为了解决什么问题?

在http时代,所有数据都是明文传输,一开始大家都觉得没什么问题,后来发现互联网上存在一种叫黑客的人,他们会去截取和捕获这些信息.

尝试用非对称加密解决该问题

为了加密数据,我们引入密钥将数据加密不就好了吗?是吧
好,我们设计一套数据加密方案,采用非对称式加密

client server 第一次请求(省略三次握手) 返回服务端公钥A 将自己的公钥B使用使用公钥A加密发送给server 使用服务端私钥A解密客户端信息,得到客户端公钥B 用公钥A加密自己要发送的数据,用私钥B解密接收来自服务端的数据 用公钥B加密自己要发送的数据,用私钥A解密接收来自客户端的数据 client server

好了,乍看上去好像没什么问题,任何一个第三方在没有私钥的情况下,无法查看报文的内容,也无法篡改,但事实是很有问题的,假如客户端的第一次请求就发送给了一个不可信的第三方,然后第三方作为中转站生成一套它的公钥C私钥C会怎样呢?

client hack server 第一次请求(省略三次握手) 第一次请求(省略三次握手) 返回公钥A 返回公钥C 将自己的公钥B使用使用公钥C加密发送给hack 用私钥C解密客户端数据, 将自己的公钥C替换原本的公钥B,再用公钥A重新加密发送server client端使用公钥C加密发送数据, hack端用私钥C解密数据 hack端用公钥A加密发送数据,server端用私钥A解密数据 server端用公钥C加密发送数据,hack端用私钥C解密数据 hack端用公钥B加密发送数据,client端用私钥B解密数据 client hack server

看到了吗,这就是中间人攻击,hack作为中间人,接受数据左手倒右手,右手倒左手,中间可以捕获敏感数据也可以篡改页面.
对于client端以为hack就是服务器,对于server端以为hack就是客户端,然而谁也不知道他们通讯的信息实际上已经全部被一个未知的第三方捕获了.

如何解决该问题

解决这个问题的切入点就是保证服务端的公钥不被替换,保证客户端每次都是直接和server沟通
而保证这个东西的手段就是ssl证书
服务端发送给客户端自己的SSL证书+公钥A,然后客户端拿着证书+公钥A找CA认证服务器进行认证,确认是否该公钥被篡改,或者说从本地已有的证书中确认,这样中间人就没办法拿自己的公钥私钥去劫持会话了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值