estrutura SCHANNEL_CRED (schannel.h)
Nota
A estrutura de SCHANNEL_CRED foi preterida. Em vez disso, você deve usar SCH_CREDENTIALS.
A estrutura SCHANNEL_CRED contém os dados de uma credencial Schannel.
Sintaxe
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;
Membros
dwVersion
Definido como SCHANNEL_CRED_VERSION.
cCreds
O número de estruturas na matriz de paCred
paCred
Uma matriz de ponteiros para CERT_CONTEXT estruturas. Cada ponteiro especifica um certificado que contém um chave privada a ser usada na autenticação do aplicativo. Normalmente, essa matriz contém uma estrutura para cada método de troca de chaves compatível com o aplicativo.
Os aplicativos cliente geralmente passam em uma lista vazia e dependem do Schannel para encontrar um certificado apropriado ou criar um certificado posteriormente, se necessário.
hRootStore
Opcional. Válido somente para aplicativos de servidor. Manipule para um repositório de certificados que contém certificados raiz autoassinados para autoridades de certificação (CAs) confiáveis pelo aplicativo. Esse membro é usado somente por aplicativos do lado do servidor que exigem autenticação de cliente.
cMappers
Reservado.
aphMappers
Reservado.
_HMAPPER
cSupportedAlgs
Número de algoritmos na matriz palgSupportedAlgs
palgSupportedAlgs
Opcional. Um ponteiro para uma matriz de identificadores de algoritmo ALG_ID que representam os algoritmos compatíveis com conexões feitas com credenciais adquiridas usando essa estrutura. Se cSupportedAlgs for zero ou palgSupportedAlgs estiver NULL, o Schannel usará os padrões do sistema.
Atualmente, não há suporte para os identificadores de algoritmo CALG_AES, CALG_AES_128e CALG_AES_256.
grbitEnabledProtocols
Opcional. Um DWORD que contém uma cadeia de caracteres de bits que representa os protocolos compatíveis com conexões feitas com credenciais adquiridas usando essa estrutura. Se esse membro for zero, o Schannel selecionará o protocolo. Para o novo desenvolvimento, os aplicativos devem definir grbitEnabledProtocols como zero e usar as versões de protocolo habilitadas no sistema por padrão.
Esse membro é usado apenas pelodo pacote de segurança
As configurações globais do registro do sistema têm precedência sobre esse valor. Por exemplo, se o SSL3 estiver desabilitado no registro, ele não poderá ser habilitado usando esse membro.
Esse membro pode conter qualquer um dos sinalizadores a seguir.
dwMinimumCipherStrength
Força mínima de criptografia em massa, em bits, permitida para conexões.
Se esse membro for zero, o Schannel usará o padrão do sistema. Se esse membro for –1, somente os pacotes de criptografia SSL3/TLS MAC (também conhecidos como codificação NULL) serão habilitados.
dwMaximumCipherStrength
Força máxima da criptografia em massa, em bits, permitida para conexões.
Se esse membro for zero, o Schannel usará o padrão do sistema.
Se esse membro for –1, somente os pacotes de criptografia SSL3/TLS MAC (também conhecidos como codificação NULL) serão habilitados. Nesse caso, dwMinimumCipherStrength deve ser definido como –1.
dwSessionLifespan
O número de milissegundos que o Schannel mantém a sessão em seu cache de sessão. Depois que esse tempo for passado, todas as novas conexões entre o cliente e o servidor exigirão uma nova sessão Schannel. Defina o valor desse membro como zero para usar o valor padrão de 36000000 milissegundos (dez horas).
dwFlags
Contém sinalizadores de bits que controlam o comportamento do Schannel. Esse membro pode ser zero ou uma combinação dos valores a seguir.
Valor | Significado |
---|---|
|
Somente cliente.
Esse sinalizador é o oposto de SCH_CRED_MANUAL_CRED_VALIDATION e faz parte do comportamento padrão do Schannel. |
|
Instrua o Schannel a passar o sinalizador de CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL para a função Windows Server 2003 e Windows XP/2000: Esse sinalizador não tem suporte. |
|
Somente servidor.
Se esse sinalizador estiver definido, os handshakes completos executados com essa credencial não permitirão reconexões. Uma entrada de cache é criada para que a sessão possa ser retomável posteriormente usando a função |
|
Ao verificar se há certificados revogados, ignore CRYPT_E_NO_REVOCATION_CHECK erros. Para obter restrições adicionais, consulte Comentários. |
|
Ao verificar se há certificados revogados, ignore CRYPT_E_REVOCATION_OFFLINE erros. Para obter restrições adicionais, consulte Comentários. |
|
Somente cliente.
Impedir que o Schannel valide a cadeia de certificados do servidor recebido. |
|
Somente cliente.
Impedir que o Schannel tente fornecer automaticamente uma cadeia de certificados para autenticação de cliente. |
|
Somente cliente.
Impedir que o Schannel compare o nome de destino fornecido com os nomes de entidade em certificados de servidor. |
|
Somente servidor.
Impedir que o Schannel use as funções internas de mapeamento de certificado do sistema para mapear certificados de cliente para uma conta de usuário. |
|
Ao validar uma cadeia de certificados, verifique todos os certificados para revogação. Para obter restrições adicionais, consulte Comentários. |
|
Ao validar uma cadeia de certificados, não verifique a raiz para revogação. Para obter restrições adicionais, consulte Comentários. |
|
Ao validar uma cadeia de certificados, verifique apenas o último certificado para revogação. Para obter restrições adicionais, consulte Comentários. |
|
Somente cliente.
O Schannel tenta fornecer automaticamente uma cadeia de certificados para autenticação de cliente. Esse valor é o oposto de SCH_CRED_NO_DEFAULT_CREDS. |
|
Instrua o Schannel a dividir dados a serem criptografados em dois registros separados para combater a fraqueza presente no protocolo SSL/TLS quando usado com o pacote de criptografia simétrica usando o modo de encadeamento de blocos de criptografia. Para obter mais informações, consulte Vulnerabilidade no SSL/TLS pode permitir a divulgação de informações.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Esse sinalizador não tem suporte. |
|
O Schannel envia o certificado raiz como parte da mensagem de certificado.
Observação O certificado raiz enviado pela rede pelo cliente ou servidor Schannel não é confiável. Ele deve ser validado em relação a um hash confiável do certificado raiz.
|
|
Instrui o Schannel a desabilitar algoritmos criptográficos fracos conhecidos, conjuntos de criptografia e versões de protocolo SSL/TLS que podem estar habilitadas para melhor interoperabilidade. |
|
Instrui o Schannel a selecionar apenas os pacotes de criptografia PSK e desabilitar todos os outros conjuntos de criptografia. |
dwCredFormat
O Schannel no modo kernel dá suporte aos valores a seguir.
Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Esse sinalizador não tem suporte e deve ser zero.
Observações
Os sinalizadores de revogação de certificado a seguir são mutuamente exclusivos.
- SCH_CRED_REVOCATION_CHECK_CHAIN
- SCH_CRED_REVOCATION_CHECK_END_CERT
- SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Para personalizar o relatório de erros de revogação de certificado para schannel, use os seguintes sinalizadores:
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK
- SCH_CRED_IGNORE_REVOCATION_OFFLINE
Quando o Schannel verifica o status de revogação de uma cadeia de certificados, esses sinalizadores o instruem a ignorar quaisquer erros de CRYPT_E_NO_REVOCATION_CHECK e CRYPT_E_REVOCATION_OFFLINE, respectivamente. Esses sinalizadores serão ignorados se nenhum sinalizador de revogação de certificado estiver definido.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8.1 [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2012 R2 [somente aplicativos da área de trabalho] |
cabeçalho | schannel.h (inclua Schnlsp.h) |