部分输入的密码是否存在潜在的安全风险?

信息安全 密码 密码破解
2021-08-22 16:35:37

我刚坐在我的工作电脑前,开始通过输入密码来解锁它,我输入了 8 个字符中的 6 个,并决定我想要咖啡,然后走开去拿它。我回来了,意识到我留下了大部分密码,输入了剩下的两个字符并登录。出于纯粹的好奇,这是否存在安全风险?

我的想法是在大多数情况下它不会有问题,因为它在重置之前给了攻击者一次尝试,并且他们必须从头开始。但是,我想至少它可以让攻击者知道您的密码至少有那么长的字符数(假设您输入正确),从而为他们未来的攻击提供了优势。有没有办法获取输入到登录框中的文本,或者保存状态,以便您可以从部分完成的点继续重试?如果这是一个网页登录而不是桌面应用程序怎么办?

4个回答

企业间谍活动是一回事。

如果有人看到您输入密码或猜到最后两个字符,则可能存在安全风险。注意到人们的击键并下意识地记住它们并不难,尤其是最后几个键。

在企业间谍活动的情况下,有人可能想看你输入密码,他们可能会记住它。

或者也许保存状态,以便您可以从部分完成的点继续重试?

您必须承认,鉴于这种情况,这似乎是下一级的锡箔帽。我可以想象一个穿着灰色西装的人走到您的桌面,在几分钟内寻找您的 20+ GB 虚拟机磁盘以及随附的配置数据,然后将其带到办公室角落的破旧隔间,然后一边狂笑一边疯狂地暴力破解:

邪恶博士在暴力破解 OP 时大笑

让我们取下箔片。如果您正在运行虚拟机,则很有可能。您可以在那时保存虚拟机的状态,然后继续尝试。在茶歇期间发生这种情况的可能性几乎为零。与应用程序状态相同,只是不像虚拟机那样不可能。

使用虚拟机,同事必须复制您的虚拟硬盘驱动器的内容以及随附的设置,然后安装它。这很可能会超过 20 GB。在其他人在场的情况下在如此短的时间内复制此虚拟驱动器似乎不太可能。

有人会注意到一些东西。


如果这是一个网页登录而不是桌面应用程序怎么办?

让我们戴上锡纸帽子,看看我们可以做些什么来仅使用现成的工具来检索部分键入的密码。设身处地为攻击者着想:如何在茶歇结束前快速获取密码?

  1. 使用开发者控制台,你可以修改网页来改变它:

    <input type="password" name="pass" id="password"/>
    

    对此:

    <input type="text" name="pass" id="password"/>
    

    (按照Doyle Lewis的建议删除了 jQuery )

  2. 我们还可以通过控制台输入获取值:您可以使用这些的变体(F12 > Console > Enter input):

    • console.log($("#password").val()); (jQuery)
    • console.log(this.pass.val);
    • console.log(document.getElementById("password").value); (dom)
  3. 显然,Windows 8 和 Windows 10企业版有一个“眼睛”图标,可让您在按住眼睛按钮时显示纯文本密码当其他人只需单击一个按钮即可绕过上述示例中使用的所有工作,这将成为更大的威胁。


但是为什么这会是一个潜在的安全风险呢?

重新装备我们的[Tinfoil Hat (Mythic Warforged)],让我们假设一个最坏的情况:

使用您的用户名和密码,在不难找到您的用户名(通常是您的徽章 ID 或电子邮件用户名)的企业环境中,恶意同事可能会尝试在网络上冒充您。例如:

  1. 您的公司有 WiFi 接入,需要您的员工证号和密码才能登录。
  2. 恶意同事使用您的凭据在未经授权的设备上登录公司网络,然后肆虐/窃取东西,而不会导致他们返回。大多数安全策略应该首先要求设备注册,但不幸的是,有一些方法可以解决这个问题。
  3. 你会受到指责。看起来你做到了。谁搞砸的事情了间谍可能逃脱斯科特免费

我该如何防范呢?

这种不太可能但可能的攻击,以及许多其他需要物理访问您的机器的攻击(不包括基于硬件的感染),都可以通过在起床前锁定您的工作站并且不输入部分密码来完全缓解。养成这样的习惯,你就不必担心有人会做这样的事情。

不过,不要自满。

除了其他答案之外,当您不在时,我在您的键盘上安装了一个键盘记录器。

在短期内,我有你密码的最后 2 个字符。我可以用它来大大减少暴力攻击的搜索空间。

但我很懒惰,是一个长远的思考者。我只是等到你再次登录,我会得到你的完整密码。

如评论中所述,某些版本的 Windows 有一个“眼睛”符号,可以单击该符号以显示您在密码框中输入的内容。

如果您在锁屏密码框中留下六个字符,只需单击眼睛即可暴露明文。这并不意味着攻击者会知道您的密码有多长,但确实意味着它会削弱您密码的安全性,因为前六个字符已暴露。

我可以确认,Windows 10 Enterprise 确实有这只眼睛。

应用程序将在内部存储您已经输入的密码位。其中一些可能会以允许攻击者检索它们的方式这样做。例如,我们在上一个问题中讨论了用户如何将输入到 Internet Explorer 中的密码打印到 IE 控制台中。

除此之外,还有让人猜到丢失字符的风险(正如@MarkBuffalo 指出的那样),因为许多密码往往以特殊符号或数字结尾(特别是,许多密码以“1”结尾)。如果您之前被观察过,或者攻击者事先知道您的密码,他们可能会成功完成您输入的部分密码。