Citrix ADC

Herramienta de cifrado OTP

A partir de la versión 13.0 compilación 41.20 de Citrix ADC, los datos secretos de OTP se almacenan en un formato cifrado en lugar de texto sin formato para una mayor seguridad. El almacenamiento del secreto OTP en formato cifrado es automático y no requiere intervención manual.

Anteriormente, el dispositivo Citrix ADC almacenaba el secreto OTP como texto sin formato en el directorio activo. Almacenar el secreto OTP en un formato de texto sin formato planteaba una amenaza para la seguridad, ya que un atacante malintencionado o un administrador podían explotar los datos al ver el secreto compartido de otros usuarios.

La herramienta de cifrado OTP ofrece las siguientes ventajas:

  • No provoca ninguna pérdida de datos, incluso si tiene dispositivos antiguos que utilizan un formato antiguo (texto sin formato).
  • La compatibilidad con versiones anteriores de Citrix Gateway ayuda a integrar y admitir los dispositivos existentes, junto con el nuevo dispositivo.
  • La herramienta de cifrado OTP ayuda a los administradores a migrar todos los datos secretos de OTP de todos los usuarios a la vez.

Nota La

herramienta de cifrado OTP no cifra ni descifra los datos de registro de KBA ni de registro de correo electrónico.

Usos de la herramienta de cifrado OTP

La herramienta de cifrado OTP se puede utilizar para lo siguiente:

  • Cifrado. Guarde el secreto OTP en formato cifrado. La herramienta extrae los datos OTP de los dispositivos registrados en Citrix ADC y, a continuación, convierte los datos OTP en formato de texto sin formato a formato cifrado.
  • Descifrado. Revierte el secreto OTP al formato de texto sin formato.
  • Actualizar certificados. Los administradores pueden actualizar el certificado a un nuevo certificado en cualquier momento. Los administradores pueden utilizar la herramienta para introducir el nuevo certificado y actualizar todas las entradas con los nuevos datos del certificado. La ruta de certificado debe ser una ruta absoluta o relativa.

Importante

  • Debe habilitar el parámetro de cifrado en el dispositivo Citrix ADC para usar la herramienta de cifrado OTP.
  • Para los dispositivos registrados con Citrix ADC antes de la compilación 41.20, debe realizar lo siguiente:
    • Upgrade the 13.0 Citrix ADC appliance to 13.0 build 41.20.
    • Enable the encryption parameter on the appliance.
    • Use the OTP Secret migration tool to migrate OTP secret data from plain text format to encrypted format.

Datos secretos OTP en formato de texto sin formato

Ejemplo:

#@devicename=<16 or more bytes>&tag=<64bytes>&,

Como puede ver, el patrón inicial de un formato antiguo siempre es “#@” y el patrón final siempre es “&”. Todos los datos entre "devicename=" y el patrón final constituyen datos OTP del usuario.

Datos secretos OTP en formato cifrado

El nuevo formato cifrado de los datos OTP tiene el siguiente formato:

Ejemplo:

    {
         "otpdata”: {
         “devices”: {
                        “device1”: “value1”,
                        “device2”: “value2”, …
                    }
            }
    }
<!--NeedCopy-->

Donde, value1 es el valor codificado en base64 de los datos de cifrado kid + IV +

Los datos cifrados se estructuran de la siguiente manera:

    {
      secret:<16-byte secret>,
      tag : <64-byte tag value>
      alg: <algorithm used> (not mandatory, default is sha1, specify the algorithm only if it is not default)
    }
<!--NeedCopy-->
  • En “dispositivos”, tiene valor para cada nombre. El valor es base64encode(kid).base64encode(IV).base64encode(cipherdata).
  • En los algoritmos AES estándar, IV siempre se envía como los primeros 16 bytes o 32 bytes de datos cifrados. Puede seguir el mismo modelo.
  • La IV es diferente para cada dispositivo, aunque la clave sigue siendo la misma.

Configuración de la herramienta de cifrado OTP

La herramienta de cifrado OTP se encuentra en el directorio \var\netscaler\otptool. Debe descargar el código de la fuente de Citrix ADC y ejecutar la herramienta con las credenciales de AD requeridas.

  • Requisitos previos para usar la herramienta de cifrado OTP:
    • Instale python 3.5 o una versión superior en el entorno en el que se ejecuta esta herramienta.
    • Instala pip3 o versiones posteriores.
  • Ejecute los comandos siguientes:
    • pip instala requirements.txt. Instala automáticamente los requisitos
    • python main.py que es. Invoca la herramienta de cifrado OTP. Debe proporcionar los argumentos requeridos según su necesidad de migración de datos secretos OTP.
  • La herramienta se puede ubicar en \var\netscaler\otptool desde el símbolo del shell.
  • Ejecute la herramienta con las credenciales de AD requeridas.

Interfaz de herramienta de cifrado OTP

La siguiente ilustración muestra una interfaz de herramienta de cifrado OTP de ejemplo. La interfaz contiene todos los argumentos que se deben definir para la actualización de cifrado/descifrado/certificado. Además, se captura una breve descripción de cada argumento.

argumento OPERATION

Debe definir el argumento OPERATION para utilizar la herramienta de cifrado OTP para el cifrado, el descifrado o la actualización de certificados.

En la siguiente tabla se resumen algunos de los casos en los que se puede utilizar la herramienta de cifrado OTP y los valores de los argumentos OPERATION correspondientes.

Caso Valor del argumento de operación y otros argumentos
Convierta el secreto OTP de texto sin formato a formato cifrado en el mismo atributo Introduzca el valor del argumento OPERATION como 0 y proporcione el mismo valor para el atributo de origen y de destino. Ejemplo: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute unixhomedirectory -operation 0 -cert_path aaatm_wild_all.cert
Convierta el secreto OTP de texto sin formato a formato cifrado en un atributo diferente Introduzca el valor del argumento OPERATION como 0 y proporcione los valores correspondientes para el atributo de origen y de destino. Ejemplo: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 0 -cert_path aaatm_wild_all.cert
Convertir las entradas cifradas de nuevo en texto sin formato Introduzca el valor del argumento OPERATION como 1 y proporcione los valores correspondientes para el atributo de origen y de destino. Ejemplo: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1 -cert_path aaatm_wild_all.cert
Actualizar el certificado a un certificado nuevo Introduzca el valor del argumento OPERATION como 2 y proporcione todos los detalles del certificado anterior y del nuevo certificado en los argumentos correspondientes. Ejemplo: python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

Argumento CERT_PATH

El argumento CERT_PATH es un archivo que contiene el certificado que se utiliza en Citrix ADC para cifrar los datos. El usuario debe proporcionar este argumento para las tres operaciones, a saber, los certificados de **cifrado, descifradoy actualización**.

El archivo de argumentos CERT_PATH debe contener tanto el certificado como la clave privada asociada en el formato PEM o CERT (no se admite pfx).

Por ejemplo, si los archivos certificate.cert y certificate.key corresponden al archivo de certificado y su clave privada, en un sistema similar a Unix, el siguiente comando crea el archivo certkey.merged que se puede usar como valor para la marca cert_path.

$ cat certificate.cert certificate.key > certkey.merged
$
<!--NeedCopy-->

Puntos a tener en cuenta sobre el certificado

  • El usuario debe proporcionar el mismo certificado que está enlazado globalmente en el dispositivo Citrix ADC para el cifrado de datos del usuario.
  • El certificado debe contener el certificado público codificado en Base64 y su correspondiente clave privada RSA en el mismo archivo.
  • El formato del certificado debe ser PEM o CERT. El certificado debe adherirse al formato X509.
  • Esta herramienta no acepta el formato de certificado protegido por contraseña ni el archivo .pfx. El usuario debe convertir los certificados PFX en .cert antes de proporcionar los certificados a la herramienta.

argumento SEARCH_FILTER

El argumento SEARCH_FILTER se utiliza para filtrar los dominios o usuarios de AD. El formato de este filtro de búsqueda es el mismo que el formato del filtro de búsqueda LDAP utilizado en el comando de acción LDAP en el dispositivo Citrix ADC.

Habilitar la opción de cifrado en el dispositivo Citrix ADC

Para cifrar el formato de texto sin formato, debe habilitar la opción de cifrado en el dispositivo Citrix ADC.

Para habilitar los datos de cifrado OTP mediante la CLI, en el símbolo del sistema, escriba:

set aaa otpparameter [-encryption ( ON | OFF )]

Ejemplo:

set aaa otpparameter -encryption ON

Casos de uso de la herramienta de cifrado OTP

La herramienta de cifrado OTP se puede utilizar para los siguientes casos de uso.

Registre nuevos dispositivos con el dispositivo Citrix ADC versión 13.0 compilación 41.20

Cuando registra su nuevo dispositivo con el dispositivo Citrix ADC versión 13.0 compilación 41.x, y si la opción de cifrado está habilitada, los datos OTP se guardan en un formato cifrado. Puede evitar la intervención manual.

Si la opción de cifrado no está habilitada, los datos OTP se almacenan en formato de texto sin formato.

Migrar los datos OTP para los dispositivos registrados antes de la versión 13.0 compilación 41.20

Debe realizar lo siguiente para cifrar los datos secretos de OTP para los dispositivos que están registrados en el dispositivo Citrix ADC anterior a 13.0 compilación 41.20.

  • Use la herramienta de conversión para migrar datos OTP del formato de texto sin formato al formato cifrado.
  • Habilite el parámetro “Cifrado” en el dispositivo Citrix ADC.
    • Para habilitar la opción de cifrado mediante la CLI:
      • set aaa otpparameter -encryption ON
    • Para habilitar las opciones de cifrado mediante la GUI:
      • Vaya a Seguridad > AAA — Tráfico de aplicaciones y haga clic en Cambiar parámetro OTP AAA de autenticación en la sección Configuración de autenticación.
      • En la página Configurar parámetro OTP AAA, seleccione Cifrado secreto OTPy haga clic en Aceptar.
    • Inicie sesión con las credenciales de AD válidas.
    • Si es necesario, registre dispositivos adicionales (opcional).

Migrar datos cifrados del certificado antiguo al certificado nuevo

Si los administradores desean actualizar el certificado a un certificado nuevo, la herramienta ofrece una opción para actualizar las entradas de datos del nuevo certificado.

Para actualizar el certificado a un certificado nuevo mediante la CLI

En el símbolo del sistema, escriba:

Ejemplo:

python3 main.py -Host 192.0.2.1 –Port 636 -username ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 2 -cert_path aaatm_wild_all.cert –new_cert_path aaatm_wild_all_new.cert

Nota

  • Los certificados deben contener claves públicas y privadas.
  • Actualmente, la funcionalidad solo se proporciona para OTP.

Vuelva a cifrar o migrar a un nuevo certificado para los dispositivos registrados después de que el dispositivo se actualice a 13.0 compilación 41.20 con cifrado

El administrador puede usar la herramienta en los dispositivos que ya están cifrados con un certificado y puede actualizar ese certificado con un certificado nuevo.

Convertir los datos cifrados a formato de texto sin formato

El administrador puede descifrar el secreto OTP y revertirlo al formato de texto sin formato original. La herramienta de cifrado OTP explora todos los usuarios en busca del secreto OTP en formato cifrado y los convierte a formato descifrado.

Para actualizar el certificado a un certificado nuevo mediante la CLI

En el símbolo del sistema, escriba:

Ejemplo:

python3 main.py -Host 192.0.2.1 –Port 636 -username  ldapbind_user@aaa.local -search_base cn=users,dc=aaa,dc=local -source_attribute unixhomedirectory -target_attribute userparameters -operation 1
<!--NeedCopy-->

Solución de problemas

La herramienta genera los siguientes archivos de registros.

  • app.log que es. Registra todos los pasos principales de ejecución e información sobre errores, advertencias y fallas.
  • unmodified_users.txt que es. Contiene una lista de DN de usuario que no se actualizaron de texto sin formato a formato cifrado. Estos registros se generan con un error de formato o pueden deberse a algún otro motivo.