Martin Heralecký Asked: 2018-05-10 03:27:21 +0800 CST2018-05-10 03:27:21 +0800 CST 2018-05-10 03:27:21 +0800 CST 使用与用户登录密码相同的 ssh 密码是否安全? 772 使用与我每天使用的计算机的用户登录密码相同的主密码(在我的情况下是唯一的)ssh 密钥是否安全?假设我是那台计算机的唯一用户。潜在的安全风险是什么? ssh security 4 个回答 Voted Best Answer Gilles 'SO- stop being evil' 2018-05-10T12:03:55+08:002018-05-10T12:03:55+08:00 一般来说,重复使用密码是一个坏主意,除非您在同一领域使用相同的密码,即在同一组管理的机器或服务之间,并且有权访问其中一台机器/服务的人通常拥有访问所有这些。 您在机器 A 上的帐户密码在机器 A 上使用并控制对机器 A 的访问。机器 A 上的 SSH 私钥上的密码在机器 A 上使用并控制对其他机器的访问。如果您在两者上使用相同的密码并且它被泄露,这会危及机器 A 和其他机器。因此,共享密码不利于安全。 您在机器 A 上的帐户密码在机器 A 上使用并控制对机器 A 的访问。在机器 B 上的 SSH 私钥上的密码在机器 B 上使用并控制对机器 A 的访问。如果您在两者上使用相同的密码,那么它可以从 A 或 B 泄漏。因此共享密码不利于安全。 密码也可能通过备份泄漏。例如,如果您的主目录的备份遭到破坏(或者您不小心将您的私钥文件上传到 Github ——您不会是第一个¹),攻击者就可以访问该密钥文件。OpenSSH 私钥文件格式容易受到对密码的暴力攻击。从 OpenSSH 6.5 开始,有一种新格式(选择ssh-keygen -o正确使用慢散列,但从 OpenSSH 7.7 开始默认不使用它。因此,如果攻击者获得了对您的密钥文件的访问权限,他们将面临获得密码的严重风险,这使他们可以使用密钥并让他们在没有密钥的情况下登录。即使使用缓慢的哈希,如果您的密码太弱,拥有密钥文件的攻击者也可以离线破解它(即仅受他们愿意花费多少电力的限制)。 由于这些原因,您不应为 SSH 密钥和用户帐户使用相同的密码。如果您想保护密钥文件但又不想记住单独的密码,最好使用不可记忆的密码并将其存储在您的密钥环中(Gnome 密钥环确实使用慢散列)。² ¹我认为 Github 现在可以防止直接上传密钥文件。 ²请记住不要泄露您的密钥环的备份,但这在实践中比使用 SSH 问题更小,因为人们倾向于备份他们的.ssh目录,其中包含配置文件,例如config和authorized_keys. SecurityDoctor 2018-05-10T09:28:15+08:002018-05-10T09:28:15+08:00 这个问题的答案实际上取决于您的计算环境。您是作为消费者(家庭)用户提出这个问题,还是作为企业用户(工作)提出这个问题。如果您以后者的声音询问,那么我首先建议您咨询您的系统管理员和/或您的公司内部安全策略。总的来说,我会说(从 IA 从业者的角度来看......答案总是否定的。我建议使用密码管理器并使用诸如 veracrypt 之类的应用程序加密主列表。 dr_ 2018-05-10T04:51:28+08:002018-05-10T04:51:28+08:00 一般来说,重复使用密码是一个糟糕且不安全的想法。 考虑到 SSH 密钥的用途,您需要评估风险与使用相同密码的简单性。你用它加密敏感信息吗?访问远程测试服务器?生产服务器?那是只有你可以评估的东西。 拥有单独的密码意味着实施深度防御:如果有人找到您的密码并访问您的计算机,他们仍然无法使用您的 SSH 密钥。 rudimeier 2018-05-10T08:41:54+08:002018-05-10T08:41:54+08:00 众所周知,人们应该始终为不同的目的使用不同的密码。但是在这种情况下,我会说风险很低,至少如果在您的工作站上禁用了通过密码登录的 ssh,那么远程攻击者根本无法获得知道您的密码的任何好处。 如果您已经有本地入侵者(知道您的密码),那么他可以轻松地设置一些东西来监视您,以便在您再次输入密码时获取您的密码。无论如何,许多用户都在ssh-agent运行,因此入侵者可以在根本不需要密码的情况下使用它。因此,不同的密码在这里没有多大帮助,但也许仍然可以保护您免受“已知的非专家”攻击者的侵害,例如您的孩子、岳母等;) 一个更有趣的案例是远程攻击者(病毒)在不知道任何密码的情况下设法在您的用户帐户上执行代码。他似乎更容易窥探您的密钥密码。但是如果他已经可以访问,那么获取系统密码对他来说很重要吗?可能要使用 sudo,当它默认设置在 Ubuntu 中时。 另一种情况是攻击者只能访问文件/etc/shadow和/或加密的 ssh 密钥(例如侵入备份服务器)。现在从理论上讲,密钥或影子文件可能对猜测密码的暴力攻击不太安全。这对攻击者来说是一个优势,但我想这个优势很低。
一般来说,重复使用密码是一个坏主意,除非您在同一领域使用相同的密码,即在同一组管理的机器或服务之间,并且有权访问其中一台机器/服务的人通常拥有访问所有这些。
您在机器 A 上的帐户密码在机器 A 上使用并控制对机器 A 的访问。机器 A 上的 SSH 私钥上的密码在机器 A 上使用并控制对其他机器的访问。如果您在两者上使用相同的密码并且它被泄露,这会危及机器 A 和其他机器。因此,共享密码不利于安全。
您在机器 A 上的帐户密码在机器 A 上使用并控制对机器 A 的访问。在机器 B 上的 SSH 私钥上的密码在机器 B 上使用并控制对机器 A 的访问。如果您在两者上使用相同的密码,那么它可以从 A 或 B 泄漏。因此共享密码不利于安全。
密码也可能通过备份泄漏。例如,如果您的主目录的备份遭到破坏(或者您不小心将您的私钥文件上传到 Github ——您不会是第一个¹),攻击者就可以访问该密钥文件。OpenSSH 私钥文件格式容易受到对密码的暴力攻击。从 OpenSSH 6.5 开始,有一种新格式(选择
ssh-keygen -o
正确使用慢散列,但从 OpenSSH 7.7 开始默认不使用它。因此,如果攻击者获得了对您的密钥文件的访问权限,他们将面临获得密码的严重风险,这使他们可以使用密钥并让他们在没有密钥的情况下登录。即使使用缓慢的哈希,如果您的密码太弱,拥有密钥文件的攻击者也可以离线破解它(即仅受他们愿意花费多少电力的限制)。由于这些原因,您不应为 SSH 密钥和用户帐户使用相同的密码。如果您想保护密钥文件但又不想记住单独的密码,最好使用不可记忆的密码并将其存储在您的密钥环中(Gnome 密钥环确实使用慢散列)。²
¹我认为 Github 现在可以防止直接上传密钥文件。
²请记住不要泄露您的密钥环的备份,但这在实践中比使用 SSH 问题更小,因为人们倾向于备份他们的
.ssh
目录,其中包含配置文件,例如config
和authorized_keys
.这个问题的答案实际上取决于您的计算环境。您是作为消费者(家庭)用户提出这个问题,还是作为企业用户(工作)提出这个问题。如果您以后者的声音询问,那么我首先建议您咨询您的系统管理员和/或您的公司内部安全策略。总的来说,我会说(从 IA 从业者的角度来看......答案总是否定的。我建议使用密码管理器并使用诸如 veracrypt 之类的应用程序加密主列表。
一般来说,重复使用密码是一个糟糕且不安全的想法。
考虑到 SSH 密钥的用途,您需要评估风险与使用相同密码的简单性。你用它加密敏感信息吗?访问远程测试服务器?生产服务器?那是只有你可以评估的东西。
拥有单独的密码意味着实施深度防御:如果有人找到您的密码并访问您的计算机,他们仍然无法使用您的 SSH 密钥。
众所周知,人们应该始终为不同的目的使用不同的密码。但是在这种情况下,我会说风险很低,至少如果在您的工作站上禁用了通过密码登录的 ssh,那么远程攻击者根本无法获得知道您的密码的任何好处。
如果您已经有本地入侵者(知道您的密码),那么他可以轻松地设置一些东西来监视您,以便在您再次输入密码时获取您的密码。无论如何,许多用户都在
ssh-agent
运行,因此入侵者可以在根本不需要密码的情况下使用它。因此,不同的密码在这里没有多大帮助,但也许仍然可以保护您免受“已知的非专家”攻击者的侵害,例如您的孩子、岳母等;)一个更有趣的案例是远程攻击者(病毒)在不知道任何密码的情况下设法在您的用户帐户上执行代码。他似乎更容易窥探您的密钥密码。但是如果他已经可以访问,那么获取系统密码对他来说很重要吗?可能要使用 sudo,当它默认设置在 Ubuntu 中时。
另一种情况是攻击者只能访问文件
/etc/shadow
和/或加密的 ssh 密钥(例如侵入备份服务器)。现在从理论上讲,密钥或影子文件可能对猜测密码的暴力攻击不太安全。这对攻击者来说是一个优势,但我想这个优势很低。