7.4 KDC和CA

1.KDC

2.CA


1.KDC

csharp 复制代码
1).KDC

KDC(密钥分发中心)是"对称密钥加密体系中的一个核心可信第三方机构"; 它就像一个非常安全, 备受信任的"网络票务中心"

它的核心指责是: 给需要安全通信的双方(用户和服务)产生并分发一个临时的, 一次性的会话密钥, 并验证它们的身份
csharp 复制代码
2).为什么需要KDC

没有KDC的世界里, 如果两个用户(比如Alice和Bob)想用对称加密进行保密通信, 共享一个相同的密钥, 那么密钥需要提前要

进行分发, 非常不便且不安全, KDC用于解决密钥如何进行分发的问题("用户和服务只需与KDC共享一个密钥")
csharp 复制代码
3).核心组成与工作机制

一个KDC通常由两个逻辑部分组成("票据是一个由KDC颁发的、加密的数据包")

a.认证服务器: 负责验证用户身份

b.票据授权服务器: 负责颁发"服务访问票据"
csharp 复制代码
a.TGT是票据授权票据, 它的核心作用: 证明你已经在中央认证中心验明了正身, 有资格去申请各个项目的通行证

"用于获取其他票据(如服务票据ST)")

b.ST是服务票据, 它的核心作用是: 进入某个特定服务的"入场券"

csharp 复制代码
假设用户Alice想要访问打印服务PrinterService

a.认证请求: Alice向AS发送自己的身份信息(如用户名)

b.颁发TGT: AS验证Alice的身份(可能需要密码), 验证通过后, AS生成一个票据授权票据, 并用Alice的密钥加密后发回给

Alice; TGT里包含了KDC为 Alice生成的一个会话密钥

c.请求服务票据: Alice用自己的密钥解密得到TGT和会话密钥, 然后, 她向TGS发送请求"我想访问 PrinterService", 这个

请求里包含了她刚收到的TGT, 以及用会话密钥加密的时间戳等信息

d.颁发服务票据: TGS收到请求后, 用自己的密钥解密TGT, 验证其有效性; 然后用TGT中的会话密钥解密Alice的时间戳, 进

行验证, 全部通过后TGS生成一个用于访问PrinterService的服务票据; 这个ST里包含了KDC为Alice和PrinterService生成

的一个新的、独立的会话密钥; TGS将这个ST和新的会话密钥用Alice的会话密钥加密, 发回给 Alice

e.访问服务: Alice向PrinterService出示她刚收到的ST, ST本身是用PrinterService的密钥加密的, 所以只有

PrinterService能解密; 服务端解密ST, 获得与Alice通信的会话密钥, 并用这个密钥验证Alice随后发送的认证信息(如时

间戳); 验证通过后, 双方即可使用这个会话密钥进行安全的通信

2.CA

csharp 复制代码
CA(证书颁发机构)是"一个全球公认的、绝对可信的第三方组织"

它的核心工作就一句话: 证明"你是你, 并把你和你的公钥牢牢地绑在一起"; 类似于公证处角色: 颁发一张具有法律和技术

效力的"数字身份证", 证明"这个公钥确实属于你"; 这张"数字身份证"就是数字证书
csharp 复制代码
a.用公钥加密的数据, 有且只有对应的私钥能解密

b.用私钥加密的数据, 有且只有对应的公钥能解密

csharp 复制代码
假设你要访问https://www.bank.com

1).网站申请"数字身份证"(证书)

a.生成密钥对: 网站服务器先生成一对自己专属的非对称密钥, 一个私钥(绝密, 自己藏好), 一个公钥(可以公开)

b.提交申请材料: 网站拿着自己的公钥、公司信息、域名等, 去一家公认的CA那里申请证书

c.CA严格审核: CA会按严格流程审核申请者是否真的拥有www.bank.com这个域名, 以及公司的真实合法性, 这是信任的基石

d.签发证书: 审核通过后, CA用自己的私钥, 对"网站信息+网站公钥"进行数字签名, 生成一张数字证书, 颁发给网站; 这张

证书里就包含了www.bank.com的信息和它的公钥, 并且有CA的亲笔签名

2).你和网站建立安全连接

a.打招呼: 你的浏览器访问https://www.bank.com

b.出示身份证: 网站服务器把自己的数字证书发送给你的浏览器

c.你开始验明正身

- 检查发证机关: 浏览器查看证书是谁(哪个CA)颁发的, 你的电脑和浏览器里已经预装了所有全球公认CA的"公章"(即CA根

证书, 包含CA的公钥)

- 验证公章真伪: 浏览器用CA的公钥去解密证书上的CA签名, 如果能"成功解密并验证信息无误", 就证明两件事:

这张证书确实是由这个可信CA签发的(公章是真的)

证书内容在传输过程中没有被篡改过(内容完整)

- 核对身份信息: 浏览器检查证书上的域名是不是正在访问的www.bank.com, 以及证书是否在有效期内

"证书是否是为这个域名颁发的"

csharp 复制代码
服务器还需证明它是真的证书拥有者

a.客户端挑战服务器

浏览器验证证书是真的之后, 会随机生成一个"预主密钥"; 然后, 浏览器用证书里提取出来的服务器公钥, 加密这个预主密

钥

b.服务器必须回应挑战

服务器收到这个加密的预主密钥后, 必须用自己的私钥来解密它; 只有拥有正确私钥的服务器才能成功解密, 拿到预主密钥

c.共同生成会话密钥

客户端和服务器使用这个预主密钥, 结合之前交换的随机数, 各自独立计算出相同的会话密钥后续所有通信都用这个会话密钥

进行对称加密
csharp 复制代码
数字签名验证

a.服务器在发送证书后, 还会发送一套临时DH参数

b.服务器用自己的私钥对这些DH参数(和之前的部分握手消息)进行数字签名

c.客户端用证书里的公钥验证这个签名

csharp 复制代码
e.开始安全对话: 一旦全部验证通过, 浏览器就完全信任这张证书, 并放心地取出证书里的网站公钥; 随后, 用它来加密接

下来要生成的一个临时会话密钥, 并发送给网站; 因为只有拥有对应私钥的网站才能解密这个信息; 之后, 双方就用这个临

时的会话密钥进行高效的对称加密通信
相关推荐
新诺韦尔API1 小时前
手机空号检测接口对接全流程指南
大数据·网络·智能手机·api
乾元1 小时前
AI + Jinja2/Ansible:从自然语义到可执行 Playbook 的完整流水线(工程级深度)
运维·网络·人工智能·网络协议·华为·自动化·ansible
飞行增长手记2 小时前
IP协议从跨境到物联网的场景化应用
服务器·前端·网络·安全
万邦科技Lafite2 小时前
API接口地址解析地区码操作指南
网络·数据库·redis·缓存·开放api·电商开放平台
瀚高PG实验室2 小时前
如何将HGDB安全版(RPM包形式)安装在非root用户下
服务器·网络·安全·瀚高数据库
ICT系统集成阿祥2 小时前
防火墙HRP(热备路由协议)技术详解
网络
jay3 小时前
ens2f0 IP 远程连线,balance-alb 模式配置双网卡(ens2f0 + ens6f0)Bond,避免断网
linux·运维·服务器·网络·tcp/ip
科技块儿3 小时前
简单易学的IP定位查找教程
网络·网络协议·tcp/ip
Evan芙3 小时前
用Shell脚本破解经典鸡兔同笼问题
linux·运维·网络