网络浏览器是否提供识别安装唯一实例的方法?

时间:2019-05-11 14:30:26

标签: google-chrome firefox browser uuid

我正在尝试解决有关如何将用户登录密码存储在Web浏览器中的经典方法。默认情况下,任何可以访问浏览器开发人员控制台的人都可以通过查看input元素的HTML内容或使用javascript获取密码字段中的内容。

因此,如果有人误输入您的登录密码,他/她可以在任何浏览器上使用该密码从服务器访问您的数据。

为解决此问题,我正在研究一种尝试登录服务器的方法,该方法将从客户端的唯一ID生成唯一对ID,并让客户端将服务器生成的ID存储为仅此客户端的用户登录密码,这样,如果尝试使用服务器生成的ID尝试从另一个浏览器登录,则服务器将在允许访问之前将关联的浏览器ID与访问的唯一ID进行比较。

因此,服务器生成的登录名只能在生成ID的客户端上有效,真实密码永远不会存储在客户端上,而只能用于首次尝试在没有有效服务器ID的客户端上登录。用户将有机会使所有服务器生成的通行证无效。

要执行此操作,我需要浏览器提供一个唯一的令牌,以便如果在不到1秒的时间间隔内将10个实例的浏览器安装在计算机上,则这些浏览器的ID将永远不会相同

我的问题是,可以从浏览器获取这样的唯一ID吗?任何有关如何做到这一点的建议也将受到赞赏。

1 个答案:

答案 0 :(得分:1)

通常,您无法以描述的方式唯一标识浏览器安装。这部分是为了保护用户的隐私,使其免受网络跟踪。

您的最终目标(防止攻击者在发现用户密码时进行身份验证)可以用a one-time-password system, like TOTP.

来满足

在这样的系统中,当为一次性密码设置一个帐户时,用户和服务共享一个秘密。稍后,当用户登录时,系统会提示他们输入一次性密码,该密码是使用与客户端隔离的理想软件生成的,最好是在另一台设备上。例如,用户可能会在智能手机上使用Google Authenticator应用来生成他们在桌面浏览器中输入的代码。

即使攻击者使用密钥记录器捕获了用户的常规密码,他们也无法进行身份验证,因为他们无法访问计算一次性密码所必需的共享机密。

Universal 2nd Factor身份验证是另一种基于一些并行概念来阻止按键记录程序的方法。 (也就是说,它也使用一次性代码,该代码是使用秘密生成的,该秘密被安全地存储而不是暴露给客户端。)