Kerberos v5 プロトコル

Kerberos v5 認証プロトコルには、RPC_C_AUTHN_GSS_KERBEROS の認証サービス識別子があります。 Kerberos プロトコルは、クライアントがネットワーク認証サービスと対話する方法を定義し、1993 年 9 月に RFC 1510 のインターネット エンジニアリング タスク フォース (IETF) によって標準化されました。 クライアントは、Kerberos キー配布センター (KDC) からチケットを取得し、接続を確立する際にこれらのチケットをサーバーに提示します。 Kerberos チケットは、クライアントのネットワーク資格情報を表します。

NTLM と同様、Kerberos プロトコルはドメイン名、ユーザー名、およびパスワードを使用してクライアントの ID を表します。 ユーザーがログオンするときに KDC から取得される最初の Kerberos チケットは、ユーザーのパスワードの暗号化されたハッシュに基づいています。 この初期チケットはキャッシュされます。 ユーザーがサーバーに接続しようとすると、Kerberos プロトコルは、そのサーバーの有効なチケットのチケット キャッシュをチェックします。 使用できない場合、ユーザーの初期チケットは、指定されたサーバーのチケットの要求と共に KDC に送信されます。 そのセッション チケットはキャッシュに追加され、チケットの有効期限が切れるまで同じサーバーに接続するために使用できます。

サーバーが Kerberos プロトコルを使用して CoQueryClientBlanket を呼び出すと、クライアントのドメイン名とユーザー名が返されます。 サーバーが CoImpersonateClient を呼び出すと、クライアントのトークンが返されます。 これらの動作は、NTLM を使用する場合と同じです。

Kerberos プロトコルは、コンピューターの境界を越えて動作します。 クライアント コンピューターとサーバー コンピューターは両方ともドメイン内に存在する必要があり、それらのドメインには信頼関係がなければなりません。

Kerberos プロトコルは相互認証を必要とし、それをリモートでサポートします。 クライアントはサーバーのプリンシパル名を指定する必要があり、サーバーの ID はそのプリンシパル名と正確に一致する必要があります。 クライアントがサーバーのプリンシパル名に NULL を指定した場合、またはプリンシパル名がサーバーと一致しない場合、呼び出しは失敗します。

Kerberos プロトコルを使用すると、偽装レベルで識別、偽装、および委任を使用できます。 サーバーが CoImpersonateClient を呼び出すと、返されるトークンは、5 分から 8 時間の間、コンピューターから有効になります。 この時間が経過すると、サーバー コンピューターでのみ使用できます。 サーバーが「アクティベーターとして実行」され、Kerberos プロトコルを使用してアクティベーションが行われた場合、サーバーのトークンはアクティベーション後 5 分から 8 時間の間に期限切れになります。

Windows によって実装される Kerberos v5 認証プロトコルでは、クローキングがサポートされています。

COM およびセキュリティ パッケージ