Herramienta de cifrado OTP
A partir de la versión 13.0 compilación 41.20 de NetScaler, los datos secretos de OTP se almacenan en un formato cifrado en lugar de texto sin formato para una mayor seguridad. El almacenamiento de un secreto OTP en formato cifrado es automático y no requiere intervención manual.
Anteriormente, el dispositivo NetScaler almacenaba un secreto OTP como texto sin formato en el directorio activo. Almacenar un 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 NetScaler 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 NetScaler 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 NetScaler para usar la herramienta de cifrado OTP.
- Para los dispositivos registrados en NetScaler antes de la compilación 41.20, debe realizar lo siguiente:
- Upgrade the 13.0 NetScaler 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.
- La herramienta de cifrado OTP solo admite atributos de usuario de un solo valor. No admite atributos de usuario con varios valores.
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 un 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, valor1 es un valor codificado en base64 de KID + IV + datos de cifrado
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 un valor contra cada nombre. El valor es base64encode(KID).base64encode(IV).base64encode(cipherdata).
- KID es el valor de identificador de clave que se utiliza para identificar el certificado utilizado para el cifrado de datos secretos OTP. El identificador de clave es útil especialmente cuando se utilizan varios certificados para el cifrado de datos secretos OTP.
- En los algoritmos AES estándar, el IV siempre se envía como los primeros 16 o 32 bytes de datos cifrados. Puede seguir el mismo modelo.
- IV es diferente para cada dispositivo, aunque la clave sigue siendo la misma.
Nota:
El formato cifrado de los datos OTP se almacena en un atributo de usuario AD.
Configuración de la herramienta de cifrado OTP
Nota
Para ejecutar la herramienta de cifrado OTP, Citrix recomienda utilizar una plataforma alternativa con el entorno Python en lugar del dispositivo NetScaler.
La herramienta de cifrado OTP se encuentra en el directorio \var\netscaler\otptool
. Debe descargar el código de la fuente de NetScaler 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 install -r requirements.txt. Instala automáticamente los requisitos.
- python main.py. 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 un 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.
Escenario | 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 NetScaler para cifrar los datos. El usuario debe proporcionar este argumento para las tres operaciones, a saber, los certificados de cifrado, descifrado y 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 NetScaler para el cifrado de los 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 usa para filtrar los dominios o usuarios de Active Directory.
Ejemplos:
-
-search_filter "(sAMAccountName=OTP*)"
: filtra los usuarios cuyos samAccountNames (nombres de inicio de sesión de usuario) comiencen por “OTP”. -
-search_filter "(objectCategory=person)"
: filtra la categoría de objeto del tipo persona. -
-search_file "(objectclass=*)"
: filtra todos los objetos.
Habilitar la opción de cifrado en el dispositivo NetScaler
Para cifrar el formato de texto sin formato, debe habilitar la opción de cifrado en el dispositivo NetScaler.
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 NetScaler versión 13.0 compilación 41.20
Cuando registra su nuevo dispositivo con el dispositivo NetScaler 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 de los dispositivos registrados en el dispositivo NetScaler antes de la versión 13.0 de la versió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 NetScaler.
- 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 más dispositivos (opcional).
- Para habilitar la opción de cifrado mediante la CLI:
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 la línea de comandos, 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 tener 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 de un secreto OTP en formato cifrado y los convierte a formato descifrado.
Para actualizar el certificado a un certificado nuevo mediante la CLI
En la línea de comandos, 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. Registra todos los pasos principales de ejecución e información sobre errores, advertencias y fallas.
- unmodified_users.txt. 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.
En este artículo
- Usos de la herramienta de cifrado OTP
- Datos secretos OTP en formato de texto sin formato
- Datos secretos OTP en formato cifrado
- Configuración de la herramienta de cifrado OTP
- Habilitar la opción de cifrado en el dispositivo NetScaler
- Casos de uso de la herramienta de cifrado OTP
- Solución de problemas