WebRTC

What is WebRTC?

WebRTC (Web Real-Time Communication) is an open-source project that enables real-time audio, video, and data sharing directly between web browsers and mobile applications without the need for plugins or external applications. It facilitates peer-to-peer communication, allowing for efficient and low-latency interactions.

However, it has serious privacy concerns, mainly by leaking our true IP address even when connected behind a VPN. Learn more about what WebRTC is and further down we discuss how to disable it in your browser.

Key Components of WebRTC:

  1. Media Capture:
    • The getUserMedia API allows applications to access the device’s camera and microphone to capture audio and video streams.
  2. Peer Connection:
    • The RTCPeerConnection API manages the connection between peers, handling tasks such as signal processing, codec management, and network traversal to establish a direct link.
  3. Data Channels:
    • The RTCDataChannel API enables the exchange of arbitrary data between peers, supporting functionalities like file transfers and real-time gaming.

How WebRTC Works:

  1. Signaling:
    • Before a direct connection is established, peers need to exchange metadata (such as session control messages, network configurations, and media details) to coordinate communication. This process, known as signaling, is handled by the application using protocols like SIP, XMPP, or custom solutions over WebSockets. Notably, WebRTC does not specify a standard signaling protocol, leaving it to developers to implement as needed.
  2. Connection Establishment:
    • Once signaling is complete, RTCPeerConnection takes over to establish a peer-to-peer link. It uses the Interactive Connectivity Establishment (ICE) framework to find the best path between peers, traversing NATs and firewalls as necessary.
  3. Media and Data Exchange:
    • With the connection established, media streams and data channels are set up, allowing for the real-time exchange of audio, video, and other data directly between peers.

Security Considerations:

While WebRTC encrypts data streams to ensure secure communication, it can inadvertently expose a user’s IP address through mechanisms like STUN (Session Traversal Utilities for NAT). This exposure can occur even when using a VPN, potentially compromising privacy. To mitigate this, users can disable WebRTC in their browsers or use browser extensions designed to prevent such leaks.

Applications of WebRTC:

  • Video Conferencing: Platforms like Jitsi Meet utilize WebRTC to provide browser-based video conferencing without requiring additional software.
  • File Sharing: WebRTC enables direct peer-to-peer file transfers, reducing reliance on intermediary servers.
  • Gaming: Real-time multiplayer games leverage WebRTC’s data channels for low-latency communication between players.

Disabling WebRTC

On Desktop:

Firefox Based Browsers:

Type  about:config  into search bar on a new tab

Click  Accept the Risk and Continue

Search for:   media.peerconnection.enabled   set to FALSE

Search for:  media.peerconnection.ice.default_address_only    set to TRUE

Brave Browser:

Type  brave://flags  into search bar on a new tab

Search for  WebRTC

Set the four options to Disabled, relaunch the browser


On Android:

Vanadium:

  • Disabled by default (check)
  • Open Vanadium and click three dots icon and open ‘Settings
  • Select ‘Privacy and Security‘ option
  • Locate ‘WebRTC IP Handling Policy
  • Ensure that ‘Disable non-proxied UDP‘ is selected


Brave:

  • Open Brave and tap on the three-dot menu in the bottom-right corner.
  • Select “Settings”.
  • Tap on “Brave Shields & privacy”.
  • Scroll down and tap on “WebRTC IP Handling Policy”.
  • Choose “Disable Non-Proxied UDP”


VPN’s that block WebRTC leaks:  Proton VPN, Mullvad VPN and IVPN


How to check for WebRTC leaks:

Visit:  https://ipleak.net/

Visit: https://browserleaks.com/webrtc