Una HSM es como una gran tarjeta inteligente. Almacena claves criptográficas y realiza operaciones criptográficas en nombre de algún sistema externo; sin embargo, está diseñado para nunca permitir la extracción de las claves privadas que contiene, incluso si el atacante tiene acceso físico a la máquina.
La ganancia de seguridad real de un HSM no es tan grande como se suele suponer. Un atacante que piratee el sistema externo, al que se le permite solicitar operaciones criptográficas al HSM, puede hacer lo mismo. Si el HSM almacena una clave de firma, entonces el atacante podrá firmar a voluntad. Sin embargo, dado que el HSM no permitirá la extracción de la clave privada, evitará que el atacante se retire a su guarida con la clave. Esto implica que el atacante podrá usar la clave privada solo mientras mantenga el control del sistema externo; o tal vez el atacante agarró físicamente el HSM y se escapó con él, pero, de nuevo, no será discreto. En cierto modo, HSM está ahí para derrotar algunos tipos de amenazas persistentes avanzadas: si se produce un compromiso clave, terminará pronto o, de lo contrario, lo sabrá.
Algunos HSM son programables, y puede insertar parte de la lógica de la aplicación en el HSM, bajo la protección del blindaje del hardware. Conceptualmente, esto permite una seguridad mucho mejor, pero requiere un desarrollo específico que no es fácil (las entrañas de un HSM no son ni un sistema operativo típico de Unix con todas sus características; es mucho más barebone).