-
-
Notifications
You must be signed in to change notification settings - Fork 24
Networking

Version 2 of the network architecture identifies devices using their unique computer ID's rather than the channel they are configured to use. This allows using only 5 channels for the whole system, which are common across all the configured devices. The default channels are shown in the diagram above. On multiplayer servers, it is highly encouraged (and necessary if there is more than one system) to not use the default channels, as having two systems on the same network will cause undesirable behavior, such as devices linking to the wrong system.
Message authentication is a user-configurable feature that's enabled if an authentication key is provided. Please DO NOT USE A PASSWORD THAT YOU ACTUALLY USE FOR ANYTHING ELSE! Do note that facility authentication keys are not securely stored, so anyone with access to the server's file system or the computer can view them. Note, computing hashes and serializing the messages takes some additional processing time, though it appears to be worst case in the 10s of milliseconds. Coordinator status packets are the largest, so those take the longest, giving those 10-20ms hash/verify times.
From Wikipedia: https://en.wikipedia.org/wiki/HMAC
In cryptography, an HMAC (sometimes expanded as either keyed-hash message authentication code or hash-based message authentication code) is a specific type of message authentication code (MAC) involving a cryptographic hash function and a secret cryptographic key. As with any MAC, it may be used to simultaneously verify both the data integrity and authenticity of a message.
HMAC can provide authentication using a shared secret instead of using digital signatures with asymmetric cryptography. It trades off the need for a complex public key infrastructure by delegating the key exchange to the communicating parties, who are responsible for establishing and using a trusted channel to agree on the key prior to communication.
In this case, this prevents message forgery, which then prevents false status information, unauthorized commands, etc.
If you need help beyond this wiki, open a support discussion or ask on Discord! If you prefer videos, they can be found on my YouTube channel.
- User Manual
- Computer Applications
- Notable System Components
- Notes
- Investigations
- References & Resources
- Legacy