2011-12-07 83 views
0

我在哪里工作,单点登录到其他应用程序是所有的愤怒。但是,在处理我继承的一些代码时,我发现我们的第三方(一家大公司)使用密钥,时间戳和用户ID的组合来验证其系统。所有这些信息都通过SSL通过查询字符串(MD5散列)传递。我的同事和我发现了这一点,因为我们已经知道这个(开源)SSO解决方案是如何工作的,所以我们能够简单地生成我们自己的查询字符串并在没有密码的情况下登录到任何人的账户!不用说,我们立即压缩了这个SSO功能。当通过SSO进行身份验证时,秘密密钥或私钥密钥是否安全?

我不是以任何方式安全专家,但用这种方式,不是像这种令人难以置信的危险的秘密密钥?特别是因为第三方的SSO“连接器”是开源的。他们建议每隔一段时间更换一次钥匙,但正如我所说,这似乎太容易强行进入;猜测一个密码等于访问每个人的帐户!请让我知道你的想法和意见,启发我:)

+1

md5不是一种加密方法。 – rook

+0

嘿车,woops并不意味着暗示!这实际上让我更加关注它。 –

+0

我假定您的私钥和公钥使用512位RSA加密。除非两把钥匙完全暴露在公众面前,否则打破钥匙并非易事。 – Raptor

回答

0

SSO的安全级别归结为特定产品的实施。我不是SSO或安全专家。但是OpenID是一个不错的选择:http://en.wikipedia.org/wiki/Openid。顺便说一句,StackOvewfloe也使用OpenID。

+0

除了OpenID,我会建议使用Facebook SSO/Google SSO给用户一个更友好的用户体验。 – Raptor

0

只要私钥保持私密,SSO就可以保存。密钥应该用512位RSA或其他东西进行加密,所以很难暴力破解。但是,如果私钥和公众暴露出来,整个系统就会崩溃,这不仅仅是SSO。私钥应该保密,不应该暴露给任何人。所以我想知道这种情况下的密钥是否与私钥相同。如果是这样的话,第三方的实施情况就不好。