是否建议签署和加密 SAML 并使用 SSL?

Posted

技术标签:

【中文标题】是否建议签署和加密 SAML 并使用 SSL?【英文标题】:Is it recommended to Sign and Encrypt SAML AND use SSL? 【发布时间】:2012-01-06 18:06:36 【问题描述】:

如果我使用我的私钥对 SAML 请求进行签名并通过 SSL 发送,是否需要加密它?或者使用我的私钥对其进行签名、使用身份提供者公钥对其进行加密并通过 SSL 传输会更好吗?

【问题讨论】:

【参考方案1】:

SAML 断言查询/请求通常不包含太多私有数据,而且请求本身通常不会持久化以供以后使用,因此几乎不需要对 SAML 请求本身进行加密。签署它将允许接收者验证内容在传输过程中没有被更改,并且通过 SSL 传输将在传输过程中提供隐私。在这种情况下加密请求可能是多余的。

然而,SAML 断言响应是完全不同的动物。包含声明或断言的 SAML 响应可能包含私有数据。根据这些断言在您的系统中的使用方式,断言可能会在不同方之间传递,其中一些具有解密内容所需的密钥(因为它们与 SAML 提供者具有信任关系),而另一些则没有. SAML 断言可以存储在缓存中或数据库中,因此您真的不知道将来谁会通过它们。

如果 SAML 响应包含包含私有数据的声明和断言,并且响应的接收者将无限期持有 SAML 断言或通过您不信任的中间方传递 SAML 断言,那么是的,无论是否通过 SSL 传输,都应加密 SAML 断言并对响应进行签名。加密是为了在数据到达 SSL 管道的另一端后保护数据的隐私。

【讨论】:

"加密是为了在数据到达 SSL 管道的另一端后保护数据的隐私。"这让我很清楚。谢谢!【参考方案2】:

而且,SSL 管道的另一端是浏览器。从 IdP 到浏览器有一个管道,从浏览器到服务提供者有另一个管道。如果断言未加密,则任何人都可以在浏览器上使用断言。攻击者可以在对未来 SAML 文档和交互的某种攻击中使用未加密的名称标识符。

【讨论】:

以上是关于是否建议签署和加密 SAML 并使用 SSL?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SAML 2.0 的自签名证书

我是不是应该要求 IdP 签署 SAML2 SSO 响应?

自己生成的ssl证书与购买的ssl证书区别在哪里?

网站建设时,如何提高网站安全

如何给网站免费添加Https加密

是不是很好/建议绕过ssl证书从Android app.if证书每年更改生产