Red Hat Training

A Red Hat training course is available for RHEL 8

9.12. Implantación de sistemas NBDE de alta disponibilidad

Tang ofrece dos métodos para construir un despliegue de alta disponibilidad:

Redundancia de clientes (recomendada)
Los clientes deben estar configurados con la capacidad de vincularse a múltiples servidores Tang. En esta configuración, cada servidor Tang tiene sus propias claves y los clientes pueden descifrar contactando con un subconjunto de estos servidores. Clevis ya soporta este flujo de trabajo a través de su plug-in sss. Red Hat recomienda este método para un despliegue de alta disponibilidad.
Compartir las llaves
Por motivos de redundancia, se puede desplegar más de una instancia de Tang. Para configurar una segunda instancia o cualquier instancia posterior, instale los paquetes tang y copie el directorio de claves al nuevo host utilizando rsync sobre SSH. Tenga en cuenta que Red Hat no recomienda este método porque compartir claves aumenta el riesgo de compromiso de las mismas y requiere una infraestructura de automatización adicional.

9.12.1. NBDE de alta disponibilidad utilizando el secreto compartido de Shamir

La compartición de secretos de Shamir (SSS) es un esquema criptográfico que divide un secreto en varias partes únicas. Para reconstruir el secreto, se requiere un número de partes. El número se denomina umbral y el SSS también se conoce como esquema de umbralización.

Clevis proporciona una implementación de SSS. Crea una clave y la divide en un número de piezas. Cada trozo es encriptado usando otra clavija incluyendo incluso SSS recursivamente. Además, define el umbral t. Si un despliegue de NBDE descifra al menos t piezas, entonces recupera la clave de cifrado y el proceso de descifrado tiene éxito. Cuando Clevis detecta un número de piezas inferior al especificado en el umbral, imprime un mensaje de error.

9.12.1.1. Ejemplo 1: Redundancia con dos servidores Tang

El siguiente comando descifra un dispositivo cifrado con LUKS cuando al menos uno de los dos servidores Tang está disponible:

# clevis luks bind -d /dev/sda1 sss '{"t":1,"pins":{"tang":[{"url":"http://tang1.srv"},{"url":"http://tang2.srv"}]}}'

El comando anterior utilizaba el siguiente esquema de configuración:

{
    "t":1,
    "pins":{
        "tang":[
            {
                "url":"http://tang1.srv"
            },
            {
                "url":"http://tang2.srv"
            }
        ]
    }
}

En esta configuración, el umbral de SSS t se establece en 1 y el comando clevis luks bind reconstruye con éxito el secreto si al menos uno de los dos servidores de la lista tang está disponible.

9.12.1.2. Ejemplo 2: Secreto compartido en un servidor Tang y un dispositivo TPM

El siguiente comando descifra con éxito un dispositivo cifrado con LUKS cuando tanto el servidor tang como el dispositivo tpm2 están disponibles:

# clevis luks bind -d /dev/sda1 sss '{"t":2,"pins":{"tang":[{"url":"http://tang1.srv"}], "tpm2": {"pcr_ids":"0,1"}}}'

El esquema de configuración con el umbral SSS 't' fijado en '2' es ahora:

{
    "t":2,
    "pins":{
        "tang":[
            {
                "url":"http://tang1.srv"
            }
        ],
        "tpm2":{
            "pcr_ids":"0,1"
        }
    }
}

Recursos adicionales

  • Para más información sobre la configuración recomendada de alta disponibilidad de NBDE, consulte las siguientes páginas de manual:

    • tang(8), sección High Availability
    • clevis(1), sección Shamir’s Secret Sharing
    • clevis-encrypt-sss(1)