【问题标题】:Can cookies be shared between subdomains over SSL on different servers?cookie 可以通过 SSL 在不同服务器上的子域之间共享吗?
【发布时间】:2015-02-04 18:12:30
【问题描述】:

我们正在评估以下单点登录解决方案的可行性。

情景。 网站域名。 https://www.example.com

  • [使用多服务器通配符证书的 SSL]
  • 托管在服务器 1 上。

其他门户。 https://portal.example.com

  • [使用相同证书的SSL(多服务器通配符证书)]
  • 托管在服务器 2 上。

解决方案: 其目的是在 www.example.com 和 portal.example.com 子域之间共享一个 cookie,但是,要使其正常工作,SSL 协议需要满足以下要求:

  • 继续阻止中间人攻击。
  • 服务器 1 和服务器 2 的加密/解密方式相同。这样它们就可以从 cookie 中获取相同的信息。

问题是:在私钥或 SSL 协议本身方面是否有任何限制会使上述解决方案不可行?

谢谢,

【问题讨论】:

    标签: security ssl cookies


    【解决方案1】:

    是的,如果您购买证书的 CA 受到客户端浏览器的信任,您的解决方案将有效并缓解大多数 MITM 攻击。

    如果 cookie 设置为域 example.com,它将在 www.example.comportal.example.com 之间共享。还建议设置 Secure 标志以确保它不能通过普通 HTTP 传输。我假设www.example.comportal.example.com 都具有服务器端机制来验证cookie 值以授权每个请求。

    RFC 6265 状态:

    Domain 属性指定 cookie 将被发送到的主机 发送。例如,如果 Domain 属性的值为 “example.com”,用户代理会将 cookie 包含在 Cookie 中 向 example.com、www.example.comwww.corp.example.com.

    旧的 RFC 2109 指定您需要在域之前使用 .,但是 6265 覆盖了这一点。这意味着如果您想共享 cookie 并使其与非常旧的浏览器兼容,您应该将 cookie 设置为域 .example.com 而不是 example.com。前者不会有任何损失,因为较新的浏览器会简单地忽略该点。

    在您的解决方案中,服务器 1 和服务器 2 都将接收并能够解密 cookie。请注意,两个服务器不需要具有相同的证书 - 它们都将使用其安装的私钥独立解密 SSL 会话(或者更确切地说,使用其安装的私钥传输的共享对称密钥 - 准确地说)。

    但是,为*.example.com 使用通配符证书会更便宜,因为可以在两台服务器上安装相同的证书。

    【讨论】:

    • 如果上述问题中的两台服务器使用不同的 SSL 证书,Web 浏览器是否仍会将请求中的安全 cookie 传递给两台服务器?
    • @MarkRoper:是的,如果浏览器信任这两个证书,cookie 将被发送。请记住,安全标志所做的只是阻止 cookie 通过普通 HTTP 连接发送。如果浏览器可以进行底层 SSL/TLS 连接,并且 cookie 域和路径匹配,则浏览器会将 cookie 与请求一起发送。
    • 这是我的想法,但我们还没有真正设置它,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2017-05-14
    • 2013-08-31
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    相关资源
    最近更新 更多