jueves, 13 de marzo de 2014

Apple actualiza el informe sobre seguridad en iOS (I)

Apple, como ya hiciera hace dos años, ha publicado recientemente un documento donde detalla las mejoras de seguridad aplicadas en su sistema operativo para móviles iOS. Se trata de una actualización del documento anterior. Han pasado dos años, veamos las medidas más importantes e interesantes que han incluido desde el punto de vista técnico, aunque algunas ya son conocidas con detalle desde la salida de la séptima versión de iOS.

Secure Enclave

La primera mejora se encuentra en el proceso de arranque para dispositivos con procesador A7. Estos procesadores traen un coprocesador integrado denominado "Secure Enclave". Este coprocesador utiliza su propio proceso de arranque seguro en el que comprueba que el software que está cargando para si es verificado y ha sido firmado por Apple. Su misión principal es dar seguridad a la característica estrella de la serie 5S de iPhone, el TouchID o sensor de autenticación por huella dactilar.

El sistema por el que se comunica Secure Enclave y TouchID es curioso, asemejándose a una comunicación segura entre cliente y servidor. TouchID envía los datos registrados de la huella de un usuario a través del procesador pero este no puede acceder en ningún momento al contenido ya que este se encuentra cifrado. Esto se hace así para prevenir que un sistema con un kernel comprometido pueda acceder al subsistema de autenticación dactilar. Además, la región de memoria del coprocesador o las operaciones de escritura a disco están cifradas por una clave única creada en cada arranque a partir de un UID insertado de fábrica, inaccesible y desconocido hasta por la propia Apple. Sin duda, una fruta deliciosa para cualquier buscador de agujeros.

Generación de números aleatorios

Se sigue apostando por la integración por hardware de ciertas funciones criptográficas. Por ejemplo, existe un procesador dedicado para el cifrado del sistema de archivos en AES-256 y otro específico para obtener hashes en SHA-1(¿Hora de cambiar a uno de los SHA-2?). Esto permite alargar la batería del terminal desplazando funciones con alta carga de CPU hacia chips más especializados.

Dentro de este apartado vemos un cambio en el algoritmo de generación de números aleatorios. Anteriormente se estaba utilizando Yarrow, un algoritmo creado por Bruce Schneier y otros en 1999. Este algoritmo, libre de patentes, también se usa en OSX y FreeBSD (/dev/random). Yarrow ha sido desplazado por CTR_DRBG (Counter mode Deterministic Random Byte Generator). Este algoritmo está aprobado por el NIST y basado en AES-256. Existe un documento recomendable para los apasionados en criptografía que lo detalla.

Código de acceso al dispositivo

Para dispositivos con procesador A7 y sistema TouchID, según comenta Apple, mejoraría la entropía usada para la generación de llaves de cifrado. Al igual que anteriormente, el código de acceso es un parámetro más, usado en la introducción de entropía en el sistema criptográfico de iOS. La elección de un código de acceso robusto repercutirá en una mejora de la entropía del sistema. Por ejemplo, el código de acceso es usado para generar las claves de cifrado del sistema de archivos por parte del sistema Data Protection.

Adicionalmente "Secure Enclave" también provee de un retardo de 5 segundos entre intentos de desbloqueos del dispositivo.

Seguridad de las aplicaciones

Apple, ha dedicado un apartado completo a la seguridad de las aplicaciones dejando claro que sus usuarios pueden instalar aplicaciones "sin miedo a virus, malware y ataques no autorizados". De nuevo la falsa sensación de seguridad, que se cura observando la lista de CVEs que acumula iOS. Más allá de la propaganda, es cierto que el firmado con un certificado expedido por Apple previo registro y pago, las revisiones de la App Store y el hecho de que las aplicaciones corran en un entorno restringido ayudan y mucho a aumentar el nivel de seguridad, pero no son la panacea.

Muy curiosa la mención indirecta a Android en el informe de Apple:

"Unlike other mobile platforms, iOS does not allow users to install potentially malicious unsigned apps from websites, or run untrusted code..."

De nuevo remarca el mensaje que comentamos anteriormente, dejando claro cual es su fuerte en este sentido. Similar mensaje fue usado por Apple para destacar las bondades de OSX frente a las miserias del sistema operativo Windows de Microsoft.

Dejando la improductiva comparación dicotómica aparte, en iOS 7 se introduce una característica para mejorar la seguridad de las aplicaciones que no hagan uso del API de Data Protection. Esta API incluida desde el iPhone 3GS, permite cifrar los datos de las aplicaciones a través de funciones implementadas en hardware (de ahí que se mencione a partir de un modelo y no una versión de sistema iOS).

A partir de iOS7, aunque la aplicación no haga uso explícito de Data Protection, por defecto vendrán marcadas como "Protected Until First User Authentication". Esto no es más que un atributo (NSFileProtectionKey) de la clase NSFileManager que indica que los archivos de una aplicación permanecerán cifrados hasta que el usuario desbloquee el terminal por primera vez después de un encendido. Si posteriormente bloquea el terminal los archivos no se cifrarán de nuevo. Por cierto, no funciona por defecto en aquellas aplicaciones que permanecían instaladas antes de actualizar a la versión 7 de iOS.

Accesorios

Han incluido un apartado donde se comenta el ya consabido tema de los accesorios permitidos por Apple. Existe un mecanismo de desafío-respuesta para autenticar dispositivos que son autorizados por Apple a través de un programa de licencias denominado MFI. Esto puede contemplarse de dos maneras: Una restricción más por parte de Apple o una medida de protección de sus usuarios frente a hardware que no cumpla las especificaciones técnicas. Lo que unos ven como restricciones otros lo ven como un reto más, ya que es posible evadir esta restricción en los sistemas con jailbreak o chips que han roto la autenticación.

VPN

Con iOS 7 es posible mantener una configuración VPN por aplicación y no solo la global del sistema. Es sin duda una característica bienvenida por las empresas que permite un ajuste más exacto de la configuración de red de los dispositivos. Por ejemplo, es posible obligar a una aplicación a usar un perfil VPN concreto y provisto por la empresa. Pensemos en una aplicación de correo en la que sea vital conectar a una red segura desde un entorno hostil.

Single sign on

Otra característica que se detalla y que trajo iOS 7 es la capacidad de autenticarse una vez y obtener acceso a varios recursos. Single Sign On se apoya en Kerberos y sistemas Windows Integrated Authentication, soportando varios tipos de cifrado. El sistema en sí, está implementado a partir del proyecto de licencia libre Heimdal.

En la próxima entrega veremos más de cerca el resto de medidas que Apple detalla en la nueva versión del informe sobre seguridad en iOS.

Más información:

iOS Security
February 2014

una-al-dia (07/06/2012) Apple explica la seguridad de iOS

una-al-dia (14/06/2012) Apple "deja de ser mejor" que Microsoft (la próstata de Apple II)

Apple actualiza el informe sobre seguridad en iOS (y II)



David García
Twitter: @dgn1729

No hay comentarios:

Publicar un comentario en la entrada