非对称密码密钥分发协议:Denning — Sacco,DASS,Wu Lama

前言
该文本将是无线电工程和控制系统部信息保护手册以及此培训代码中MIPT(GU)信息保护手册的重写章节之一。 完整的教程可在github上找到 (另请参阅草稿发行版 )。 我计划在Habrir上载新的“大型”文章,首先,收集有用的评论和意见,其次,为社区提供更多有关有用和有趣主题的概述材料。 “加密协议”一章的前面各节: 1、2、3、4、5 ; 接下来的顺序: 7

非对称协议或基于具有公共密钥的密码系统的协议可能会削弱对协议初始阶段的要求。 在下面考虑的协议中,代替双方必须具有的共享密钥(双方和受信任的中心),双方必须首先(在彼此之间或与受信任的中心之间)交换公共密钥。 在密码分析者在此阶段不能影响通信信道的内容的假设下,这种初步交换可以在开放的通信信道上进行。

加密协议— Sacco


该协议由Dorothy Denning和Giovanni Sacco在1981年提出(英语: Dorothy E. Denning,Giovanni Maria Sacco )。 在此协议中,发起方(Alice)立即向受信任中心(Trent)寻求双方参与者的证书。 同一参与者还负责新会话密钥的形成。 K

—

  1. 爱丽丝\到\左\ {A,B \右\} \到Trent
  2. Trent \到\左\ {S_T(A,K_A,T_T),S_T(B,K_B,T_T)\右\} \到Alice
  3. 爱丽丝产生一个新的会话密钥 K
    \ begin {array} {lll} Alice \到\ {&E_B(S_A(K,T_A)),&\\&S_T(A,K_A,T_T),&\\&S_T(B,K_B,T_T) &\} \到Bob \ end {array}
  4. Bob验证证书上的信任中心签名 STAKATT解密会话密钥 K并验证爱丽丝的签名。

遗失讯息 EBSAKTA任何标识符都会使协议容易受到已知会话密钥的攻击,并允许第二方(Bob)在与第三方(Clara)的会话中模拟发起方(Alice)。

—

  1. 爱丽丝和鲍勃进行了协议会话,生成了新的会话密钥 K
  2. Bob \到\左\ {B,C \右\} \到Trent
  3. Trent \到\左\ {S_T(B,K_B,T_T),S_T(C,K_C,T_T)\右\} \到Bob
  4. 鲍勃播放消息 SAKTASTAKATT爱丽丝与克拉拉的一次对话中:
    \开始{array} {lll} Bob〜(Alice)\到\ {&E_C(S_A(K,T_A)),&\\&S_T(A,K_A,T_T),&\\&S_T(C, K_C,T_T)&\} \到Clara \结尾{array}
  5. Clara成功验证了证书上受信任中心的签名 STAKATT解密会话密钥 K并验证爱丽丝的签名。

结果,Clara确保她从Alice那里收到了新的会话密钥。 K

DASS协议


DASS协议是DEC开发并在1993年9月的RFC 1507中描述的分布式身份验证安全服务 (DASS)的组成部分。

在DASS协议中,类似于“广口蛙”和“ Denning – Sacco”协议,发起者(Alice)会生成一个新的会话密钥,并为每个协议会话生成一对新的发送者公钥和私钥。 可信中心(Trent)用作参与者的公共密钥证书的存储库。 但是与Denning-Sacco不同,两个参与者都依次转到受信任的中心。

DASS

  1. 爱丽丝\到\左\ {B \右\} \到Trent
  2. Trent \到\左\ {S_T \左(B,K_B \右)\右\} \到Alice
  3. 爱丽丝\到\左\ {E_K \左(T_A \右),S_A \左(L,A,K_P \右),S_ {K_P} \左(E_B \左(K \右)\右)\右\} \给Bob
  4. Bob \到\左\ {A \右\} \到Trent
  5. Trent \到\左\ {S_T \左(A,K_A \右)\右\} \到Bob
  6. Bob \至\左\ {E_K \左\ {T_B \右\} \右\} \至Alice

使用公钥证书 \左\ {S_T \左(B,K_B \右)\右\}\左\ {S_T \左(A,K_A \右)\右\} Trent发送,并进一步确认相应密钥的所有权,参与者可以彼此进行身份验证。 成功解密消息中的时间戳 EK\左TA\右E_K \左\ {T_B \右\} 提供会话密钥的所有权证明。

该协议使用生存期( L)会话密钥 KP但是时间戳不包括在消息中。 结果,该协议仍然容易受到具有已知会话密钥的攻击。 假设Mellory能够记录Alice和Bob之间过去的完整通信会话,然后能够访问该会话密钥 K。 这使Mellory在Bob面前将自己认证为Alice。

  1. Mellory〜(Alice)\到\左\ {E_K \左(T_M \右),S_A \左(L,A,K_P \右),S_ {K_P} \左(E_B \左(K \右)\右)\右\} \到Bob
  2. Bob \到\左\ {A \右\} \到Trent
  3. Trent \到\左\ {S_T \左(A,K_A \右)\右\} \到Bob
  4. Bob \至\左\ {E_K \左\ {T_B \右\} \右\} \至Alice

在第一遍中,Mellory仅更改包含时间戳的第一条消息 EK\左TM\右。 Mellory从录制的会话中复制其余部分。 如果鲍勃没有记录使用的密钥,他将不会注意到欺骗。 解决此漏洞的最简单方法是在消息中包含时间戳。 SA\左TALAKP\右

由于会话密钥在协议中 K通过“主”密钥Bob加密 KB,那么后者的妥协将导致所有先前使用的会话密钥受到损害。 也就是说,该协议不能提供完美的直接保密性(目标G9)。

Trent和Bob都不参与新会话密钥的形成。 因此,爱丽丝可以像宽口蛙和Yahalom协议中一样,强迫鲍勃使用旧的会话密钥。

吴喇嘛议定书


于1992年提出的Wu-Lama协议( Thomas YC Woo,Simon S. Lam )向消息中添加了随机参与者,从而保护了该协议,包括防止重复攻击,并提供了密钥所有权的确认。 它也是本节中考虑的唯一协议,其中受信方(Trent)会生成新密钥。

—

  1. 爱丽丝\到\左\ {A,B \右\} \到Trent
  2. Trent \到\左\ {S_T(K_B)\右\} \到Alice
  3. 爱丽丝\到\左\ {E_B(A,R_A)\右\} \到Bob
  4. Bob \到\左\ {A,B,E_T(R_A)\右\} \到Trent
  5. Trent \到\左\ {S_T(K_A),E_B(S_T(R_A,K,A,B))\右\} \到Bob
  6. Bob \ to \ left \ {E_A(S_T(R_A,K,A,B),R_B)\ right \} \ to Alice
  7. 爱丽丝\到\左\ {E_K(R_B)\右\} \到Bob

由于在会话密钥证书 STRAKAB爱丽丝的随机数存在 RA,则攻击者将无法代表Bob在新会话中使用旧证书。 因此,该协议的第六次通过允许Alice确保Bob知道新的会话密钥。 K,因此拥有他的“主”密钥 KB(因为这是从邮件中获取证书的唯一方法 EBSTRAKAB

留言内容 EKRB从爱丽丝到鲍勃的第七段,我们可以同时保证爱丽丝知道她的“主”钥匙 KA(因为它能够解密 EA\点RB),以及新的会话密钥 K因为它能够正确加密 RB这个钥匙。

后记
本章最后一部分是有关密钥协议BB84已发布材料 。 因此,本文实际上完成了有关Habr加密协议的系列文章。 作者将对文本的事实和其他评论表示感谢。

Source: https://habr.com/ru/post/zh-CN476538/


All Articles