認証レベル
認証レベルは、クライアントまたはサーバーが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)
-
各データパケットは署名され、暗号化されます。 これにより、クライアントとサーバー間の通信全体が保護されます。
関連トピック