@mjg59 To be sure I understand, you want a small VM and a big VM. The big VM gets all the hardware minus what’s needed to run the hypervisor and the small VM. Communications between the big VM and the small VM are strictly controlled in both directions such that neither can interfere with the other.
What sort of thing are you trying to do with this small VM?
This sounds kind of like what a TPM is for, or maybe a BMC/SMC/LOM.
@mjg59 So the small VM would own the physical link to the biometric reader, then provide its own attestation about the biometric reader’s attestation it was presented an authentic biometric?
Hmm. I’m not sure I know of a way to do that in software. Decent biometric readers should already use asymmetric keys, though. It should be possible to get a secure element like a TPM or smart card to only unlock a stored key when presented with a valid signature from the reader’s private key.
@nicolas17 @mjg59 Exactly. I know Touch ID and Face ID work like that, and I know at least some root-of-trust devices from other vendors allow the same style of operation. I can’t recall the specifics because I don’t often deal with such devices.
A smart card could definitely do it, what with the ability to run Java applets directly on the secure element. You would “just” need to find or create an applet to take the biometric reader’s attestation, verify the signature, and unlock the relevant key.