对加密不太了解...

假设我正在准备一个 SAML 请求以提交给身份提供商。为什么我需要为此请求应用 x.509 证书?仅通过 SSL 传输还不够安全吗?

有帮助吗?

解决方案

是 - SSL是不够的 - 但SSL只点至点。使用SSL如果有一些中介机构在源和目标计算机之间的方式不能保证您的连接。

在这种情况下,例如传递在互联网上的时候,你必须保证实际的消息,而不是传输级。这就是为什么你需要加密的XML(或在它至少部分)。

马克

其他提示

对于 SAML,消息级安全性(即XML 本身已签名,有时甚至已加密),因为通信涉及不直接通信的各方。SSL/TLS 用于传输级安全,仅在直接通信的两方之间以及仅在该通信期间使用。

根据您使用的 SAML 绑定,该对话框可能如下所示(例如沿着 希博莱斯):

  • 用户的浏览器连接到服务提供商(SP)
  • SP 向用户提供 SAML 请求,该请求不一定可见,但隐藏在表单或等效内容中。
  • 用户的浏览器(直接连接到 IdP)将 SAML 请求发送到 IdP。
  • 用户使用它进行身份验证并获取 SAML 响应。
  • 用户的浏览器将该 SAML 响应发送到 SP。

在这种情况下,尽管涉及所有 3 方,但 SP 和 IdP 之间没有直接的 SSL/TLS 连接。(这种情况的某些变体涉及 SP 和 IdP 之间的属性后端通信,但这是一个不同的问题。)

  • SSL/TLS 连接不足以让 IdP 知道 SAML 请求来自允许对其进行身份验证和释放属性的 SP,因为与 IdP 的连接来自用户的浏览器,而不是 SP 本身。因此,SP 必须签署 SAML 请求 信息 在将其交给用户的浏览器之前。
  • SSL/TLS 连接不足以让 SP 知道 SAML 响应来自它信任的 IdP。同样,这就是 SAML 响应本身也被签名的原因。

适用于签名的内容也适用于加密,如果中间方(即)用户无意查看 SAML 消息中的内容和/或用户与 SP 或 IdP 之间的连接是否不是通过 SSL/TLS(通常应该通过 HTTPS)。

所有这一切HTTPS会做的是加密两点之间的通信,防止窃听者 - 它不会确认这是发送消息。亦不会保证安全的通信,如果您的消息然后被转发。

如果您是与您可以放心的解密已经包含在证书中的共享密钥的X.509证书请求。换句话说,你可以放心的消息只能由你希望它被解密的组织进行解密。

在你的情况下,X.509加密要求意味着你应该放心,身份提供商将收到您的申请的唯一组织。

一个有用维基引物是这里

最有可能的,因为他们希望你(客户端)进行身份验证。 HTTPS 可用于客户端认证,但它很少是在实践中。

在实践中,你可以使用HTTPS(SSL / TLS),以保护您的SAML消息。但是,你可能需要使用双向SSL证书验证/认证,这意味着你的客户端将需要验证服务器的X.509证书和服务器将需要配置为执行客户机认证,这就需要它来检查X. 509证书客户端呈现。因此,客户需要自己的证书呢。

SSL / TLS是不是真的为此设计的...这是/是为了保护网络流量,从被视为而在运输和客户端能够告诉他们在说些什么服务器和发送敏感信息(这是真正专为电子商务在客户机(用户买东西)知道他们是谁送他们的信用卡信息)。在SAML的情况下,整点是为当事人知道他们正在交换的信息尚未在交通改变,并且每个在谈论他们认为他们是谁。使用证书签名/加密消息本身完成该操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top