Поделиться через


Указание шифров Schannel и их стойкости

Для обмена данными между клиентом и сервером поведение Schannel по умолчанию заключается в согласовании наилучших доступных шифров, основанных на тех, которые включены в системный реестр. Приложения могут ограничить допустимые шифры и их уровни для подключения, используя элементы структуры SCHANNEL_CRED следующим образом:

  1. Задайте элемент palgSupportedAlgs в массив ALG_ID, содержащий допустимые шифры. Дополнительные сведения см. в разделе "Идентификаторы шифров".
  2. Задайте члены dwMinimumCipherStrength и/или dwMaximumCipherStrength на допустимые минимальные и максимальные значения. Дополнительные сведения см. в разделе "Значения силы шифра".
  3. Передайте структуру SCHANNEL_CRED (с помощью параметра pAuthData) в вызове функции AcquireCredentialsHandle. Эта функция возвращает дескриптор учетных данных.
  4. Укажите дескриптор учетных данных в вызове клиентской функции InitializeSecurityContext (General) или серверной функции AcceptSecurityContext (General).

Идентификаторы шифров

Поведение Schannel по умолчанию — запрашивать лучший шифр, доступный на основе записей Schannel в системном реестре. Не изменяйте системный реестр; Параметры, содержащиеся в Schannel, используются глобально и влияют на другие приложения. Список допустимых констант см. в ALG_ID.

Значения силы шифра

Эта функция Schannel обычно используется для ограничения соединения к шифрам внутренней или экспортной степени защиты. Внутренние показатели включают 56 и 128 бит, в то время как показатели экспорта ограничены 56 битами. Если минимальные и максимальные значения заданы как нули, Schannel будет использовать все доступные шифры.

Используя ПРОТОКОЛ TLS или SSL 3.0, задайте элементу dwMinimumCipherStrength значение -1 (отрицательное значение), чтобы включить наборы шифров NULL, которые предоставляют подписи, но не шифры. Если dwMaximumCipherStrength также задано значение -1, то будут включены только наборы шифров "Null Cipher". Этот параметр предназначен только для разработки и не должен использоваться в рабочих системах.

Запрос сведений о шифре

Чтобы получить параметры силы шифра для учетных данных, вызовите функциюQueryCredentialsAttributes и укажите SECPKG_ATTR_CIPHER_STRENGTHS в качестве параметра ulAttribute.

Чтобы получить список поддерживаемых алгоритмов для учетных данных, вызовите QueryCredentialsAttributes с SECPKG_ATTR_SUPPORTED_ALGS в качестве параметра ulAttribute.