使用 UUID 作为密码

使用 UUID 作为密码

有人对使用 UUID 作为密码有什么看法吗?这适用于为外部用户创建的帐户,例如客户访问私人 SFTP 文件夹。或者人们改用公钥?这些用户没有 shell,并且被 chroot 到他们的目录中。

来自手册页:

UUID 是 128 位数字,其目的是在空间和时间上具有很高的唯一性,并且计算起来很难猜测。它们是全球唯一的标识符,可以在本地生成,而无需联系全球注册机构。UUID 旨在作为唯一标识符,用于对生命周期极短的大量标记对象进行唯一识别,以及可靠地识别网络上非常持久的对象。

我使用的是 Ubuntu 9.10,但是OSSP uuid该软件包适用于大多数 *nix 发行版。

答案1

生成 UUID 的方法有很多,其中一些方法很容易猜测。例如,当前时间通常是一个组成部分,就在那里,机器的 MAC 地址也是如此,等等。不要将唯一与不可猜测混淆。

我不会尝试将 UUID 重新用于密码,而是选择强密码生成器。如果您正在考虑使用 UUID 作为密码,显然能够记住它并不重要,因此我会选择类似于 MD5 的输出,其中包含来自 /dev/random 或 /dev/urandom 的几个字节:

dd if=/dev/random bs=128 count=1 | md5

或者更好的办法是,使用专门设计用于生成强密码的工具。理想情况下,用户无需写下来就能记住这些密码。

答案2

密码的复杂程度越高,用户将其写在便条上并贴在显示器上的可能性就越大,这意味着当用户忘记密码时,支持成本也会增加。

使用 SSH 密钥时,建议(但不是必须)使用某种形式的密码来保护密钥。密码短语比密码更容易记住,因此如下所示:

  • Firefox 只是一个浏览器
  • 这不是我尝试的第一个黑客方法
  • 敏捷的棕色狐狸

这既可以减少重置忘记密码的电话发生率,又可以提高安全性,因为用户无需写下来就能记住密码。

答案3

我认为从理论上讲,使用随机 UUID 作为机器密码、API 密钥等是个好主意。但它们需要写下来,或复制/粘贴。当人们必须输入它们时,它们就不太好。(但你说它们会被保存)

OSSP uuid 命令默认生成版本 1 的 UUID。这是基于当前机器的 MAC 地址和当前时间。因此并不像看上去那么安全。

如果你运行uuid -n 10,它会生成 10 个 UUID,你会看到很多字符是相同的。

如果你uuid -v4 这样做,将会得到一个随机的 UUID。比默认的要好。

我查看了 OSSP UUID 的源代码,但无法确定其随机性是否足够好。源代码已经 10 年没有更新了,从那时起,已经有很多关于制作加密随机数的研究和观点。它可能还不错。

我在 Linux 机器上获取随机 uuid 的最喜欢的方式是cat /proc/sys/kernel/random/uuid

对于真正偏执的人来说,您可能还需要考虑您使用的机器上有多少随机数据可用。 cat /proc/sys/kernel/random/entropy_avail 您正在寻找一个大数字,例如超过 1000。如果您在虚拟机上,没有做太多事情,您可能会遇到困难。

相关内容