1

我们有 2 个 Web 应用程序,均使用 HTTPS(仅限服务器端证书)和单点登录身份验证系统进行保护。在 App1 中,用户将单击一个链接,然后需要“向下钻取”到 App2 中的页面。它们共享相同的域和 SSL 证书,但在物理上不是同一个应用程序。当 App1 将请求转发或重定向到 App2 时,它会在请求中包含一个身份验证令牌,以便 App2 可以验证用户的身份。

App1知道用户有权查看哪些信息,称之为账户列表;App2 无权访问此信息(至少目前没有)。已经建议 App1 也可以在请求中将授权帐户列表传递给 App2。

我的问题是 HTTPS 是否保护有效负载并保证它仅由 App1/App2 服务器生成?更具体地说,我担心的是具有有效身份验证令牌的有效用户是否能够使用其他帐户构建自己的表单并将其作为有效的 HTTPS POST 请求提交给 App2 服务器,从而访问未经授权的帐户?

4

2 回答 2

4

不,仅 HTTPS 并不能为您提供所需的安全性。有关其他人如何解决您面临的问题的指示,请查看此链接:

使用 SAML 的 SSO

它是关于使用 SAML 协议完成 SSO。一般来说,如果安全是您的一个严重问题,您将希望使用经过同行评审的解决方案(如 SAML)而不是 DIY 方法来进行单点登录。您不需要使用 SAML,但您应该尝试使用适用于您的环境的现有 SSO 解决方案。

为了“保证它是由 App1/App2 服务器生成的”——您可以对有效负载进行数字签名。这将防止篡改,但可能无法防止重放攻击——SSL 会对此有所帮助,因为传输将被加密,但重放攻击仍然可能(通过中间人攻击

于 2013-03-13T00:45:09.417 回答
0

HTTPS 提供了一个安全的通信通道。但是您可以与魔鬼本人进行安全通信:-)

于 2013-03-18T12:40:47.227 回答