структура 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, позволяющем разрешить раскрытие информации.
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 |