破坏基于预共享对称密钥的身份验证协议


13

考虑以下协议,该协议旨在将(爱丽丝)认证为(鲍勃),反之亦然。乙AB

A→B:“I'm Alice”,RAB→A:E(RA,K)A→B:E(⟨RA+1,PA⟩,K)
  • R是随机随机数。
  • K是预共享的对称密钥。
  • P是一些有效载荷。
  • m KE(m,K)表示用加密的。mK
  • 米1 米2⟨m1,m2⟩表示将与组合在一起,可以进行明确的解码。m1m2
  • 我们假设加密算法是安全的并且正确实现。

攻击者(Trudy)想要说服Bob接受她的有效载荷来自Alice(代替)。Trudy可以假冒Alice吗?怎么样?P 一PTPA

这与 Mark Stamp的“信息安全:原则与实践”中的练习9.6略有修改。在书籍版本中,没有,最后一条消息仅为,并且要求Trudy“说服Bob她是爱丽丝”。马克·斯坦普(Mark Stamp)要求我们找到两次攻击,而我发现的两次攻击允许Trudy伪造而不是。 PAE(RA+1,K)E(R+1,K)E(⟨R,PT⟩,K)


请参阅meta中
— Ran G.

Answers:


5

由于Bob发送的事实,因此该协议似乎不安全。Trudy可以使用它来“生成”加密,该加密以后将用于完成身份验证协议。E(RA,K)E(⟨RA+1,PT⟩,K)

具体来说,请考虑以下攻击:

Trudy选择随机并以以下方式与Bob一起运行协议: ,然后Trudy在中间剪切协议(因为她不知道该如何回复)。我们假设Trudy和Bob都中止了。R1

T→B:“I'm Alice”,⟨R1+1,PT⟩B→T:E(⟨R1+1,PT⟩,K)

现在Trudy启动该协议的另一个实例: Trudy这次是如何在不知道情况下完成协议的?这简单!鲍勃实际上是在一开始为她执行加密的。

T→B:“I'm Alice”,R1B→T:E(R1,K)T→B:E(⟨R1+1,PT⟩,K)
K

经验教训:在密码协议中,每个消息或可分离的片段最好包含一个唯一的标签,以防止其像协议中的其他消息一样重复使用,这是有益的。如果Bob的答复是,而第三条消息是,则此攻击将无法进行。ë (⟨ 2 ,- [R 甲 + 1 ,P ⟩ )E(⟨1,RA⟩)E(⟨2,RA+1,P⟩)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.