Pregunta

He implementado un servidor / cliente Kerberos usando sockets en Java, donde el cliente envía su servicio-TGT al servidor, y el servidor sabe que el cliente es auténtico.

Mi principal preocupación es el ataque de espionaje 'man-in-the-middle'. Alguien podría capturar el TGT, y pretende ser el cliente.

En una aplicación Java puro, esto no es problema, ya que se cifran las comunicaciones con las claves de sesión de servicio (GSSContext.wrap () / GSSContext.unwrap ()), que el espía no tiene.

Pero las necesidades de aplicaciones cliente para ser reescrita en C #.

Calculo mis dos opciones para la comunicación cifrada de mantenimiento son:

  1. Escribir mi propia envoltura () y desenvuelva () métodos en C #
  2. Usar SSL / TLS.

Es la opción 1 es posible, antes de que me miro en SSL como una opción?

¿Fue útil?

Solución

La opción 1 consiste en un código de portabilidad pesada que puede o no puede tener tiempo para hacerlo. Opción 2 suena bien.

Existe la opción 3, que depende de sus limitaciones, el uso de un canal TCP cifrado privada, que debe ser más rápido que SSL / TLS, pero como he dicho puede no ser aplicable. Se podría utilizar el cifrado simétrico, después de haber inicializado por las claves de sesión (que son secreto)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top