How do software companies ensure that their product or app can only run in a given number of bare-metal or VM instances? I'm curious about the cryptography behind the scenes. What prevents a user from cloning the application indefinitely in a cloud environment?
In a virtualized environment, since the application could move around datacenters (with VM migration) binding the license to attributes like the IP or MAC could invalidate the license, which isn't the right behavior either.