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?