密码未在命令行上显示的概念是什么

密码未在命令行上显示的概念是什么

我很好奇为什么当我们通过终端登录系统时密码字符(特殊字符)不会被回显。

但是当我们通过 GUI 登录系统时,我们可以看到密码字符(特殊字符)。

我能想到的唯一原因是,我的密码的总字符数不会被透露给那些监视我的系统/密码的人。

有什么建议/想法吗?

答案1

一种可能的解释是,命令行登录比 GUI 存在的时间要长得多。我认为用点代替字符是一个相对较新的想法,已在 GUI 中实现。然而,在命令行上,最初什么都没有显示,而且多年来一直如此。

答案2

用户或管理员在命令行上启用文本记录比在 GUI 中启用视频记录更为常见。此外,非常常见的情况是,有人会从命令行复制文本,并将其提供给不受信任的人。出于这些原因,在命令行上显示有关用户密码的信息(特别是密码长度)尤其糟糕。

例如,在 Ask Ubuntu 上,我们经常要求人们输入命令(包括以 开头的命令,sudo要求输入密码),然后复制终端的所有内容并将其添加到他们的问题中。如果终端显示*输入的每个密码字符,则我们必须要求他们手动删除这些行。他们可能会意外删除更多或删除的不够多,或者我们可能忘记询问,或者他们可能没有意识到他们提供的某些文本包含密码行。

相比之下,我们很少要求某人截取视频屏幕来帮助他们解决问题,尤其很少要求他们为任何包含图形密码提示的任务这样做。如果常见(或者如果我们希望它变得常见),我们也必须停止显示图形输入密码的占位符。

作为次要因素,以图形方式输入密码时显示占位符更为重要:

  1. 控制台用户通常希望能够接收文本输入;这是他们直接从用户那里获得的主要且通常唯一一种输入。相比之下,许多 GUI 不接受键盘输入,或者不以可预测的方式接受键盘输入。

  2. 当无法接受输入时,GUI 程序通常会拒绝回显键盘输入 - 例如,当用户在仅用于接收数字的文本框中输入字母时。用户很容易理解,当他们在控制台中输入密码时,什么都不显示是可以的。但当人们在操作图形界面时,看到什么都看不到,这可能更让人难以接受。

  3. 图形界面比控制台更有可能具有多个单独的文本元素。回显键盘输入很重要,因为它可以明确程序中的哪个界面元素正在接收键盘输入。在这方面,在密码文本框中显示星号甚至可能是一种安全功能,因为它可以帮助用户知道他们不会在其他地方意外输入密码。

    (如果控制台嵌入在 GUI 中,那么这也可能是一个问题,但可能性较小,因为与刚刚显示用于获取身份验证信息的新窗口相比,用户不太可能弄错他们是否是在控制台窗口中键入。)

如果你输入密码时显示星号sudo,您可以添加pwfeedback到文件中行,上的以 -separated 分隔的选项列表中Defaultssudoers

答案3

过去,IBM 键盘具有出色的触觉反馈和响亮的咔哒咔哒声。您总是知道何时按下了某个键。

使用现代键盘,尤其是薄膜键盘时,您有时必须查看屏幕以确认是否收到了击键。

对于使用拇指操作且没有振动反馈的触摸屏 qwerty 键盘来说,情况更是如此。

因此,我认为密码占位符现在比 70 年代后期 Unix 流行起来时重要得多。即使在 1991 年 Linux 诞生时,我也花了 300 美元购买了 IBM 104 键键盘,反馈非常好。但此后不久,廉价的一次性键盘就充斥了市场。

答案4

简单来说,如果有人看到您的密码长度,他们只需尝试该长度的密码即可。这大大减少了需要尝试的密码数量。

例如,如果您正在录制屏幕,这可能会出现问题。

一些恶意的人可能会观看它,然后在比您的计算机更容易访问的地方尝试相同长度的密码。

相关内容