Listas de revocación (CRL)
Genera y distribuye listas firmadas para validar certificados sin conexión.
Servicio CRL
Una CRL (Certificate Revocation List) es una lista firmada que contiene los números de serie de los certificados revocados antes de su fecha de caducidad. A diferencia de OCSP, no requiere una consulta en tiempo real: la parte que confía descarga la lista periódicamente y la consulta de forma local.
Lamassu genera y mantiene una CRL por cada CA que gestiona. Cada CRL está firmada con la clave privada de la propia CA emisora y se almacena en el sistema de almacenamiento de objetos configurado en la plataforma.
Rol VA y configuración por CA
La publicación de la CRL de cada CA se controla mediante un rol VA. Este objeto define cómo se genera, cuándo se regenera y qué clave se utiliza para firmarla.
Los parámetros principales son:
| Parámetro | Valor por defecto | Descripción |
|---|---|---|
validity | 7 días | Período de validez de cada CRL emitida, reflejado en el campo nextUpdate. |
refresh_interval | ~6 días y 23 horas | Intervalo mínimo entre regeneraciones periódicas programadas. |
regenerate_on_revoke | true | Cuando se revoca un certificado, se genera una nueva CRL de inmediato sin esperar al ciclo periódico. |
El campo subject_key_id_signer identifica la CA cuya clave privada firma la CRL. Por defecto, cada CA firma su propia CRL.
Cada CRL lleva un número de versión incremental. Lamassu almacena todas las versiones en la ruta pki/va/crl/{subject_key_id}/{version}.crl del almacenamiento de objetos.
Regeneración periódica y automática
Un proceso en segundo plano supervisa los roles VA activos. Cuando la validez restante de la CRL vigente cae por debajo del período de vigilancia configurado (blind period), el sistema solicita la generación de una nueva CRL. Así se evita que la CRL publicada caduque sin que exista una versión válida disponible.
Además, cuando regenerate_on_revoke está activo, que es el comportamiento por defecto, cualquier revocación de un certificado desencadena inmediatamente la generación de una nueva CRL para la CA afectada. Esto reduce al mínimo el tiempo entre la revocación y su publicación.
Contenido de la CRL
Cada entrada de la CRL incluye el número de serie del certificado revocado, la fecha de revocación y el código de razón conforme a RFC 5280.
La CRL incluye también la extensión Issuing Distribution Point (IDP, OID 2.5.29.28), marcada como crítica, que indica la URL pública desde la que puede descargarse. Esa URL apunta al endpoint /crl/{subject_key_id} de cada dominio VA configurado.
Endpoint público de descarga
La CRL más reciente de una CA se puede obtener directamente sin autenticación:
curl https://<LAMASSU_HOST>/crl/<CA_SUBJECT_KEY_ID> -o ca.crlLa respuesta tiene Content-Type: application/pkix-crl y contiene la CRL en formato DER.
API de gestión del rol VA
El rol VA de una CA se puede consultar y actualizar mediante la API:
| Método | Ruta | Descripción |
|---|---|---|
GET | /v1/roles/{ca-ski} | Devuelve la configuración del rol VA y los metadatos de la última CRL emitida. |
PUT | /v1/roles/{ca-ski} | Actualiza los parámetros de la configuración del rol VA (validity, refresh_interval, regenerate_on_revoke). |
Ejemplo de consulta del rol VA:
curl https://<LAMASSU_HOST>/v1/roles/<CA_SUBJECT_KEY_ID> \
-H "Authorization: Bearer <TOKEN>"La respuesta incluye el campo latest_crl con la versión, la fecha de inicio de validez y la fecha de caducidad de la CRL actualmente publicada.
Desde la interfaz
Desde el panel de detalle de una CA es posible previsualizar el contenido de la CRL activa y descargarla directamente para su uso offline o para importarla en aplicaciones que realicen validación local.
Referencias
- RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile