我不小心在登录字段中输入了密码,它仍然安全吗?

我不小心在登录字段中输入了密码,它仍然安全吗?

我低头看着键盘,输入了密码,因为我以为我已经输入了登录名。我按了Enter,然后当它要求输入密码时,我按了Ctrl+ c

我应该采取一些预防措施来确保密码不会以纯文本形式存储在某处,还是应该更改密码?

这也是在 ubuntu 服务器 16.04 LTS 上的 tty 上进行的。

答案1

值得关注的是您的密码是否记录在身份验证日志中。

如果您正在 Linux 下登录文本控制台,并且你按了Ctrl+C在出现密码提示时,不会生成任何日志条目。至少,对于 Ubuntu 14.04 或带有 SysVinit 的 Debian jessie 来说是这样,其他 Linux 发行版也可能如此;我还没有检查过在使用 Systemd 的系统上是否仍然存在这种情况。按Ctrl+会在进程生成任何日志条目之前C终止该进程。login所以你安全了

另一方面,如果您确实进行了登录尝试(如果您在密码提示下按EnterCtrl+)D,则您输入的用户名将以纯文本形式显示在身份验证日志中。所有登录失败都会被记录;日志条目包含帐户名,但从不包含有关密码的任何信息(只是密码不正确)。

您可以通过查看身份验证日志进行检查。在 Ubuntu 14.04 或带有 SysVinit 的 Debian jessie 上,身份验证日志位于/var/log/auth.log.

如果这是一台由您独家控制的计算机,并且它不远程记录日志,并且日志文件尚未备份,并且您愿意并且能够在不破坏任何内容的情况下编辑日志文件,那么请编辑日志文件以删除密码。

如果您的密码记录在系统日志中,您应该认为它已被泄露并且需要更改它。日志可能会因各种原因而泄漏:备份、请求帮助……即使您是这台计算机上的唯一用户,也不要冒险。

注意:我还没有检查 Ubuntu 16.04 是否有不同的工作方式。这个答案可能无法推广到所有 Unix 变体,当然也无法推广到所有登录方法。例如,即使您在密码提示符下按Ctrl+ C(实际上是在显示密码提示符之前), OpenSSH 也会记录用户名。

答案2

就您而言,您是安全的 - 您已经输入了密码并取消了密码。在登录提示中输入密码,然后输入错误的密码将被视为身份验证失败,并部分记录到btmp日志中。对于tty控制台来说,这还可以。

$ sudo lastb                                                                   
[sudo] password for xieerqi: 
UNKNOWN  tty1                          Mon Apr 25 22:14 - 22:14  (00:00)    

“意外”输入的密码被记录为UNKNOWN,所以这里一切正常。但是,GUI 登录屏幕上的失败身份验证确实显示了未混淆的失败登录条目

$ sudo lastb                                                                   
[sudo] password for xieerqi: 
hellowor :1           :1               Mon Apr 25 22:17 - 22:17  (00:00)    
UNKNOWN  tty1                          Mon Apr 25 22:14 - 22:14  (00:00)    

这有什么好处吗?出色地 。 。 .攻击者首先必须能够访问您的系统,甚至更重要的是 - 他/她必须具有 root 访问权限才能读取日志btmp。对于单用户计算机来说,这也意味着 - 这相当于您的密码已经被盗,因此,如果攻击者知道您的密码,那么输入内容对他们来说毫无用处。您已经可以推断出,条目中的密码仅被部分记录,但这为攻击者提供了相当大的优势,因此该部分没有什么好处

您应该更改密码吗?也许,只是为了 100% 确定。另一方面,攻击者必须能够访问您的btmp日志,这与访问 .log 相同/etc/shadow,因此它没有真正的优势。

边注:我的 Ubuntu 14.04 的所有输出

答案3

我认为@吉尔斯回答是很棒的。不过,我想通过展示他的技术要点来强调:

  1. 如果您通过文本/控制台(即不是 GUI)登录,那么...
  2. 如果您使用特定发行版那么...
  3. 如果你有 sysvinit 而不是 systemd...
  4. 如果你按下 ctrl-c 然后...
  5. 如果您确实尝试登录(按 ctrl-d 或按 Enter)然后...
  6. 如果您启用了身份验证日志,那么...
  7. 如果您的计算机处于离线状态并且您是唯一可以访问它的人,那么...
  8. 如果机器配置为远程进行日志身份验证,那么......
  9. 如果机器配置为有备份那么......
  10. 如果机器的计划备份是否已运行那么...
  11. 如果您知道如何编辑日志文件并确保以前的版本不会以某种方式保存,那么......
  12. 如果您通过 ssh 登录,那么...

这意味着有 12 个地方可能会出现问题(可能超过 12 个)。我认为更改密码比彻底检查所有 12 个位置至少快 10 倍[1]。另外,更改密码意味着您已经放心了(也许您已经彻底检查过……但错过了一些东西)。

[1] 并确保您检查正确(即查找日志、查找备份计划、查找远程日志记录的工作原理、研究我拥有的发行版/systemd 版本以及研究身份验证日志记录如何适用于该发行版/systemd 版本、研究什么)我的公司日志记录实施是,研究我的公司备份实施是什么,等等)。

PS 最后一件事。如果您使用的是一台正确管理的 Linux 机器(即企业、学术、云等),那么至少其中一个要点是正确的。所以我想说一定要更改你的密码。

相关内容