PHP OpenID不适用于谷歌/雅虎,“黑客”修复它......它们安全吗?

时间:2010-06-15 17:55:55

标签: php openid security janrain google-account

我一直在尝试OpenID,并设置了一个示例网页,可以使用我的OpenID帐户进行访问。我使用的是Php OpenID Library by Janrain,但它无法使用我的Google帐户。一个小小的研究让我this question,这表明问题是谷歌使用https和...

  

...可能在您的PHP服务器上设置了发出HTTPS请求的设置。检查以确保安装了ca-certificates软件包。

在同一主题中,有人链接到我已部署的hacked version of the library,并已成功用于我的Google帐户。其他问题还有其他自定义可以解决类似问题(Janrain’s PHP-OpenID and Google/Yahoophp-openID doesn’t work with Yahoo!Example usage of AX in PHP OpenID ...)

我对安全性不太热,所以我问;有没有人知道不使用这些黑客版本的原因?

原始库是否具有这些黑客在设计中修复的任何缺点,因此黑客是一个潜在的安全漏洞?

那里是否有一位合格的加密人员,他们已经看过这些解决方案,并且“走了大卫·查姆的胡子!不!

如果是这样 - 因此我不应该使用任何这些黑客 - 我如何检查我“安装了ca-certificates包”?

3 个答案:

答案 0 :(得分:6)

以下是其中一个“黑客”版本的作者所写的内容:

  

特别是CURLOPT_SSL_VERIFYPEER   和CURLOPT_SSL_VERIFYHOST都是真的   默认:我将它们设置为false   为测试页面工作!

其效果几乎抵消了使用HTTPS提供的任何安全优势。 HTTPS在OpenID中有用的主要原因是它可以防止中间人攻击,即一些坏人中毒DNS缓存以将所有google.com请求发送到bad-guys.example。使用正确配置的HTTPS,您可以验证连接上的证书,发现它不是来自Google,并说“我不会相信您说的任何内容,bad-guys!”

当然,除非您没有验证任何证书(您将所有SSL_VERIFY选项设置为false),否则您的服务器会认为bad-guys所有内容都好像它是真正的Google提供商。你可以想象这可能是坏事。

现在,坦率地说,这不是你能做出的最糟糕的选择,因为它并不比只使用HTTP更糟糕,很多人都会这样做。如果你暗示你提供HTTPS级安全性,那么你只是lying to your users

有很多信息说明基于dns的攻击是否容易,或者forge SSL certificates是多么容易。无论哪种方式,它确实需要有人攻击您的服务器和谷歌之间的连接,这通常比攻击咖啡店中用户的笔记本电脑与您的服务器之间的连接更难。

但实际上,修复PHP或CURL SSL配置要好得多。或者,如果您不这样做,请在用户使用HTTPS标识符进行注册时向用户发出警告,以便他们可以选择是否确实要将OpenID与您的网站一起使用。

这导致了你的第二个问题。我想,不知道你正在使用哪个服务器平台,我能做的最好的事情是将你链接到Curl docs on SSL certificates;请参阅“获取更好/不同/更新的CA证书捆绑包!”部分。

答案 1 :(得分:0)

来自Certificate Authority上的维基百科文章:

  

CA颁发包含公钥和所有者身份的数字证书。当最终用户尝试访问未知URL时,Web浏览器(例如Mozilla Firefox和Microsoft Internet Explorer)将联系CA以确认URL的公钥。

...因此,CA证书是Public Key Certificate,用于通过https://进行通信。您的服务器应该在某个文件系统上有CA证书。如果没有,您必须自己下载CA证书并将CURLOPT_CAINFO常量设置为指向其位置。 See this article

http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

答案 2 :(得分:-1)

  

[...]有没有人知道不这样做的理由   使用这些黑客版本?

除了他们是黑客版本的事实,这些版本很可能没有文档记录,也无法保证他们的行为?

我不能具体回答,但是当你使用快速修复和变通方法的模块时,应该会有一些警告灯闪烁,特别是当你处理授权和安全时..我认为最好的建议将是“自担风险!”

我相信对这个主题有更多了解的人很快就会得到一个更明智的答案。