我应该如何安全地存储密码并在 chrome 扩展中使用 http auth

Posted

技术标签:

【中文标题】我应该如何安全地存储密码并在 chrome 扩展中使用 http auth【英文标题】:How should I securely store passwords and use http auth in a chrome extension 【发布时间】:2010-12-29 23:04:41 【问题描述】:

我正在制作一个需要从安全服务器获取 xml 文件的 chrome 扩展。

我目前正在使用 XMLHttpRequest() 来调用服务器

https://username:password@mydomain.com

它返回一个我可以解析和显示的 xml 对象。我希望这个扩展不仅可以用于我的爱好,因此它需要一个选项页面来设置和存储用户名和密码。

我应该如何将用户密码存储在 chrome 中以确保安全? chrome 对每个扩展都有一个 localStorage 全局,允许扩展作者存储数据,但它以纯文本形式存储。它不允许扩展访问“记住我的密码”存储(有充分的理由)。

是否有更安全的方式来进行 http 身份验证?我目前的处理方式需要在每次调用函数时以纯文本形式在 url 中传递用户名/密码,即使身份验证会话尚未过期。

【问题讨论】:

【参考方案1】:

请求密钥的问题在于,它意味着您每次启动时都必须提示(如果您存储密钥,您会遇到同样的问题)。如果您要保护的内容特别敏感,这可能是一个不错的折衷方案。

一般来说,Chrome 采用信任操作系统来保护存储这些数据的用户个人资料的理念,因此,如果您使用本地存储来存储密码,这与 Chrome 目前所做的密码自动填充、浏览器历史记录没有什么不同等。

【讨论】:

第二个声明的来源?【参考方案2】:

一个想法:向用户索要一个密钥,您可以使用该密钥在将值放入 localStorage 之前对它们进行对称加密。您还可以根据他的机器/浏览器/等的某些独特方面为每个客户生成一个唯一的密钥。

【讨论】:

这个主意不错,有什么推荐的javascript加密库吗?

以上是关于我应该如何安全地存储密码并在 chrome 扩展中使用 http auth的主要内容,如果未能解决你的问题,请参考以下文章

安全地存储密码,但确定相同的密码

如何在移动设备上安全地存储数据?

如何在 Android 应用程序中安全地存储凭据(密码)?

如何安全地存储 .pfx 密码以在 MSBuild 中使用?

如何在移动应用程序中安全地存储密码

将 1 个密码安全地存储在数据库中