Partilhar via


Especificando codificações schannel e pontos fortes de criptografia

Para trocas de informações de cliente/servidor, o comportamento padrão do Schannel é negociar a melhor criptografia disponível com base nas habilitadas no registro. Os aplicativos podem limitar as codificações e os pontos fortes de codificação permitidos para uma conexão usando membros da estrutura SCHANNEL_CRED da seguinte maneira:

  1. Defina o membro palgSupportedAlgs como uma matriz de ALG_ID que contém as criptografias permitidas. Para obter mais informações, consulte IDs de criptografia.
  2. Defina os membros dwMinimumCipherStrength e/ou dwMaximumCipherStrength com os pontos fortes mínimo e máximo permitidos. Para obter mais informações, consulte Valores de força de criptografia.
  3. Passe a estrutura SCHANNEL_CRED (por meio do parâmetro pAuthData ) em uma chamada para a função AcquireCredentialsHandle . Essa função retorna um identificador de credenciais.
  4. Especifique o identificador de credenciais em uma chamada para a função InitializeSecurityContext (Geral) do lado do cliente ou a função AcceptSecurityContext (Geral) do lado do servidor.

IDs de criptografia

O comportamento padrão do Schannel é solicitar a melhor codificação disponível com base em entradas Schannel no registro do sistema. Não altere o registro do sistema; as configurações que ele contém para o Schannel são usadas globalmente e afetarão outros aplicativos. Para obter a lista de constantes válidas, consulte ALG_ID.

Valores de força da criptografia

Esse recurso Schannel normalmente é usado para limitar uma conexão a criptografias de força domésticas ou de exportação. Os pontos fortes domésticos incluem 56 e 128 bits, enquanto a força de exportação é limitada a 56 bits. Se você definir os valores mínimo e máximo como zero, o Schannel usará todos os pontos fortes de criptografia disponíveis.

Usando TLS ou SSL 3.0, defina o membro dwMinimumCipherStrength como -1 (negativo) para habilitar os conjuntos de criptografia "Codificação Nula", que fornecem assinaturas, mas nenhuma criptografia. Se dwMaximumCipherStrength também estiver definido como -1, somente os pacotes "Codificação Nula" serão habilitados. Essa configuração destina-se apenas ao desenvolvimento e não deve ser usada em sistemas de produção.

Consultando informações de criptografia

Para recuperar as configurações de força de criptografia de uma credencial, chame a função QueryCredentialsAttributes e especifique SECPKG_ATTR_CIPHER_STRENGTHS como o parâmetro ulAttribute .

Para recuperar a lista de algoritmos com suporte para uma credencial, chame QueryCredentialsAttributes com SECPKG_ATTR_SUPPORTED_ALGS como o parâmetro ulAttribute .