No estoy seguro de si este tema pertenece a Cryptography, Programming o StackOverFlow, así que perdóneme si no agrego una pregunta útil a este sitio.
Quiero otorgar programas de servidor y cliente (archivos .jar) a mis usuarios.
- El SERVIDOR es un mod para un juego (tiene un
server-id
) - El CLIENTE es un teléfono inteligente que se supone que controla el juego mediante el envío de mensajes al servidor (tiene un
client-id
)
Quería mantener todo encriptado, así que creo que SSL es una buena opción. Debido a que el servidor no es mío, lo que hice fue dejar que el servidor creara un certificado autofirmado y lo almacenara
Debido a que se puede explotar la aceptación de cualquier certificado, p. ej. el atacante podría falsificar el server-id
de otro servidor y la aplicación de mi cliente enviaría la contraseña interna (no relacionada con SSL) al atacante.
El atacante ahora puede falsificar el client-id
y tiene control sobre un juego
¿Cómo debo implementar el cliente para que verifique y distinga los servidores por su certificado?