【密码学】密码协议的分类:③认证的密钥建立协议

让我们来回顾一下三种密钥协议,第一种是认证协议,它的目的只是确认对方是不是合法身份;第二种是密钥建立协议,它的目的只是实现会话密钥的共享,没有考虑对方的身份是否合法。而本文要介绍的是第三种------认证的密钥建立协议。

一、什么是认证的密钥建立协议?

所谓认证的密钥建立协议,就是将认证和密钥建立结合在一起的协议,使得Alice和Bob确信他们正在与可信赖的对方进行保密通信。即验证了对方身份的合法性又建立了彼此用于通信的会话密钥。

所以在实际应用中,认证的密钥建立协议通常包含以下关键步骤:

  1. 身份验证:通信双方相互验证对方的身份。这可以通过数字证书、预共享密钥、公钥基础设施(PKI)或其他认证机制来实现。
  2. 密钥协商:在身份验证成功后,双方协商出一个会话密钥。这通常涉及随机数交换、密钥派生函数(KDF)或其他密钥协商算法。
  3. 密钥确认:双方确认协商出的会话密钥是一致的,并且没有被篡改。这可以通过消息认证码(MAC)、哈希函数或其他完整性保护机制来实现。

【注】密钥建立 = 密钥协商 + 密钥确认
认证的密钥建立协议中所采用的符号

二、具体有哪些认证的密钥建立协议?

协议各有特点,在不同的场景下有着不同的适用性和安全性考量。例如,Kerberos被广泛应用于企业网络环境中,而EKE则更适用于需要高度安全性的场景,尤其是在密码可能较弱的情况下。下面我们逐一介绍:

(1)大嘴青蛙协议(单钥)

步骤:

  1. 初始化 : Alice 和 Bob 分别与 TTP (可信第三方)交换密钥
  2. 请求会话 : Alice 请求与 Bob 建立连接,向 TTP 发送一个请求,包含 Alice 的身份标识A,使用加密Alice向对话的对象Bob的身份标识B和会话密钥K
  3. 转发 : TTP 用 Bob和他事先共享的密钥 进行加密,发送给Bob加密好的内容,包含期望与Bob建立会话的对象标识符A,双方的会话密钥K,以及时间戳
  4. 完成 : Bob 收到密文后,用他的密钥解密得到 K,现在 Alice 和 Bob 拥有相同的会话密钥 K

【注】大嘴青蛙协议有很多的安全隐患。

(2)Yahalom协议(单钥)

Yahalom 协议与大嘴青蛙协议非常相似,因此步骤基本相同,主要区别在于协议设计时的细节处理上。

步骤:

  1. 初始化 : Alice 和 Bob 分别与 TTP 交换密钥
  2. 发起挑战 : Alice 向 Bob 发送一个挑战值,同时附上 Alice 的身份标识A。
  3. 请求会话 : Bob向TTP发送请求会话信息,包含Bob的身份标识B,用与 Bob与TTP的会话密钥加密Bob请求对话的对象Alice的身份标识A,和先前Alice发来的挑战值,以及Bob自己生成的挑战值
  4. 生成密钥 : TTP 生成一个临时密钥 K,并用与 Alice 的会话密钥加密 K,和Bob的身份标识B,和双方的挑战值,发送给 Alice。再用与Bob的会话密钥加密K和Alice的身份标识A
  5. 确认 : Alice 使用 解密得到K,并验证与之前发给Bob的是否相同。然后将TTP发来的转发给Bob,并相应挑战
  6. 确认 : Bob 收到密文后,用他的解密得到 K,然后用 K 解密得到,并验证是否与自己生成的相同
  7. 完成: 现在 Alice 和 Bob 拥有相同的会话密钥 K

(3)Kerberos协议(单钥)

Kerberos协议引入了时间戳和有效期,实现了抗重放攻击。Kerberos协议非常常见,是重点理解对象。

步骤:

  1. 初始化 : Alice 和 Bob 分别与 TTP 交换密钥
  2. 请求密钥: Alice向TTP发送会话请求,包括会话双方的身份标识A,B
  3. 响应: TTP分别用双方实现共享给TTP的密钥生成两份密文,密文中包含会话密钥K和身份标识,和时间戳与有效期,把两份密文都发送给Alice
  4. 转发: Alice解密第一份消息得到K,然后向Bob发送用K加密附带时间戳的自己的身份A,第二份密文直接转发给Bob
  5. 确认:Bob对第二份收到的消息解密,得到会话密钥K和时间戳,然后Bob将时间戳加一,采用K加密后发给Alice
  6. 确认:Alice对收到的消息用K解密出运算后的时间戳,验证其正确性。

(4)EKE协议(单钥+双钥)

相关推荐
衍生星球1 天前
【网络安全】对称密码体制
网络·安全·网络安全·密码学·对称密码
chirrupy_hamal1 天前
为什么 ECB 模式不安全
密码学
粉车绿衣搞笑网工女2 天前
密码学---easy_hash
算法·密码学·哈希算法
nina_LeXin3 天前
Mina protocol - 体验教程
web3·区块链·密码学·零知识证明
辉哥的编程道路5 天前
基于OpenSSL的密码管理系统-应用密码学课程报告
计算机·密码学·同等学力申硕
粉车绿衣搞笑网工女5 天前
密码学---常见的其他密码
网络安全·密码学
CyberSecurity_zhang5 天前
密码学基础--ECDSA算法入门
密码学·椭圆曲线·ecdsa
不会代码的小徐6 天前
CTF常见编码及加解密(超全)第二篇
网络安全·密码学·预编码
chirrupy_hamal7 天前
加密
密码学
EthanXone1967 天前
【学习笔记】SSL密码套件之哈希
密码学·哈希算法·ssl·mac·密码套件·poly1305·aead