Cómo realizar la fijación de SSL en aplicaciones de iOS
Publicado: 2020-02-24En el momento en que las personas salen de sus hogares, emprenden la búsqueda de redes Wi-Fi abiertas . Ya sea que estén esperando en el aeropuerto o sentados en un café, la agenda principal es encontrar una conexión Wi-Fi abierta .
Temerosamente, los piratas informáticos también están en la misma búsqueda. Ellos también esperan a que los usuarios inicien una solicitud de conexión en la red abierta antes de poner a trabajar sus cerebros de phishing y privarlos de sus datos confidenciales o, lo que es peor, de dinero en su cuenta bancaria.
Si bien HTTPS es efectivo hasta cierto punto, es un protocolo SSL que se sabe que hace que los usuarios estén seguros al ser irrompible y en gran medida seguro. Pero los ataques Man-In-The-Middle (MITM) también han encontrado formas de violar esto.
Aquí es donde la técnica SSL Pinning entra en escena como una de las mejores prácticas de seguridad de aplicaciones móviles . Hablando específicamente de plataformas, es la solución de seguridad ideal para aplicaciones de iPhone que hace un trabajo increíble para resolver el problema.
En este artículo, analizaremos los tipos y el proceso de incorporación de SSL Pinning en las aplicaciones de iOS para prevenir estos ataques Man In The Middle. Un proceso que es una parte activa de la práctica de pruebas de seguridad móvil de OWASP .
Tipos de método de fijación de certificados SSL
Existen principalmente dos métodos para la prueba de asignación de SSL, como se explica a continuación:
- Fijar el certificado: puede descargar el certificado del servidor y agruparlos en la aplicación. En el tiempo de ejecución, la aplicación compara el certificado del servidor con los que ha incrustado.
- Fijar la clave pública: puede recuperar la clave pública del certificado en el código como una cadena. En tiempo de ejecución, la aplicación compara la clave pública del certificado con una que está codificada en el código.
La elección entre los dos métodos de fijación de SSL de iOS depende de la configuración de su servidor y de las necesidades individuales. Cuando eliges la primera opción, tendrás que subir la aplicación cuando el servidor cambie su certificado o dejará de funcionar. Al elegir la segunda opción, es posible que infrinja la política de rotación de claves, ya que la clave pública no cambiará.
Ahora echemos un vistazo a los pasos para implementar SSL Pinning en su aplicación iOS.
*Nota: Los pasos que se mencionan a continuación siguen el proceso de fijación de certificados de iOS con Swift.
Cómo implementar SSL Pinning en su aplicación iOS
1. Sesión NSURLSesión
En el caso de NSURLSession, el método principal para gestionar la fijación de SSL es URLSession:didReceiveChallenge:completionHandler:delegate. Los desarrolladores deberán configurar la clase para que se ajuste a URLSessionDelegate y pegar esta función en la clase:
La función " solicitaría credenciales del delegado en respuesta a una solicitud de autenticación del servidor remoto ". El desarrollador de la aplicación para iPhone comparará los certificados del servidor con uno guardado en el paquete de la aplicación. Si los dos certificados son idénticos, la autenticación lo dejará pasar y el cliente podrá conectarse al servidor.
2. Fijación de certificados de Alamofire
Alamofire es una de las bibliotecas más famosas para redes HTTP en lenguaje Swift. Viene con la funcionalidad incorporada para la fijación de SSL en iOS Swift y es extremadamente fácil de usar. Aquí se explica cómo crear una aplicación iOS segura con la fijación de certificados de Alamofire.
Problemas comunes asociados con la implementación de fijación de SSL y cómo resolverlos
Los expertos en control de calidad de las agencias de desarrollo de aplicaciones de renombre prueban regularmente las aplicaciones móviles para detectar vulnerabilidades de seguridad, incluida la penetración total de la red. Pero hay muchas agencias de pruebas de aplicaciones que no se enfocan en estas áreas con el mismo entusiasmo. Parecen reacios a la hora de implementar esta solución de seguridad de iPhone en particular en sus aplicaciones.

Estas son algunas de las razones predominantes detrás de esto:
- Una de las mayores desventajas de la fijación de SSL en la aplicación iOS es su implementación. El proceso es complejo y puede obligar a los desarrolladores a escribir el código una y otra vez y complicar el proceso de creación de la aplicación .
- La fijación de certificados SSL de iOS que están obligados a cambiar regularmente puede obligar a los desarrolladores a actualizar el binario de la aplicación cada vez que cambia el certificado.
- Se deben realizar múltiples esfuerzos para salvaguardar las formas de eludir la verificación SSL de iOS.
Teniendo en cuenta las repercusiones que puede traer la ausencia del escenario, así es como una empresa confiable de desarrollo de aplicaciones para iPhone evita algunos errores comunes .
Probando el pasador
A diferencia de las pruebas regulares de aplicaciones en las que prueba si todo funciona o no, el método para la prueba de fijación de SSL es que tendrá que comprobar si algo falla. Deberá concentrarse en probar que la aplicación cancela las conexiones potencialmente comprometidas. Si la aplicación permite la comunicación con un solo punto final, la prueba será tan simple como realizar la solicitud GET en un estado arbitrario. Idealmente, en este caso, la aplicación debe cancelar la conexión y la solicitud debería fallar.
Manejo de cambio de certificado
La renovación de un certificado de dominio conserva el par de claves pública/privada, pero no siempre es así. Pero si planifica correctamente el ciclo de actualización, podrá evitar el tiempo de inactividad para los usuarios finales.
Antes de que el certificado SSL de iOS se active en el sitio web, debe anclarlo en la aplicación, además del certificado actualmente activo y luego publicar una actualización. Cuando seguimos este paso en Appinventiv para crear una aplicación iOS segura , realizamos una prueba rápida con el nuevo certificado temporalmente y probamos la aplicación con ambos certificados fijados.
Preguntas frecuentes sobre la fijación de SSL en aplicaciones de iOS
1. ¿Dónde almacenar datos confidenciales en una aplicación de iOS?
Los datos confidenciales de la aplicación siempre deben almacenarse en iCloud o Keychain en iOS o incluso en la base de datos después del cifrado adecuado.
2. ¿Cómo funciona SSL?
SSL Pinning es uno de los consejos de seguridad de aplicaciones iOS más comunes . Pero para entender lo que significa, primero deberá saber cómo funciona SSL.
- Un navegador intenta conectarse con un sitio web que está protegido con un SSL. Luego, el navegador solicita al servidor web que se identifique.
- El servidor web luego envía al navegador su copia del certificado SSL.
- El navegador comprueba si se debe confiar en el certificado SSL. Si puede ser, se envía un mensaje al servidor web.
- El servidor web luego envía un reconocimiento para comenzar la sesión cifrada SSL.
- Los datos cifrados finalmente se comparten entre el navegador y el servidor web.
pensamientos finales
Aunque la fijación de SSL se considera segura y se usa ampliamente cuando se necesita encriptación, siempre se agradece otra capa de protección cuando se crean aplicaciones de alto riesgo. La fijación de SSL le permite verificar la identidad del servidor además de la cadena de verificación de confianza SSL.
Con la fijación de SSL, puede rechazar todas las conexiones excepto aquellas con el servidor designado cuyo certificado SSL hemos guardado en nuestro paquete local. Un inconveniente potencial de esto es que necesita actualizar la aplicación cada vez que se cambia la clave SSL del servidor.
En caso de que también esté planeando lanzar una aplicación iOS con anclaje SSL, puede ser un buen comienzo consultar a la mejor empresa de desarrollo de aplicaciones iOS .