SCHANNEL_CRED 構造体 (schannel.h)
注意
SCHANNEL_CRED構造は非推奨です。 代わりに SCH_CREDENTIALS を使用する必要があります。
SCHANNEL_CRED構造体には、Schannel 資格情報のデータが含まれています。
構文
typedef struct _SCHANNEL_CRED {
DWORD dwVersion;
DWORD cCreds;
PCCERT_CONTEXT *paCred;
HCERTSTORE hRootStore;
DWORD cMappers;
_HMAPPER **aphMappers;
struct _HMAPPER;
DWORD cSupportedAlgs;
ALG_ID *palgSupportedAlgs;
DWORD grbitEnabledProtocols;
DWORD dwMinimumCipherStrength;
DWORD dwMaximumCipherStrength;
DWORD dwSessionLifespan;
DWORD dwFlags;
DWORD dwCredFormat;
} SCHANNEL_CRED, *PSCHANNEL_CRED;
メンバー
dwVersion
[SCHANNEL_CRED_VERSION] に設定します。
cCreds
paCred 配列内の構造体の数。
paCred
CERT_CONTEXT構造体へのポインターの配列。 各ポインターは、アプリケーションの認証に使用する 秘密キー を含む証明書を指定します。 通常、この配列には、アプリケーションでサポートされているキー交換メソッドごとに 1 つの構造体が含まれています。
クライアント アプリケーションは多くの場合、空のリストを渡し、Schannel に依存して適切な証明書を見つけるか、必要に応じて後で証明書を作成します。
hRootStore
省略可能。 サーバー アプリケーションに対してのみ有効です。 アプリケーションによって信頼される証明機関 (CA) の自己署名ルート証明書を含む証明書ストアに対して処理します。 このメンバーは、クライアント認証を必要とするサーバー側アプリケーションでのみ使用されます。
cMappers
予約済み。
aphMappers
予約済み。
_HMAPPER
cSupportedAlgs
palgSupportedAlgs 配列内のアルゴリズムの数。
palgSupportedAlgs
省略可能。 この構造体を使用して取得 された 資格情報で作成された接続でサポートされるアルゴリズムを表す、ALG_IDアルゴリズム識別子の配列へのポインター。 cSupportedAlgs が 0 であるか、palgSupportedAlgs が NULL の場合、Schannel はシステムの既定値を使用します。
現在、アルゴリズム識別子 CALG_AES、 CALG_AES_128、 CALG_AES_256 はサポートされていません。
grbitEnabledProtocols
省略可能。 この構造体を使用して取得された資格情報で作成された接続でサポートされるプロトコルを表すビット文字列を含む DWORD 。 このメンバーが 0 の場合、Schannel はプロトコルを選択します。 新しい開発では、アプリケーションで grbitEnabledProtocols を 0 に設定し、既定でシステムで有効になっているプロトコル バージョンを使用する必要があります。
このメンバーは、Microsoft Unified Security Protocol Provider セキュリティ パッケージでのみ使用されます。
グローバル システム レジストリの設定は、この値よりも優先されます。 たとえば、レジストリで SSL3 が無効になっている場合、このメンバーを使用して有効にすることはできません。
このメンバーには、次のいずれかのフラグを含めることができます。
dwMinimumCipherStrength
接続に許可される最小一括暗号化暗号強度 (ビット単位)。
このメンバーが 0 の場合、Schannel はシステムの既定値を使用します。 このメンバーが –1 の場合は、SSL3/TLS MAC 専用暗号スイート ( NULL 暗号とも呼ばれます) のみが有効になります。
dwMaximumCipherStrength
接続に許可される最大一括暗号化暗号強度 (ビット単位)。
このメンバーが 0 の場合、Schannel はシステムの既定値を使用します。
このメンバーが –1 の場合は、SSL3/TLS MAC 専用暗号スイート ( NULL 暗号とも呼ばれます) のみが有効になります。 この場合、 dwMinimumCipherStrength を –1 に設定する必要があります。
dwSessionLifespan
Schannel がセッション キャッシュにセッションを保持するミリ秒数。 この時間が経過すると、クライアントとサーバー間の新しい接続には、新しい Schannel セッションが必要になります。 既定値の 36000000 ミリ秒 (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 に指示します。 詳細については、 のヘルプおよびサポート ナレッジ ベース 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: このフラグはサポートされていません。 |
|
Schannel は、証明書メッセージの一部としてルート証明書を送信します。
メモ Schannel クライアントまたはサーバーによってネットワーク経由で送信されるルート証明書は信頼されません。 ルート証明書の信頼されたハッシュに対して検証する必要があります。
|
|
Schannel に対して、相互運用性を向上させるために有効にできる既知の脆弱な暗号化アルゴリズム、暗号スイート、および SSL/TLS プロトコル バージョンを無効にするように指示します。 |
|
PSK 暗号スイートのみを選択し、他のすべての暗号スイートを無効にするように Schannel に指示します。 |
dwCredFormat
カーネル モード Schannel では、次の値がサポートされています。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP、Windows XP/2000: このフラグはサポートされていないため、0 である必要があります。
値 | 意味 |
---|---|
|
渡されるSCHANNEL_CRED構造体の paCred メンバーは、証明書の拇印を含む長さ 20 のバイト配列へのポインターである必要があります。 証明書は、ローカル コンピューターの "MY" ストアにあると見なされます。 |
|
SCHANNEL_CRED 構造体の paCred メンバーは、SCHANNEL_CERT_HASH_STORE構造体を指します。 |
注釈
次の証明書失効フラグは相互に排他的です。
- SCH_CRED_REVOCATION_CHECK_CHAIN
- SCH_CRED_REVOCATION_CHECK_END_CERT
- SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Schannel の証明書失効エラーレポートをカスタマイズするには、次のフラグを使用します。
- SCH_CRED_IGNORE_NO_REVOCATION_CHECK
- SCH_CRED_IGNORE_REVOCATION_OFFLINE
Schannel が証明書チェーンの失効状態を確認すると、これらのフラグは、CRYPT_E_NO_REVOCATION_CHECKエラーとCRYPT_E_REVOCATION_OFFLINEエラーをそれぞれ無視するように指示します。 証明書失効フラグが設定されていない場合、これらのフラグは無視されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
Header | schannel.h (Schnlsp.h を含む) |