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: 이 플래그는 지원되지 않으며 0이어야 합니다.
값 | 의미 |
---|---|
|
전달된 SCH_CREDENTIALS 구조체의 paCred 멤버는 인증서 지문이 포함된 길이 20의 바이트 배열에 대한 포인터여야 합니다. 인증서는 로컬 컴퓨터의 "MY" 저장소에 있는 것으로 간주됩니다. |
|
SCH_CREDENTIALS 구조체의 paCred 멤버는 SCHANNEL_CERT_HASH_STORE 구조를 가리킵니다. |
cCreds
paCred 배열의 구조 수입니다.
paCred
CERT_CONTEXT 구조체에 대한 포인터 배열입니다. 각 포인터는 애플리케이션을 인증하는 데 사용할 프라이빗 키가 포함된 인증서를 지정합니다.
클라이언트 애플리케이션은 종종 빈 목록을 전달하고 Schannel에 의존하여 적절한 인증서를 찾거나 필요한 경우 나중에 인증서를 만듭니다.
hRootStore
선택적. 서버 애플리케이션에만 유효합니다. 애플리케이션에서 신뢰하는 CA(인증 기관)에 대한 자체 서명된 루트 인증서가 포함된 인증서 저장소에 대한 핸들입니다. 이 멤버는 클라이언트 인증이 필요한 서버 쪽 애플리케이션에서만 사용됩니다.
cMappers
예약.
aphMappers
예약.
_HMAPPER
dwSessionLifespan
Schannel이 세션을 세션 캐시에 유지하는 시간(밀리초)입니다. 이 시간이 지나면 클라이언트와 서버 간의 새 연결에 새 Schannel 세션이 필요합니다. 기본값인 360000000밀리초(10시간)를 사용하려면 이 멤버의 값을 0으로 설정합니다.
dwFlags
Schannel의 동작을 제어하는 비트 플래그를 포함합니다. 이 멤버는 0이거나 다음 값의 조합일 수 있습니다.
값 | 의미 |
---|---|
|
클라이언트 전용입니다.
이 플래그는 SCH_CRED_MANUAL_CRED_VALIDATION 반대이며 Schannel의 기본 동작의 일부입니다. |
|
AcquireCredentialsHandle(Schannel)호출하는 동안 지정된 자격 증명의 유효성을 검사할 때 CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL 플래그를 CertGetCertificateChain 함수에 전달하도록 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 반대입니다. |
|
암호화 블록 체인 모드를 사용하는 대칭 암호 그룹과 함께 사용할 때 SSL/TLS 프로토콜에 있는 약점에 대응하기 위해 데이터를 두 개의 별도 레코드로 분할하도록 Schannel에 지시합니다. 자세한 내용은 SSL/TLS의 취약성을 참조하여 정보 공개허용합니다.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP 및 Windows XP/2000: 이 플래그는 지원되지 않습니다. |
|
Schannel은 인증서 메시지의 일부로 루트 인증서를 보냅니다.
참고 Schannel 클라이언트 또는 서버에서 네트워크를 통해 보낸 루트 인증서를 신뢰할 수 없습니다. 루트 인증서의 신뢰할 수 있는 해시에 대해 유효성을 검사해야 합니다.
|
|
더 나은 상호 운용성을 위해 사용할 수 있는 알려진 약한 암호화 알고리즘, 암호 그룹 및 SSL/TLS 프로토콜 버전을 사용하지 않도록 Schannel에 지시합니다. |
|
Schannel에 PSK 암호 그룹만 선택하고 다른 모든 암호 그룹을 사용하지 않도록 설정하도록 지시합니다. |
cTlsParameters
pTlsParameters 배열의 항목 수입니다.
SCH_CRED_MAX_SUPPORTED_PARAMETERS 이상을 지정하는 것은 오류입니다.
pTlsParameters
TLS 매개 변수 제한(있는 경우)을 나타내는 TLS_PARAMETERS 구조체에 대한 포인터 배열입니다. 제한을 지정하지 않으면 시스템 기본값이 사용됩니다. 애플리케이션은 시스템 기본값을 사용하는 것이 좋습니다.
cAlpnIds == 0 및 rgstrAlpnIds == NULL을 사용하여 둘 이상의 TLS_PARAMETERS 구조를 포함하는 것은 오류입니다.
발언
SCH_CREDENTIALS 구조를 사용하려면 UNICODE_STRING 및 PUNICODE_STRING 함께 SCHANNEL_USE_BLACKLISTS 정의합니다. 또는 Ntdef.h, SubAuth.h 또는 Winternl.h를 포함합니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 1809 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 1809 [데스크톱 앱만 해당] |
헤더 | schannel.h |