Consejo de comunicación de Protected Client Server

0

Espero una mejor comprensión de SSL / TLS configurando dos dispositivos, ejecutando dos aplicaciones diferentes, permitiendo que las comunicaciones pasen sobre SSL / TLS.

Con OpenSSL he creado un certificado y una clave que instalé tanto en el servidor como en el cliente. En el lado del cliente, también puedo elegir entre tres suites de cifrado (en el servidor no tengo esa opción para elegir).

  • TLS_RSA_WITH_NULL_SHA
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA

Utilizo Wireshark para ver lo que ocurre durante la comunicación que siempre falla, sin importar lo que seleccione desde arriba. Veo una comunicación TCP normal: SYN, SYN ACK, ACK y luego una FIN del cliente. Es muy obvio, estoy haciendo algo mal, pero honestamente no tengo idea de qué hacer. Parece que ni siquiera llega al punto de usar el protocolo SSL.

¿Alguien puede aclararme las cosas que hago mal y darme una posible solución? Esto requiere más habilidades de seguridad profesional. Gracias por adelantado ! John

P.S .: Quiero usar certificados autofirmados ya que solo se usa para pruebas.

    
pregunta John 28.10.2013 - 21:06
fuente

1 respuesta

1

Si ve solo los paquetes ACK, SYN + ACK, ACK y FIN, entonces está viendo el shell de una conexión TCP, pero no hay datos. Si el FIN es del cliente, entonces el cliente aparentemente decide que no tiene nada que decir. Así que esto apunta a un problema de configuración en el cliente: cuando el cliente debe comenzar la conversación SSL / TLS (enviando el mensaje ClientHello ), simplemente se da por vencido. En cualquier caso, en ese momento, la función del servidor es esperar al ClientHello , por lo que su propia configuración de nivel SSL aún no se ha ejercido.

Ahora algunos comentarios generales:

  • En SSL / TLS, el servidor debe tener un par de claves privada / pública, la clave pública se envuelve en un certificado . El cliente puede también tiene un par de claves privada / pública, ¡pero no la misma! El objetivo principal de criptografía asimétrica es evitar tener que compartir elementos privados entre diferentes entidades. De hecho, debería esforzarse nunca para permitir que las claves privadas viajen entre sistemas: cuanto más viajes clave, más expuestos están, más privados se vuelven.

  • Conjuntos de cifrado selecciona el conjunto de algoritmos criptográficos que se utilizarán. En las tres suites con las que habla, se utilizará RSA para el intercambio de claves inicial (por lo que la clave pública del servidor debería ser del tipo RSA) y SHA-1 para la protección de integridad. El cifrado simétrico utilizará, respectivamente, nada en absoluto, 3DES o AES. Si no está seguro, utilice AES. Si está pensando en utilizar el cifrado "NULO", piense de nuevo.

  • Si desea usar SSL / TLS, y aún más, si desea depurar algunos problemas relacionados con SSL y ha comenzado a lanzar Wireshark (eso es algo bueno), entonces deberá entender cómo SSL trabajos. Podría hacerlo peor que leer esta respuesta para obtener algunas explicaciones al respecto.

respondido por el Thomas Pornin 28.10.2013 - 21:47
fuente

Lea otras preguntas en las etiquetas