密码
- 很容易忘记。
- 可以很容易猜到/破解。
- 在您可以使用的字符、长度...方面可以有不同的限制。
- 经常在不同的服务上重复使用。
- 你听说过那些密码数据库泄露了吗?
挑战-响应
SSH 密钥(或 api 令牌)
- 不必记住(存储在您的计算机上)。
- 更难猜测/破解(与字典攻击相比)。
- 不需要在不同的服务上共享。
不对称/密码强度。
- 大多数公钥/私钥解决方案都使用非对称密钥(没有听说过,但不会把钱花在上面)。如果您的公钥被泄露,那么攻击者就无法访问系统。
- 密码数据库需要单向加密;一个足够强大或浪费了足够多的计算周期以致难以暴力破解的算法。
重置工作流程
在这里使用密码或 ssh 密钥是无关紧要的,在某些时候用户会忘记他们的密码(例如他们在创建密码时有 CAPS LOCK...)或重新安装他们的系统(例如时间机器/升级...)。你如何应对这种情况?您将不得不更改密码/密钥(假设之前的密码已泄露)并将新密码安全地传达给用户。
请参阅接受的答案。如果你的孩子试图进入你的房子。挑战是你首先需要确认是你的儿子(例如你知道这是他们的电话号码,你认出他们的声音,这就是挑战部分)。非常常见的工作流程是生成一个临时密码/一次性密码,然后让您的儿子更改密码。但是,这很可能是:给他们一个一次性密码,让他们上传新的 ssh 密钥/api 令牌。哎呀,如果您的键盘/键锁已连接,您甚至根本不用费心让他们更改他们的凭据,而只是远程让他们进入。
注意:没有什么可以阻止您的前妻与您的儿子勾结以欺骗您并进入房屋。
哪一个更好?
这取决于您的用例和可接受的损失。由于用户拥有两个密码/ssh 密钥/api 令牌,因此用户可以共享它们。如果您支持密码验证并且密码被泄露,那么您的一些用户可能不得不在外部网站上更改他们的密码——因为他们在其他地方重复使用相同的密码。如果您使用公钥/私钥,那么您就不必担心了。
您不必选择其中之一。你可以同时使用!例如,您可以同时拥有钥匙锁(您的个人副本)和数字挂锁(客人)。