Übersicht über den erweiterten Schutz für die AuthentifizierungExtended Protection for Authentication Overview

Der erweiterte Schutz für die Authentifizierung schützt gegen sog. Man-In-The-Middle (MITM)-Angriffe, bei denen die Anmeldeinformationen eines Clients von einem Angreifer abgefangen und an einen Server weitergeleitet werden.Extended Protection for Authentication helps protect against man-in-the-middle (MITM) attacks, in which an attacker intercepts a client’s credentials and forwards them to a server.

Betrachten wir ein Szenario mit drei Teilnehmern: einem Client, einem Server und einem Angreifer.Consider a scenario with three participants: a client, server, and attacker. Der Server weist die URL https://server auf, wohingegen der Angreifer die URL https://attacker verwendet.The server has the URL https://server, whereas the attacker has the URL https://attacker. Der Angreifer gibt sich gegenüber dem Client als Server aus.The attacker tricks the client into accessing the attacker as if it were the server. Anschließend sendet der Angreifer eine Anfrage an den Server.The attacker then sends a request to the server. Versucht der Angreifer auf eine sichere Ressource zuzugreifen, antwortet der Server dem Angreifer mit einem WWW-Authentifizierungsheader.If the attacker is trying to access a secure resource, the server replies to the attacker with a WWW-Authenticate header. Der Angreifer verfügt jedoch nicht über die Authentifizierungsinformationen. Daher sendet er den WWW-Authentifizierungsheader an den Client.The attacker does not have the authentication information, so it sends the WWW-Authenticate header on to the client. Der Client sendet den Authentifizierungsheader an den Angreifer, und der Angreifer sendet den Header an den Server, wodurch er mit den Anmeldeinformationen des Clients Zugriff auf sichere Ressourcen erhält.The client sends the Authorization header to the attacker, and the attacker sends the header on to the server and gets access to the secure resources using the client’s credentials.

Aktuell wird zunächst ein Transport Level Security (TLS)-Kanal eingerichtet und eine Authentifizierung über diesen Kanal durchgeführt, wenn sich eine Clientanwendung mit Kerberos, Digest oder NTLM mit HTTPS im Server authentifiziert.Currently, when a client application authenticates itself to the server using Kerberos, Digest, or NTLM using HTTPS, a Transport Level Security (TLS) channel is first established and authentication takes place using this channel. Zwischen dem von Secure Sockets Layer (SSL) und dem bei der Authentifizierung erstellten Sitzungsschlüssel besteht jedoch keine Bindung.However, there is no binding between the session key generated by Secure Sockets Layer (SSL) and the session key that is generated during authentication. Wenn also im genannten Szenario über TLS (z. B. ein HTTPS-Kanal) kommuniziert wird, werden zwei SSL-Kanäle erstellt: einer zwischen dem Client und dem Angreifer und ein weiterer zwischen dem Angreifer und dem Server.So, in the previous scenario, if the communication takes places over a TLS (such as an HTTPS channel), there are two SSL channels created: one between the client and the attacker, and another between the attacker and the server. Die Anmeldeinformationen des Clients werden zunächst über den SSL-Kanal zwischen dem Client und dem Angreifer und anschließend über den Kanal zwischen dem Angreifer und dem Server vom Client an den Server gesendet.The client’s credentials are sent from the client to the server first over the SSL channel between the client and the attacker and then over the channel between the attacker and the server. Nachdem die Anmeldeinformationen des Clients vom Server empfangen wurden, werden die Anmeldeinformationen vom Server geprüft. Dabei bemerkt der Server nicht, dass der Kanal, über den die Anmeldeinformationen gesendet wurden, zum Angreifer und nicht zum Client führt.Once the client’s credentials reach the server, the server verifies the credentials without detecting that the channel over which those credentials were sent originated with the attacker and not the client.

Die Lösung besteht in der Verwendung eines TLS-gesicherten Außenkanals und eines clientauthentifizierten Innenkanals und der Übergabe eines Kanalbindungstokens (CBT) an den Server.The solution is to use a TLS-secured outer channel and a client-authenticated inner channel, and to pass a Channel Binding Token (CBT) to the server. Die CBT ist eine Eigenschaft des CBT-gesicherten Außenkanals und wird zur Bindung des Außenkanals an eine Konversation über den clientauthentifizierten Innenkanal verwendet.The CBT is a property of the TLS-secured outer channel, and is used to bind the outer channel to a conversation over the client-authenticated inner channel.

Im genannten Szenario wird der CBT des Client-Angreifer-TLS-Kanals mit den an den Server gesendeten Autorisierungsinformationen verbunden.In the previous scenario, the CBT of the client-attacker TLS channel is merged with the authorization information that is sent to the server. Ein CBT verarbeitender Server vergleicht das CBT in den Authentifizierungsinformationen des Clients, die dem Client-Angreifer-Kanal entsprechen, mit dem CBT des Angreifer-Server-Kanals.A CBT-aware server compares the CBT contained in the client authentication information, which corresponds to the client-attacker channel, to the CBT attached to the attacker-server channel. Ein CBT ist einem Kanalziel eindeutig zuordenbar. Das Client-Angreifer-CBT entspricht nicht dem Angreifer-Server-CBT.A CBT is specific to a channel’s destination, so the client-attacker CBT does not match the attacker-server CBT. Der Server entdeckt so den MITM-Angriff und weist die Authentifizierungsanfrage ab.This lets the server detect the MITM attack and refuse the authentication request.

Clientseitig sind keine Konfigurationseinstellungen erforderlich.The client side does not require any configuration setting. Nach einmaliger Aktualisierung übergibt der Client das CBT dauerhaft an den Server.Once the client has been updated to pass the CBT to the server, it always does so. Wurde der Server ebenfalls aktualisiert, kann er für die Verwendung des CBT oder seine Ignorierung konfiguriert werden.If the server has also been updated, it can be configured to use the CBT or ignore it. Wurde keine Aktualisierung durchgeführt, wird das CBT ignoriert.If it has not been updated, it ignores it.

Der Server kann folgende Sicherheitsstufen aufweisen:The server can have the following levels of protection:

  • KeineNone. Keine Kanalbindungsvalidierung wird durchgeführt.No channel binding validation is performed. Dies ist das Standardverhalten aller nicht aktualisierten Server.This is the behavior of all servers that have not been updated.

  • PartiellPartial. Alle aktualisierten Clients müssen Kanalbindungsinformationen für den Server bereitstellen.All clients that have been updated must provide channel binding information to the server. Dies gilt nicht für nicht aktualisierte Clients.Clients that have not been updated do not have to do so. Dies ist eine Zwischenoption, durch die Anwendungskompatibilität gewahrt wird.This is an intermediate option that allows for application compatibility.

  • VollständigFull. Alle Clients müssen Kanalbindungsinformationen bereitstellen.All clients must provide channel binding information. Authentifizierungsanfragen von Clients, bei denen dies nicht der Fall ist, werden abgewiesen.The server rejects authentication requests from clients that do not do so.

Weitere Informationen finden Sie im Beispiel zu Win7 CBT/Erweiterter Schutz.For more information, see the Win7 CBT/Extended Protection sample.

Siehe auchSee Also

Sicherheitsmodell für Windows Server AppFabricSecurity Model for Windows Server App Fabric