Estoy tratando de entender el esquema de almacenamiento interno utilizado por los HSM para almacenar las claves privadas. Mi pregunta es: ¿están las claves almacenadas en texto sin formato dentro de un HSM? ¿Hay variaciones?
Cada HSM será una implementación única.
Sé que el coprocesador criptográfico IBM PCIe almacena claves maestras dentro del HSM, que se utilizan para descifrar las claves que se mantienen encriptadas en una base de datos externa. La versión anterior usaba 3DES para cifrar las claves; No sé si V2 todavía usa 3DES o si están usando AES ahora. Al manipular el HSM (o incluso violar su envolvente ambiental de temperatura y humedad) se destruyen de forma segura las claves y los certificados internos, y se vuelve el HSM físicamente inoperable.
Los HSM económicos, como un teclado PIN que encontrarás en la tienda de comestibles, mantienen su estado clave en la memoria RAM con respaldo de batería. Tenga en cuenta que debido a que las almohadillas PIN están en mostradores donde pueden ser robadas o manipuladas, no se confía en ellas con una clave "maestra" que sea la misma para todas las almohadillas PIN. En su lugar, siguen un protocolo de generación de claves llamado Clave única derivada por transacción (DUKPT). DUKPT especifica que cada almohadilla tiene una clave única inyectada en una instalación segura antes de ser enviada a las tiendas. La clave exclusiva del teclado PIN se deriva de la clave maestra base del sistema y el número de serie del teclado PIN, y DUKPT implementa un esquema de generación de "clave futura", que rota continuamente hacia adelante con cada uso, destruyendo las claves antiguas a medida que avanza. Intentar violar el caso resultará en que la CPU codifique rápidamente la memoria RAM y luego reduzca el poder, borrando el estado de la clave del futuro.
Estoy seguro de que otros HSM tienen diferentes variaciones en el tema, pero todos se comportan de manera similar de autoprotección.