- La aplicación dispondrá de una pantalla de login que se validará con un servcio REST bajo SSL.

- Toda conexión a un servidor externo a la empresa deberá realizar la validación de SSL Pinnning, concretamente: 

 En el establecimiento de la conexión SSL, se debe validar la cadena de certificación recibida hasta llegar al RootCA utilizando las primitivas del sistema. Esta etapa comprueba que el certificado de SSL recibido pertenezca a una Autoridad de Certificación correcta, y que las firmas de los certificados sean correctas. 

 Posteriormente, se debe validar que el certificado raíz correspondiente al certificado SSL recibido, coincide exactamente con el certificado de la RootCA que almacenamos localmente en la aplicación. Por este motivo se debe almacenar de forma segura en la propia app, o bien el propio certificado raíz o bien el resultado de aplicar un algoritmo de hash al certificado raíz, es decir, el fingerprint del certificado. Se compararán ambos valores para validar que la CA es la correcta y que corresponde con la CA a la que la empresa compra los certificados de SSL, asegurando de esta forma que no se sustituye el certificado por el de otra CA que pueda haber sufrido un ataque y que por lo tanto pueda firmar certificados para nuestro dominio de forma maliciosa.

 

 Por último, se validará que campo "CommonName" del certificado de SSL coincide exactamente con el dominio del servidor al que nos conectamos, para validar que no hay ninguna redirección maliciosa. 



- Opción de mantener logado, guardar identificador en base de datos interna (SQLITE) con cifrado AES 256 (IdentifierForVendor de la clase UIDevice) 