estrutura SCH_CREDENTIALS (schannel.h)

A estrutura SCH_CREDENTIALS contém informações de inicialização para uma credencial Schannel.

Sintaxe

typedef struct _SCH_CREDENTIALS {
  DWORD           dwVersion;
  DWORD           dwCredFormat;
  DWORD           cCreds;
  PCCERT_CONTEXT  *paCred;
  HCERTSTORE      hRootStore;
  DWORD           cMappers;
  _HMAPPER        **aphMappers;
  struct          _HMAPPER;
  DWORD           dwSessionLifespan;
  DWORD           dwFlags;
  DWORD           cTlsParameters;
  PTLS_PARAMETERS pTlsParameters;
} SCH_CREDENTIALS, *PSCH_CREDENTIALS;

Membros

dwVersion

Defina como SCH_CREDENTIALS_VERSION.

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
SCH_CRED_FORMAT_CERT_HASH
0x00000001
O membro paCred da estrutura de SCH_CREDENTIALS 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.
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
O membro paCred da estrutura de SCH_CREDENTIALS aponta para uma estrutura SCHANNEL_CERT_HASH_STORE .

cCreds

O número de estruturas na matriz paCred.

paCred

Uma matriz de ponteiros para estruturas de CERT_CONTEXT. Cada ponteiro especifica um certificado que contém uma chave privada a ser usada na autenticação do 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 apenas 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 apenas por aplicativos do lado do servidor que exigem autenticação de cliente.

cMappers

Reservado.

aphMappers

Reservado.

_HMAPPER

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
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
Somente cliente.

Esse sinalizador é o oposto de SCH_CRED_MANUAL_CRED_VALIDATION e faz parte do comportamento padrão do Schannel.

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
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.

SCH_CRED_DISABLE_RECONNECTS
0x00000080
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 .

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
Ao verificar se há certificados revogados, ignore CRYPT_E_NO_REVOCATION_CHECK erros. Para obter restrições adicionais, consulte Comentários.
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
Ao verificar se há certificados revogados, ignore CRYPT_E_REVOCATION_OFFLINE erros. Para obter restrições adicionais, consulte Comentários.
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
Somente cliente.

Impedir que o Schannel valide a cadeia de certificados de servidor recebida.

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
Somente cliente.

Impedir que o Schannel tente fornecer automaticamente uma cadeia de certificados para autenticação do cliente.

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
Somente cliente.

Impedir que o Schannel compare o nome de destino fornecido com os nomes de entidade em certificados de servidor.

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
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.

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
Ao validar uma cadeia de certificados, marcar todos os certificados para revogação. Para obter restrições adicionais, consulte Comentários.
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
Ao validar uma cadeia de certificados, não marcar a raiz para revogação. Para obter restrições adicionais, consulte Comentários.
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
Ao validar uma cadeia de certificados, marcar apenas o último certificado para revogação. Para obter restrições adicionais, consulte Comentários.
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
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.

SCH_SEND_AUX_RECORD
0x00200000
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.

SCH_SEND_ROOT_CERT
0x00040000
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.
 
SCH_USE_STRONG_CRYPTO
0x00400000
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 melhor interoperabilidade.
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
Instrui o Schannel a selecionar apenas conjuntos de criptografia PSK e desabilitar todos os outros conjuntos de criptografia.

cTlsParameters

A contagem de entradas na matriz pTlsParameters.

É um erro especificar mais de SCH_CRED_MAX_SUPPORTED_PARAMETERS.

pTlsParameters

Matriz de ponteiros para as estruturas de TLS_PARAMETERS que indicam restrições de parâmetro TLS, se houver. Se nenhuma restrição for especificada, os padrões do sistema serão usados. É recomendável que os aplicativos dependam dos padrões do sistema.

É um erro incluir mais de um TLS_PARAMETERS estrutura com cAlpnIds == 0 e rgstrAlpnIds == NULL.

Comentários

Para usar a estrutura de SCH_CREDENTIALS, defina SCHANNEL_USE_BLACKLISTS juntamente com UNICODE_STRING e PUNICODE_STRING. Como alternativa, inclua Ntdef.h, SubAuth.h ou Winternl.h.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10 1809 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 1809 [somente aplicativos da área de trabalho]
Cabeçalho schannel.h

Confira também

CRYPTO_SETTINGS

TLS_PARAMETERS