公钥私钥密钥

公钥

服务端生成的密钥,和私钥一起成对生成(非对称加密),公钥可以公开给所有人,在TLS加密过程中,公钥负责传输给客户端,客户端在自己端生成密钥(对称加密),然后用公钥加密密钥返还给服务端,服务端通过私钥解密,拿到对称加密的密钥,后续的传输通道信息就用密钥来加密解密。

私钥

服务端生成的密钥,和公钥一起生成,不可公开,用于解密公钥加密的密钥

非对称加密

常见算法

RSA:最常用,TLS 证书、密钥协商、登录签名都用

ECC:椭圆曲线加密,同等安全密钥更短、速度更快,移动端、物联网常用

SM2:国产国密非对称算法,替代 RSA

DSA/ECDSA:主要用于数字签名,不适合加密

对称加密

常见算法

AES:目前最主流、行业标准,TLS、APP 接口、文件加密全在用,分 AES-128/192/256

DES:老旧、安全性弱,基本淘汰

3DES:DES 升级版,现在也逐步被 AES 替代

SM4:国产国密算法,金融、政务刚需

RC4:流式对称加密,老旧场景用,安全性一般

附加:哈希摘要(常配合加密用,不算加密算法
MD5、SHA1、SHA256、SHA512、SM3(国密哈希)作用:做完整性校验、签名摘要,不可逆、不能解密。

CA证书

在传统的HTTPS中,第一步是校验、第二步是加密,上面所说的公钥私钥实际上就是加密步骤,CA签名用于第一步校验,那么是怎么校验的?先了解几个概念

一、CA 证书是什么?

全称:数字证书 / X.509 证书

可以理解成:网站 / 服务端的官方实名认证身份证

由权威第三方 CA 机构(比如阿里云、Let's Encrypt、银行 CA)颁发。

作用两个:

  1. 证明这个域名 / 服务器是真的、不是钓鱼伪造的
  2. 证书里自带服务端的公钥,给客户端用

CA 证书里面包含什么核心内容:

| 网站域名 / 服务器信息

| 服务端的公钥(明文直接写在证书里) ✅

| 证书有效期

| 颁发机构 CA 信息

| CA 用自己私钥做的数字签名

👉 重点:CA 证书里一定有业务服务端的公钥,没有私钥。

所以CA证书就是客户端验证服务端用的

二、CA 公钥、CA 私钥 是什么?

CA 本身也是一对非对称密钥(RSA/ECC):
1. CA 私钥

  • 归 CA 机构绝密保管,绝不外泄
  • 用途:给别人发的证书做签名盖章 你网站的证书,就是 CA 用CA 私钥签的名。

2. CA 公钥

  • 公开全世界都能拿到

  • 操作系统、浏览器预装了各大根 CA 的公钥

  • 用途:验证证书真伪 客户端拿CA 公钥解密验签: 能验过 → 证书是正规 CA 发的、没被篡改 验不过 → 危险、钓鱼网站

三、校验步骤

  1. 服务端用自己的公钥申请证书
  2. CA将证书信息(公钥、域名等)做哈希(sha256算法)
  3. 使用CA私钥签名哈希值(加密),然后将内容赛到CA证书(证书原文+数字签名)中
  4. 客户端拿到服务端证书,取出CA证书里的签名,用公钥解密,然后对证书里的信息做哈希(sha256),将两个值作对比(验签)
相关推荐
JAVA面经实录9171 小时前
操作系统面试题
java·服务器·数据库·计算机网络·面试
楠目3 小时前
Nginx 解析漏洞利用总结
nginx·网络安全
JAVA面经实录9175 小时前
操作系统(面试全覆盖)
java·计算机网络·面试
woniu_buhui_fei6 小时前
HTTP协议及其工作原理
网络安全
中云DDoS CC防护蔡蔡11 小时前
游戏杀手- ACCN
运维·服务器·经验分享·网络安全·ddos
JAVA面经实录91712 小时前
高频算法面试题
java·计算机网络·算法·面试
@insist12312 小时前
系统架构设计师-计算机网络基础体系全梳理
计算机网络·系统架构·软考·系统架构设计师·软件水平考试
Yvonne爱编码13 小时前
JAVA EE初阶---DAY 2 计算机网络
java·开发语言·计算机网络·算法·java-ee·php
梁辰兴13 小时前
计算机网络基础:对称加密密码体制
网络·计算机网络·计算机·对称加密·计算机网络基础·梁辰兴
aramae15 小时前
《计算机网络(第5版)》第二章 物理层
服务器·网络·后端·计算机网络