这些年来我遇到这种情况不止一次。你有一堆要送从一个应用程序到另一个用户相关的数据。第二个应用程序,预计“信任”这个“令牌”,并在其内部使用的数据。时间戳包含在令牌,以防止盗窃/再利用攻击。无论出于何种原因(让我们不用担心在这里)的定制解决方案已被选中,而不是像SAML的行业标准。

对我来说,似乎像数据进行数字签名是你想要的这里。如果数据需要保密,那么你也可以对它进行加密。

但我看到很多是开发人员将使用对称加密,例如AES。它们被假定除了使数据“秘密”,加密还提供了1)消息的完整性和2)的信任源的(验证)。

我说得对怀疑这里有个固有的弱点?是在票面价值,它确实工作,如果对称密钥管理得当。缺乏那把钥匙,我当然不知道如何修改加密令牌,或截取几个令牌后推出某种密码攻击。但会更复杂的攻击者可以在这里利用的东西吗?

有帮助吗?

解决方案

它的一部分依赖于加密模式。如果你使用ECB(你的的耻辱!的),我可以左右交换块,改变的消息。 得到了#1通过这个非常错误命中。

威胁较小 - 没有任何完整性检查,我可以围绕进行中间人攻击和交换各种位数,并且你会接受它,并试图对其进行解密。你会失败,当然,但尝试可能有启示性。有通过侧信道攻击“伯恩斯坦(利用的缓存和微架构特性的组合)和Osvik,Shamir和Tromer(利用高速缓存冲突)依靠基于大量的随机试验获得的统计数据。” 1 的脚注制品是由一个密码破译更大的注意,除了I,和他建议减少攻击面与MAC:

  

如果你能确保攻击者   谁没有到你的MAC访问   键永远不能养活恶输入到   块中的代码,但是,你   大幅降低的机会,他   将能够利用任何错误

其他提示

烨。加密本身并不能提供身份验证。如果你想验证,那么你应该使用一个消息认证码,如HMAC或数字签名(根据您的要求)。

有相当大量的邮件是否只是加密,但未被认证是可能的攻击。这里只是一个很简单的例子。假设消息是使用 CBC 加密。该模式使用一个IV来随机密文,使得两次加密相同的消息不以相同的密文的结果。现在看看解密过程中会发生什么,如果攻击者只是改变了IV但留下的密文的其余部分是。只有经解密的消息的第一个块将改变。此外恰好那些位在该消息中的IV改变而改变。因此,攻击者知道什么时候接收器解密消息会有什么改变。如果第一个块 是例如时间戳的攻击者知道被发送的原始消息时,那么他就可以很容易地修复的时间戳的任何其他时间,只要通过翻转右位。

该消息的其他块也可以被操纵,虽然这是有点麻烦。还要注意,这不只是一个CBC的弱点。像OFB,CFB等模式有similiar弱点。因此,期待的是加密单独提供认证仅仅是一个非常危险的假设

一个对称加密的方法是作为键一样安全。如果这两个系统可以给钥匙,安全地把握关键,这是好的。公钥加密无疑是一个更加天作之合。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top