Conservación segura
Introducción
Las API del módulo Custodia están diseñadas para facilitar la gestión de los secretos custodiados, también conocidos como Parámetros Críticos de Seguridad (CSP).
Dentro del módulo Safe Keeping, es posible llevar a cabo la custodia compartida de secretos almacenados en el HSM. Estos secretos se generan con alta seguridad, en hardware homologado, garantizando una alta entropía y protección frente a diversos ataques, incluidos los de canal lateral.
Arquitectura
El módulo de mantenimiento de la seguridad funciona en 3 fases.
- Generar secretismo;
- Dividirlas partes del secreto utilizando el algoritmo deShamir para compartir secretos;
- Recuperación del secreto a partir de las piezas generadas en el paso anterior.
Generar secreto
En esta fase, el secreto se genera en una partición (usuario) del HSM, de forma segura y con alta entropía, y sólo existe en el HSM.
Cada partición tiene autenticación de credenciales con un nombre de usuario y una contraseña, y opcionalmente se puede configurar autenticación adicional, como por ejemplo:
- M de N de partición;
- 2fA con tokens OTP (One Time Password) en el formato OATH;
- 2fA con certificados X.509;
Puede combinar uno o más tipos de autenticación de partición según sea necesario.
El secreto puede generarse en función de varios niveles de seguridad y de las necesidades del proyecto. Debe elegirse con cuidado para que el nivel de seguridad sea equivalente en otros puntos del proyecto. Un nivel de seguridad demasiado bajo puede debilitar la seguridad de los datos que se protegen, mientras que un nivel de seguridad demasiado alto puede ralentizar innecesariamente las operaciones.
Consulte el cuadro siguiente para hacerse una idea.
Nivel de seguridad | Tamaño en bytes | Cantidad física correspondiente |
---|---|---|
64 bits | 8 | Granos de arena en la Tierra. |
96 bits | 12 | Los átomos en el cuerpo humano. |
112 bits | 14 | Diámetro del universo observable en milésimas de milímetro. |
128 bits | 16 | Átomos de oxígeno en la atmósfera terrestre. |
160 bits | 20 | Átomos en la Tierra. |
Dividir el secreto
En esta etapa, laspartes del secreto se dividen utilizando el algoritmo de Shamir(Shamir Shared Secret) en el esquema M de N.
El esquema M de N significa que a partir de un grupo de N partes, se necesitan M partes para recomponer el secreto.
Las partes, también conocidas como acciones o sombras, se generan de tal forma que es imposible recomponer el secreto con menos de M partes.
La generación de piezas suele hacerse en una ceremonia, en la que cada pieza se distribuye a un miembro de la organización y se almacena de forma segura. De este modo se evita la connivencia entre los miembros de la organización. La forma en que se distribuyen las piezas, la elección de los miembros y otros detalles de la ceremonia se definen en función de cada empresa.
Las partes son ligeramente más grandes que el nivel de seguridad porque contienen metadatos del esquema M de N. Cada parte está disponible en formato Base62 para facilitar la anotación.
Nota
Se recomienda generar sumas de comprobación para cada parte en este punto. Esto facilita la comprobación de la tipificación de las partes en el momento de la recuperación.
Recuperar el secreto
El secreto se recompone utilizando M de las N partes generadas en el paso anterior.
En este caso, se celebra una ceremonia de recuperación del secreto. Es necesario que cada custodio (titular de una acción) introduzca su acción para recuperar el secreto. Esta ceremonia se define en función de cada acuerdo.
El secreto varía de tamaño en función del nivel de seguridad utilizado, y está disponible en formato Base62 para facilitar las anotaciones.
Nota
Se recomienda comprobar las sumas de comprobación de cada parte en este punto. Esto evita errores de escritura en un momento crítico.
Conservación segura de API
Documentación específica de la API para el módulo "Custodia segura", con funciones, clases y ejemplos.
-
C/C++