【问题标题】:Decryption of encrypted ViewState加密 ViewState 的解密
【发布时间】:2011-12-21 16:06:43
【问题描述】:

背景简介:我有两步登录页面,在第一步之后将一次性代码发送到用户的电子邮件。除了第 2 步之外,我在任何地方都不需要此代码。我四处搜索并决定将原始代码存储到 Encrypted ViewState 中。所以问题是:安全吗?是否可以在客户端解密加密的视图状态并从那里获取代码? (当然,我的意思是真正加密的视图状态,而不仅仅是 base64ed)。

【问题讨论】:

    标签: asp.net .net viewstate


    【解决方案1】:

    据我了解,ViewState 使用 machine.config 中的 MachineKey 序列化为 base-64 编码字符串。为了让客户端(我猜是javascript)对其进行解码,您不必公开MachineKey吗?这一点都不好。

    【讨论】:

      【解决方案2】:

      ViewState 可以解码:

      工具 1:View State decoder
      工具 2:Http Fox
      工具3:Fiddler

      【讨论】:

      • 这些甚至可以解密加密的视图状态还是只能解密 base64ed?
      【解决方案3】:

      只要有足够的时间和足够的样本集,就可以解密任何东西。 ViewState 也不完全安全。如果您有不想落入潜在攻击者手中的信息,则绝对应该将其排除在 ViewState 之外。

      【讨论】:

        【解决方案4】:

        个人不推荐。 如果您的用户在您通过电子邮件发送一次性代码之后但在他们开始使用它之前失去了互联网连接,您将如何应对?

        【讨论】:

        • 他们将简单地重新登录并获得另一个代码。我在这里看不到问题。我害怕有人会绕过电子邮件验证。
        【解决方案5】:

        加密和解码是两个不同的东西。 Base64 解码 Base64 编码的字符串不是出于安全目的。 解密加密字符串需要密钥。

        您首先编码,然后加密。

        【讨论】:

        • 你能扩展一下吗?
        猜你喜欢
        • 1970-01-01
        • 2010-09-25
        • 2011-04-01
        • 1970-01-01
        • 2011-09-14
        • 2020-11-10
        • 2021-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多