Hrm. Además de SSL, no estoy seguro de lo que realmente está obteniendo de API_SECRET aquí.
Pienso que tener un certificado SSL de servidor de una fuente conocida y confiable sería lo mejor que puede hacer aquí, suponiendo que su aplicación cliente se distribuye de una manera confiable. En ese momento, el cliente puede verificar la autenticación del servidor a través de la sesión SSL, y el servidor autentica al cliente con el nombre de usuario / contraseña.
Como dice @Polynomial - SSL debe cifrar la sesión de modo que los ataques MITM entre los puntos finales de SSL no sean un problema. El truco es saber dónde se ubican esos puntos finales y asegurarse de que estén ubicados en su infraestructura en un lugar bien pensado. Por ejemplo, si hay un punto final de SSL frente al servidor de aplicaciones, ¿qué protege esa última milla de transmisión?
Del mismo modo, ¿la aplicación (móvil o web) está comprobando correctamente que el certificado SSL del servidor proviene de una fuente confiable?
Adición para la pregunta en el comentario:
Eché un vistazo a la referencia de clase para NSURLReference en las páginas de desarrollo de Mac y no pude encontrar ninguna referencia a SSL ... de hecho, los comentarios dicen específicamente que es independiente del protocolo, lo cual tiene sentido dado que se llama URL Solicitud.
No creo que puedas asumir que incluso tienes HTTPS con esta clase, tendrás que hacer algo para configurar la sesión de HTTPS en lugar de usar la configuración predeterminada de HTTP. Aquí está la Descripción general del desarrollador de Mac en SSL . Me está molestando un poco, porque no hay una función obvia para obtener el certificado del servidor .
Luego también necesitará la Certificado, clave y confianza servicios - para verificar el certificado.
NO supondría que el entorno de desarrollo de Apple solo hará esto por usted. La experiencia previa con otras API no me ha dado ninguna razón para confiar en esto y no veo la documentación que dice lo que hace explícitamente. Ni siquiera estoy particularmente seguro de cómo funcionan las tiendas de confianza en este entorno de desarrollo. Y este no es un lugar donde quieres hacer suposiciones ciegas. Estudiaría en qué condiciones el entorno fuerza a SSL, verifica la autenticidad de los certificados de servidor y verifica que el certificado esté firmado por una CA de confianza. Si no tiene documentación que le indique cuándo y cómo suceden estas cosas, realmente no puede asumir que su servicio es seguro.