Telling machines apart from the KVM side

Claim. A KVM can notice that the machine behind it has changed, and can rule machines out. On its own it cannot reliably name one machine out of many. A picture hash fails at this; the layout of the text on the screen does better. These are first measurements on two machines with two different KVMs, not an accuracy figure.

Method. A Mini PC running Ubuntu, watched through a GL.iNet Comet, and a Raspberry Pi running Ubuntu, watched through a Sipeed NanoKVM. Twelve samples were taken from each, a few seconds apart, using only what the KVM itself reports and one picture: the video mode, whether the machine accepted the KVM's USB keyboard, the keyboard LED state, and the screen. Nothing was sent to either machine. 255 stored pictures from a third machine were added as distractors. Half of each machine's samples were stored, and the other half were then identified.

What the KVMs report.

Result.

What the USB link gives.

Prior work. Identifying a host from its USB behaviour has been studied. Bates, Leonard, Pruse, Lowd and Butler (NDSS 2014) collected data on over 250 machines using a device that plays the part of the USB peripheral. They reported upwards of 90% accuracy for the operating system, manufacturer and model within tenths of a second, 100% for detecting a hypervisor, and 70% of a field of 30 identical machines uniquely identified over longer observation. Coverage was incomplete: for a set of identical iMacs it was 44%, and the authors say the approach did not yet have enough coverage for general deployment. Their method uses the timing of the host's USB requests, which the software on these KVMs does not expose. Keyboard-firmware and Rubber Ducky projects use a simpler form of the same idea to guess the operating system. We found no published measurement on an IP-KVM.

Sample size. Two machines, two KVMs, 12 samples each, 10 LED round trips each, plus 255 pictures of a third machine. Search results can miss prior work; this list is not a survey.

Not tested. Stability across a reboot. Different screen states of one machine (login, shell, firmware setup). Machines with a graphical desktop. Machines with identical hostnames and banners. The gadget state the KVM's USB controller keeps (whether the host is asleep, off, or configured), which needs a shell on the KVM. A controlled change to what the machine sees (a different display description, a USB reconnect). Any other KVM.

Limits.

Original record: read the Markdown source.