Verificar la identidad del servidor a través de marcas de tiempo cifradas

0

Estoy escribiendo mi propio sistema de licencias de software pequeño y me gustaría establecer un canal seguro con un sistema criptográfico híbrido (asimétrico - > simétrico).

Me gustaría evitar que aparezca todo el certificado, ya que mi aplicación (el archivo ejecutable enviado a los clientes) incluiría mi clave pública por completo. El problema es: ¿cómo verificar la identidad del servidor?

Pensé en lo siguiente: podría hacer que el servidor envíe la marca de tiempo cuando la conexión se intentó cifrar por primera vez con su clave privada (por lo que la aplicación cliente podría verificar que el servidor realmente es quien afirma es) ... pero la marca de tiempo podría ser imprecisa debido a los retardos TCP / IP impredecibles.

¿Qué podría enviar el servidor que no sea vulnerable a un ataque de reproducción de un tercero malicioso?

    
pregunta user3834459 21.09.2016 - 22:11
fuente

1 respuesta

1

Si puede incluir una clave pública, también puede incluir un certificado autofirmado de larga duración (que puede generar, por ejemplo, utilizando la herramienta de línea de comandos openssl ). Si confía explícitamente en este certificado en el cliente, entonces puede usar un TLS o DTLS normal para ejecutar una conexión segura con el servidor.

De esta manera, no requeriría toda la PKI, un tercero de confianza, etc., pero aún así tendría una solución híbrida basada en el certificado X509.

Tenga en cuenta que su certificado debe poder cifrarse si desea utilizar directamente el cifrado RSA para la clave de sesión y el signo (autenticar) para los esquemas DHE o ECDHE que brindan seguridad hacia adelante.

    
respondido por el Maarten Bodewes 21.09.2016 - 22:53
fuente

Lea otras preguntas en las etiquetas