Tengo clientes que se comunican con mi servidor. Los clientes envían su ID única (guid) al servidor con su solicitud a través de un canal https seguro. También para aumentar la seguridad, uso mi propio par de claves públicas y privadas para cifrar las solicitudes & respuestas.
Si alguien encuentra esta clave pública (viene con el software del cliente) y realiza una ingeniería inversa del software, creo que puede enviar solicitudes hechas a mano con una identificación personalizada. Quiero evitar este tipo de ataques. Tengo un par de preguntas:
- ¿Es una buena práctica generar un par de claves público-privadas para cada cliente? Dado que cada cliente envía sus solicitudes con su propia clave pública, será fácil detectar este tipo de anomalías.
- ¿Es posible dar a los clientes certificados que los identifiquen solo? Veo esta cosa del certificado de cliente en todas partes pero no hay una explicación clara. ¿Pueden explicarme cómo funcionan los certificados de cliente? Creo que esto es lo que necesito, pero no tengo idea de ello.