Most of what I have seen on mutiifactor authentication (eg wikipedia or here on se) seems human centric. Ie it is a human interacting with a machine and the factors are associated with authenticating the identity of the human to the machine. The factors are related to a person:
- something you know (pin, passwords, etc)
- something you have (tokens, cellphone, etc)
- something you are (speech recognition, fingerprints, etc
- somewhere you are (location - you are where you should be, or you are somewhere 'out of place' or 'less trusted')
If all of these, "you" is a person. Single factor authentication is generally 'something you know' and is considered less secure nowadays because of the prevalence of keyloggers, malware, dictionary attacks, as well as all the exploits against the server holding the password. So the security community has come up with these other factors to reduce the risk.
Are there multi-factors for machine to machine communication? Most of our machines communicate via ssh and are 'single factor' (something the machine "knows"). Because it's a machine, 'strong' keys (ie long ones) are used. Because of their length, they are less prone to dictionary attacks. However it is still 'single factor' - once you know the password, the system can be compromised.
Iptables and firewall rules could be considered a second factor akin to 'somewhere you are'. Proper restrictions could help limit the attack surface.
@tom-leek points out the difference between "the threat to a person is impersonation" and "the threat to a machine is subversion". Once a computer is subverted, "what a computer can do, it can do". I am interested in ripple beyond that original subverted computer. Even if I destroy the subverted computer (easy enough to do in a cloud application), the attacker still knows the ssh keys and can use them from other machines (ie it is an impersonation threat). I believe the standard way to mitigate this would be to repudiate that public ssh key. This ripples into many other machines and I was wondering if there were other factors to help with the 'impersonation' threat.
What other 'factors' are there in machine-to-machine authentication?