WebRTC(网页实时通信,Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的开源标准。使用WebRTC,用户无需安装其他软件或浏览器插件即可进行即时通讯。近日WebRTC曝出安全漏洞,可能泄露用户的真实IP地址,即使用户使用了VPN。
什么是WebRTC?
WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。
在去年的Google I/O 大会上,Google表示WebRTC将支持超过十亿个不同端点(桌面浏览器和移动设备端),也就是说WebRTC将应用Chrome浏览器和Android移动操作系统。
漏洞描述及影响
这个漏洞是在上月末被发现的。通过该漏洞,网站管理员可以轻易地通过WebRTC看到用户的真实IP地址,即使用户使用VPN隐藏自己的IP。
该漏洞影响了支持WebRTC的浏览器,包括Google Chrome和火狐,不过似乎只影响Windows操作系统。
漏洞原理
WebRTC采用STUN(Session Traversal Utilities for NAT)、TURN和ICE等协议栈对VoIP网络中的防火墙或者NAT进行穿透。用户发送请求至服务器,STUN服务器会返回用户所用系统的IP地址和局域网地址。
返回的请求可以通过JavaScript获取,但由于这个过程是在正常的XML/HTTP请求过程之外进行的,所以在开发者控制台看不到。这意味着,这个漏洞的唯一要求就是浏览器要支持WebRTC和JavaScript。
你中招了吗?
安全研究人员Daniel Roesler在GitHub上发布了一个演示,大家可以自己检测一下有没有中招。
你也可以通过下面的方法检测:
1、连接VPN
2、访问http://ipleak.net
如果你的浏览器安全的话,你就会看到上面的画面。
如果你的浏览器存在这个漏洞,你可以看到你的真实IP地址。
防御措施
Chrome用户:
Google Chrome和其他基于Chromium的浏览器用户可以安装插件屏蔽WebRTC或者也可以安装ScriptSafe插件。
Firefox用户:
如果你使用的是Firefox浏览器,你可以安装屏蔽JavaScript的插件如NoScript。或者你也可以通过下列步骤修复:
1、在浏览器地址栏输入about:config
2、在随后出现的提示中点击"我保证会小心”按钮
3、搜索"media.peerconnection.enabled"
4、双击media.peerconnection.enabled首选项,是其值变为"false"
这样就关闭了Firefox中的WebRTC