SSL profile infrastructure
Las vulnerabilidades en la implementación de SSLv3 y RC4 han hecho hincapié en la necesidad de utilizar los cifrados y protocolos más recientes para negociar la configuración de seguridad de una conexión de red. La implementación de cualquier cambio en la configuración, como inhabilitar SSLv3 en miles de dispositivos de punto final SSL, es un proceso engorroso. Por lo tanto, los ajustes que formaban parte de la configuración de dispositivos de punto final 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 que está enlazado a las entidades.
Los perfiles SSL front-end y back-end predeterminados contienen todos los cifrados y curvas ECC predeterminados, además de la configuración que formaba parte de los perfiles anteriores. En el apéndice se proporcionan resultados de muestra para los perfiles predeterminados. 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 de front-end contiene parámetros aplicables a una entidad de front-end (la entidad que recibe las solicitudes de un cliente). Por lo general, esta entidad es un servidor virtual SSL, un servicio SSL transparente o servicios internos del dispositivo NetScaler. El perfil de fondo contiene parámetros aplicables a una entidad de fondo (entidad del dispositivo ADC que envía las solicitudes de los clientes a un servidor de fondo). Por lo general, esta entidad es un servicio SSL o un grupo de servicios en el dispositivo NetScaler. Si intenta configurar un parámetro no compatible, aparece el error ERROR: Specified parameters are not applicable for this type of SSL profile
. Algunos parámetros SSL, como el tamaño de la memoria CRL, el tamaño de la caché de OCSP, el control de indeformación y los datos de indeformación, no forman parte de ningún perfil porque son independientes de las entidades. Estos parámetros están presentes en Administración del tráfico > SSL > Configuración avanzada de SSL. Para obtener información sobre los parámetros SSL compatibles con un monitor seguro, consulte Establecer parámetros SSL en un monitor seguro.
Un perfil SSL admite las siguientes operaciones:
- Agregar: crea un perfil SSL en el dispositivo NetScaler. Especifique si el perfil es frontal o posterior. El valor predeterminado es la parte frontal.
- Establecer: — Modifica la configuración de un perfil existente.
- Sin configurar: establece los parámetros especificados en sus valores predeterminados. Si no especifica ningún parámetro, aparece un mensaje de error. Si desactiva un perfil en una entidad, el perfil se separará de la entidad.
- Eliminar: elimina un perfil. No se puede eliminar un perfil que esté siendo utilizado por ninguna entidad. Al borrar la configuración, se eliminan todas las entidades. Como resultado, los perfiles también se eliminan.
- Enlazar: enlaza un perfil a una entidad SSL.
- Desvincular: desvincula un perfil de una entidad SSL.
- Mostrar: muestra todos los perfiles que están disponibles en el dispositivo NetScaler. Si se especifica un nombre de perfil, se muestran los detalles de ese perfil. Si se especifica una entidad, se muestran los perfiles asociados a esa entidad.
Importante:
Un perfil SSL tiene prioridad sobre los parámetros SSL. Es decir, si configura los parámetros SSL mediante el comando
set ssl parameter
y, posteriormente, vincula 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.
En la GUI y la CLI, se agrega un mensaje de confirmación al habilitar el perfil predeterminado para evitar que se habilite por error.
Los protocolos inferiores a TLSv1.2 están inhabilitados en los servicios internos de SSL. Si el perfil predeterminado (mejorado) está habilitado, el ns_default_ssl_profile_internal_frontend_service
perfil está enlazado a los servicios internos de SSL y los protocolos SSLv3, TLSv1.0 y TLSv1.1 están inhabilitados en el perfil.
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 dispositivos de punto final SSL. Sin embargo, si un perfil está enlazado a un punto final SSL, los parámetros globales no se aplican. En su lugar, se aplica la configuración especificada en el perfil.
Puntos que tener en cuenta
- Un perfil se puede vincular a varios servidores virtuales, pero un servidor virtual solo puede tener un perfil vinculado a él.
- Para eliminar un perfil que está enlazado a un servidor virtual, primero desvincule el perfil.
- Un grupo de cifrado o cifrado se puede vincular 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á vinculado uno de los perfiles.
- Si un conjunto de cifrado forma parte de un grupo de cifrado, modifique el grupo de cifrado para eliminar ese conjunto de cifrado antes de eliminar el conjunto de cifrado del perfil.
- Si no asigna una prioridad a un conjunto de cifrado o grupo de cifrado adjunto 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 el grupo de cifrado A y le agrega los grupos de cifrado existentes X e Y, en ese orden, Y se asigna con una prioridad más baja que 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 adjuntos 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 el cifrado en el archivo de configuración. Con el nuevo perfil, solo tendría dos entradas: una para cada grupo de cifrado vinculado 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. Los cambios en el grupo original no se reflejan 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, los servicios y los grupos de servicios a los que está vinculado.
- Si la función de perfil SSL predeterminada está habilitada, use el perfil para establecer o cambiar cualquiera de los atributos de una entidad SSL. Por ejemplo, un servidor virtual, un servicio, un grupo de servicios o un servicio interno.
Guarde la configuración mediante la CLI
En la línea de comandos, 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.
A partir de la versión 11.1 compilación 51.x, en la GUI y la CLI, aparece un mensaje de confirmación cuando habilita el perfil predeterminado para evitar habilitarlo por error.
Comando: El siguiente comando habilita el perfil predeterminado y lo vincula 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 reemplazan a P1. El perfil anterior (P1) no se elimina. Ahora es un perfil SSL mejorado y contiene la configuración anterior y 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.
Notes:
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á vinculado a las entidades SSL. Si no quiere que el perfil predeterminado esté enlazado, debe volver a vincular 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 predeterminado como el perfil back-end predeterminado.
Parámetros que forman parte de los perfiles predeterminados
Ejecute los siguientes comandos para enumerar los parámetros que forman parte de los perfiles de front-end y back-end predeterminados.
sh ssl profile ns_default_ssl_profile_frontend
sh ssl profile ns_default_ssl_profile_backend
<!--NeedCopy-->
Ejemplo:
> 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: NONE
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :1
Description: Predefined Cipher Alias
> 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 ALL
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
Allow Extended Master Secret: NO
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT_BACKEND Priority :1
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
Caso de uso
Después de habilitar los perfiles predeterminados, se enlazan a todos los dispositivos de punto final 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 dispositivos de punto final. 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 comandos, escriba:
set ssl parameter -defaultProfile ENABLED
- Si prefiere utilizar la GUI, vaya a Administración del tráfico > SSL > Cambiar la configuración avanzada de SSL, desplácese hacia abajo y seleccione Habilitar perfil predeterminado.
- En la línea de comandos, escriba:
Si un perfil no estaba enlazado a un punto final antes de la actualización, un perfil predeterminado se enlazará al punto final SSL. Si un perfil estaba enlazado a un punto final antes de la actualización, el mismo perfil se enlaza después de la actualización y se agregan cifrados predeterminados 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 interfaz gráfica de usuario, vaya a Sistema > Perfiles. En Perfiles SSL, seleccione un perfil y haga clic en Modificar.
- En la línea de comandos, escriba:
Parámetros del 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 NetScaler
Esta función es compatible con las siguientes plataformas:
- VPX
- Plataformas MPX que contienen chips N2 o N3
- Plataformas basadas en chips SSL Intel Coleto
Esta 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 parámetro denySSLReneg
se establece en ALL (predeterminado).
Para permitir la renegociación segura en el back-end, seleccione una de las siguientes configuraciones para el parámetro denySSLReneg
:
- NO
- FRONTEND_CLIENT
- FRONTEND_CLIENTSERVER
- NO SEGURO
Habilite la renegociación segura mediante la CLI
En la línea de comandos, 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-->
Habilite la renegociación segura mediante la interfaz gráfica de usuario
- Vaya a Sistema > Perfiles > Perfil SSL.
- Agregue o modifique un perfil.
-
Establezca Denegar renegociación SSL en cualquier valor que no sea ALL.
Validación de encabezados host
Nota: Este parámetro se introdujo en la versión 13.0 compilación 52.x.
Con HTTP/1.1, los clientes tenían que usar varias conexiones para procesar varias solicitudes. Con HTTP/2, los clientes pueden reutilizar las conexiones en los dominios que están 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 adaptarse a este cambio. En compilaciones anteriores, la solicitud se descartaba 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 realizaba la validación. Se agrega un nuevo parámetro SNIHTTPHostMatch
a un perfil SSL y a los parámetros globales SSL para tener un mejor control de 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. El 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 Client Hello de la conexión SSL.
- NO: el valor del encabezado del host no se valida.
Valores posibles: NO, CERT, STRICT Valor por defecto: CERT
Con la introducción del nuevo parámetro SNIHTTPHostMatch
, se produce un cambio en el comportamiento del parámetro dropReqWithNoHostHeader
. La configuración del parámetro dropReqWithNoHostHeader
ya no afecta a la forma en que se valida el encabezado del host con respecto al certificado SNI.
Establecer los parámetros del perfil SSL mediante la CLI
En la línea de comandos, 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 los parámetros del perfil SSL mediante la interfaz gráfica de usuario
Para agregar un perfil:
-
Navegue hasta Sistema > Perfiles.
-
Seleccione Perfiles SSL. Haga clic en Agregar.
-
Especifique los valores de los distintos parámetros.
- Haga clic en Aceptar.
- Haga clic en Listo.
Para reutilizar un perfil SSL existente:
- Navegue hasta 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 Listo.
Extensión de tíquet de sesión de TLS
Un protocolo de enlace SSL es una operación que hace un uso intensivo de la CPU. Si la reutilización de sesiones 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 la cantidad de transacciones SSL por segundo que puede admitir un servidor. Sin embargo, el servidor debe almacenar detalles de cada estado de sesión, lo que consume memoria y es difícil de compartir entre varios servidores si las solicitudes se equilibran en carga entre los servidores.
Los dispositivos NetScaler 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 los clientes nuevos, 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 que solo conoce el servidor. Si un servidor no puede emitir un nuevo ticket ahora, completa un apretón de manos normal.
Esta función solo está disponible en perfiles SSL front-end y solo en la parte frontal de la comunicación en la que el dispositivo actúa como servidor y genera tickets de sesión.
Limitaciones
- Esta función no se admite en una plataforma FIPS.
- Esta función solo se admite con las versiones 1.1 y 1.2 de TLS.
- La persistencia del identificador de sesión SSL no se admite con los tickets de sesión.
Habilitar la extensión de ticket de sesión TLS mediante la CLI
En la línea de comandos, escriba:
set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>
<!--NeedCopy-->
Argumentos:
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, 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 por defecto: 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 ticket de sesión TLS mediante la GUI
- Navegue hasta Sistema > Perfiles . Seleccione Perfiles SSL.
- Haga clic en Agregar y especifique un nombre para el perfil.
- Seleccione Ticket de sesión.
- Si lo quiere, especifique Duración del ticket de sesión (segundos).
Implementación segura de tickets de sesión
Mediante el uso de tickets 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 tickets de sesión no se cifran o cambian durante largos períodos de tiempo, pueden suponer un riesgo para la seguridad. Puede proteger los tickets de sesión cifrándolos con una clave simétrica. Para lograr la confidencialidad directa, puede especificar un intervalo de tiempo en el que se actualiza la clave del ticket de sesión.
El dispositivo genera las claves de ticket de sesión de forma predeterminada. Sin embargo, si varios dispositivos de una implementación necesitan descifrar los tickets de sesión de los demás, todos deben usar la misma clave de ticket de sesión. Por lo tanto, debe establecer (agregar o cargar) los mismos datos de clave de ticket de sesión manualmente en todos los dispositivos. Los datos clave del ticket de sesión incluyen la siguiente información:
- Nombre del ticket de sesión.
- Clave AES de sesión utilizada para cifrar o descifrar el vale.
- Clave HMAC de sesión utilizada para calcular el resumen del ticket.
Ahora puede configurar datos de clave de ticket 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 los datos clave del ticket de sesión manualmente, asegúrese de que la configuración en todos los dispositivos NetScaler 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 ticket de sesión. Puede configurar el parámetro prevSessionTicketKeyLifeTime
para especificar cuánto tiempo se mantendrá la clave de ticket de sesión anterior para descifrar los tickets que usen esa clave, después de que se genere una nueva clave. El parámetro prevSessionTicketKeyLifeTime
extiende el tiempo durante el cual un cliente puede usar un desafío mutuo 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 usa para todas las sesiones nuevas. Sin embargo, los clientes conectados anteriormente tienen otros 5 minutos para los que se aceptan boletos emitidos anteriormente por un apretón de manos abreviado.
Configurar los datos del ticket de sesión SSL mediante la CLI
En la línea de comandos, escriba:
set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]
<!--NeedCopy-->
Argumentos:
sessionTicket: Utilice los tíquets de sesión como se describe en RFC 5077. Establecer el apretón de manos inicial requiere operaciones de cifrado de clave pública intensivas en la CPU. Con la configuración ENABLED, un servidor emite un vale de sesión a un cliente, que el cliente puede usar para realizar un apretón de manos abreviado.
Valores posibles: ENABLED, DISABLED. Predeterminado: INHABILITADO
sessionTicketLifetime: Vida útil, en segundos, del tíquet de sesión. Una vez transcurrido este tiempo, los clientes no pueden usar este ticket para reanudar sus sesiones.
Valor máximo: 172800. Valor mínimo: 0. 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. Se inhabilita si un administrador ingresa los datos del ticket de sesión.
Valores posibles: ENABLED, DISABLED. Predeterminado: HABILITADO
SessionKeyLifetime: Duración, en segundos, de una clave simétrica utilizada para cifrar los tickets de sesión emitidos por un dispositivo NetScaler.
Valor máximo: 86400. Valor mínimo: 600. Predeterminado: 3000
prevSessionKeyLifetime: El tiempo, en segundos, durante el cual la clave simétrica anterior utilizada para cifrar los tickets de sesión sigue siendo válida para los clientes existentes después de que caduque la vida útil de la clave de ticket de sesión. Dentro de este tiempo, los clientes existentes pueden reanudar sus sesiones utilizando la clave de ticket de sesión anterior. Los tickets de sesión para los nuevos clientes se cifran con 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 del ticket 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 Parámetros básicos, haga clic en el icono del lápiz y configure estos parámetros:
- Boleto de sesión
- Duración del ticket de sesión (segundos)
- Actualización automática de clave de ticket de sesión
- Duración de la clave del ticket de sesión (segundos)
- Duración de la clave del ticket de sesión anterior (segundos)
-
Haga clic en Aceptar.
Escriba los datos del vale de sesión SSL manualmente mediante la CLI
En la línea de comandos, escriba:
set ssl profile <name> -sessionTicket ENABLED
set ssl profile <name> -sessionTicketKeyData
show ssl profile ns_default_ssl_profile_frontend
<!--NeedCopy-->
Argumentos:
sessionTicket: Uso de tíquets de sesión según lo descrito por RFC 5077. Establecer el apretón de manos inicial requiere operaciones de cifrado de clave pública intensivas en la CPU. Con la configuración ENABLED, un servidor emite un vale de sesión a un cliente, que el cliente puede usar para realizar un apretón de manos abreviado.
Valores posibles: ENABLED, DISABLED. Predeterminado: INHABILITADO
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 NetScaler 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 los datos del vale de sesión SSL manualmente mediante la interfaz gráfica de usuario
-
Vaya a Sistema > Perfiles y seleccione Perfil SSL .
-
Seleccione ns_default_ssl_profile_frontend y haga clic en Modificar.
-
En la sección Parámetros básicos, haga clic en el icono del lápiz y configure estos parámetros:
- Boleto de sesión
- Datos clave del ticket de sesión
- Confirmar datos clave del ticket de sesión
-
Haga clic en Aceptar.
Compatibilidad con Secreto maestro extendido en el protocolo de enlace SSL en plataformas NetScaler no FIPS
Secreto maestro extendido (EMS) es una extensión opcional del protocolo de seguridad de la 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 NetScaler. Si el parámetro está habilitado y el par admite EMS, el dispositivo ADC utiliza el cálculo de EMS. Si el par no admite EMS, el cálculo de EMS no se utiliza para la conexión aunque el parámetro esté habilitado en el dispositivo. Para obtener más información sobre EMS, consulte RFC 7627.
Nota: EMS solo se aplica a los apretones de manos 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 entregan con chips Intel Coleto:
- MPX 5900
- MPX/SDX 8900
- MPX/SDX 26000
- MPX/SDX 26000-50
- MPS/SDX 26000-100 G
- MPX/SDX 15000-50G
También puede utilizar el comando show hardware
para identificar si su 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 FIPS MPX 14000.
-
Plataformas MPX y SDX que contienen chips criptográficos Cavium N2.
Si el parámetro está habilitado, el dispositivo ADC intenta usar EMS en 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 vinculado al servidor virtual (front-end) o al servicio (back-end).
Habilitar EMS mediante la CLI
En la línea de comandos, 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-->
La siguiente tabla muestra el valor predeterminado del parámetro allowExtendedMasterSecret
en diferentes perfiles predeterminados y definidos por el usuario.
Profile | Configuración predeterminada |
---|---|
Perfil front-end predeterminado | NO |
Perfil seguro front-end predeterminado | SÍ |
Perfil 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
Se agrega un parámetro alpnProtocol
a los perfiles SSL front-end para negociar el protocolo de aplicación en la extensión ALPN para las conexiones gestionadas 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: El parámetro alpnProtocol
solo se admite en perfiles SSL front-end y se aplica a las conexiones SSL administradas por servidores virtuales de tipo SSL_TCP.
Establecer el protocolo en el perfil SSL front-end mediante la CLI
En la línea de comandos, escriba:
set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>
El parámetro alpnProtocol
puede tener tres valores. Longitud máxima: 4096 bytes.
- NINGUNO: La negociación del protocolo de aplicación no se lleva a cabo. 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 interfaz gráfica de usuario
-
Vaya a Sistema > Perfiles y seleccione Perfil SSL .
-
Seleccione ns_default_ssl_profile_frontend y haga clic en Modificar.
-
En la lista Protocolo ALPN, seleccione HTTP2.
Cargue una configuración antigua
La activación de los perfiles predeterminados no es reversible. Sin embargo, si decide que su implementación no requiere los perfiles predeterminados, puede cargar una configuración anterior que guardó antes de habilitar los perfiles predeterminados. Los cambios surtirán efecto después de reiniciar el dispositivo.
Cargar una configuración antigua mediante la CLI
En la línea de comandos, 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-->
Tasa que limita las renegociaciones de SSL
Cuando la renegociación SSL está habilitada, no hay límite en el número de solicitudes de renegociación. Como resultado, el NetScaler es susceptible a los ataques DoS que, en última instancia, pueden provocar que el NetScaler deje de procesar por completo el tráfico SSL. El parámetro maxRenegrate
se introduce en el perfil SSL para mitigar este problema al limitar el número de solicitudes de renegociación recibidas en un segundo en una entidad SSL.
Este parámetro solo se puede configurar cuando denySSLReneg
no está establecido en ALL. Cuando maxRenegRate
se establece en cero, la limitación de velocidad está inhabilitada (configuración predeterminada). Cuando se establece en un valor entero entre 1 y 65535, la limitación de velocidad está habilitada y el número máximo de solicitudes de renegociación por segundo para cada entidad vinculada al perfil SSL se limita a este valor entero. Por ejemplo, si establece el parámetro maxRenegRate
en 100 y en el perfil SSL ssl-profile-1
, y este perfil está enlazado a dos servidores virtuales v1 y v2, la v1 tiene un límite de 100 y la v2 tiene un límite de 100 solicitudes de renegociación.
Nota:
Esta función no es compatible con el protocolo DTLS.
Para agregar el límite al crear un perfil SSL mediante la CLI
En la línea de comandos, escriba:
add ssl profile pf1 -denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100
Para establecer el límite en un perfil SSL existente mediante la CLI
En la línea de comandos, escriba:
set ssl profile pf1 denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100
Ejemplo En los siguientes comandos, “MaxRenegrate” se establece en 100. Como resultado, se permite un máximo de 100 solicitudes por segundo a todas las entidades a las que está vinculado el perfil.
set ssl profile pf1 denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100
add ssl profile pf1 -denySSLReneg (NO | FRONTEND_CLIENT | FRONTEND_CLIENTSERVER | NONSECURE) -maxRenegRate 100
Para especificar el límite mediante la GUI
- Vaya a Sistema > Perfiles > Perfil SSL.
- Haga clic en Agregar para crear un perfil o seleccione un perfil existente.
- Para un perfil nuevo, especifique un nombre.
- Defina Denegar la renegociación de SSL en cualquier valor que no sea Todos.
- Especifique la tasa máxima de renegociación.
- Haga clic en Aceptar.
- Haga clic en Listo.
En este artículo
- Puntos que tener en cuenta
- Guarde la configuración mediante la CLI
- Habilitar el perfil predeterminado
- Parámetros que forman parte de los perfiles predeterminados
- Caso de uso
- Parámetros del perfil SSL
- Compatibilidad con renegociación segura en el back-end de un dispositivo NetScaler
- Validación de encabezados host
- Establecer los parámetros del perfil SSL mediante la CLI
- Establecer los parámetros del perfil SSL mediante la interfaz gráfica de usuario
- Extensión de tíquet de sesión de TLS
- Implementación segura de tickets de sesión
- Compatibilidad con Secreto maestro extendido en el protocolo de enlace SSL en plataformas NetScaler no FIPS
- Soporte para el procesamiento de la extensión ALPN en el mensaje de saludo del cliente
- Cargue una configuración antigua
- Tasa que limita las renegociaciones de SSL