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