【问题标题】:how the browser's password management works?浏览器的密码管理是如何工作的?
【发布时间】:2012-02-20 09:00:35
【问题描述】:

我很想知道密码管理在浏览器(IE/Chrome)中的工作原理。

例如:我登录到我的 gmail 帐户。现在我在同一个浏览器中打开一个新选项卡并输入相同的 url(gmail url)然后它不会询问用户名和密码。意味着它从会话或cookies或其他地方读取用户名和密码。

我们如何使用 c# 程序读取这些数据(用户名和密码)?

提前致谢。 乌芒

【问题讨论】:

  • 确实如此 - 当您登录时,服务器会保存您的身份验证信息。这可能是 cookie、会话,甚至是 url 或其他任何地方 - 取决于服务器。您应该添加更多详细信息,以便我们为您提供帮助
  • 我已经给出了完整的场景。我想获取存储在浏览器会话/cookie 中或存储此信息的任何位置的用户名和密码。

标签: c# internet-explorer google-chrome web


【解决方案1】:

数据存储在浏览器的内部数据库中。作为一项安全功能,您无法使用 .NET 技术轻松读取此数据。否则,恶意软件将大有可为!

编辑:似乎最近的 IE 版本将数据存储在注册表中,并使用经常未设置的帐户密码加密: http://www.howtogeek.com/68231/how-secure-are-your-saved-internet-explorer-passwords/

【讨论】:

  • 这是误导,他不是在询问保存密码功能
  • 数据可能根本不在浏览器中 - 当身份验证保存到会话中时。说数据存储在浏览器内部数据库中是不正确的。再一次,您的链接指向保存密码功能 - 他没有问这个:)
  • 是的,我不是在询问保存密码功能。我的问题完全不同。但我相信这可以使用 c# 程序来完成。
  • 对不起,重读帖子我明白你在说什么。我相信您可以从 .NET 重用 IE 的 cookie,而不是 Firefox 或 Opera cookie。我会挖掘一些信息,一分钟。
  • 对不起,你cannot persist a session from IE to your C# app。阅读该线程的其余部分,那里似乎有很多与您的应用程序相关的信息。祝你好运。
【解决方案2】:

密码

最简单和最古老的实体身份验证方法是密码,即索赔人拥有的密码。当用户需要访问系统以使用系统资源(登录)时使用密码。每个用户都有一个公开的用户标识和一个私有的密码。我们可以将这种身份验证方案分为两组:固定密码和一次性密码。

固定密码

在这个组里,密码是固定的;每次使用相同的密码 使用权。这种方法会受到多种攻击。

o 窃听。

Eve 可以在 Alice 输入密码时看到她。作为一种安全措施,大多数系统不会显示用户键入的字符。窃听可以采取更复杂的形式。 Eve 可以监听线路然后截取消息,从而捕获密码供她自己使用。

o 窃取密码。

第二种类型的攻击发生在 Eve 试图物理窃取 Alice 的密码时。如果 Alice 不写下 密码;相反,她只是把它记在心里。因此,密码应该非常简单,否则与 Alice 熟悉的东西相关,这会使密码容易受到其他类型的攻击。

o 访问文件。

Eve 可以侵入系统并访问 密码被存储。 Eve 可以读取文件并找到 Alice 的密码,甚至 更改。为了防止这种类型的攻击,可以对文件进行读/写保护。但是,大多数系统都需要这种类型的文件才能被公众读取。

o 猜测。

Eve 可以登录系统并尝试通过尝试猜测 Alice 的密码 不同的字符组合。如果允许用户选择短密码(几个字符),则密码特别容易受到攻击。如果爱丽丝选择了一些没有想象力的东西,例如她的生日、她孩子的名字或她最喜欢的演员的名字,它也很容易受到攻击。为防止猜测,建议使用较长的随机密码,这不是很明显。但是,使用这种随机密码也可能会产生问题; Alice 可能会将密码存储在某个地方,以免忘记它。这使得密码容易被窃取。

更安全的方法是将密码的哈希值存储在密码文件中(而不是明文密码)。任何用户都可以读取文件的内容,但是,由于散列函数是单向函数,几乎不可能猜出密码的值。即使 Eve 拥有密码文件,哈希函数也会阻止 Eve 访问系统。但是,也有可能发生另一种类型的攻击,称为字典攻击。在这次攻击中,夏娃有兴趣找到一个通行证—— 字,无论用户 ID 是什么。例如,如果密码是 6 位,Eve 可以创建一个 6 位数字的列表(000000 到 999999),然后对每个数字应用哈希函数;结果是一百万个哈希的列表。然后,她可以获取密码文件并搜索第二列条目以找到匹配项。这可以在 Eve 的私人计算机上进行编程和离线运行。找到匹配项后,Eve 可以上网并使用 访问系统的密码。我们将在第三种方法中看到如何使这种攻击更加困难。

另一种方法称为加盐密码。创建密码字符串时,将一个随机字符串(称为盐)连接到密码。然后对加盐密码进行哈希处理。然后将 rD、salt 和哈希存储在文件中。现在,当用户请求访问时,系统会提取盐,将其与接收到的密码连接,对结果进行哈希处理,并将其与存储在文件中的哈希值进行比较。如果有匹配,访问 被授予,否则被拒绝。加盐使字典攻击更加困难。如果原始密码是 6 位,salt 是 4 位,那么散列是对 10 位值进行的。这意味着 Eve 现在需要创建一个包含 1000 万个项目的列表,并为每个项目创建一个哈希。哈希列表有 1000 万个条目,比较需要更长的时间。如果盐是一个非常长的随机数,则盐腌非常有效。 UNIX 操作系统使用这种方法的一种变体。

在另一种方法中,结合了两种识别技术。这种身份验证的一个很好的例子是使用带有 PIN(个人识别码)的 ATM 卡。该卡属于“拥有的东西”类别,而 PIN 属于“已知的东西”类别。 PIN实际上是增强卡安全性的密码。如果卡被盗,除非知道 PIN,否则无法使用。但是,PIN 传统上非常短,因此所有者很容易记住。这使得它容易受到猜测类型的攻击。

来源:Behrouz A.Forouzan 的数据通信和网络

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 2015-06-28
    • 2012-04-10
    • 2012-05-19
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    相关资源
    最近更新 更多