認証レベル

認証レベルは、クライアントまたはサーバーがSSPから必要とするセキュリティの程度を制御します。 認証レベルは、Dwauthnlevelパラメーターを使用して、適切なRPC_C_AUTHN_LEVEL_xxx値をCoInitializeSecurityまたはCoSetProxyBlanketに渡すことによって設定されます。 クライアントとサーバーからの認証レベルは、ハンドシェイク中に比較され、より高いレベルのセキュリティ保護設定が接続に使用されます。

さまざまな認証レベルについては、最下位レベルのセキュリティ保護から最高レベルまで、次のように説明します。

なし (RPC_C_AUTHN_LEVEL_NONE)

クライアントとサーバー間の通信中に認証は実行されません。 すべてのセキュリティ設定は無視されます。 この認証レベルは、認証サービスレベルがRPC_C_AUTHN_NONEの場合にのみ設定できます。

既定 (RPC_C_AUTHN_LEVEL_DEFAULT)

COMは、通常のセキュリティブランケットネゴシエーションを使用して認証レベルを選択します。 Noneの認証レベルは選択されません。

接続 (RPC_C_AUTHN_LEVEL_CONNECT)

クライアントとサーバーの間で通常の認証ハンドシェイクが行われ、セッションキーが確立されますが、そのキーがクライアントとサーバー間の通信に使用されることはありません。 ハンドシェイク後のすべての通信は安全ではありません。

呼び出し (RPC_C_AUTHN_LEVEL_CALL)

各呼び出しの先頭のヘッダーのみが署名されます。 クライアントとサーバーの間で交換されるデータの残りの部分は、署名も暗号化もされません。 ほとんどのSspはこの認証レベルをサポートしておらず、パケットに自動的に昇格します。

パケット (RPC_C_AUTHN_LEVEL_PKT)

各パケットのヘッダーは署名されますが、暗号化されません。 パケット自体は署名も暗号化もされません。

パケットの整合性 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)

データの各パケットは完全に署名されますが、暗号化されません。 すべてのデータが送信者によって署名されるため、受信者は、転送中にデータが改ざんされていないことを確認できます。

パケットのプライバシー (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)

各データパケットは署名され、暗号化されます。 これにより、クライアントとサーバー間の通信全体が保護されます。

AuthenticationLevel

LegacyAuthenticationLevel