How to prevent WebRTC spying in Chrome

New technologies are more often than not a double-edged sword. While they add or improve functionality on the one hand, they may also introduce undesirable features.

This is for instance the case when it comes to WebRTC. It brings real-time communication capabilities to web browsers via JavaScript apis. Think Skype but without plugins or third-party software installation.

While that is great for Internet users who use new services making use of WebRTC, others are left with privacy issues because of it.

Mozilla has integrated WebRTC in Firefox 22 and Google in Chrome 23. While Firefox users can toggle a preference to disable WebRTC in the browser, Chrome users cannot disable it natively.

It is interesting to note at this point that Chrome Android users can disable WebRTC, while desktop users cannot. To do so, the following link needs to be loaded and set to enable: chrome://flags/#disable-webrtc

WebRTC can be used to spy on users

WebRTC leaks

information that get revealed

Privacy advocates have two issues in regards to WebRTC. The first is that it is possible to detect the local IP address of the device used to load the WebRTC service, the second that device fingerprinting may be used in some browsers, Chromium-based for example, to fingerprint the system.

Fingerprinting refers to creating unique identifiers for devices so that they can be recognized even if some variables change (like the browser version or IP address).

How to protect yourself in Chrome

There are several solutions to the privacy issue. The most straightforward option is to install the Chrome extension WebRTC Block which blocks the WebRTC feature in Chromium-based browsers.

This option is only viable for users who don't use WebRTC. While it may be possible to turn the extension on or off based on your communication needs, it is not something that is really comfortable to do.

In regards to fingerprinting, previous versions of Chrome had an option to disable device enumeration on the chrome://flags page. This feature has been removed from Chrome recently and is no longer available.

Chrome provides websites with media device hashes and there is little that you can do about it as there are no options anymore to disable this from happening.

One way to deal with it is to clear "cookies and other site and plug-in data" regularly in the browser. Doing so will generate a new hash so that spying sites cannot identify you anymore based on that.

Besides that, starting Chrome in Incognito Mode will also render the fingerprint useless for that session.

How to test

In case you are wondering, here are links to scripts that reveal information about your system when WebRTC is enabled.

  1. Browserleaks - Detects if WebRTC is enabled, your local IP address, and other related information.
  2. Detection on JSFiddle - Uses WebRTC to look up and display the local IP address.
  3. JSFiddle script with with live host probing
  4. What Is My Browser - Displays fingerprinting information such as the local and remote IP address, browser, plugins, location, screen resolution and more.

These test websites should work in all modern web browsers. Success depends on the implementation of WebRTC mostly though.

Now Read: Protect Chrome against fingerprinting with Chameleon

Summary
Article Name
How to prevent WebRTC spying in Chrome
Author
Description
WebRTC can be used to reveal your computer's local IP address and to fingerprint the device. This guide provides you with methods to prevent this.
Please share this article

facebooktwittergoogle_plusredditlinkedinmail


Responses to How to prevent WebRTC spying in Chrome

  1. Blue August 4, 2014 at 9:03 pm #

    Of all the test links provided, none were accurate, or were only partially accurate. As for the last link (What is my browser), if the info it found is what my browser is broadcasting, then go right ahead because after it detected java script was on, everything below that was dead wrong.

  2. Mathieu August 6, 2014 at 8:45 pm #

    The information presented here is borderline spreading FUD.

    Devices cannot be accessed at all unless the user explicitly approves it for that website. That includes the ability of the website to enumerate devices or get the device name. Thanks to this, random websites won't be able to fingerprint the user based on devices. If the user consents to give device access to a website, there is a few worse things the website can do, including taking a picture of the user, record its voice or ambient noise, etc. Talk about fingerprinting capability then ;)
    Also, technically, device access (getUserMedia) is not part of WebRTC spec but part of the Media spec.

    The only information that could be used for fingerprinting is the local IP address. Yes it probably adds a few bits for uniquely identifying someone, but really we're just talking about differentiating different users behind the same public IP.
    Also this is really a problem with an expiration date linked to IPv4. Once we're all transitioned to IPv6, there won't be a notion of private IPv4 addresses anymore.

Leave a Reply