我的大学有一个门户网站供学生注册课程。如果你想进入一个完整的课堂,你必须不断检查门户网站,并在课堂开放时注册。可以安全地存储其他网站的密码吗?
我写了一个工具,它可以检查口和自动注册,但它需要的学生的大学用户名和密码。这些密码与电子邮件帐户,网络共享,服务器登录和大多数其他大学服务相关联。
有什么办法可以安全地做到这一点?
我的大学有一个门户网站供学生注册课程。如果你想进入一个完整的课堂,你必须不断检查门户网站,并在课堂开放时注册。可以安全地存储其他网站的密码吗?
我写了一个工具,它可以检查口和自动注册,但它需要的学生的大学用户名和密码。这些密码与电子邮件帐户,网络共享,服务器登录和大多数其他大学服务相关联。
有什么办法可以安全地做到这一点?
不幸的是,这是不是真的有可能 - 至少不是你想要做的方式 - 除非该大学提供了一个基于密钥的验证API。你总是可以很好地问他们,但他们可能太忙而无法提供帮助。如果您为用户提供充分的信息披露并保证服务器的安全,那就足够了。
其实,有做它通过网络不存储密码的一种方式 - 您可以使用Java或Flash应用程序。不幸的是,您的用户需要在应用程序完成工作时将浏览器保持打开状态,但这样您就不需要存储信息。
当您存储它们,然后对它们进行解密,当你需要尝试登录。简单地生成一个对称密钥,并用它来加密和解密密码的存储和检索(分别)你可以加密的口令字符串。
你在哪里存储密钥? – 2009-10-09 21:45:55
我可以,但解密代码不会与加密密码一起坐在我的服务器上吗? – ABentSpoon 2009-10-09 21:46:15
@ABentSpoon:Martin声称存储加密密码(以及加密密钥)不仅仅比存储密码更安全 - 他是对的。是的,你不能“隐藏”你的解密代码 - 算法是很好理解的。 – 2009-10-09 22:15:41
您不能存储它们完全安全的,因为你需要能够进行加密和解密,从而单向散列算法,如MD5,SHA-1,SHA-2是不够的。你可以看看诸如DES或Triple-DES加密之类的东西。
那么你在哪里存储DES或Triple-DES的对称密钥? – 2009-10-09 21:50:24
好问题。这就是为什么我说这不是完全安全。 – 2009-10-09 21:55:55
我想说,用另一个密码加密密码根本不能提高安全性。 – 2009-10-09 21:58:49
在安全性方面,最重要的是“threat model”。你害怕什么样的攻击?
等
将加密密钥存储在内存中听起来像是个不错的主意。我不确定它会提供多少额外的安全性,但它至少会让攻击者绊倒一段时间,或许足够长的时间来检测攻击并停止服务。 – ABentSpoon 2009-10-09 22:14:47
如果您需要重新启动服务,那么您将无法解密密码。这是我看到的最大的问题,而不是缺乏安全性。 – 2009-10-09 22:53:11
我不认为有。正如马丁指出的一种加密方式不会为你做。此外,这将为您创建一个维护噩梦 - 每次用户更改密码时,您都必须更新数据。
我认为要使它真正起作用,你必须改变设计:找到一种方法来在没有用户密码的情况下进行注册,即与应用程序的所有者通话,如果他们会给你一个帐户,通过它你可以做代表其他人注册
我想我甚至可以让他们下载一个可以在后台运行的客户端。 我认为完全披露和一般安全是要走的路。它将在我的slicehost帐户上运行,我认为它应该相对安全。 – ABentSpoon 2009-10-09 22:07:43