【发布时间】:2010-11-30 11:32:12
【问题描述】:
这是一个关于身份验证方案的问题。
假设我有一个共享的秘密字符串 S,以及两台计算机,C1 和 C2
- 计算机一 (C1) 向计算机二 (C2) 发送一个随机字符串 (R)
- C2 散列(比如 SHA256)S 和 R (SR) 的串联
- C2 将 SR 的哈希值连同一些指令发送给 C1
- C1 将接收到的 SR 哈希与它自己的 SR 哈希进行比较,如果匹配则执行指令
- 洗涤、漂洗、重复使用不同的 R 值
现在,我想知道的是,如果有人截获了一大堆 R 值和一大堆 SR 哈希,他们是否可以将其用作“婴儿床”来计算 S 是什么,从而允许他们伪造说明?
我已经意识到这里存在 MITM 攻击的可能性(攻击者拦截响应、更改指令并转发它)。
老实说,我不知道我在这里处理的是什么,我只有一点关于加密的历史知识,但其中包括使用婴儿床来破解它们。我不是理论家,所以您可以明确告诉我有关特定强哈希的任何内容都会很棒。
也欢迎使用其他身份验证方案,假设现有共享密钥字符串的约束,如本例所示。仅使用 S 作为 AES 的密钥会更好吗?如果我这样做了,我还能在加密消息中使用它来防止重放攻击吗?
欢迎任何和所有建议,最后我有点偏离了我的问题,所以请随意偏离你的答案!
【问题讨论】:
-
在有很多更好的方案可用时使用自制的加密方案是疯狂的。将加密留给专家。
-
我和拜伦在一起。只需使用现成的东西并由有线索的人进行测试。 SSL 怎么样?
-
我不明白 jmhobbs 怎么说他将实施自己的计划。这可能纯粹是一个假设性问题。
-
我只是在思考,我不想在计算机科学水平上编写代码。我只是对带有哈希和身份验证的“婴儿床”的概念感到好奇。文章和论文的链接也欢迎:-)
标签: authentication encryption hash