我一直在想的一个问题是:
怎样才能建立这样的制度?
发布于 2018-04-21 22:34:27
如果身份验证方法设计为允许冗余,则可以这样做。最简单的例子是,如果团队成员之间使用密码进行身份验证,但允许他们发送冗余字符和密码。(我在这里假设所有的团队都使用相同的身份验证方法!)
因此,让我们假设蓝色团队密码是"BERRY“,绿色团队密码是”叶子“。现在,字符串"ASDBERRYFOO“将成功地验证一个蓝色团队成员。然而,"FOOBERRYLEAF“将成功地对两个团队的成员进行身份验证!这些团队并不知道对方的密码,所以后者在任何人看来都不会比前者更可疑。Eve也不知道红色或蓝色团队的密码,所以她不知道这个字符串是否真的包含一个或多个团队的密码。
当然,这种方法很容易被重放攻击。Eve可以直接发送"FOOBERRYLEAF“给任何她可能遇到的人,这样她就会发现它既可以验证给蓝队,也可以是绿队(即使她仍然不知道密码--它们也可能是"OOBE”和"RYLEA"!)
如果使用了"FOOBERRYLEAF“,那么它就不应该再工作了。爱丽丝仍然可以创建无限数量的类似字符串,因为她知道密码。
一个更好的方法是使用一次性密码,这样即使是“贝瑞”部分也不会重复。
然而,冗余部分仍然是我的主要问题:为什么会有人实际使用一种方案,在这种方案中,相同的消息可以用两种不同的方式解释?显然,我的"FOOBERRYLEAF“例子太天真了。我认为,在现实中,您不只是连接字符串,而是会发现一些聪明的哈希冲突或类似的东西,以实现同样的结果。但我会把这部分留给别人去思考..。
发布于 2018-03-18 12:59:24
我相信爱丽丝可以说‘我在你的团队里’。“这样,不管她是在和查理说话,还是和鲍勃说话,都会知道她是哪一支球队的。而且,伊芙和其他团队也找不出爱丽丝的团队,因为他们一开始就不知道她在和谁说话!
https://crypto.stackexchange.com/questions/57570
复制相似问题