我是否必须验证 Saml2 InResponseTo?

信息安全 山姆
2021-09-11 13:41:10

我正在实现一个将在面向公众的网站上运行的 SAML2 服务提供程序。登录功能是公开可用的,因此任何人都可以从我的站点获取 AuthnRequest。

当我确实收到来自 Idp 的响应时,我是否必须验证 InResponseTo 字段以确保响应是针对我已发出的 AuthnRequest 还是可以忽略它?

我不明白当我已经在验证响应的签名并通过仅允许每个断言 id 在断言的有效时间内使用一次(由状况)。

2个回答

OASIS 安全断言标记语言 (SAML) V2.0第 6.1.3 节消息插入的安全和隐私注意事项对此进行了说明。

它主要是一种阻止插入到通信中的伪造请求的方法。作为签名和/或 SSL 的补充。它不是解决一个单独的安全问题,而是一种深度防御。

我的解释是检查InResponseTo比验证签名更便宜,并且是一种更快的方法来丢弃无效消息以避免 DOS 攻击。

是的,根据 SAML 规范,这必须经过验证。

我不是 100% 确定原因或这个。但只是大声思考。通过时间和签名的约束,您仍然可以在有效时间内重播消息。