Función de los certificados en un sistema criptográfico híbrido simple

1

Estoy tratando de implementar un sistema de licencias simple para mis programas y hay algo que no entiendo muy bien con respecto a los certificados.

Estoy usando OpenSSL para generar una clave pública y privada RSA. Mis ejecutables integrarán la clave pública para poder negociar una conexión segura con el servidor (intercambiando una clave simétrica). RSA se limita a los bytes de la clave, por lo tanto, tendré que negociar, para una clave 2048, enviar una clave simétrica de aproximadamente 256 bytes (¿es correcto?)

Lo que no entiendo es la función de los certificados en este proceso ... ¿necesito uno? Ejemplos como this hacen uso de certificados (ya sea firmado por una CA o no). ¿No puedo conectar mi aplicación a mi servidor, enviar la clave simétrica cifrada RSA y comenzar a intercambiar datos? ¿Cuál es el problema con mi enfoque?

    
pregunta user3834459 21.09.2016 - 20:27
fuente

1 respuesta

1
  

Lo que no entiendo es el papel de los certificados en este proceso ...

ya respondiste tu pregunta:

  

No puedo conectar mi aplicación a mi servidor

solo si su aplicación supiera que es su servidor y no el mío ... Aquí es donde los certificados comienzan a desempeñar un papel. Se utilizan para identificar compañeros de comunicación. El servidor se identifica con el certificado del servidor y el cliente se identifica con el certificado del cliente (si es necesario).

Todos los certificados son muy similares y debe poder distinguirlos antes de confiar en ellos. Esto significa que la aplicación cliente debe usar alguna lógica para validar el certificado del servidor para determinar si es la correcta y confiable. Hay varias opciones, una de las cuales incluye Fijación de certificados . Si bien suena como una solución fácil, tiene algunos problemas serios cuando tiene que reemplazar el certificado del servidor, por vencimiento o por compromiso.

    
respondido por el Crypt32 21.09.2016 - 21:21
fuente

Lea otras preguntas en las etiquetas