为什么不对网络服务器 TLS 和 SAML 签名使用相同的证书?

信息安全 tls 证书 山姆
2021-09-03 20:00:04

我已经阅读了一些关于配置 shibboleth 的内容,以及在 internet2 上对 SAML 的建议

我明白了证书在用于 SAML 时不必签名,因为实际上只需要密钥。但是,我不断看到有人建议不要使用您的 Web 服务器 TLS 证书来签署您的 SAML 请求。

我知道它可能会导致某些类型的设置出现配置问题,其中客户端不希望检查整个证书链。但是我目前正在使用我们的 TLS 证书作为我们的 SAML 证书,并且没有遇到任何问题,所以它似乎适用于我们的案例。

我们的证书即将到期,所以我开始推出新证书,其中包括将新的公钥发送到 idp。现在我们的 idp 响应:

我更喜欢使用自签名证书进行 SAML 签名和加密。我认为没有理由为此目的使用网络服务器的证书。

并建议我创建一个自签名证书并重试。

但是,我团队中的其他人看不到不使用此证书的理由,我自己也无法立即找到。有什么好的理由反对这两种方法中的任何一种吗?

再次创建自签名证书并使用该证书的一个原因是,我们需要再次检查该证书何时即将到期,并且不能忘记进行翻转,而现在我们可以检查网络服务器 TLS 证书和检查此 SAML 证书的检查可能很难设置。如果我们当前的设置有效,我们为什么还要费心去做呢?

谁能给我一些提示,说明为什么这两种方法中的任何一种都是一个坏主意?

1个回答

有几个不同的原因。没有任何一个单一的答案,但它们都可以组合在一起:因为你不应该对多件事使用相同的密钥。

在这种情况下,它更像是一个实际问题。

  • 您必须花时间用 SAML 证书重新加密 TLS 证书,这可能会很痛苦。
  • 撤销一个密钥意味着撤销另一个。
  • 如果有人窃取了密钥,他们就可以同时冒充 TLS 和 SAML。
  • 如果有人错误地配置了 SP 来验证链而不是证书,那么任何拥有由该机构签署的有效证书的人都可以冒充。
  • 等等。