Frage

Ich habe einen Kerberos-Server / Client unter Verwendung von Sockets in Java implementiert, wo der Kunde seinen Dienst-TGT an den Server sendet, und der Server weiß der Kunde authentisch ist.

Mein Hauptanliegen ist der Snooping 'Man-in-the-middle' Angriff. Jemand könnte das TGT erfassen, und so tun, als der Kunde zu sein.

In einer reinen Java-Implementierung ist dies kein Problem, da die weitere Kommunikation mit den Dienstsitzungsschlüsseln (GSSContext.wrap () / GSSContext.unwrap ()) verschlüsselt ist, welche die Schnüffler nicht haben.

Aber die Client-Anwendung muss neu geschrieben in C # sein.

Ich schätze meine zwei Möglichkeiten für die Aufbewahrung Kommunikation verschlüsselt sind:

  1. Schreiben meine eigene Wrap () und unwrap () Methoden in C #
  2. SSL / TLS verwenden.

Ist die Option 1 möglich, bevor ich in SSL als Option aussehen?

War es hilfreich?

Lösung

Option 1 beinhaltet einige schwere Portieren von Code, die Sie kann oder auch nicht Zeit zu tun haben kann. Option 2 Töne gut.

Es gibt die Option 3, die auf Ihrem Beschränkungen abhängt, einen privaten verschlüsselten TCP-Kanal verwenden, die schneller sein sollte als SSL / TLS, aber wie gesagt nicht anwendbar sein. Es könnte die symmetrische Verschlüsselung verwenden, die von dem Sitzungsschlüssel initialisiert habe (die geheim sind)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top