尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

公钥私钥密钥

公钥私钥密钥 公钥服务端生成的密钥和私钥一起成对生成非对称加密公钥可以公开给所有人在TLS加密过程中公钥负责传输给客户端客户端在自己端生成密钥对称加密然后用公钥加密密钥返还给服务端服务端通过私钥解密拿到对称加密的密钥后续的传输通道信息就用密钥来加密解密。私钥服务端生成的密钥和公钥一起生成不可公开用于解密公钥加密的密钥非对称加密常见算法RSA最常用TLS 证书、密钥协商、登录签名都用ECC椭圆曲线加密同等安全密钥更短、速度更快移动端、物联网常用SM2国产国密非对称算法替代 RSADSA/ECDSA主要用于数字签名不适合加密对称加密常见算法AES目前最主流、行业标准TLS、APP 接口、文件加密全在用分 AES-128/192/256DES老旧、安全性弱基本淘汰3DESDES 升级版现在也逐步被 AES 替代SM4国产国密算法金融、政务刚需RC4流式对称加密老旧场景用安全性一般附加哈希摘要常配合加密用不算加密算法MD5、SHA1、SHA256、SHA512、SM3国密哈希作用做完整性校验、签名摘要不可逆、不能解密。CA证书在传统的HTTPS中第一步是校验、第二步是加密上面所说的公钥私钥实际上就是加密步骤CA签名用于第一步校验那么是怎么校验的先了解几个概念一、CA 证书是什么全称数字证书 / X.509 证书可以理解成网站 / 服务端的官方实名认证身份证由权威第三方 CA 机构比如阿里云、Let’s Encrypt、银行 CA颁发。作用两个证明这个域名 / 服务器是真的、不是钓鱼伪造的证书里自带服务端的公钥给客户端用CA 证书里面包含什么核心内容按照 X.509TLS 用的就是这种的标准一张证书主要包含这些字段版本Version如 v3序列号Serial Number颁发者给的唯一编号签名算法Signature Algorithm证书是用什么算法签的颁发者Issuer是谁签发的一般是一个 CA有效期ValidityNot Before / Not After主体Subject这张证书是给谁的比如域名 CNexample.com主体公钥信息Subject Public Key Info就是“这个证书主体”的公钥和算法信息颁发者唯一ID/主体唯一ID可选扩展Extensions比如密钥用途Key Usage、SAN多域名、CRL/OCSP 地址、基本约束CA: true/false等签名Signature用颁发者CA的私钥对以上内容的签名用于验证证书未被篡改日常说“CA证书”其实是三个不同的东西很容易混服务器证书终端实体证书End-Entity Certificate主体是具体的服务器/域名比如 CNwww.example.com 或 SANwww.example.com里面包含“服务器公钥”Subject Public Key Info 就是服务器公钥。客户端用它来验证服务器身份并做密钥交换或验证签名。中间 CA 证书Intermediate CA Certificate主体是一个中间 CA。里面包含的是“这个中间 CA 的公钥”不是具体某台服务器的公钥。用它来验证服务器证书的签名。根 CA 证书Root CA Certificate主体是一个根 CA。里面包含的是“这个根 CA 的公钥”。一般内置在操作系统/浏览器信任库里用于验证中间 CA或终端实体证书的签名链。二、CA 公钥、CA 私钥 是什么CA 本身也是一对非对称密钥RSA/ECC1. CA 私钥归 CA 机构绝密保管绝不外泄用途给别人发的证书做签名盖章 你网站的证书就是 CA 用CA 私钥签的名。2. CA 公钥公开全世界都能拿到操作系统、浏览器预装了各大根 CA 的公钥用途验证证书真伪 客户端拿CA 公钥解密验签 能验过 → 证书是正规 CA 发的、没被篡改 验不过 → 危险、钓鱼网站三、校验步骤服务端用自己的公钥申请证书CA将证书信息公钥、域名等做哈希sha256算法使用CA私钥签名哈希值加密然后将内容赛到CA证书证书原文数字签名中客户端拿到服务端证书取出CA证书里的签名用公钥解密然后对证书里的信息做哈希sha256将两个值作对比验签
返回列表