通过SSO进行身份验证时,密钥是否安全?

时间:2011-12-07 01:57:09

标签: security single-sign-on

在我工作的地方,单点登录其他应用程序风靡一时。但是,在处理我继承的一些代码时,我发现我们的第三方(一家大公司)使用了一个密钥,一个时间戳和一个用户ID的组合来验证他们的系统。所有这些信息都通过SSL通过查询字符串(MD5哈希)传递。我的同事和我发现了这一点,因为我们知道这个(开源)SSO解决方案是如何工作的,所以我们能够简单地生成我们自己的查询字符串并在没有密码的情况下登录任何人的帐户!不用说,我们立即压制了这个SSO功能。

我无论如何都不是安全方面的专家,但是用这种方式,这不是一个非常危险的秘密密钥吗?特别是因为第三方的SSO“连接器”是开源的。他们建议每隔一段时间更换钥匙,但就像我说的那样,这似乎太容易暴力了;猜一个密码等于访问每个人的帐户!请让我知道你的想法和意见,启发我:)。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

只要私钥保密,SSO就可以保存。密钥应使用512位RSA或其他东西加密,因此非常难以暴力破解。但是,如果私钥和公共暴露,那么整个系统就会崩溃,而这不仅仅是在SSO中。私钥应保密,不应暴露给任何人。所以我已经想知道这种情况下的密钥是否与私钥相同。如果是这种情况,那么第三方的实施就不好了。