Soy bastante nuevo en el cifrado y necesito ayuda. Tengo un problema que estoy tratando de resolver.
Mi problema es el siguiente:
- Tengo un servidor web y una aplicación (iOS) que se comunican entre sí.
- Quiero que la comunicación sea segura, así que estoy usando HTTPS.
- El servidor web y la aplicación se están comunicando a través de una intranet, sin acceso a Internet en ninguno de los extremos.
- Como no hay conexión a Internet, el certificado SSL en el servidor web está autofirmado y no se puede verificar con una CA.
Entonces, mi problema es que cuando establezco una conexión HTTPS, no se puede confiar en el Certificado porque no se puede verificar, por lo que los ataques MITM son posibles. Entonces, lo que necesito es una forma de verificar el Certificado sin tener que recurrir a una CA.
Mi idea es comenzar estableciendo una conexión segura entre la aplicación y el servidor web utilizando Diffie-Hellman para transferir el certificado, de modo que cuando se establezca la conexión SSL, pueda verificar si el certificado es correcto.
¿Esto funcionaría? ¿O es de alguna manera todavía susceptible a MITM u otros ataques? Si es así, ¿de qué otra manera puedo resolver mi problema?
Además, vale la pena mencionar que cada uno de mis clientes tendrá su propio servidor web y, por lo tanto, sus propios certificados autofirmados. Por lo tanto, incrustar la clave pública en la aplicación no es una opción.