estrutura SCHANNEL_CRED (schannel.h)
Observação
A estrutura 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
Defina como SCHANNEL_CRED_VERSION.
cCreds
O número de estruturas na matriz paCred .
paCred
Uma matriz de ponteiros para CERT_CONTEXT estruturas. Cada ponteiro especifica um certificado que contém uma 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 (ACs) confiáveis pelo aplicativo. Esse membro é usado apenas 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 for NULL, schannel usará os padrões do sistema.
Atualmente, não há suporte para os identificadores de algoritmo CALG_AES, CALG_AES_128 e 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, 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 pelo pacote de segurança do Provedor de Protocolo de Segurança Unificado da Microsoft.
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 MAC SSL3/TLS (também conhecidos como criptografia NULL ) serão habilitados.
dwMaximumCipherStrength
Força máxima 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 MAC SSL3/TLS (também conhecidos como criptografia 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 schannel a passar o sinalizador CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL para a função CertGetCertificateChain ao validar as credenciais especificadas durante uma chamada para AcquireCredentialsHandle (Schannel).
Windows Server 2003 e Windows XP/2000: Não há suporte para esse sinalizador. |
|
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, portanto, a sessão pode ser retomável posteriormente usando a função ApplyControlToken . |
|
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 de servidor recebida. |
|
Somente cliente.
Impedir que o Schannel tente fornecer automaticamente uma cadeia de certificados para autenticação do 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, marcar todos os certificados para revogação. Para obter restrições adicionais, consulte Comentários. |
|
Ao validar uma cadeia de certificados, não marcar a raiz para revogação. Para obter restrições adicionais, consulte Comentários. |
|
Ao validar uma cadeia de certificados, marcar 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 do 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, confira "Vulnerabilidade no SSL/TLS pode permitir a divulgação de informações" na base de dados de conhecimento de ajuda e suporte em http://support.microsoft.com/kb/2643584.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP e Windows XP/2000: Não há suporte para esse sinalizador. |
|
O Schannel envia o certificado raiz como parte da mensagem de certificado.
Nota 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, de outra forma, podem estar habilitadas para uma melhor interoperabilidade. |
|
Instrui o Schannel a selecionar apenas os pacotes de criptografia PSK e desabilitar todos os outros pacotes 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.
Valor | Significado |
---|---|
|
O membro paCred da estrutura de SCHANNEL_CRED passada deve ser um ponteiro para uma matriz de bytes de comprimento 20 que contém a impressão digital do certificado. Presume-se que o certificado esteja no repositório "MY" do computador local. |
|
O membro paCred da estrutura SCHANNEL_CRED aponta para uma estrutura SCHANNEL_CERT_HASH_STORE . |
Comentários
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 |
---|---|
Cliente mínimo com suporte | Windows 8.1 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | schannel.h (inclua Schnlsp.h) |