SSL profile infrastructure
Las vulnerabilidades en la implementación de SSLv3 y RC4 han enfatizado la necesidad de utilizar los últimos cifrados y protocolos para negociar la configuración de seguridad para una conexión de red. Implementar cualquier cambio en la configuración, como inhabilitar SSLv3 en miles de puntos finales SSL, es un proceso engorroso. Por lo tanto, los valores que formaban parte de la configuración de los extremos SSL se han movido a los perfiles SSL, junto con los cifrados predeterminados. Para implementar cambios en la configuración, incluido el soporte de cifrado, solo necesita modificar el perfil enlazado a las entidades.
Los perfiles SSL de front-end y back-end predeterminados contienen todos los cifrados predeterminados y curvas ECC, además de la configuración que formaba parte de los perfiles antiguos. Las salidas de muestra para los perfiles predeterminados se proporcionan en el apéndice. La operación Habilitar perfil predeterminado vincula automáticamente el perfil front-end predeterminado a todas las entidades front-end y el perfil back-end predeterminado a todas las entidades back-end. Puede modificar un perfil predeterminado para adaptarlo a su implementación. También puede crear perfiles personalizados y vincularlos a entidades SSL.
El perfil front-end contiene parámetros aplicables a una entidad front-end. Es decir, se aplican a la entidad que recibe solicitudes de un cliente. Normalmente, esta entidad es un servidor virtual SSL o un servicio SSL transparente en el dispositivo Citrix ADC. El perfil back-end contiene parámetros aplicables a una entidad back-end. Es decir, se aplican a la entidad del dispositivo ADC que envía solicitudes de cliente a un servidor back-end. Normalmente, esta entidad es un servicio SSL en el dispositivo Citrix ADC. Si intenta configurar un parámetro no compatible, ERROR: Specified parameters are not applicable for this type of SSL profile
aparece el error.
Importante:
Un perfil SSL tiene prioridad sobre los parámetros SSL. Es decir, si configura los parámetros SSL mediante el
set ssl parameter
comando y posteriormente enlaza un perfil a una entidad SSL, la configuración del perfil tendrá prioridad.Después de la actualización, si habilita los perfiles predeterminados, no podrá deshacer los cambios. Es decir, los perfiles no se pueden inhabilitar. Guarde la configuración y cree una copia del archivo de configuración (ns.conf) antes de habilitar los perfiles. Sin embargo, si no quiere utilizar las funciones del perfil predeterminado, puede seguir mediante los perfiles SSL antiguos. Para obtener más información sobre estos perfiles, consulte Perfil SSL heredado.
Desde la versión 11.1 51.x, en la GUI y la CLI, se agrega un mensaje de confirmación cuando habilita el perfil predeterminado para evitar que se habilite por error.
Comando:
set ssl parameter -defaultProfile ENABLED
Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
<!--NeedCopy-->
De forma predeterminada, algunos parámetros SSL, denominados parámetros globales, se aplican a todos los puntos finales SSL. Sin embargo, si un perfil está enlazado a un punto final SSL, los parámetros globales no se aplican. En su lugar, se aplican los parámetros especificados en el perfil.
Puntos a tener en cuenta
- Un perfil se puede enlazar a varios servidores virtuales, pero un servidor virtual solo puede tener un perfil enlazado a él.
- Para eliminar un perfil enlazado a un servidor virtual, primero desenlazar el perfil.
- Un grupo de cifrado o cifrado se puede enlazar a varios perfiles con diferentes prioridades.
- Un perfil puede tener varios cifrados y grupos de cifrado vinculados a diferentes prioridades.
- Los cambios en un grupo de cifrado se reflejan inmediatamente en todos los perfiles y en todos los servidores virtuales a los que está enlazado uno de los perfiles.
- Si un conjunto de cifrado forma parte de un grupo de cifrado, modifique el grupo de cifrado para quitar ese conjunto de cifrado antes de quitar el conjunto de cifrado del perfil.
- Si no asigna prioridad a un conjunto de cifrado o grupo de cifrado asociado a un perfil, se le asigna la prioridad más baja dentro del perfil.
- Puede crear un grupo de cifrado personalizado (también denominado grupo de cifrado definido por el usuario) a partir de grupos de cifrado y conjuntos de cifrado existentes. Si crea un grupo de cifrado A y agrega grupos de cifrado existentes X e Y, en ese orden, Y se asigna a una prioridad inferior a X. Es decir, el grupo que se agrega primero tiene una prioridad más alta.
- Si un conjunto de cifrado forma parte de dos grupos de cifrado asociados al mismo perfil, el conjunto de cifrado no se agrega como parte del segundo grupo de cifrado. El conjunto de cifrado con la prioridad más alta está en vigor cuando se procesa el tráfico.
- Los grupos de cifrado no se expanden en el perfil. Como resultado, el número de líneas en el archivo de configuración (ns.conf) se reduce considerablemente. Por ejemplo, si dos grupos de cifrado que contienen 15 cifrados cada uno están enlazados a mil servidores virtuales SSL, la expansión agrega 30*1000 entradas relacionadas con cifrado en el archivo de configuración. Con el nuevo perfil, solo tendría dos entradas: Una para cada grupo de cifrado enlazado a un perfil.
- Crear un grupo de cifrado definido por el usuario a partir de cifrados y grupos de cifrado existentes es una operación de copiar y pegar. Cualquier cambio en el grupo original no se refleja en el nuevo grupo.
- Un grupo de cifrado definido por el usuario enumera todos los perfiles de los que forma parte.
- Un perfil enumera todos los servidores virtuales SSL, servicios y grupos de servicios a los que está enlazado.
- Si la función de perfil SSL predeterminada está habilitada, utilice el perfil para establecer o cambiar cualquiera de los atributos de una entidad SSL. Por ejemplo, servidor virtual, servicio, grupo de servicios o un servicio interno.
Guarde la configuración mediante la CLI
En el símbolo del sistema, escriba:
save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS<currentreleasenumber><currentbuildnumber>
<!--NeedCopy-->
Ejemplo:
save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16
<!--NeedCopy-->
Habilitar el perfil predeterminado
Importante:
Guarde la configuración antes de actualizar el software y habilite los perfiles predeterminados.
Desde la versión 11.1 build 51.x, en la GUI y CLI, aparece un mensaje de confirmación cuando habilita el perfil predeterminado para evitar habilitarlo por error.
Comando: El siguiente comando habilita el perfil por defecto y vincula este perfil a las entidades SSL a las que ya está enlazado un perfil. Es decir, si un perfil (por ejemplo P1) ya está enlazado a una entidad SSL, el perfil front-end predeterminado o el perfil back-end predeterminado sustituye a P1. El perfil anterior (P1) no se elimina. Ahora es un perfil SSL mejorado y contiene los ajustes anteriores, así como los cifrados y las curvas ECC. Si no quiere el perfil predeterminado, puede vincular explícitamente P1 a la entidad SSL.
set ssl parameter -defaultProfile ENABLED
Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
<!--NeedCopy-->
Actualice el software a una compilación que admita la infraestructura de perfiles mejorada y, a continuación, habilite los perfiles predeterminados.
Notas:
Si un perfil heredado (P1) ya está enlazado a una entidad SSL y se habilita el perfil predeterminado, el perfil predeterminado anula el enlace anterior. Es decir, el perfil predeterminado está enlazado a las entidades SSL. Si no quiere que el perfil predeterminado esté enlazado, debe volver a enlazar P1 a la entidad SSL.
Una sola operación (Habilitar perfil predeterminado o
set ssl parameter -defaultProfile ENABLED
) habilita (vincula) tanto el perfil front-end como el perfil back-end predeterminado.
Caso de uso
Después de habilitar los perfiles predeterminados, están enlazados a todos los puntos finales SSL. Los perfiles predeterminados se pueden modificar. Si la implementación utiliza la mayoría de la configuración predeterminada y cambia solo unos pocos parámetros, puede modificar los perfiles predeterminados. Los cambios se reflejan inmediatamente en todos los puntos finales. También puede crear perfiles SSL personalizados con algunos parámetros personalizados y algunos predeterminados y vincularlos a las entidades SSL.
El siguiente diagrama de flujo explica los pasos que debe realizar:
-
Para obtener información sobre la actualización del software, consulte Actualización del software del sistema.
-
Habilite los perfiles predeterminados mediante la CLI o GUI.
- En la línea de comando, escriba:
set ssl parameter -defaultProfile ENABLED
- Si prefiere utilizar la GUI, vaya a Administración de tráfico > SSL > Cambiar configuración avanzada de SSL, desplácese hacia abajo y seleccione Habilitar perfil predeterminado.
Si un perfil no estaba enlazado a un punto final antes de la actualización, un perfil predeterminado está enlazado al punto final SSL. Si un perfil estaba enlazado a un punto final antes de la actualización, el mismo perfil se enlazará después de la actualización y los cifrados predeterminados se agregarán al perfil.
- (Opcional) Cambie manualmente cualquier configuración del perfil predeterminado.
- En la línea de comandos, escriba:
set ssl profile <name>
seguido de los parámetros que quiere modificar. - Si prefiere utilizar la GUI, vaya a Sistema > Perfiles. En Perfiles SSL, seleccione un perfil y haga clic en Modificar.
Parámetros de perfil SSL
Puede establecer los siguientes parámetros SSL en un perfil SSL. Puede establecer algunos de estos parámetros en un servidor virtual SSL. Para obtener más información sobre los parámetros del servidor virtual SSL, consulte Parámetros de servidor virtual SSL.
Compatibilidad con renegociación segura en el back-end de un dispositivo Citrix ADC
Nota: Este parámetro se introduce en la versión 13.0 compilación 58.x y posterior. En versiones anteriores y compilaciones, solo se admitía la renegociación no segura en el back-end.
La función se admite en las siguientes plataformas:
- VPX
- Plataformas MPX que contienen chips N2 o N3
- Plataformas basadas en chip Intel Coleto SSL
La función aún no es compatible con la plataforma FIPS.
La renegociación segura se deniega de forma predeterminada en el back-end de un dispositivo ADC. Es decir, el denySSLReneg
parámetro se establece en ALL (predeterminado).
Para permitir la renegociación segura en el back-end, seleccione una de las siguientes opciones para el denySSLReneg
parámetro:
- NO
- CLIENTE FRONTEND_CLIENTE
- FRONTEND_CLIENTSERVER
- NO SEGURO
Habilitar la renegociación segura mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <name> -denySSLReneg <denySSLReneg>
Ejemplo:
set ssl profile ns_default_ssl_profile_backend -denySSLReneg NONSECURE
Done
sh ssl profile ns_default_ssl_profile_backend
1) Name: ns_default_ssl_profile_backend (Back-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Server Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 300 seconds
DH: DISABLED
Ephemeral RSA: DISABLED
Deny SSL Renegotiation NONSECURE
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT_BACKEND Priority :2
Description: Predefined Cipher Alias
1) Service Name: s187
Done
<!--NeedCopy-->
Habilitar la renegociación segura mediante la interfaz gráfica de usuario
- Vaya a Sistema > Perfiles > Perfil SSL.
- Agregar o modificar un perfil.
-
Establezca Denegar renegociación SSL en cualquier valor que no sea ALL.
Validación de encabezado
Nota: Este parámetro se introduce en la versión 13.0 compilación 52.x.
Con HTTP/1.1, los clientes tenían que usar múltiples conexiones para procesar múltiples solicitudes. Con HTTP/2, los clientes pueden reutilizar conexiones entre dominios cubiertos por el mismo certificado. Para una sesión habilitada para SNI, el dispositivo ADC debe poder controlar cómo se valida el encabezado de host HTTP para acomodar este cambio. En compilaciones anteriores, la solicitud se eliminaba si el parámetro estaba habilitado (establecido en “Sí”) y la solicitud no contenía el encabezado de host para una sesión habilitada para SNI. Si el parámetro estaba inhabilitado (establecido en “No”), el dispositivo no realizó la validación. Se agrega un nuevo parámetro SNIHTTPHostMatch
a un perfil SSL y parámetros globales SSL para tener un mejor control sobre esta validación. Este parámetro puede tomar tres valores; CERT, STRICT y NONE. Estos valores funcionan de la siguiente manera solo para las sesiones habilitadas para SNI. SNI debe estar habilitado en el servidor virtual SSL o en el perfil enlazado al servidor virtual, y la solicitud HTTP debe contener el encabezado del host.
- CERT: La conexión se reenvía si el valor del encabezado del host en la solicitud está cubierto por el certificado utilizado para establecer esta sesión SSL.
- STRICT - La conexión se reenvía solo si el valor del encabezado del host en la solicitud coincide con el valor del nombre del servidor pasado en el mensaje de saludo del cliente de la conexión SSL.
- NO: El valor del encabezado del host no está validado.
Valores posibles: NO, CERT, STRICT Valor predeterminado: CERT
Con la introducción del nuevo parámetro SNIHTTPHostMatch
hay un cambio en el comportamiento del dropReqWithNoHostHeader
parámetro. La configuración del dropReqWithNoHostHeader
parámetro ya no afecta a cómo se valida el encabezado del host contra el certificado SNI.
Establecer parámetros de perfil SSL mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <name> [-ssllogProfile <string>] [-dh ( ENABLED | DISABLED ) -dhFile <string>] [-dhCount <positive_integer>][-dhKeyExpSizeLimit ( ENABLED | DISABLED )] [-eRSA ( ENABLED | DISABLED) [-eRSACount <positive_integer>]] [-sessReuse ( ENABLED | DISABLED )
[-sessTimeout <positive_integer>]] [-cipherRedirect ( ENABLED | DISABLED ) [-cipherURL <URL>]] [-clientAuth ( ENABLED | DISABLED )[-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED |
DISABLED )] [-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl3 (ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED| DISABLED )] [-tls12 ( ENABLED | DISABLED )] [-tls13 ( ENABLED |DISABLED )] [-SNIEnable ( ENABLED | DISABLED )] [-ocspStapling (ENABLED | DISABLED )] [-serverAuth ( ENABLED | DISABLED )] [-commonName <string>] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES |
NO )] [-clearTextPort <port|*>] [-insertionEncoding ( Unicode | UTF-8)] [-denySSLReneg <denySSLReneg>] [-quantumSize <quantumSize>]
[-strictCAChecks ( YES | NO )] [-encryptTriggerPktCount <positive_integer>] [-pushFlag <positive_integer>][-dropReqWithNoHostHeader ( YES | NO )] [-SNIHTTPHostMatch <SNIHTTPHostMatch>] [-pushEncTriggerTimeout <positive_integer>]
[-sslTriggerTimeout <positive_integer>] [-clientAuthUseBoundCAChain (ENABLED | DISABLED )] [-sslInterception ( ENABLED | DISABLED )][-ssliReneg ( ENABLED | DISABLED )] [-ssliOCSPCheck ( ENABLED | DISABLED )] [-ssliMaxSessPerServer <positive_integer>] [-HSTS ( ENABLED| DISABLED )] [-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )] [-preload ( YES | NO )] [-sessionTicket ( ENABLED | DISABLED )][-sessionTicketLifeTime <positive_integer>] [-sessionTicketKeyRefresh (ENABLED | DISABLED )] {-sessionTicketKeyData } [-sessionKeyLifeTime <positive_integer>] [-prevSessionKeyLifeTime <positive_integer>]
[-cipherName <string> -cipherPriority <positive_integer>][-strictSigDigestCheck ( ENABLED | DISABLED )]
[-skipClientCertPolicyCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData ( ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext
<positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]
<!--NeedCopy-->
Establecer parámetros de perfil SSL mediante la interfaz gráfica de usuario
Para agregar un perfil:
- Vaya a Sistema > Perfiles.
- Seleccione Perfiles SSL. Haga clic en Add.
- Especifique los valores para los diferentes parámetros.
- Haga clic en Aceptar.
- Haga clic en Done.
Para reutilizar un perfil SSL existente:
- Vaya a Sistema > Perfiles.
- Seleccione un perfil existente y haga clic en Agregar.
- Especifique un nombre diferente, cambie los parámetros y haga clic en Aceptar.
- Haga clic en Done.
Extensión de tíquet de sesión TLS
Un protocolo de enlace SSL es una operación de uso intensivo de la CPU. Si la reutilización de sesión está habilitada, la operación de intercambio de claves de servidor/cliente se omite para los clientes existentes. Se les permite reanudar sus sesiones. Esta acción mejora el tiempo de respuesta y aumenta el número de transacciones SSL por segundo que un servidor puede admitir. Sin embargo, el servidor debe almacenar los detalles de cada estado de sesión, que consume memoria y es difícil de compartir entre varios servidores si las solicitudes se equilibran la carga entre los servidores.
Los dispositivos Citrix ADC admiten la extensión SessionTicket TLS. El uso de esta extensión indica que los detalles de la sesión se almacenan en el cliente en lugar de en el servidor. El cliente debe indicar que admite este mecanismo mediante la inclusión de la extensión TLS del tíquet de sesión en el mensaje Hello del cliente. Para nuevos clientes, esta extensión está vacía. El servidor envía un nuevo tíquet de sesión en el mensaje de enlace NewSessionTicket. El tíquet de sesión se cifra mediante un par de claves conocido solo por el servidor. Si un servidor no puede emitir un nuevo tíquet ahora, se completa un protocolo de enlace regular.
Esta función solo está disponible en perfiles SSL front-end y solo en el front-end de la comunicación en la que el dispositivo actúa como servidor y genera tíquets de sesión.
Limitaciones
- Esta función no es compatible con una plataforma FIPS.
- Esta función solo es compatible con las versiones 1.1 y 1.2 de TLS.
- La persistencia del ID de sesión SSL no es compatible con los tíquets de sesión.
Habilitar la extensión de tíquet de sesión TLS mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>
<!--NeedCopy-->
Cliente:
SessionTicket: Estado de extensión de tíquet de sesión TLS. El uso de esta extensión indica que los detalles de la sesión se almacenan en el cliente en lugar de en el servidor, tal como se define en RFC 5077.
Valores posibles: ENABLED, DISABLED
Valor predeterminado: DISABLED
SessionTicketLifetime: Especifique una hora, en segundos, después de la cual caduca el tíquet de sesión y se debe iniciar un nuevo protocolo de enlace SSL.
Valor predeterminado: 300
Valor mínimo: 0
Valor máximo: 172800
Ejemplo:
add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done
<!--NeedCopy-->
Habilitar la extensión de tíquet de sesión TLS mediante la interfaz gráfica de usuario
- Vaya a Sistema > Perfiles. Seleccione Perfiles SSL.
- Haga clic en Agregar y especifique un nombre para el perfil.
- Seleccione Tíquet de sesión.
- Opcionalmente, especifique la duración del tíquet de sesión (segundos).
Implementación segura de tíquets de sesión
Mediante el uso de tíquets de sesión TLS, los clientes pueden usar apretones de manos abreviados para una reconexión más rápida a los servidores. Sin embargo, si los tíquets de sesión no se cifran o cambian durante largos períodos de tiempo, pueden suponer un riesgo para la seguridad. Puede proteger los tíquets de sesión cifrándolos con una clave simétrica. Para lograr el secreto directo, puede especificar un intervalo de tiempo en el que se actualiza la clave de tíquet de sesión.
El dispositivo genera las claves de tíquet de sesión de forma predeterminada. Sin embargo, si varios dispositivos de una implementación necesitan descifrar los tíquets de sesión de cada uno, todos deben usar la misma clave de tíquet de sesión. Por lo tanto, debe establecer (agregar o cargar) los mismos datos de clave de tíquet de sesión manualmente en todos los dispositivos. Los datos clave del tíquet de sesión incluyen la siguiente información:
- Nombre del tíquet de sesión.
- Clave AES de sesión utilizada para cifrar o descifrar el tíquet.
- Clave HMAC de sesión utilizada para calcular el resumen del tíquet.
Ahora puede configurar datos de clave de tíquet de sesión de 64 bytes de longitud para admitir claves HMAC de 256 bits como se recomienda en RFC 5077. También se admiten longitudes de clave de 48 bytes para compatibilidad con versiones anteriores.
Nota:
Al escribir manualmente los datos de clave de tíquet de sesión, asegúrese de que la configuración en todos los dispositivos Citrix ADC en una configuración de alta disponibilidad o en una configuración de clúster sea la misma.
El parámetro sessionTicketKeyLifeTime
especifica la frecuencia con la que se actualiza una clave de tíquet de sesión. Puede establecer el parámetro prevSessionTicketKeyLifeTime
para especificar cuánto tiempo se mantendrá la clave de tíquet de sesión anterior para descifrar tíquets mediante esa clave, después de generar una nueva clave. El parámetro prevSessionTicketKeyLifeTime
amplía el tiempo durante el cual un cliente puede utilizar un apretón de manos abreviado para volver a conectarse. Por ejemplo, si sessionTicketKeyLifeTime
se establece en 10 minutos y prevSessionTicketKeyLifeTime
en 5 minutos, se genera una nueva clave después de 10 minutos y se utiliza para todas las sesiones nuevas. Sin embargo, los clientes previamente conectados tienen otros 5 minutos para los cuales los boletos emitidos anteriormente se honran para un apretón de manos abreviado.
Configurar los datos de tíquet de sesión SSL mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]
<!--NeedCopy-->
Cliente:
SessionTicket: Utilice los tíquets de sesión como se describe en RFC 5077. El establecimiento del protocolo de enlace inicial requiere operaciones de cifrado de clave pública que requieren un uso intensivo de la CPU. Con la configuración habilitada, un servidor emite un tíquet de sesión a un cliente, que el cliente puede utilizar para realizar un apretón de manos abreviado.
Valores posibles: ENABLED, DISABLED. Predeterminado: DISABLED
SessionTicketLifetime: Vida útil, en segundos, del tíquet de sesión. Una vez transcurrido este tiempo, los clientes no pueden utilizar este tíquet para reanudar sus sesiones.
Valor máximo: 172800 Valor mínimo: 0. Valor predeterminado: 300.
SessionTicketKeyRefresh: Cuando el tiempo especificado por el parámetro de duración de la clave de tíquet de sesión caduca, vuelva a generar la clave de tíquet de sesión utilizada para cifrar o descifrar los tíquets de sesión. Activado automáticamente si SessionTicket está habilitado. Inhabilitado si un administrador introduce los datos del tíquet de sesión.
Valores posibles: ENABLED, DISABLED. Predeterminado: ENABLED
SessionKeyLifetime: Duración, en segundos, de una clave simétrica utilizada para cifrar los tíquets de sesión emitidos por un dispositivo Citrix ADC.
Valor máximo: 86400 Valor mínimo: 600. Predeterminado: 3000
PrevSessionKeyLifetime: Tiempo, en segundos, para el que la clave simétrica anterior utilizada para cifrar los tíquets de sesión sigue siendo válida para los clientes existentes después de que expire la duración de la clave de tíquet de sesión. Dentro de este tiempo, los clientes existentes pueden reanudar sus sesiones mediante la clave de tíquet de sesión anterior. Los tíquets de sesión para nuevos clientes se cifran mediante la nueva clave.
Valor máximo: 172800 Valor mínimo: 0. Predeterminado: 0
Ejemplo:
set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED -sessionTicketlifeTime 120 -sessionTicketKeyRefresh ENABLED -sessionTicketKeyLifeTime 100 -prevSessionTicketKeyLifeTime 60
Done
show ssl profile ns_default_ssl_profile_frontend
Session Ticket: ENABLED
Session Ticket Lifetime: 120 (secs)
Session Key Auto Refresh: ENABLED
Session Key Lifetime: 100 (secs)
Previous Session Key Lifetime: 60 (secs)
<!--NeedCopy-->
Configurar los datos de tíquet de sesión SSL mediante la interfaz gráfica de usuario
-
Vaya a Sistema > Perfilesy seleccione Perfil SSL.
-
Seleccione ns_default_ssl_profile_frontend y haga clic en Modificar.
-
En la sección Configuración básica, haga clic en el icono del lápiz y establezca los siguientes parámetros:
- Tíquet de sesión
- Duración del tíquet de sesión (segundos)
- Actualización automática de la clave de tíquet de sesión
- Duración de la clave de tíquet de sesión (segundos)
- Duración de la clave de tíquet de sesión anterior (segundos)
-
Haga clic en Aceptar.
Escriba manualmente los datos del tíquet de sesión SSL mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <name> -sessionTicket ENABLED
set ssl profile <name> -sessionTicketKeyData
show ssl profile ns_default_ssl_profile_frontend
<!--NeedCopy-->
Cliente:
SessionTicket: Uso de tíquets de sesión según lo descrito por RFC 5077. El establecimiento del protocolo de enlace inicial requiere operaciones de cifrado de clave pública que requieren un uso intensivo de la CPU. Con la configuración habilitada, un servidor emite un tíquet de sesión a un cliente, que el cliente puede utilizar para realizar un apretón de manos abreviado.
Valores posibles: ENABLED, DISABLED. Predeterminado: DISABLED
SessionTicketKeyData: Contains the session ticket name (0–15 bytes), the session AES key used to encrypt or decrypt the session ticket (16–31 bytes), and the session HMAC key used to compute the digest of the ticket (32–63 bytes). Externally generated by an administrator and added to a Citrix ADC appliance.
Longitud máxima: 64 bytes
Ejemplo:
set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED
Done
set ssl profile ns_default_ssl_profile_frontend -sessionTicketKeyData 111111111111111111111111111111111111111111111111
Done
show ssl profile ns_default_ssl_profile_frontend
1) Name: ns_default_ssl_profile_frontend (Front-End)
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
Session Ticket: ENABLED
Session Ticket Lifetime: 300 (secs)
Session Key Auto Refresh: DISABLED
Session Key Lifetime: 3000 (secs)
Previous Session Key Lifetime: 0 (secs)
Session Key Data: 84dad1afc6d56b0deeb0a7fd7f299a207e8d8c15cdd087a5684a11a329fd732e87a0535d90883
47e8c181ba266f5c8838ae472cb3ab9255b683bf922fad32cee816c329989ef7cdeb278e93ac37882e3
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :4
Description: Predefined Cipher Alias
1) Internal Service Name (Front-End): nsrnatsip-127.0.0.1-5061
2) Internal Service Name (Front-End): nskrpcs-127.0.0.1-3009
3) Internal Service Name (Front-End): nshttps-::1l-443
4) Internal Service Name (Front-End): nsrpcs-::1l-3008
5) Internal Service Name (Front-End): nshttps-127.0.0.1-443
6) Internal Service Name (Front-End): nsrpcs-127.0.0.1-3008
7) Vserver Name: v1
Done
<!--NeedCopy-->
Escriba manualmente los datos del tíquet de sesión SSL mediante la interfaz gráfica de usuario
-
Vaya a Sistema > Perfilesy seleccione Perfil SSL.
-
Seleccione ns_default_ssl_profile_frontend y haga clic en Modificar.
-
En la sección Configuración básica, haga clic en el icono del lápiz y establezca los siguientes parámetros:
- Tíquet de sesión
- Datos de clave de tíquet de sesión
- Confirmar datos de clave de tíquet de sesión
-
Haga clic en Aceptar.
Compatibilidad con Extended Master Secret en el protocolo de enlace SSL en plataformas Citrix ADC no FIPS
Nota: Este parámetro se introduce en la versión 13.0 compilación 61.x.
Extended Master Secret (EMS) es una extensión opcional del protocolo Seguridad de capa de transporte (TLS). Se agrega un nuevo parámetro que se aplica a los perfiles SSL front-end y back-end para admitir EMS en el dispositivo Citrix ADC. Si el parámetro está habilitado y el par admite EMS, el dispositivo ADC utiliza el cálculo EMS. Si el par no admite EMS, el cálculo EMS no se utiliza para la conexión aunque el parámetro esté habilitado en el dispositivo. Para obtener más información acerca de EMS, consulte RFC 7627.
Nota: EMS solo es aplicable para los apretones de mano que utilizan el protocolo TLS versión 1.0, 1.1 o 1.2.
Soporte de plataforma para EMS
- Plataformas MPX y SDX que contienen chips Cavium N3 o tarjetas criptográficas Intel Coleto Creek. Las siguientes plataformas se envían con chips Intel Coleto:
- MPX 5900
- MPX/SDX 8900
- MPX/SDX 26000
- MPX/SDX 26000-50S
- MPS/SDX 26000-100G
- MPX/SDX 15000-50G
También puede utilizar el comando “show hardware’ para identificar si el dispositivo tiene chips Coleto (COL) o N3.
-
Plataformas MPX y SDX sin tarjetas criptográficas (solo software).
-
Plataformas solo de software: VPX, CPX y BLX.
EMS no se puede habilitar en las siguientes plataformas:
-
Plataformas FIPS MPX 9700 y MPX 14000 FIPS.
-
Plataformas MPX y SDX que contienen chips criptográficos Cavium N2.
Si el parámetro está habilitado, el dispositivo ADC intenta utilizar EMS en las conexiones TLS 1.2, TLS 1.1 y TLS 1.0. La configuración no afecta a las conexiones TLS 1.3 o SSLv3.
Para permitir que EMS se negocie con el par, habilite la configuración en el perfil SSL enlazado al servidor virtual (front-end) o servicio (back-end).
Habilitar EMS mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile <profile name> [-allowExtendedMasterSecret (YES | NO)]
Ejemplos
set ssl profile ns_default_ssl_profile_frontend -allowExtendedMasterSecret YES
set ssl profile ns_default_ssl_profile_backend -allowExtendedMasterSecret YES
<!--NeedCopy-->
En la tabla siguiente se muestra el valor predeterminado del allowExtendedMasterSecret
parámetro en diferentes perfiles predeterminados y definidos por el usuario.
Profile | Configuración predeterminada |
---|---|
Perfil de front-end predeterminado | NO |
Perfil seguro de front-end predeterminado | SÍ |
Perfil de back-end predeterminado | NO |
Perfil definido por el usuario | NO |
Habilitar EMS mediante la GUI
- Vaya a Sistema > Perfiles > Perfil SSL.
- Agregue un perfil o modifique un perfil.
-
Establezca Permitir secreto maestro extendido en SÍ.
Soporte para el procesamiento de la extensión ALPN en el mensaje de saludo del cliente
Nota: Esta función se admite en la versión 13.0 compilación 61.x y versiones posteriores.
alpnProtocol
Se agrega un parámetro a los perfiles SSL front-end para negociar el protocolo de aplicación en la extensión ALPN para las conexiones controladas por el servidor virtual SSL_TCP. Solo se negocia el protocolo especificado en el perfil SSL, si se recibe el mismo protocolo en la extensión ALPN del mensaje de saludo del cliente.
Nota: ElalpnProtocol
parámetro solo se admite en perfiles SSL front-end y es aplicable a las conexiones SSL gestionadas por servidores virtuales de tipo SSL_TCP.
Establecer el protocolo en el perfil SSL front-end mediante la CLI
En el símbolo del sistema, escriba:
set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>
El alpnProtocol
parámetro puede tomar tres valores. Longitud máxima: 4096 bytes.
- NINGUNO: La negociación del protocolo de aplicación no tiene lugar. Este es el valor predeterminado.
- HTTP1: HTTP1 se puede negociar como protocolo de aplicación.
- HTTP2: HTTP2 se puede negociar como protocolo de aplicación.
Ejemplo:
set ssl profile ns_default_ssl_profile_frontend -ALPNProtocol HTTP2
> sh ssl profile ns_default_ssl_profile_frontend
1) Name: ns_default_ssl_profile_frontend (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Match HTTP Host header with SNI: CERT
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: DISABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
HSTS Preload: NO
Allow Extended Master Secret: NO
Send ALPN Protocol: HTTP2
Done
<!--NeedCopy-->
Establecer el protocolo en el perfil SSL front-end mediante la GUI
-
Vaya a Sistema > Perfilesy seleccione Perfil SSL.
-
Seleccione ns_default_ssl_profile_frontend y haga clic en Modificar.
-
En la lista Protocolo ALPN, seleccione HTTP2.
Cargar una configuración antigua
La activación de los perfiles predeterminados no es reversible. Sin embargo, si decide que la implementación no requiere los perfiles predeterminados, puede cargar una configuración anterior que guardó antes de habilitar los perfiles predeterminados. Los cambios son efectivos después de reiniciar el dispositivo.
Cargar una configuración antigua mediante la CLI
En el símbolo del sistema, escriba:
shell
root@ns# clear config
root@ns# cd /nsconfig
root@ns# cp ns.conf.NS.11.0.jun.16 ns.conf
root@ns# reboot
<!--NeedCopy-->
En este artículo
- Puntos a tener en cuenta
- Guarde la configuración mediante la CLI
- Habilitar el perfil predeterminado
- Caso de uso
- Parámetros de perfil SSL
- Compatibilidad con renegociación segura en el back-end de un dispositivo Citrix ADC
- Validación de encabezado
- Establecer parámetros de perfil SSL mediante la CLI
- Establecer parámetros de perfil SSL mediante la interfaz gráfica de usuario
- Extensión de tíquet de sesión TLS
- Implementación segura de tíquets de sesión
- Compatibilidad con Extended Master Secret en el protocolo de enlace SSL en plataformas Citrix ADC no FIPS
- Soporte para el procesamiento de la extensión ALPN en el mensaje de saludo del cliente
- Cargar una configuración antigua