Security
How each connection is authorised, what the server sees, and the cases AegiDesk does not protect against.
Consent
Every connection asks the person at the computer. The default button is Deny, and a request with no answer in 60 seconds is refused. The dialog shows who is asking and whether the device is new or known. A remembered device still has to be accepted on every connection.
In pre-release While someone is connected, the computer shows a notice that stays on top, with a button to end the session.
In pre-release Mouse and keyboard control is a separate permission, asked in the same dialog, and can be taken back at any time. The person at the computer has priority over the remote mouse and keyboard.
Verification code
Both screens show the same 6-digit code. If they differ, someone may be intercepting the request: do not accept, and disconnect.
Each computer fixes its part of the code before it learns the other part. Someone trying to intercept the connection cannot pick a code that matches on both screens.
Encryption and identity
Both computers prove their identity with Ed25519 keys, over TLS 1.3 on QUIC. The connection is end-to-end encrypted and there is no unencrypted mode. If the identity of a known computer changes, AegiDesk warns you and stops the connection.
The server In pre-release
To connect by ID outside the local network, the server only introduces devices to each other and relays encrypted data it cannot read. On a local network no server is needed.
The server takes no part in checking identities. Each computer checks the other’s key, and the verification code must match even when the connection goes through the server.
What is recorded
Requests, accepted or refused, and sessions are recorded on the computer being shared.
Known limits
AegiDesk does not protect against these cases:
- attacks that need code already running as the same Windows user;
- physical access to an unlocked computer;
- social engineering that gets the computer’s owner to click Allow;
- denial of service by flooding the network.
There are no stable releases yet. The protocol and the format of stored data may change between pre-releases.
Report a vulnerability
Do not disclose the issue in public. Use private vulnerability reporting and include the affected version, the issue and its impact, and how to reproduce it, without destructive payloads.
Open the private form on GitHub
Response targets: acknowledgement in 7 days, initial assessment in 14 days, fix or mitigation for high or critical issues in 30 days.