# FIPS





## ¿Qué es FIPS 140?

[FIPS 140](https://csrc.nist.gov/publications/detail/fips/140/3/final) es un estándar
del gobierno de los EE. UU. que define los requisitos de seguridad para los módulos
criptográficos que protegen la información confidencial. Se utiliza ampliamente en
entornos regulados como el sector público, el de la salud y los servicios financieros.

La certificación FIPS está gestionada por el [NIST Cryptographic Module Validation
Program (CMVP)](https://csrc.nist.gov/projects/cryptographic-module-validation-program),
que garantiza que los módulos criptográficos cumplan con rigurosos estándares de seguridad.

## Por qué es importante el cumplimiento de FIPS

El cumplimiento de FIPS 140 es obligatorio o se recomienda encarecidamente en muchos
entornos regulados donde se debe proteger la información confidencial, como en el
gobierno, el sector salud, las finanzas y la defensa. Estos estándares garantizan que las
operaciones criptográficas se realicen utilizando algoritmos evaluados y de confianza
implementados en módulos seguros.

El uso de componentes de software que dependen de módulos criptográficos validados ayuda a
las organizaciones a:

- Satisfacer los mandatos federales y de la industria, como FedRAMP, que exigen o
  recomiendan encarecidamente la criptografía validada por FIPS 140.
- Demostrar la preparación para las auditorías, con pruebas verificables de prácticas
  criptográficas seguras y basadas en estándares.
- Reducir el riesgo de seguridad, al bloquear algoritmos no aprobados o inseguros (por ejemplo, MD5)
  y garantizar un comportamiento consistente en todos los entornos.

## Cómo admiten el cumplimiento de FIPS las Docker Hardened Images

Aunque las Docker Hardened Images están disponibles para todo el mundo, la variante FIPS
requiere una suscripción de pago de Docker Hardened Images.

Las Docker Hardened Images (DHI) incluyen variantes que utilizan módulos criptográficos
validados bajo FIPS 140. Estas imágenes tienen como objetivo ayudar a las organizaciones a
cumplir con los requisitos de conformidad al incorporar componentes que se ajustan al estándar.

- Las variantes de imagen FIPS utilizan módulos criptográficos que ya están validados bajo
  FIPS 140.
- Estas variantes son construidas y mantenidas por Docker para dar soporte a entornos con
  necesidades regulatorias o de cumplimiento.
- Docker proporciona atestaciones de prueba firmadas que documentan el uso de módulos
  criptográficos validados. Estas atestaciones pueden respaldar las auditorías internas y los
  informes de cumplimiento.
- Las fuentes de entropía (generación de números aleatorios para operaciones criptográficas)
  varían según la imagen base. Las imágenes basadas en Debian utilizan la fuente de entropía
  de OpenSSL, mientras que las imágenes basadas en Alpine obtienen la entropía del kernel
  del host.

> [!NOTE]
>
> El uso de una variante de imagen FIPS ayuda a cumplir con los requisitos de conformidad,
> pero no hace que una aplicación o sistema sea completamente conforme. El cumplimiento
> depende de cómo se integre y utilice la imagen dentro del sistema general.

## Identificar imágenes compatibles con FIPS

Las Docker Hardened Images compatibles con FIPS están marcadas como conformes con **FIPS**
en el catálogo de Docker Hardened Images.

Para encontrar repositorios DHI con variantes de imagen FIPS, [busca en el catálogo](/dhi/how-to/explore/) y:

- Utiliza el filtro **FIPS** en la página del catálogo
- Busca la indicación de conformidad con **FIPS** en los listados de imágenes individuales

Estos indicadores te ayudan a localizar rápidamente los repositorios que admiten necesidades de
cumplimiento basadas en FIPS. Las variantes de imagen que incluyen soporte FIPS tendrán una
etiqueta que termina en `-fips`, como `3.13-fips`.

## Utilizar una variante FIPS

Para utilizar una variante FIPS, debes [replicar (mirror)](/dhi/how-to/mirror/) el repositorio
y luego descargar la imagen FIPS desde tu repositorio replicado.

## Visualizar la atestación FIPS

Las variantes FIPS de las Docker Hardened Images contienen una atestación FIPS que detalla
los módulos criptográficos reales incluidos en la imagen.

Puedes recuperar e inspeccionar la atestación FIPS utilizando la CLI de Docker Scout:

```console
$ docker scout attest get \
  --predicate-type https://docker.com/dhi/fips/v0.1 \
  --predicate \
  dhi.io/<image>:<tag>
```

Por ejemplo:

```console
$ docker scout attest get \
  --predicate-type https://docker.com/dhi/fips/v0.1 \
  --predicate \
  dhi.io/python:3.13-fips
```

El resultado de la atestación es un array JSON que describe los módulos criptográficos
incluidos en la imagen y su estado de cumplimiento. Por ejemplo:

```json
[
  {
    "certification": "CMVP #4985",
    "certificationUrl": "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4985",
    "name": "OpenSSL FIPS Provider",
    "package": "pkg:dhi/openssl-provider-fips@3.1.2",
    "standard": "FIPS 140-3",
    "status": "active",
    "sunsetDate": "2030-03-10",
    "version": "3.1.2"
  }
]
```
