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

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

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

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

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

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

【注】密钥建立 = 密钥协商 + 密钥确认

认证的密钥建立协议中所采用的符号

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

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

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

步骤:

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

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

(2)Yahalom协议(单钥)

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

步骤:

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

(3)Kerberos协议(单钥)

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

步骤:

  1. 初始化: Alice 和 Bob 分别与 TTP 交换密钥K_A,K_B
  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协议(单钥+双钥)

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值