структура SCH_CREDENTIALS (schannel.h)
Структура SCH_CREDENTIALS содержит сведения об инициализации учетных данных Schannel.
Синтаксис
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;
Члены
dwVersion
Задайте значение SCH_CREDENTIALS_VERSION.
dwCredFormat
Schannel в режиме ядра поддерживает следующие значения.
Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP и Windows XP/2000: Этот флаг не поддерживается и должен быть равен нулю.
Значение | Значение |
---|---|
|
Элемент paCred структуры SCH_CREDENTIALS должен быть указателем на массив байтов длиной 20, содержащий отпечаток сертификата. Предполагается, что сертификат находится в хранилище "MY" локального компьютера. |
|
Элемент paCred структуры SCH_CREDENTIALS указывает на структуру SCHANNEL_CERT_HASH_STORE . |
cCreds
Количество структур в массиве paCred.
paCred
Массив указателей на структуры CERT_CONTEXT. Каждый указатель указывает сертификат, содержащий закрытый ключ, который будет использоваться при проверке подлинности приложения.
Клиентские приложения часто передают пустой список и либо зависят от Schannel, чтобы найти соответствующий сертификат, либо создать сертификат позже, если это потребуется.
hRootStore
Необязательный элемент. Допустимо только для серверных приложений. Обработка в хранилище сертификатов, которое содержит самозаверяющие корневые сертификаты для центров сертификации (ЦС), доверенных для приложения. Этот элемент используется только серверными приложениями, которым требуется проверка подлинности клиента.
cMappers
Зарезервировано.
aphMappers
Зарезервировано.
_HMAPPER
dwSessionLifespan
Количество миллисекундах, в которых Schannel хранит сеанс в своем кэше сеансов. По истечении этого времени для всех новых подключений между клиентом и сервером требуется новый сеанс Schannel. Задайте значение этого элемента равным нулю, чтобы использовать значение по умолчанию 36000000 миллисекунда (десять часов).
dwFlags
Содержит битовые флаги, управляющие поведением Schannel. Этот элемент может быть нулевым или сочетанием следующих значений.
Значение | Значение |
---|---|
|
Только клиент.
Этот флаг является противоположностью SCH_CRED_MANUAL_CRED_VALIDATION и является частью поведения Schannel по умолчанию. |
|
Указать Schannel передать флаг CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL функции CertGetCertificateChain при проверке указанных учетных данных во время вызова AcquireCredentialsHandle (Schannel).
Windows Server 2003 и Windows XP/2000: Этот флаг не поддерживается. |
|
Только сервер.
Если этот флаг установлен, полные подтверждения, выполненные с помощью этих учетных данных, не разрешают повторное подключение. Создается запись кэша, поэтому сеанс можно возобновить позже с помощью функции ApplyControlToken . |
|
При проверке на наличие отозванных сертификатов игнорируйте ошибки CRYPT_E_NO_REVOCATION_CHECK. Дополнительные ограничения см. в разделе Примечания. |
|
При проверке на наличие отозванных сертификатов игнорируйте ошибки CRYPT_E_REVOCATION_OFFLINE. Дополнительные ограничения см. в разделе Примечания. |
|
Только клиент.
Запретите Schannel проверки полученной цепочки сертификатов сервера. |
|
Только клиент.
Запретить Schannel автоматически предоставлять цепочку сертификатов для проверки подлинности клиента. |
|
Только клиент.
Запретите Schannel сравнивать указанное целевое имя с именами субъектов в сертификатах сервера. |
|
Только сервер.
Запретите Schannel использовать встроенные функции сопоставления системных сертификатов для сопоставления сертификатов клиента с учетной записью пользователя. |
|
При проверке цепочки сертификатов проверка все сертификаты для отзыва. Дополнительные ограничения см. в разделе Примечания. |
|
При проверке цепочки сертификатов не проверка корневой каталог для отзыва. Дополнительные ограничения см. в разделе Примечания. |
|
При проверке цепочки сертификатов проверка только последний сертификат для отзыва. Дополнительные ограничения см. в разделе Примечания. |
|
Только клиент.
Schannel пытается автоматически предоставить цепочку сертификатов для проверки подлинности клиента. Это значение противоположно SCH_CRED_NO_DEFAULT_CREDS. |
|
Поручите Schannel разделить данные для шифрования на две отдельные записи, чтобы противостоять уязвимостям, которые присутствуют в протоколе SSL/TLS при использовании с набором симметричных шифров в режиме цепочки блоков шифров. Дополнительные сведения см. в разделе "Уязвимость в SSL/TLS может привести к раскрытию информации" в базе знаний справки и поддержки по адресу http://support.microsoft.com/kb/2643584.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP и Windows XP/2000: Этот флаг не поддерживается. |
|
Schannel отправляет корневой сертификат как часть сообщения о сертификате.
Примечание Корневой сертификат, отправленный по сети клиентом или сервером Schannel, не должен быть доверенным. Его следует проверить на соответствие доверенному хэшу корневого сертификата.
|
|
Указывает Schannel отключить известные слабые алгоритмы шифрования, комплекты шифров и версии протокола SSL/TLS, которые в противном случае могут быть включены для улучшения взаимодействия. |
|
Указывает Schannel выбрать только комплекты шифров PSK и отключить все остальные наборы шифров. |
cTlsParameters
Количество записей в массиве pTlsParameters.
Указание более SCH_CRED_MAX_SUPPORTED_PARAMETERS является ошибкой.
pTlsParameters
Массив указателей на структуры TLS_PARAMETERS , указывающие ограничения параметров TLS, если таковые есть. Если ограничения не указаны, используются системные значения по умолчанию. Рекомендуется, чтобы приложения полагались на системные значения по умолчанию.
Добавление нескольких TLS_PARAMETERS структуры с cAlpnIds == 0 и rgstrAlpnIds == NULL является ошибкой.
Комментарии
Чтобы использовать структуру SCH_CREDENTIALS, определите SCHANNEL_USE_BLACKLISTS вместе с UNICODE_STRING и PUNICODE_STRING. Кроме того, можно включить Ntdef.h, SubAuth.h или Winternl.h.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 1809 [только классические приложения] |
Минимальная версия сервера | Windows Server 1809 [только классические приложения] |
Верхняя часть | schannel.h |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по