第18,19,20章学习笔记
学习笔记
18. PKI之梦
18.1 PKI 的简短回顾
- 定义:PKI即公钥基础设施(Public Key Infrastructure),解决密钥管理问题。
- 组成:包括证书机构(CA)和公私密钥对,其中CA负责签发证书。
18.2 PKI 的例子
- 全局 PKI:理想状态下的PKI,类似邮局,为所有用户颁发公钥证书,实现安全通信。
- VPN 访问:公司利用PKI为员工颁发证书,以允许安全访问公司网络。
- 电子银行:银行作为CA,认证客户公钥,确保在线金融交易的安全性。
- 炼油厂传感器:利用PKI确保传感器数据的真实性,防止恶意篡改导致事故。
- 信用卡组织:信用卡组织作为CA,为各银行颁发证书,实现安全支付交易。
18.3 其他细节
- 多级证书:将CA分为多个层级,构建证书链,提高系统灵活性但可能降低安全性。
- 有效期:密钥和证书都有有效期,定期更换以应对密钥泄露风险和保持信息时效性。
- X.509格式:通用的证书格式,复杂但标准化,常用于PKI系统。
- 独立的注册机构:解决方案之一是多级证书结构,另一方案是让用户通过中心CA获得一级证书。
18.4 结论
- PKI是解决密钥管理问题的重要工具,为安全通信提供了基础设施。
- 理解PKI的目标和作用对于理解安全通信系统至关重要,是行业中密钥管理的核心术语。
19.PKI的现实
19.1 名字
在PKI中,名字是指代个人或实体的符号,用于标识和区分。随着社会的发展和互联网的普及,名字的含义和唯一性变得模糊。从小范围的村庄到全球范围的网络,名字的唯一性和指代性逐渐减弱。传统的政府号码方案(如社会安全码)尽管成功,但也存在不足,无法保证全球唯一性。另外,隐私法律也限制了个人信息的收集和存储。
19.2 授权机构
PKI中的授权机构(CA)负责分配密钥和确定用户的身份。对于特定应用而言,如公司内部系统或银行,确定授权机构相对容易。然而,全局PKI缺乏统一的授权来源,导致其难以实现。
19.3 信任
PKI的安全性依赖于CA的可信度,而全局PKI的信任是一个挑战。由于没有一个组织能获得所有人的信任,因此全局PKI的实现是不现实的。建议采用多个小型PKI,由各个组织自主运营。
19.4 间接授权
PKI通常通过将名字与密钥和许可权绑定,以及使用ACL来管理许可权,来实现对用户的授权。然而,这种方法存在攻击点,如证书和ACL的安全性,以及名字的混淆。
19.5 直接授权
直接授权通过将密钥与许可权直接绑定,而不再涉及名字,从而简化了授权过程。虽然在正常操作中不需要名字,但在审计和日志记录中,名字仍然起着重要作用。因此,尽管名字对计算机而言可能是不必要的,但它对于人类来说仍然具有重要意义。
19.6 凭证系统
凭证系统是一种由密码学家提出的超级PKI系统,其基本原理是为每个操作提供凭证。例如,Alice可以授权Bob读取特定文件X,并将授权以证书的形式签署。Bob在想要读取文件X时,需要提交证书和证明其拥有权限的凭据。凭证系统可以包含额外的特性,如授权有效期和限制授权委托。然而,凭证系统的使用受到一些限制,包括复杂性、细化的授权管理、凭证和委托语言的开发以及用户理解问题。
凭证系统的问题:
-
复杂性和额外开销: 凭证系统复杂,访问资源的授权可能需要多个证书组成的证书链,增加了开销。
-
授权管理细化: 凭证系统可能导致授权细化管理问题,将权限细分后,用户需要花费更多时间来分配权限,而当用户发现权限不足时,也会浪费时间。解决这个问题可能需要改善用户教育和用户界面。
-
凭证和委托语言的开发: 需要开发一种适用于计算机理解的凭证和委托语言,其需要足够的强大和简单,以及能够满足未来需求的通用性。
-
用户理解问题: 具体的授权委托对用户来说可能太复杂,难以理解,从而可能导致安全问题。
19.7 修正的梦想
PKI系统存在一些缺陷,如复杂性、密钥管理问题等。修正后的梦想是将每个应用的PKI和CA分离,实现密钥和凭证的绑定,从而更加现实、有效、灵活和安全。
19.8 撤销
撤销是PKI中最困难的问题之一。存在三种可行的解决方案:撤销列表、短有效期和在线证书验证。
撤销列表(CRL)
撤销列表是一个包含被撤销证书列表的数据库,需要验证证书的人检查CRL数据库以确定证书是否被撤销。CRL具有快速、可靠的优点,但也存在在线依赖和单点故障的问题。
短有效期
短有效期可以利用证书的有效期机制来代替撤销列表,通过发行短期证书来实现。虽然简化了系统复杂性,但需要保持在线状态获取更新的证书。
在线证书验证
在线证书验证通过查询可信方来验证证书的状态,避免了CRL的问题,但仍然需要在线验证,且可信方可能成为故障点。
撤销是必需的,尽管实现困难,但是没有撤销功能的PKI将无法有效运作。
20.PKI的实用性
20.1 PKI的实用性
在设计PKI系统时需要考虑的实际因素。
-
20.1.1 证书格式
- 证书的数据结构和编码必须确保签名和散列函数正常工作。
- X.509证书仍然是一种选择,尽管复杂。
-
20.1.2 许可语言
- 子CA的证书需要限制,需要一种语言表示密钥的许可权。
- 缺乏限制可能导致不安全的设计。
-
20.1.3 根密钥
- CA必须拥有公/私钥对。
- 使用自证明的证书将公钥和附加数据绑定在一起。
20.2 密钥的生命周期
对单个密钥的生命周期进行讨论。
-
创建
- 创建密钥对,并安全存储私钥部分。
-
认证
- 将公钥传递给CA或子CA,进行认证。
-
分发
- 根据具体应用,在使用公钥前进行分发。
-
主动使用
- 主动使用公钥进行交易。
-
被动使用
- 停止主动使用公钥,等待交易完成。
-
到期
- 密钥到期后不再有效。
20.3 密钥作废的原因
讨论密钥作废的原因和适当的生命周期。
- 密钥周期性更换是为了减少泄露风险和限制攻击危害。
- 合理的密钥生命周期需要根据具体情况决定,但一般不超过一年。
20.4 深入探讨
密钥管理涉及到密码学问题和实际应用相关的问题。
- 选择合适的PKI和配置取决于具体应用和环境。
- 需要考虑安全性、效率和用户参与等关键要素。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本