【问题标题】:Rational behind SAML2 destination validation on signed messages对签名消息进行 SAML2 目标验证背后的 Rational
【发布时间】:2014-07-23 02:49:20
【问题描述】:

SAML 绑定规范包含以下针对重定向和 POST 绑定的安全注意事项:

如果消息已签名,根中的目标 XML 属性 协议消息的 SAML 元素必须包含 URL 发件人已指示用户代理传递消息。这 然后收件人必须验证该值是否与 收到了哪个消息。

我试图了解为什么在签名消息时需要目的地。

SAML 核心说:

这有助于防止恶意将请求转发到 非预期接收者,某些协议要求的保护 绑定。

我完全明白了,但是当消息被签名时,让它成为必须的理由是什么?

提前致谢。

【问题讨论】:

    标签: saml-2.0


    【解决方案1】:

    原因是确保没有人(攻击者)可以获取有效的 SAML 消息并将其发送到该消息原本不打算发送给的另一个系统。 SAML 包含多项检查以防止这些类型的攻击(Audience 元素是其中之一),Destination 的强制检查是另一个。

    签名本身不提供这种保护,签名仅保证消息是由某人创建的,并且自创建以来没有更改,但它们不包含有关消息实际用于哪个端点的任何信息- 这就是 Destination 出现的地方。

    目标检查是“必须”的,因为 SAML 的作者认为类似的攻击足够危险,需要将抢先保护作为协议的一部分。

    【讨论】:

      【解决方案2】:

      如果消息没有签名,任何人都可以在不被注意的情况下修改响应。因此,将其设为必须是没有意义的。然而,当消息被签名时,Destination 属性无法更改,因此变得有价值,因此,将其设为 MUST 要求是有意义的。

      【讨论】:

      • 感谢您的意见。但是,我仍然不明白为什么请求发送者必须在消息中放入目的地。
      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多