发送密码的最佳方式——通过短信?

发送密码的最佳方式——通过短信?

当我需要向某人发送密码时,我通常会通过特定渠道(电子邮件、即时通讯等)发送除密码(即服务器和用户)之外的所有信息,并通过短信发送密码本身(不解释其用途)。

这是可以接受的吗或者有更好的方法吗?

答案1

如果预期收件人没有收到消息,他们可能需要重复请求。但是,您应该考虑到人们在手机上接收电子邮件和即时消息的情况相当普遍,因此通信可能并不像您想象的那么分离。考虑到请求也可能从手机发起,因此它并不那么安全。

答案2

虽然我和其他记者有着同样的担忧,但我也注意到一种实用主义的论点。

我必须向其他国家/地区的人们提供大量密码。我不认识他们;我没有办法与他们面对面联系;我不可能每次都请快递员亲自递送密码;而且邮寄的延迟(这绝不是一种有保证的面对面服务)被认为是商业上不可接受的。

那么系统管理员该做什么呢?我必须把密码发给其他人不知何故,否则没人能够登录。

所以有一段时间我和你一样。我要求每个经过验证的新密码(或更改)请求都有一个 GSM 电话号码,然后我将密码通过短信发送到该号码;用户名、系统地址等都通过他们用于记录请求的票务系统的电子邮件发送。我添加的唯一问题是预先设置密码过期时间,这要求在首次登录时更改密码。在 Linux 上,我使用chage -d 0 username 设置密码,在 Solaris 上使用passwd -f username

这意味着,如果令牌被泄露,它就不能无限重复使用;黑客看到被丢弃的短信,只会知道以前的密码。这也意味着,如果其他人先得到它,我就会发现,因为在黑客先到那里并更改它之后,合法用户将无法登录。

它仍然不完美,仍然有失败的可能,但我还没有找到更好的。有人找到吗?

答案3

我想你可能会对这种做法的普遍程度感到惊讶,而且实际上在很多情况下这种做法都是可以接受的。但是,正如你显然已经怀疑的那样,它远非理想。

理想情况下,通信应该使用某种形式的预共享密钥进行加密,但当然,共享该密钥本身也会带来问题。PGP/GPG 是解决该问题的绝佳方案。这曾经是一种相当常见的做法,但据我所知,现在很少使用,尽管我不明白为什么不使用。上次我检查时,GPG 在所有主要平台上都是免费提供的。

答案4

非对称加密(例如 RSA)可能是最安全的方式。

你的朋友将公钥发送给你,你将使用该公钥对密码进行加密。然后,你的朋友使用私钥对密码进行解密。

我遇到过这个痛点,并决定构建一个简单的工具来解决这个痛点:http://tanin.nanakorn.com/labs/secureMessage

它使用 Javascript 进行 RSA 加密。因此,您的密码永远不会离开您或您朋友的机器。此外,当您离开页面时,密钥会被销毁。

需要注意的是,如果您离开该页面,您将丢失您的私钥...因此,此工具可能更适合通过即时通讯(而不是电子邮件)发送密码

相关内容