introspection3 / ControlR_WebRTC

A zero-trust, cross-platform remote control prototype.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ControlR

A zero-trust remote control prototype built with .NET 7, MAUI, Blazor WASM, Electron, and WebRTC.

How It Works

Zero-trust is implemented via public/private keypairs, similar to how ssh works. When the agent is installed, you supply the public keys that are allowed to access the device (i.e. authorized_keys).

This public key comes from the keypair that you create when you first open the viewer app. When the viewer connects to the server, every message it sends is signed with your private keys, allowing the server to verify your public key. This is implemented through a custom AuthenticationHandler. Your private key is never shared with the server; only your public key is.

No data is persisted on the server. There is no database. All state and identity information is maintained on local devices.

When the agent comes online, it broadcasts its presence via SignalR to public keys in its config file.

When viewers try to connect or issue commands, the signed payload is first verified on the server, then verified again on the agent itself.

This means that the agent doesn't implicitly trust anything coming from the server. It's able to independently verify all commands issued to it.

controlr1

controlr2

controlr3

controlr-d4.mp4

About

A zero-trust, cross-platform remote control prototype.

License:GNU General Public License v3.0


Languages

Language:C# 58.4%Language:TypeScript 18.8%Language:HTML 14.4%Language:JavaScript 5.1%Language:CSS 2.0%Language:PowerShell 1.3%Language:Batchfile 0.0%