【问题标题】:Is encrypting session id (or other authenticate value) in cookie useful at all?在 cookie 中加密会话 ID(或其他身份验证值)是否有用?
【发布时间】:2010-05-15 15:02:24
【问题描述】:

在 web 开发中,当启用会话状态时,会话 id 会存储在 cookie 中(在 cookieless 模式下,将使用查询字符串代替)。在 asp.net 中,会话 ID 是自动加密的。互联网上有很多关于如何加密 cookie 的主题,包括会话 ID。我可以理解您为什么要加密诸如 DOB 之类的私人信息,但任何私人信息都不应首先存储在 cookie 中。那么对于其他cookie值比如session id,加密的目的是什么?它是否增加了安全性?无论您如何保护它,它都会被发送回服务器进行解密。

再具体一点,

出于验证目的,

  1. 关闭会话,我不想再处理会话超时了
  2. 在 cookie 中存储某种 id 值,
  3. 在服务器端,检查id值是否存在并匹配,如果存在,验证用户。
  4. 让cookie值在浏览器会话结束时过期,这样。

Asp.net 表单身份验证机制(我认为它依赖于会话或会话 ID)

后一种是否提供更好的安全性?

【问题讨论】:

  • 加密是什么意思?
  • 我的意思是某种 symMetric 方法,例如 AES 或 TDES

标签: asp.net security authentication session cookies


【解决方案1】:

会话劫持等会话攻击旨在获取有效的会话 ID。如果您现在要加密会话 ID,攻击者只会瞄准加密的会话 ID,而您将没有任何优势。所以加密会话 ID 是没有用的。请记住,会话 ID 只是用于标识会话的随机值。攻击者不需要知道该随机值是否具有特定含义;他们只需要知道那个随机值。

如果您想保护您的会话,请使用 HTTPS 通过 SSL 加密整个 HTTP 通信,并仅使用标志设置 cookie

  • 安全 只允许通过 HTTPS 发送 cookie 和
  • HttpOnly 禁止通过 JavaScript 进行本地访问。

【讨论】:

  • +1 该死的秋葵!我要说的是 https 和 HttpOnly cookie。
  • 谢谢。 https 使通信安全,我知道。不过httponly cookie很有意思,会调查的。
  • 实际上,这取决于。如果随机数在密码学上不安全,则使用服务器端密钥对其进行加密将产生更好的安全性。如果我使用连续会话编号,猜测有效会话是微不足道的。如果我对其进行加密以使其成为密码安全,您可能知道 2 是下一个会话编号,但您不知道需要提供什么值才能获得会话 2。如果随机数一开始就具有密码安全性,那么它不过没关系。
【解决方案2】:

我认为“您应该始终加密您的数据”指的是使用正确签名的证书在您的连接中使用SSL。这将加密客户端和服务器之间的整个通信。

在另外加密会话 ID(这已经是一个非常随机生成的 ID)方面,我看不到任何其他用途。

【讨论】:

    【解决方案3】:

    这在 OWASP site中有记录

    通过system.web/httpCookies 元素中的web.config

    <httpCookies httpOnlyCookies="true" …> 
    

    或以编程方式

    C# Code:
    HttpCookie myCookie = new HttpCookie("myCookie");
    myCookie.HttpOnly = true;
    Response.AppendCookie(myCookie);
    

    【讨论】:

      【解决方案4】:

      通过 SSL (HTTPS) 发送的数据是完全加密的,包括标头(因此是 cookie),只有您发送请求的主机未加密。这也意味着 GET 请求是加密的(URL 的其余部分)。虽然攻击者可以强制客户端通过 HTTP 响应,但强烈建议在 cookie 中使用“Secure”标志,强制使用 HTTPS 发送 cookie。

      Secure 属性没有关联的值。相反,属性名称的存在表示指定了安全行为。 Secure 属性旨在将 cookie 通信限制为加密传输,指导浏览器仅通过安全/加密连接使用 cookie。当然,网络服务器应该通过安全/加密连接设置安全 cookie,以免 cookie 信息在首次发送到网络浏览器时以允许窃听的方式传输。

      【讨论】:

        【解决方案5】:

        加密随机的东西会让你一事无成...

        【讨论】:

        • 这是什么样的答案?太可怕了!
        猜你喜欢
        • 1970-01-01
        • 2016-11-22
        • 2017-11-25
        • 2019-10-28
        • 1970-01-01
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        • 2012-03-26
        相关资源
        最近更新 更多