以下是我对TLS中使用的加密方式、及证书的理解;

1.TLS中使用了非对称加密、对称加密;

简单来说:
(1)TLS中通信双方在握手阶段使用的是非对称加密;握手阶段的目的是确定最终通信要使用的加密秘钥;
(2)TLS中通信双方最终正常通信时,使用的是对称加密,加密秘钥在通信双方握手阶段
(使用的是非对称加密)确定,之后由客户端对秘钥使用公钥加密,发送给server,server
使用私钥解密后,得到明文秘钥;

2. 关于证书:
  证书本质上就是证书持有者的公钥;证书里面的其他字段都是服务于证书持有这的公钥的;
   通信的双方天各一方,公钥怎么通知给对方?答案是发送自己的证书给对方,公钥就在证书里;证书里的其他字段,都服务于公钥;对方收到证书后会对证书进行有效性校验,验证通过后,便可以直接使用公钥了,验证失败,就不继续了;这样做的目的是确保了公钥的有效性;

   一般证书的内容如下:
    【1】版本信息:证书的版本,通常是v3。
    【2】序列号:每个证书都有一个唯一的序列号,用于标识证书。
    【3】签名算法:用于签署证书的算法,比如 SHA256-RSA、SHA384-RSA 等。
    【4】发行者(Issuer):颁发该证书的证书颁发机构(CA)。通常包括CA的名字、地址等信息。
    【5】有效期(Validity Period):证书的生效时间和过期时间。
    【6】主体(Subject):证书所有者的信息,通常包括域名(如 www.example.com)、组织名称等。
    【7】公钥:服务器的公钥,用于加密和身份验证。该公钥会被用来与私钥配合完成加密解密。
    【8】扩展字段(Extensions):一些额外的信息,比如证书用法、权限等,常见的有 Subject Alternative Name (SAN) 扩展,用于支持多个域名。
    【9】签名:由颁发机构的私钥加密的证书的签名,用于验证证书的完整性和来源。

      证书是发给谁的?--》【6】主体(Subject)
      证书是谁发的?--》【4】发行者(Issuer)
      怎么验证证书完整性?--》【3】签名算法:【9】签名:收到证书后通过签名算法对证书加密,和【9】对比看是否相同;相同表明证书是完整的;
      证书其他信息---》【1】【2】【5】【8】
      公钥:--》【7】:折腾这么半天,就是为了这个公钥;

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐