密码学和CA证书

参考视频

一. 公钥私钥的理解

我们提到的使用公钥私钥进行加密解密只是一种口头表达方式,准确来说应该是公钥和私钥通过加密
算法生成,也需要通过配合加密算法进行解密。而不是直接用公钥和私钥进行加密解密。

二. 对称加密和非对称加密算法

1. 非对称加密算法

非对称加密算法存在一对密钥,通常用于身份验证。比如ssh登录验证,CA证书的验证。因为1. 公钥可以公开,任何人都可以使用。只要保管好私钥就可以很好的完成验证。2. 效率相对较低

2. 对称加密算法

对称加密算法只存在一个密钥,通常用于数据加密传输 。如ssh连接后和CA验证成功后,客户端使用对称加密算法生成的会话密钥进行加密传输

三. CA证书

1. CA证书的作用

  1. CA证书的作用是使用了非对称加密算法验证服务器的合法性,并不是用于加密,加密要使用对称加密算法生成的会话密钥进行。

2. CA证书的工作过程

(1) 服务器生成服务器的数字证书(其中包含了服务器的信息),并申请CA签名(申请CA签名涉及到CA机构使用私钥对证书进行签名),然后颁发给客户端。

(2)一般情况下客户端根据为服务器证书签名的CA的公钥来验证服务器证书是否有效 。但是很多

时候需要通过证书链进行验证,比如服务器证书由一个中间CA私钥进行签名,该服务器证书就是

证书链的最底层证书,依次往上就是中间CA证书(由根CA私钥进行签名),最后到达根CA证书自签名。根证书存放在浏览器中。验证时使用上一级的公钥来验证当前级的证书,递归验证,最后被根证书验证。才算验证成功

中间证书例子:

比如burpsuite,它作为中间人同时扮演服务器和客户端。我们把他的根证书放到浏览器中,在浏览器

向burp发送请求时,burp作为服务器给浏览器颁发一个由根证书签名的服务器证书,该证书就是一个

中间CA证书,便于浏览器验证burp的合法性。然后burp作为客户端,又对真正服务器的CA证书进行

验证。实现了中间人劫持。

(3)如果客户端验证成功,客户端通过对称加密算法产生一个会话密钥,然后使用服务器的公钥(包含在服务器数字证书中)加密会话密钥,并发送给服务器,之后服务器和客户端使用该会话密钥进行对称加密通信。

四. 其它问题

1. clash为什么不需要下载证书?

因为只有要对https加密流量进行分析时才需要证书验证过程,clash只负责转发而不是分析流量。

2. ssh连接时使用的known_hosts文件和CA都用于验证服务器身份,他们的区别是什么?

1. 首先理解ssh的通信过程:

ssh连接依靠的是两对密钥对,服务器密钥对和客户端密钥对进行身份验证。依靠会话密钥进行加密传输。

  • 具体过程为:
    • 客户端:
      客户端使用客户端私钥加密签证,服务器使用客户端公钥验证。
    • 服务器:
      1. 服务器将自己的公钥发送给客户端,客户端保存到known_hosts
      2. 服务器使用私钥签名发送到客户端,客户端用服务器公钥验证
      3. 客户端验证成功后,客户端使用对称加密算法产生一个会话密钥,然后使用服务器的公钥加密该会话密钥,并发送给服务器。服务器使用私钥进行解密
      4. 最后服务器和客户端依靠该会话密钥,和约定的对称加密算法对数据进行非对称加密通信。
        (加密后数据的格式为 密文+MAC字段,密文用于避免明文直接暴露,MAC用于判断数据是否被修改,MAC字段可以简单理解为MD5指纹验证,但是MAC字段并不是使用的MD5算法)

2. 为什么不使用ssh来替代CA证书?

  1. ssh在客户端验证服务器身份时,客户端需要存储每个服务器的公钥对服务器一一进行验证,而CA证书不一样,多个服务器可以使用一家CA机构的签名,从而客户端无需保存每个服务器公钥,只需要保存一家根CA证书即可。
  2. ssh在服务器验证客户端身份时,ssh要么采取密码登录的方式(太麻烦),要么让服务器保存客户端的公钥,这样也会增大服务器开销。而使用CA证书,多个客户端也可以使用一家CA机构的签名,从而服务端无需保存每个客户端公钥,只需要保存一家根CA证书即可。
相关推荐
PinTrust SSL证书18 小时前
Sectigo(Comodo)域名型DV通配符SSL
网络·网络协议·http·网络安全·https·软件工程·ssl
guojb82419 小时前
告别部署踩坑:用 Docker Compose 优雅搞定多前端站点、HTTPS 与 SSE 推送
nginx·docker·https
Hical_W21 小时前
OpenSSL RAND_bytes 完整原理:从硬件熵到密码学安全随机数
网络·安全·密码学
code_li1 天前
HTTPS免费证书配置指南
网络协议·http·https
2501_915921432 天前
穿越HTTPS迷雾:Wireshark中的TLS抓包秘诀与文件合并方法
网络协议·ios·小程序·https·uni-app·wireshark·iphone
PinTrust SSL证书2 天前
Sectigo(Comodo)企业型OV通配符SSL
网络·网络协议·网络安全·小程序·https·ssl
lclcooky2 天前
Nginx代理到https地址忽略证书验证配置
运维·nginx·https
acaad2 天前
java访问https连接报错 unable to find valid certification path to requested target
网络协议·http·https
CXH7283 天前
nginx——https
运维·nginx·https
悟道子HD3 天前
计算机网络端口记忆指南
计算机网络·http·https·ssh·ftp·端口号·smtp