Identity of software is authenticated with hardware on a system. The
hardware may be accessible to the operating system, making the mechanisms
available to software makers. The identity of the software may be
authenticated using fundamental properties of the software itself,
providing greater security than merely relying on transferable
identifiers, for example, keys.