Compartir a través de


Especificar cifrados Schannel y puntos fuertes de cifrado

En el caso de los intercambios de información de cliente/servidor, el comportamiento predeterminado de Schannel es negociar el mejor cifrado disponible en función de los habilitados en el registro. Las aplicaciones pueden limitar los cifrados y los puntos fuertes de cifrado permitidos para una conexión mediante el uso de miembros de la estructura SCHANNEL_CRED de la siguiente manera:

  1. Establezca el miembro palgSupportedAlgs en una matriz de ALG_ID que contiene los cifrados permitidos. Para obtener más información, vea Identificadores de cifrado.
  2. Establezca los miembros dwMinimumCipherStrength y/o dwMaximumCipherStrength en los puntos máximos y mínimos permitidos. Para obtener más información, vea Valores de intensidad de cifrado.
  3. Pase la estructura SCHANNEL_CRED (por medio del parámetro pAuthData ) en una llamada a la función AcquireCredentialsHandle . Esta función devuelve un identificador de credenciales.
  4. Especifique el identificador de credenciales en una llamada a la función InitializeSecurityContext (General) del lado cliente o a la función AcceptSecurityContext (General) del lado servidor.

Identificadores de cifrado

El comportamiento predeterminado de Schannel es solicitar el mejor cifrado disponible en función de las entradas de Schannel en el registro del sistema. No cambie el registro del sistema; la configuración que contiene para Schannel se usa globalmente y afectará a otras aplicaciones. Para obtener la lista de constantes válidas, consulte ALG_ID.

Valores de intensidad de cifrado

Esta característica de Schannel se usa normalmente para limitar una conexión a cifrados de fuerza de exportación o nacionales. Los puntos fuertes domésticos incluyen 56 y 128 bits, mientras que la fuerza de exportación está limitada a 56 bits. Si establece los valores mínimo y máximo en cero Schannel usará todos los puntos fuertes de cifrado disponibles.

Con TLS o SSL 3.0, establezca el miembro dwMinimumCipherStrength en -1 (negativo) para habilitar los conjuntos de cifrado "Cifrado nulo", que proporcionan firmas pero no cifrado. Si dwMaximumCipherStrength también se establece en -1, solo se habilitarán los conjuntos de cifrado "Null". Esta configuración está pensada solo para el desarrollo y no debe usarse en sistemas de producción.

Consulta de información de cifrado

Para recuperar la configuración de intensidad de cifrado de una credencial, llame a la función QueryCredentialsAttributes y especifique SECPKG_ATTR_CIPHER_STRENGTHS como el parámetro ulAttribute .

Para recuperar la lista de algoritmos admitidos para una credencial, llame a QueryCredentialsAttributes con SECPKG_ATTR_SUPPORTED_ALGS como parámetro ulAttribute .