Wie erstelle ich Ntlm Type 1 und Type 3 Nachrichten in .Net

9

Ich muss Typ 1 Nachricht und Typ 3 Nachricht für NTLM Handshake erstellen. Gibt es dafür eine .Net API?

Im Wesentlichen basiert die Anwendung auf WPF, aber Socket wird verwendet, um Daten vom Server zu streamen. Die Verwendung von Sockets ist eine technische Voraussetzung, aber das Problem liegt vor, wenn der Benutzer eine Verbindung zum Server über einen Proxy-Server herstellen muss. Wenn die Proxy-Autorisierung auf Ntlm basiert, muss die Client-Anwendung Typ 1- und Typ 3-Nachrichten erstellen, um einen Handshake mit dem Proxy-Server durchzuführen.

Meine Frage ist: Gibt es in .NET-Bibliotheken bereits eine API, die verwendet werden kann, um diese verschiedenen Arten von NTLM-Nachrichten zu erstellen? Jede Hilfe oder Alternative wird sehr geschätzt. Vielen Dank im Voraus.

    
brj011 14.03.2011, 00:04
quelle

1 Antwort

2

Wenn Sie auf Sockets beschränkt sind, müssen Sie das gesamte NTLM-Authentifizierungsprotokoll manuell implementieren. Microsoft hat eine SSPI (Security Support Provider Interface) in secur32.dll, um verschiedene Sicherheitsprotokolle zu implementieren, können Sie wahrscheinlich einige der API-Funktionen von dort wiederverwenden, über PInvoke (auch gibt es eine Art .net Wrapper ist verfügbar hier ).

Hier ist die Beschreibung des NTLM-Authentifizierungsprotokolls , mit API-Beispielen in NTLMSSP und SSPI Abschnitt. Grundsätzlich entwickelt sich das gesamte Authentifizierungsschema im Zusammenhang mit dem Aufruf von AcquireCredentialsHandle / < a href="http://msdn.microsoft.com/en-us/library/aa375512%28v=vs.85%29.aspx"> InitializeSecurityContext mit verschiedenen Parametern. Dies würde Sie mit typ1 / typ3 ntlm-Nachrichten im Raw-Byte-Format versorgen, die Sie über Sockets senden / empfangen müssten.

    
Alexander 11.04.2013 22:07
quelle

Tags und Links