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_CRED_FORMAT_CERT_HASH
0x00000001
渡されるSCH_CREDENTIALS構造体の paCred メンバーは、証明書の拇印を含む長さ 20 のバイト配列へのポインターである必要があります。 証明書は、ローカル コンピューターの "MY" ストアにあると見なされます。
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
SCH_CREDENTIALS 構造体の paCred メンバーは、SCHANNEL_CERT_HASH_STORE構造体を指します。

cCreds

paCred 配列内の構造体の数。

paCred

CERT_CONTEXT構造体へのポインターの配列。 各ポインターは、アプリケーションの認証に使用する秘密キーを含む証明書を指定します。

多くの場合、クライアント アプリケーションは空のリストを渡し、Schannel に依存して適切な証明書を見つけるか、必要に応じて後で証明書を作成します。

hRootStore

省略可能。 サーバー アプリケーションに対してのみ有効です。 アプリケーションによって信頼される証明機関 (CA) の自己署名ルート証明書を含む証明書ストアを処理します。 このメンバーは、クライアント認証を必要とするサーバー側アプリケーションでのみ使用されます。

cMappers

予約済み。

aphMappers

予約済み。

_HMAPPER

dwSessionLifespan

Schannel がセッション キャッシュにセッションを保持するミリ秒数。 この時間が経過すると、クライアントとサーバー間の新しい接続には、新しい Schannel セッションが必要になります。 既定値の 36000000 ミリ秒 (10 時間) を使用するには、このメンバーの値を 0 に設定します。

dwFlags

Schannel の動作を制御するビット フラグが含まれています。 このメンバーには、0 または次の値の組み合わせを指定できます。

意味
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
クライアントのみ。

このフラグはSCH_CRED_MANUAL_CRED_VALIDATIONの反対であり、Schannel の既定の動作の一部です。

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
AcquireCredentialsHandle (Schannel) の呼び出し中に指定された資格情報を検証するときに、CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL フラグを CertGetCertificateChain 関数に渡すように Schannel に指示します。

Windows Server 2003 および Windows XP/2000: このフラグはサポートされていません。

SCH_CRED_DISABLE_RECONNECTS
0x00000080
サーバーのみ。

このフラグが設定されている場合、この資格情報で実行された完全なハンドシェイクでは再接続は許可されません。 キャッシュ エントリが作成されるため、 ApplyControlToken 関数を使用してセッションを後で再開できます。

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
失効した証明書を確認するときは、CRYPT_E_NO_REVOCATION_CHECKエラーを無視します。 その他の制限については、「解説」を参照してください。
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
失効した証明書を確認するときは、CRYPT_E_REVOCATION_OFFLINEエラーを無視します。 その他の制限については、「解説」を参照してください。
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
クライアントのみ。

Schannel が受信したサーバー証明書チェーンを検証できないようにします。

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
クライアントのみ。

Schannel がクライアント認証用の証明書チェーンを自動的に提供することを防ぎます。

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
クライアントのみ。

Schannel が、指定されたターゲット名と サーバー証明書のサブジェクト名を比較できないようにします。

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
サーバーのみ。

Schannel が組み込みのシステム証明書マッピング関数を使用して クライアント証明書 をユーザー アカウントにマップできないようにします。

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
証明書チェーンを検証する場合は、失効のためにすべての証明書をチェックします。 その他の制限については、「解説」を参照してください。
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
証明書チェーンを検証するときは、失効のためにルートをチェックしないでください。 その他の制限については、「解説」を参照してください。
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
証明書チェーンを検証する場合は、失効のために最後の証明書のみをチェックします。 その他の制限については、「解説」を参照してください。
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
クライアントのみ。

Schannel は、クライアント認証用の証明書チェーンを自動的に提供しようとします。 この値は、SCH_CRED_NO_DEFAULT_CREDSとは逆です。

SCH_SEND_AUX_RECORD
0x00200000
暗号化ブロック チェーン モードを使用する対称暗号スイートで使用する場合、SSL/TLS プロトコルに存在する弱点に対抗するために、暗号化するデータを 2 つの個別のレコードに分割するように Schannel に指示します。 詳細については、 のヘルプおよびサポート ナレッジ ベース http://support.microsoft.com/kb/2643584の「SSL/TLS の脆弱性によって情報漏えいが許可される可能性がある」を参照してください。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP および Windows XP/2000: このフラグはサポートされていません。

SCH_SEND_ROOT_CERT
0x00040000
Schannel は、証明書メッセージの一部としてルート証明書を送信します。
メモ Schannel クライアントまたはサーバーによってネットワーク経由で送信されるルート証明書は信頼されません。 ルート証明書の信頼されたハッシュに対して検証する必要があります。
 
SCH_USE_STRONG_CRYPTO
0x00400000
Schannel に対して、相互運用性を向上させるために有効にできる既知の脆弱な暗号化アルゴリズム、暗号スイート、および SSL/TLS プロトコル バージョンを無効にするように指示します。
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
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 [デスクトップ アプリのみ]
Header schannel.h

こちらもご覧ください

CRYPTO_SETTINGS

TLS_PARAMETERS