https非对称加密:公钥和私钥

2022-04-11  本文已影响0人  三省吾身_9862

概念一:

概念二:单向加密

客户端发送给服务器的数据,加密后,只能被服务器解密;服务器相应给客户端的信息,加密后,可以被所有人解密(其实就是不加密);也就是单向加密

非对称加密流程

  1. 客户端向服务发起请求,获取公钥
  2. 服务器返回公钥
  3. 客户端,使用公钥加密数据,发送给服务器
  4. 服务收到加密数据,用私钥加密,得到数据
  5. 服务用私钥加密数据,返回给客户端
  6. 客户端收到加密的数据,用公钥解密,得到数据

概念三:(看起来和概念一冲突,但结合概念二,理解加密的意义本质,就懂了)

  1. 公钥加密,私钥解密
  2. 私钥加密,公钥解密

不安全的 非对称加密流程

  1. 客户端向服务发起请求,获取公钥
  2. 经过网关(路由器或者服务器,都可以是网关),请求被恶意用途的服务器代理
  3. 恶意用途的服务器,去请求 真实服务器 公钥,得到公钥,返回 恶意用途的服务器 的公钥
  4. 客户端 用 恶意用途的服务器的公钥加密,发送数据 给真实服务器,请求依然被恶意用途的服务器代理
  5. 恶意用途的服务器 用 自己的私钥解密,得到数据,再用 真实服务器 公钥加密,去请求 真实服务器;
  6. 真实服务器 用私钥解密成功,认为是合法请求。开始操作数据库等其他行为。(转账成功等等)

安全的 非对称加密流程

一、CA机构 和 操作系统

  1. CA机构,把自己的公钥,植入到操作系统;


    image.png
    image.png

二、服务器 与 CA机构

  1. 服务器开发人员把公钥上传到CA机构,并且填写一些信息,网站域名,身份证,手机号,等等
  2. CA机构 要求 服务器开发人员,在服务器某个文件夹下,新建一个文件,填写一些信息;用于校验,确保这个公钥真的是这个服务器的。
  3. CA机构请求 服务器上的文件,得到信息 和 自己要求的一致,认证通过;用自己的私钥加密,生成"数字证书",发送给 服务器开发人员
  4. 服务器开发人员,把"数字证书"存到服务器上

三、客户端 与 服务器

  1. 客户端向服务发起请求,获取"数字证书"(CA机构私钥加密过的,服务器的公钥)
  2. 服务器 返回 "数字证书"
  3. 客户端使用操作系统 CA机构的公钥,解密得到 服务器的公钥,如果"数字证书"是 恶意用途的服务器代理返回的,解密会失败。这就是 CA机构 的作用,它的公钥是安全的,不在网络上传输,植入到操作系统。和 私钥一样安全,放在服务器上,不传输。
  4. 客户端 拿到 真实服务器 公钥,解密数据,发送给你服务器
  5. 服务器用自己的私钥解密,再用自己的私钥加密数据,发送给客户端
  6. 客户端拿 公钥解密。完成一次请求
上一篇下一篇

猜你喜欢

热点阅读