【问题标题】:How do sites support http (non-SSLed) sessions securely?网站如何安全地支持 http(非 SSL)会话?
【发布时间】:2009-04-09 09:56:03
【问题描述】:

我注意到某些网站(例如 gmail)允许用户通过 https 进行身份验证,然后切换到带有非安全 cookie 的 http 以作为网站的主要用途。

如何才能对会话进行 http 访问,但这仍然是安全的?还是它不安全,因此这就是为什么 gmail 提供了使用 https 保护整个会话的选项?

请举例说明其工作原理并避免会话劫持攻击,同时仍允许通过 http 访问经过身份验证的内容。如果它是安全的,我希望能够实施这样的方案,以避免出于性能原因必须将整个站点设置为 https。

【问题讨论】:

    标签: authentication session cookies https gmail


    【解决方案1】:

    正如蒂洛所说,但我会进一步解释:)

    网络服务器是无状态的!这确实是身份验证案例的问题。您不能只是登录,然后说“从现在开始,此用户已登录” - 您需要某种方式来确定这次请求新站点的用户是谁。

    执行此操作的常用方法是实现会话。如果您在登录时对网络流量进行数据包嗅探,然后浏览网站,您通常会注意到以下内容:

    登录:您将把您的用户名和密码传送到服务器。完全未加密! (SSL/HTTPS 会为你加密这个请求,避免中间人攻击)

    响应:您将收到一个随机生成的包含许多奇怪字符的字符串。这些通常会存储在 cookie 中。

    只有您应该有权访问的某些站点的请求:您将随机生成的字符串传输到服务器。服务器将查找此字符串,并查看它是否与您的会话相关联。这允许服务器识别您的身份,并授予您访问您网站的权限。

    .. 现在,HTTP 本身并不安全。这意味着您的密码和会话cookie(随机生成的字符串)将完全不加密地传输。如果有人可以访问您的流量(通过木马、路由器劫持等),如果您不使用 HTTPS,他将能够在您登录时看到您的用户名/密码。这将授予他访问您网站的权限,直到您更改密码(除非他先更改密码:P)。在其余的请求中,他将能够获取您的会话 cookie,这意味着他可以在该 cookie 生命周期的剩余时间内窃取您的身份(“直到您注销,或者服务器上的会话过期)。

    如果您想感到安全,请使用 HTTPS。但实际上,将键盘记录器社会工程到您的计算机比读取所有流量要容易得多:)

    (或者正如其他人指出的那样,使用跨站点脚本来读取您的会话 cookie)

    【讨论】:

    • > “但实际上,将键盘记录器社会工程到您的计算机中比读取所有流量要容易得多。”好吧,使用无线网络似乎非常可行(想想会议或咖啡馆)。
    • 没错.. 尤其是在公共热点上
    • @Meeh:第四段的更正:SSL 不会散列,它会加密。不同之处主要在于 SSL 容易受到基于解密密钥泄漏的另一组攻击,而哈希只有在发现哈希算法很弱时才可逆。
    • 通过检查客户端的 IP 地址是否可以使会话劫持变得更加困难?当然,如果攻击者位于客户端和服务器之间,那么他可以伪造客户端的 IP,但至少这会让他更难。
    【解决方案2】:

    只有在密码不以明文形式传输的情况下,它才是安全的。在 HTTP 模式下拦截和滥用 GMail 会话 cookie 是可能的(并且已经完成)。

    为避免会话劫持,您需要保持 HTTPS 模式(我认为是 GMail 现在提供的)。

    【讨论】:

    • 嗯,它会减轻某些类型的会话劫持,但它不是灵丹妙药。
    • HTTPS:没有灵丹妙药,但必须迈出第一步?
    【解决方案3】:

    这比纯 HTTP 稍微安全一点——登录名/密码不会以纯文本形式通过网络传输。除此之外,它的工作方式与普通的基于 HTTP cookie 的会话完全一样(因为它就是这样);因此,所有会话劫持问题都适用。

    【讨论】:

      【解决方案4】:

      这是不可能的,也不安全。这就是我们得到“安全cookies”的原因。虽然它可以很好地抵御被动嗅探攻击,因为用户名/密码不会暴露,但会话劫持仍然可能。

      还可以查看此SSL Implementation Security FAQ 论文。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-21
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 2017-04-23
        • 2019-02-13
        • 2010-10-17
        相关资源
        最近更新 更多