博客为对该书的学习笔记,并非原创知识
21.12 使用在线可信第三方进行密钥交换
之前的协议仅在注册阶段使用可信第三方(TTP),本节在密钥交换阶段也使用TTP。
KDC(key distribution center):密钥分发中心,密钥交换协议中发挥主动作用的TTP。
虽然具有在线TTP的密钥交换协议对客户端非常有效,但它可能会在TTP上产生沉重的负载,TTP的泄露会危及过去和未来的所有密钥交换。
21.12.1 一种具有在线TTP的密钥交换协议
协议使用一个CPA安全的对称密码和一个安全的MAC。CPA安全指,即使攻击者可以选择任意数量的明文并获得相应的密文,他们也无法从密文中获得有用的信息来推断出其他明文或密钥。MAC(Message Authentication Code)是一种用于验证消息完整性和身份认证的密码学算法。它是通过对消息进行加密和认证来实现的。
Ke为密码密钥空间,Km为MAC密钥空间。
向TTP注册过程:
- 向TTP发生idp
- TTP生成一个随机长期密钥
,将kp发给用户
TTP不存kp,存储PRF主密钥kTTP,PRF(Pseudorandom Function)主密钥是指用于生成伪随机函数的密钥。如果需要,可以在idp中添加一次性随机数,来更新共享密钥。
密钥交换过程:
X | 指P或Q | EncX(m) | 对m进行加密 |
MacX(m) | m的MAC | K | 会话密钥集 |
R | 随机数集 |
第二三个流之间,TTP会检查它是否有kp和kq。
P只和Q通信的话,使P只能通过Q路由到P来与Q通信,将最后一个流改为:
本协议中通道绑定可以是通道绑定(Channel Binding)是一种安全机制,用于确保通信双方之间的通道的身份验证和完整性。通道绑定的基本原理是通过生成和验证绑定数据来建立通道的可信性。在通道绑定中,参与者使用通道的安全属性(如TLS或IPsec)和参与者的身份信息(如证书、令牌或密码)来计算一个绑定数据。然后,另一方接收绑定数据并进行验证,以确保通道的安全性和参与者的身份的一致性。
21.12.2 在线TTP协议的不安全变体
证明了为什么在线TTP协议的每一个部分都是实现安全所必需的。
不安全变体1:TTP不对密文cp进行MAC处理——密钥暴露攻击
MAC(Message Authentication Code)处理是一种用于验证消息完整性和身份验证的技术。
(阴影处少了cp)
攻击者向TTP注册用户R,与P对话,获得,解密后得到k’,窃听得到
。
拦截TTP向P发送,将
换成
。
因为没有cp,所以p不会发现。敌手可以读取P用k’加密的信息。如果没有cq,类似地,敌手可以读取Q的信息。
不安全变体2:TTP不对rp进行MAC处理——重放攻击
(阴影处少了rp)
记录TTP给P的信息,在PQ之后的交流中,拦截P给Q的信息,重放之前TTP给P的信息。
会话密钥k’与之前的交流相同。没有rq就也可以重放攻击Q。
不安全变体3:TTP不对idp进行MAC处理——身份错绑定攻击
攻击导致Q认为他在和P说话,而P认为他在和R说话。
将idQ换成idR
不安全变体4:TTP不对rq进行MAC处理
如果要安全通道绑定,就需要rq。
21.12.3在线TTP协议安全
满足21.9节正确性要求、静态安全性要求(并提供安全通道绑定)。
定理21.9 在线TTP协议是一个静态安全的密钥交换协议(可选地提供安全通道绑定),假设随机一次性数空间R很大,底层密码是CPA安全的,底层MAC系统是安全的。
CPA安全(Chosen-Plaintext Attack security)是指一个加密算法或密码方案,在面对选择明文攻击的情况下,能够保护密文的机密性。
在线TTP协议通常不是PFS安全(Perfect Forward Secrecy 完美前向安全)的。一旦对手知道了P的密钥、Q的密钥或TTP的密钥,那么P和Q之间过去的所有会话都将暴露。