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: このフラグはサポートされていないため、ゼロにする必要があります。
価値 | 意味 |
---|---|
|
渡される 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 プロトコルに存在する弱点に対抗するために、暗号化するデータを 2 つの別個のレコードに分割するように 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 に指示します。 |
|
PSK 暗号スイートのみを選択し、他のすべての暗号スイートを無効にするように Schannel に指示します。 |
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 |