Tengo un entorno totalmente controlado (enrutamiento, DNS, CA, claves privadas, certificados) entre dos dispositivos cerrados que se comunican a través de HTTPS. El tráfico se realiza a través de un canal autenticado TLS mutuo, utilizando la Indicación del nombre del servidor, así como las teclas de curva elíptica.
Necesito una herramienta (o un conjunto de herramientas) que pueda usar mis claves y certificados privados existentes del cliente y del servidor, así como capaz de hacer SNI, para "personificar" el servidor hacia el cliente, copiar / volcar el tráfico descifrado, luego retransmita el tráfico como si viniera del cliente y viceversa.
No puedo hacer mucho contra los dispositivos en sí (como excluir las claves EC / DH, para permitir el descifrado simple del tráfico en una etapa posterior) pero tengo todos los certificados y claves privadas y puedo enviar manualmente el tráfico a donde Quiero, no necesito trucos de proxy particulares.
Tuve un éxito moderado con openssl s_client / s_server + tee en una tubería, pero esto parece romperse después de una sola conexión.
Otras herramientas que probé no pueden manejar SNI, o insistir en "falsificar" certificados, que realmente no necesito ni quiero (especialmente si los certificados falsos no cumplen con los requisitos de mi aplicación) y generalmente son más generales propósito que mis necesidades.
No estoy buscando un dispositivo o software de calidad comercial, y no necesito la posible solución para generar certificados. Los tengo, así como las claves privadas.
Necesito algo que pueda escuchar en tcp / 443 con la PK / cert / chain provista y establecer la sesión TLS, almacenar / volcar los datos no cifrados y luego reproducir el contenido recibido del cliente hacia el servidor, en otra sesión TLS utilizando SNI y el cliente PK / cert / chain proporcionado lo más parecido posible al original. Debe poder manejar y transmitir datos de respuesta también en la misma sesión TLS, así como múltiples conexiones (como en serie, no paralelas). Necesito capturar el tráfico estrictamente entre las dos cajas conocidas.