Remote computer management through the browser

About six months ago, I thought about creating a program for managing a computer through the browser. I started with a simple single-socket HTTP server that transmitted images to the browser and received cursor coordinates for control.

At a certain stage, I realized that the WebRTC technology is well-suited for this purpose. This solution is available in the Chrome browser and is installed via an extension. However, I wanted to create a lightweight program that would work without installation.

Initially, I tried to use the library provided by Google, but after compilation, it took up 500MB. I had to implement the entire WebRTC stack almost from scratch, managing to fit everything into an exe file of 2.5MB. A friend helped with the JS interface, and this is what we ended up with.

We launch the program:

Remote computer management through the browser
We open the link in a browser tab and gain full access to the desktop:

Remote computer management through the browser
A small animation of the connection setup process:

Remote computer management through the browser
Supported on Chrome, Firefox, Safari, and Opera.

There is the ability to transmit audio, audio calls, clipboard management, file transfer, and hotkey invocation.

While working on the program, I had to study a dozen RFCs and understand that there is insufficient information on how the WebRTC protocol works. I want to write an article about the technologies used in it and would like to know which of the following questions interest the community:

  • SDP protocol for describing data streams
  • ICE candidates and establishing a connection between two points, STUN and TURN server
  • DTLS connection and key transmission in the RTP session
  • RTP and RTCP protocols with encryption for transmitting media data
  • Transmission of H264, VP8, and Opus over RTP
  • SCTP connection for transmitting binary data

Source: habr.com

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster