¿Cómo se restringe el acceso a HSM?

6

En el backend, si uso un HSM (o incluso tengo la clave maestra en un servidor físico), necesito realizar operaciones con esa clave. Eso significa que el servidor de aplicaciones llamará al HSM (o servidor de claves). ¿Cuál es la práctica habitual de autenticar llamadas al HSM? Al leer alrededor, generalmente se hace a través de un par de claves que el HSM firma / conoce. Pero si el servidor de la aplicación se ve comprometido, entonces un atacante podría transmitir los mensajes y realizar las operaciones utilizando el HSM y obtener datos válidos. Creo que esto es lo que se espera y está a la par del curso, cuando el servidor en sí está comprometido.

Entiendo que la idea principal detrás del uso de HSM es proteger la clave. Pero, ¿hay mucho pensamiento / esfuerzo puesto en identificar el acceso comprometido a HSM / Keyservers?

    
pregunta user220201 26.09.2016 - 20:50
fuente

1 respuesta

4

Esto se puede lograr de muchas maneras. El control de acceso más simple a un HSM es un botón físico. Entonces, si un malware compromete la computadora host, alguien todavía debe estar físicamente presente para presionar el botón para que el HSM haga cualquier cosa.

Entonces, tiene una amplia gama de protección de acceso diferente, que va desde verificar el software en el servidor host "externamente" hasta requerir un PIN (que el propio servidor borrará si se encuentra comprometido).

Un HSM también puede limitar las operaciones en una clave. Por ejemplo, solo permita que se use una clave para firmar y no descifrar, por ejemplo. O requiera formatos específicos en los datos de entrada que se están firmando o descifrando.

Otra cosa que un HSM puede imponer es la limitación de velocidad, tanto para intentos de autenticación como para operaciones. Un servidor que generalmente descifra permite decir que 1 mensaje por 15 minutos puede configurarse para limitarse a un máximo de 1 mensaje por 10 minutos, lo que reduciría la utilidad del acceso HSM desde un servidor comprometido.

Sin embargo, el objetivo principal de un HSM no es limitar el acceso al HSM en sí. El objetivo principal de un HSM es garantizar que la clave en sí misma, nunca abandone el HSM. Aquí va desde un HSM simple que solo permitirá el acceso a través de una interfaz simple, pero no tendrá ninguna función que evite ataques / ataques físicos, y el otro extremo de la escala son HSM muy avanzados que pueden resistir un ataque incluso si un adversario tiene acceso físico no controlado al HSM durante mucho tiempo.

Para hacer una analogía:

Imagínate a ti mismo: Si alguien pudo usar la llave de tu auto una vez, ¿importa? ¿Está su carro comprometido? No, porque la llave de tu carro no fue copiada. El adversario obtuvo un acceso único a su automóvil. Tan pronto como haya recuperado el control de la llave del auto, la llave del auto es completamente segura y de uso seguro.

Pero si alguien COPIA la llave del auto, está efectivamente comprometida y necesita ser reemplazada.

Imagina lo mismo con las claves de cifrado. Algunas claves de cifrado pueden ser difíciles o incómodas de reemplazar, y el proceso de reemplazo puede ser vulnerable a un compromiso permanente e irrevocable si el proceso de reemplazo involucra la clave comprometida. (Ejemplo: un atacante usa la clave comprometida para iniciar el proceso de reemplazo de su propia clave. Si el sistema de administración de claves se distribuye y no se administra, la empresa o el individuo han perdido el acceso de forma permanente a ese registro).

Aquí, un HSM también puede contener una funcionalidad para evitar que se firmen los datos correspondientes para iniciar el proceso de reemplazo (certificado de revocación, etc.) a menos que se ingrese un PIN específico, uno que el servidor no conozca.

    
respondido por el sebastian nielsen 26.09.2016 - 22:59
fuente

Lea otras preguntas en las etiquetas