2012-03-13 83 views
0

我重写Facebook的PHP-SDK 3.1.1 &我已经注意到了fb_ca_chain_bundle.crt。后者用于CURL请求来验证SSL证书。为什么浪费服务器资源来验证Facebook SSL?

curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/fb_ca_chain_bundle.crt'); 

为什么根本就没有设置CURLOPT_SSL_VERIFYHOST0。由于所有的请求都是对下列主机之一进行的,我们可以放心地依靠它们吗?

'api'  => 'https://api.facebook.com/', 
'api_video' => 'https://api-video.facebook.com/', 
'api_read' => 'https://api-read.facebook.com/', 
'graph'  => 'https://graph.facebook.com/', 
'www'  => 'https://www.facebook.com/' 

回答

1

(我没有足够的代表处发表评论,因此再接听)

由于塔斯社的回答说,SSL旨在防止被动和主动的窃听。阻止被动窃听非常简单 - 未经身份验证的Diffie-Hellman密钥协议可以解决问题。主动攻击有点难以处理,因为他们可以假装成客户端的服务器,反之亦然,允许他们代理所有流量。证书通过提供一种以主动攻击者无法(理论上)欺骗的方式建立一方或双方身份的方式来解决这个问题。

MITM攻击仅限于WiFi网络。如果您的服务器上与其他服务器(很可能是)一个子网中,有人获得了机器在同一子网可以做一个ARP spoofing attack拦截您的服务器和路由器之间的所有通信。任何可以访问ISP网络设备的人也可以做MitM--你相信你的ISP永远不会被黑客攻击吗?最后,有ASN hijack attacks,有人可以拦截所有的流量和流出facebook,并做他们想要的。

实际上,如果禁用证书验证,这是不可能的,什么坏事会发生。如果没有安全带驾驶或骑自行车没有头盔,也不会发生任何不良情况。每个请求节省一毫秒或两个值得吗?

+0

这是一个很好的答案。谢谢。 – Gajus 2012-03-14 18:50:58

3

要找出假冒为Facebook的人吗?

4

密码学和计算机安全中的中间人攻击(通常缩写为MITM,也称为桶旅攻击,有时也称为Janus攻击)是一种主动窃听形式,攻击者可以通过该攻击与受害者并转发他们之间的信息,使他们相信他们正在通过私人连接直接对话,而实际上整个谈话是由攻击者控制的。攻击者必须要能够拦截两名受害人之间正在进行的所有消息,注入新的,则是直接在许多情况下(例如,一个未加密的Wi-Fi无线接入点的接收范围内的攻击者,可以将自己作为一个男人-在中间)。 Wikipedia

+0

呃。我的评论在哪里消失?无论如何,我的观点是MITM很可能发生在WI-FI网络中。但是,我们在这里谈论ISP直接与Facebook服务器联系。就我所知,没有任何地方可以发生MITM。 – Gajus 2012-03-14 16:15:09

相关问题