2017-02-06 9 views
1

Ich arbeite an einer Windows-Server-Anwendung, die vertrauliche Informationen über einen Socket mithilfe eines HTTPClient an einen anderen Windows-Server überträgt. Die Server sollen für die Verwendung von IPSec konfiguriert sein. Also, ich muss nichts tun, um die sichere Verbindung auf Anwendungsebene einzurichten. Ich wurde jedoch angewiesen, dies sicherzustellen, wenn die Verbindung IPSec verwendet, und abzubrechen, wenn dies nicht der Fall ist.Wie kann ich feststellen, ob ein verbundener Socket IPSec verwendet?

Wie kann ich programmgesteuert feststellen, ob die Verbindung tatsächlich mit IPSec gesichert ist? Die Anwendung ist C# auf Windows Server 2016. Ich bin offen für P/Invoke-basierte Lösungen oder C-Code, wenn dies erforderlich ist, damit dies funktioniert. Solange es mit einer C# HttpClient-Klasse funktionieren kann.

Antwort

4

Es ist keine Anwendung und nicht möglich. Der Tunnel ist für Benutzer des Netzwerkstapels auf Anwendungsebene transparent. Wenn die Anwendung sicherstellen soll, dass die Verbindung verschlüsselt und authentifiziert ist, verwenden Sie TLS. Andernfalls müssen die Netzwerk-/Systemadministratoren sicherstellen, dass die Richtlinien so eingerichtet werden, dass nur IPSec-Datenverkehr zulässig ist.

Stellen Sie sich vor, Sie finden einen Weg, um sicherzustellen, dass der Tunnel durch Abfragen des Betriebssystems in irgendeiner Weise eingerichtet wird. Und dann in 2 Jahren muss das System hochskaliert werden und die IPSec-Terminierung wird auf dedizierte Hardware verlagert. Hoppla.

+0

Sie können überprüfen, ob ein aktiver IPSec-Tunnel vorhanden ist, aber Sie können nicht sicherstellen, dass Ihr Socket über diesen verbunden ist. – galister

+0

Nun, ich bin mir sicher, dass Sie versuchen könnten, viel Hacker hinzuzufügen; Ich habe nie ipsec auf Witwen eingerichtet, aber unter Linux kann man die Liste der Verbindungen finden, denke ich, und versuchen zu sehen, ob Ihre Verbindung eine davon zu sein scheint, basierend auf Port #s, aber das ist einfach falsch. –

+0

Der Port der IPSec-Verbindung, nicht jedoch der Zielport der gekapselten Pakete, der letztendlich mit Ihrem .NET-Endpunkt endet. – galister

Verwandte Themen