Shibboleth 用户属性加密

信息安全 加密 联邦 山姆
2021-09-10 03:40:59

Shibboleth 如何保证第 3 方无法访问 IdP 和 SP 之间交换的 SAML 2.0 断言中包含的用户属性?

从 IdP 传输到 SP 时,所有用户属性都被加密是否正确?用户属性是否使用对称密钥加密,该对称密钥也包含在断言中,但使用 SP 的公钥加密?

2个回答

我能挖到的最好的东西在这里:

https://wiki.shibboleth.net/confluence/display/SHIB2/FlowsAndConfig#FlowsAndConfig-4IdPIssuesResponsetoSP

看起来安全性由以下方式提供:

  • IdP 根据传输方式限制它提供给 SP 的内容

  • 是的,对于 SAML 2.0 断言,IdP 加密它对 SP 的响应

以这种方式编写,听起来加密是专门针对 SAML 2.0 断言提供的,而不是针对所有内容。我专门阅读了 Shibboleth 2.0 文档,因为它似乎支持 SAML 2.0。

我有一段时间没有使用 Shibboleth,所以我不确定以下是否总是如此,但这是我过去使用 Shibboleth 的方式。

SP 向 IdP 发出(签名的)SAML 请求,该请求由用户的浏览器在两者之​​间传播。IdP 给出一个签名的 SAML 响应,不一定是加密的,带有一个标识符。收到后,SP 直接向 IdP 发出属性请求。

此后端连接通常通过 HTTPS 完成,因此连接是加密的。它根本不通过用户的浏览器,但 SP 成为 IdP 的直接客户端。在 SSL/TLS 之上使用消息级加密不会增加太多,当然,如果 SP 得到正确身份验证,这可以使用客户端证书身份验证(在 SP 中使用CredentialResolverIIRC 配置)来完成。

这在此图中的步骤 6 和 7 中表示(英国联邦)。

Shibboleth 1.x 和 Shibboleth 2.x之间的 Attribute Service 配置(通常在 IdP 上运行并由 SP 查询)可能存在细微差异这些属性服务与其他 IdP 设置一起配置,作为提供给 SP 的联合元数据的一部分。

据我所知,与其他基于 SAML 的系统相比,这种机制是 Shibboleth 的特点之一。