¡Hola Pablo Diez!
Entiendo que estás enfrentando un problema complejo y frustrante. Vamos a intentar desglosarlo y ver si podemos encontrar una solución.
Verificación de la Longitud de los Datos Cifrados
Parece que la longitud de los datos cifrados es consistente entre el cliente y el servidor, lo cual es un buen punto de partida.
Alineación y Configuración de los Buffers
Cuando se habla de "alineación" de los buffers, se refiere a asegurarse de que los datos estén correctamente organizados y que no haya desbordamientos o datos adicionales que puedan causar problemas. En tu código, los buffers parecen estar bien configurados, pero asegúrate de que encryptedData
y bytesReceived
contengan los datos correctos y que no haya corrupción de datos.
Revisión de las Versiones del Protocolo TLS
Has mencionado que estás usando TLS 1.2, lo cual es adecuado. Asegúrate de que tanto el cliente como el servidor estén configurados para usar el mismo conjunto de cifrados y versiones de protocolo.
Certificados y Claves
Dado que has añadido el certificado en la raíz de certificados y el problema persiste, es menos probable que este sea el problema. Sin embargo, asegúrate de que el certificado no esté caducado y que las claves privadas sean correctas.
Debugging de Schannel
Para depurar más a fondo el problema de "decrypt failure" con Schannel, puedes habilitar el registro detallado de Schannel en el registro de Windows. Aquí tienes cómo hacerlo:
Abrir el Editor del Registro:
- Presiona
Win + R
, escriberegedit
y presiona Enter.
Navegar a la Clave de Registro:
- Ve a
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
.
Crear o Modificar Valores:
- Crea o modifica los siguientes valores DWORD:
-
EventLogging
y establece su valor a0x00000001
para habilitar el registro detallado.
Reiniciar el Sistema:
- Reinicia tu sistema para que los cambios surtan efecto.
Revisar los Registros:
- Después de reiniciar, reproduce el problema y revisa los registros en el Visor de Eventos bajo
Aplicación y Servicios Logs -> Microsoft -> Windows -> Schannel
.
Herramientas Adicionales
- Wireshark: Puedes usar Wireshark para capturar y analizar el tráfico de red. Esto puede ayudarte a identificar si hay problemas en la negociación del protocolo TLS.
- SSL Labs: Usa la herramienta de prueba de SSL Labs para verificar la configuración del servidor TLS.
Espero que estos pasos te ayuden a identificar y resolver el problema.
Saludos,
Jonathan.
----------*
Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en 'SÍ'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.