estructura SCHANNEL_CRED (schannel.h)
Nota
La estructura SCHANNEL_CRED está en desuso. En su lugar, debe usar SCH_CREDENTIALS .
La estructura SCHANNEL_CRED contiene los datos de una credencial de Schannel.
Sintaxis
typedef struct _SCHANNEL_CRED {
DWORD dwVersion;
DWORD cCreds;
PCCERT_CONTEXT *paCred;
HCERTSTORE hRootStore;
DWORD cMappers;
_HMAPPER **aphMappers;
struct _HMAPPER;
DWORD cSupportedAlgs;
ALG_ID *palgSupportedAlgs;
DWORD grbitEnabledProtocols;
DWORD dwMinimumCipherStrength;
DWORD dwMaximumCipherStrength;
DWORD dwSessionLifespan;
DWORD dwFlags;
DWORD dwCredFormat;
} SCHANNEL_CRED, *PSCHANNEL_CRED;
Miembros
dwVersion
Establezca en SCHANNEL_CRED_VERSION.
cCreds
Número de estructuras de la matriz paCred .
paCred
Matriz de punteros a CERT_CONTEXT estructuras. Cada puntero especifica un certificado que contiene una clave privada que se usará para autenticar la aplicación. Normalmente, esta matriz contiene una estructura para cada método de intercambio de claves admitido por la aplicación.
Las aplicaciones cliente suelen pasar una lista vacía y dependen de Schannel para buscar un certificado adecuado o crear un certificado más adelante si es necesario.
hRootStore
Opcional. Válido solo para aplicaciones de servidor. Identificador de un almacén de certificados que contiene certificados raíz autofirmados para las entidades de certificación (CA) de confianza de la aplicación. Este miembro solo lo usan las aplicaciones del lado servidor que requieren autenticación de cliente.
cMappers
Reservado.
aphMappers
Reservado.
_HMAPPER
cSupportedAlgs
Número de algoritmos de la matriz palgSupportedAlgs .
palgSupportedAlgs
Opcional. Puntero a una matriz de identificadores de algoritmo de ALG_ID que representan los algoritmos admitidos por las conexiones realizadas con credenciales adquiridas mediante esta estructura. Si cSupportedAlgs es cero o palgSupportedAlgs es NULL, Schannel usa los valores predeterminados del sistema.
Actualmente, no se admiten los identificadores de algoritmo CALG_AES, CALG_AES_128 y CALG_AES_256 .
grbitEnabledProtocols
Opcional. DWORD que contiene una cadena de bits que representa los protocolos admitidos por las conexiones realizadas con credenciales adquiridas mediante esta estructura. Si este miembro es cero, Schannel selecciona el protocolo. Para el nuevo desarrollo, las aplicaciones deben establecer grbitEnabledProtocols en cero y usar las versiones de protocolo habilitadas en el sistema de forma predeterminada.
Este miembro solo lo usa el paquete de seguridad del proveedor de protocolos de seguridad unificados de Microsoft.
La configuración global del Registro del sistema tiene prioridad sobre este valor. Por ejemplo, si SSL3 está deshabilitado en el registro, no se puede habilitar mediante este miembro.
Este miembro puede contener cualquiera de las marcas siguientes.
dwMinimumCipherStrength
Nivel mínimo de cifrado de cifrado masivo, en bits, permitido para las conexiones.
Si este miembro es cero, Schannel usa el valor predeterminado del sistema. Si este miembro es –1, solo se habilitan los conjuntos de cifrado SSL3/TLS (también conocidos como cifrado NULL ).
dwMaximumCipherStrength
Máxima intensidad de cifrado de cifrado masivo, en bits, permitida para las conexiones.
Si este miembro es cero, Schannel usa el valor predeterminado del sistema.
Si este miembro es –1, solo se habilitan los conjuntos de cifrado SSL3/TLS (también conocidos como cifrado NULL ). En este caso, dwMinimumCipherStrength debe establecerse en –1.
dwSessionLifespan
Número de milisegundos que Schannel mantiene la sesión en su caché de sesiones. Una vez transcurrido este tiempo, las nuevas conexiones entre el cliente y el servidor requieren una nueva sesión de Schannel. Establezca el valor de este miembro en cero para usar el valor predeterminado de 360000000 milisegundos (diez horas).
dwFlags
Contiene marcas de bits que controlan el comportamiento de Schannel. Este miembro puede ser cero o una combinación de los valores siguientes.
Valor | Significado |
---|---|
|
Solo cliente.
Esta marca es lo contrario de SCH_CRED_MANUAL_CRED_VALIDATION y forma parte del comportamiento predeterminado de Schannel. |
|
Indique a Schannel que pase la marca CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL a la función CertGetCertificateChain al validar las credenciales especificadas durante una llamada a AcquireCredentialsHandle (Schannel).
Windows Server 2003 y Windows XP/2000: Esta marca no se admite. |
|
Solo servidor.
Si se establece esta marca, los protocolos de enlace completos realizados con esta credencial no permitirán las reconexión. Se crea una entrada de caché, por lo que la sesión se puede reanudar más adelante mediante la función ApplyControlToken . |
|
Al comprobar si hay certificados revocados, omita CRYPT_E_NO_REVOCATION_CHECK errores. Para obtener restricciones adicionales, vea Comentarios. |
|
Al comprobar si hay certificados revocados, omita CRYPT_E_REVOCATION_OFFLINE errores. Para obtener restricciones adicionales, vea Comentarios. |
|
Solo cliente.
Impedir que Schannel valide la cadena de certificados de servidor recibida. |
|
Solo cliente.
Impedir que Schannel intente proporcionar automáticamente una cadena de certificados para la autenticación de cliente. |
|
Solo cliente.
Impedir que Schannel compare el nombre de destino proporcionado con los nombres de firmante en los certificados de servidor. |
|
Solo servidor.
Impedir que Schannel use las funciones de asignación de certificados del sistema integradas para asignar certificados de cliente a una cuenta de usuario. |
|
Al validar una cadena de certificados, compruebe todos los certificados para la revocación. Para obtener restricciones adicionales, vea Comentarios. |
|
Al validar una cadena de certificados, no compruebe la raíz para la revocación. Para obtener restricciones adicionales, vea Comentarios. |
|
Al validar una cadena de certificados, compruebe solo el último certificado para la revocación. Para obtener restricciones adicionales, vea Comentarios. |
|
Solo cliente.
Schannel intenta proporcionar automáticamente una cadena de certificados para la autenticación de cliente. Este valor es lo contrario de SCH_CRED_NO_DEFAULT_CREDS. |
|
Indique a Schannel que divida los datos que se van a cifrar en dos registros independientes para contrarrestar la debilidad presente en el protocolo SSL/TLS cuando se usa con el conjunto de cifrado simétrico mediante el modo de encadenamiento de bloques de cifrado. Para obtener más información, vea "Vulnerabilidad en SSL/TLS podría permitir la divulgación de información" en la Base de conocimiento ayuda y soporte técnico en http://support.microsoft.com/kb/2643584.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP y Windows XP/2000: Esta marca no se admite. |
|
Schannel envía el certificado raíz como parte del mensaje de certificado.
Nota El certificado raíz enviado a través de la red por el cliente o servidor de Schannel no es de confianza. Debe validarse con un hash de confianza del certificado raíz.
|
|
Indica a Schannel que deshabilite algoritmos criptográficos débiles conocidos, conjuntos de cifrado y versiones del protocolo SSL/TLS que, de lo contrario, se puedan habilitar para mejorar la interoperabilidad. |
|
Indica a Schannel que seleccione solo los conjuntos de cifrado PSK y deshabilite todos los demás conjuntos de cifrado. |
dwCredFormat
El modo kernel Schannel admite los valores siguientes.
Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP y Windows XP/2000: Esta marca no se admite y debe ser cero.
Valor | Significado |
---|---|
|
El miembro paCred de la estructura de SCHANNEL_CRED pasado debe ser un puntero a una matriz de bytes de longitud 20 que contenga la huella digital del certificado. Se supone que el certificado está en el almacén "MY" del equipo local. |
|
El miembro paCred de la estructura SCHANNEL_CRED apunta a una estructura de SCHANNEL_CERT_HASH_STORE . |
Comentarios
Las marcas de revocación de certificados siguientes son mutuamente excluyentes.
- SCH_CRED_REVOCATION_CHECK_CHAIN
- SCH_CRED_REVOCATION_CHECK_END_CERT
- SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Para personalizar los informes de errores de revocación de certificados para Schannel, use las marcas siguientes:
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK
- SCH_CRED_IGNORE_REVOCATION_OFFLINE
Cuando Schannel comprueba el estado de revocación de una cadena de certificados, estas marcas le indican que omita los errores de CRYPT_E_NO_REVOCATION_CHECK y CRYPT_E_REVOCATION_OFFLINE, respectivamente. Estas marcas se omiten si no se establece ninguna marca de revocación de certificados.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8.1 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 R2 [solo aplicaciones de escritorio] |
Encabezado | schannel.h (include Schnlsp.h) |