Asi funciona la seguridad de ios
Así funcionala seguridadde iOS hace 18 horas Guillermo Julián Apple suele ser muy opaca a la hora de explicar cómo funcionasu sistema operat...

Así funcionala seguridadde iOS
hace 18 horas Guillermo Julián
Apple suele ser muy opaca a la hora de explicar cómo funcionasu sistema operativo móvil, iOS. Por esoresulta curioso ver toda la información que comparten en un paper sobre la seguridad en iOS, que expone los sistemas que usan para proteger los datos de sus usuarios.
Quizás esta publicación tenga algo que ver con el
fallo de SSL de hace unos días. Sea como sea, el documento es una lectura recomendada si tenéis curiosidad por la criptografía y seguridad, aunque es bastante técnico. Por eso, en Genbeta vamos a desgranar las claves y a explicarlas, empezando por la seguridad del propio sistema y Secure Enclave.
Arranque yactualización del sistema
Apple pretende que el sistema sea seguro desde el primer momento. ¿Cómo lograr eso? Con una cadena de confianzaque empieza en la ROM de arranque. Este segmento de memoria es sólo de lectura y se crea durante la fabricacióndel teléfono.Entre otras cosas, contienela clave pública del certificado raíz de Apple.
Como vimos cuando explicamos la firma digital y como comentaban nuestros compañeros de Genbeta Dev, con la clave pública podemos verificar la firma y asegurarnos que los datos firmados no han variado absolutamente nada desde que Apple los creó y firmó con su clave privada.
Deesta forma, el cargador de arranque verifica la firma del LLB (Low Level Bootloader). Este a su vez comprobará la firma de la siguiente etapa de arranque, iBoot, que finalmente verificará la firma del núcleode iOS.
Esta cadena de confianza asegura que todolo que se está ejecutando en el dispositivo está firmado por Apple. Teóricamente, no podríamoscrear un SO alternativo y cargarlo en un iPhone: la verificación fallaría al cargar el núcleo y nos aparecería la pantalla de “Conectar a iTunes” para restaurar el teléfono.
Cupertino también tiene preparado un sistema de verificación para evitar los downgrades , instalación de versiones antiguas del sistema. La razón es impedir a posibles atacantes instalar versiones antiguas que tengan fallos de seguridad.
El procesose llama System SoftwareAuthorization: se crea una especiede “firma” del sistema que se envía a Apple junto con un ID del dispositivo y un código(nonce ) único para cada verificación.
Los servidores de Apple verifican que efectivamente esa versión de iOS se puede instalar y devuelve una autorización firmada al dispositivo. Al incluir el ID y el
nonce , Apple se asegura de dos cosas respectivamente: que no estás reutilizando una autorización para otro dispositivo (por ejemplo, puedes instalar iOS 6 en un iPhone 3GS, pero no en un iPhone 5) y que no estás reutilizando autorizaciones que ya fueron usadas.
Secure Enclave y criptografíahardware
En el iPhone 5S, Apple incluyóel Secure Enclave, una “zona segura” del teléfono.Hasta ahora no había compartido más informaciónsobre este tema. Hoy tenemos bastantes datos sobre ello.
La seguridad de Secure Enclave comienza en el momento en el que se arranca el sistema por primera vez. Durante la fabricación,se “imprime” en el chip un ID único (UID), que Apple dice no conocer y que no es accesible por ningunaotra partedel sistema. Ese
UID se combina con una clave temporal para generar la clave de cifrado de la memoria de Secure Enclave, de tal forma que lo que se guarde ahí no podrá ser leído (teóricamente, como siempre) por nadie más.
Secure Enclave no es la única parte del sistema que cuenta con criptografía directamente en hardware. iOS cuenta con Data Protection, una característica para cifrar todos los datos sensibles,activada por defecto para todas las aplicacionesen iOS 7 cuando el usuario crea una contraseña de bloqueo.
Para poder cifrar esos archivos, Apple usa un sistema de criptografía hardware que se interpone entre lamemoria del sistema y el disco de datos . Cuando leemos un archivo (por poner dos ejemplos, un ejecutable de una aplicación o un correo), pasa por el procesador criptográfico que cifra y descifra los archivos según corresponda, usando AES 256. Las claves de cifrado están de nuevo embebidas en el procesador, y ni el software niel firmware pueden acceder a ellas.
Touch ID ycontraseñas de bloqueo
Una de las características estrella del iPhone 5S es
Touch ID. En este paperse profundiza más en cómo funcionael sistema, que está muy vinculado con las contraseñas de bloqueo del teléfono.
Al configurar tu huella dactilar, se escanea tu dedoy se guarda en la memoria de Secure Enclave. Tras ser analizada para obtener los rasgos que la identifican, la imagen de tu huella se elimina del teléfono.Los rasgos se guardan en el sistema de archivos del iPhone cifrados por Secure Enclave. SegúnApple, esos datos cifrados no se envían a ningún servidor, nise guardan en iCloudo iTunes.
El bloqueo del teléfono no es sólo una pantalla: los archivos protegidos dejan de estar accesibles y el sistema se “para”
¿Cómo funcionael procesode bloqueo y desbloqueo? Mientras iOS está funcionando, los archivos que usen se descifran con una clave que está en memoria. Al bloquearse, esas claves se agrupan y se cifran con una clave que almacena el sistema Touch ID. En ese momento los archivos protegidos, como tus correos, aplicacioneso datos confidenciales de tus cuentas, se vuelven inaccesibles. Sinclave no hay ficheros, y sin ficherosno puedes hacer nada.
Así, cuando el teléfonoestá bloqueado, se mete en su caparazón, por así decirlo. Uno pensaría que bloquear el teléfonoes sólo superficial y sólo sirve para evitar que tusamigos cambien los nombres de tus contactos cuando tú no miras. La realidad es que la protección es mucho más profunda. El teléfono está realmente bloqueado y no puede seguir funcionando porque no tiene acceso a los archivos cifrados.
Al desbloquear el iPhone con la huella dactilar o con la contraseña, se recuperan las claves y el sistema siguefuncionando normalmente accediendo a los ficherosprotegidos.
Seguridad en iMessage: quizás no tan seguro
El paperde Apple también explica cómo funcionala seguridad en iMessage. El sistema usa cifrado de punto a punto, de tal forma que (en teoría, como veremos más adelante) los de Cupertino no pueden ver qué mensajes estás enviando.
Cuando vinculas un dispositivo con tu cuenta de iMessage, se crean dos pares de clave pública/privada : uno para cifrar y otro para firmar. Las claves privadas se quedan en tu dispositivo y las públicas se envían al IDS, el directorio de usuarios de iMessage almacenado en los servidores de Apple.
¿Cómo se envían los mensajes? Supongamos que Alicia quiere enviar un mensaje a Bernardo, que es todoun fan de Apple y tiene un iPhone, un iPad, un Macbook y un iMac. Alicia escribe el mensajeen iMessage y le da a enviar. Entonces, la aplicación se conecta a IDS y mira los registros de Bernardo. Ve que tiene varios dispositivos y se descarga las claves públicas de cada uno de ellos junto con la dirección a la que enviarles el mensaje.
El iMessage de Alicia cifra el mensaje con la clave pública del iPhone de Bernardo, de tal forma que sólo ese dispositivo podrá descifrarlo con su clave privada, y lo envía a la dirección correspondiente. Hace lo mismo con cada uno de los dispositivos de Bernardo , enviando un mensaje cifrado a cada uno.
Si el mensaje incluye adjuntos, el iMessage de Alicia subirá cada adjunto cifrado a iCloud. El mensaje que se envíe a Bernardo contendrá informaciónpara descargar y descifrar el archivo desde iCloud.
El problema de iMessage es que no sabemos realmente a quién estamos enviando los mensajes
Sinembargo, este esquema tiene fallos, tal y como explica un usuario en Hacker News. Decíamos que en el directorio se guardan las claves públicas de los dispositivos de Bernardo. Ahora bien, ¿cómo sabemos que esos dispositivos son realmente de Bernardo?¿Qué pasa si Bartolo, el hermano gemelo malvado de Bernardo, entra en los servidores de Apple e inserta la clave pública y dirección de su iPhone? A Bartolo le llegarían todos los mensajes de Bernardo, y Alicia no tendría forma de detectarlo.
Ese es el fallo del esquema de iMessage. Yes que no hace faltaque sea Bartolo el superhackerquien entre a los servidores. Pensando mal, podríamos imaginarnosque Apple podría colocar claves públicas a petición de la NSA para espiar a ciertos usuarios. O quizás, si tu iPhone no ha sido actualizado, alguien podría manipular las respuestas del servidor IDS de Apple e introducir claves públicas adicionales para ver los mensajes que envías.
iCloud Keychain, contraseñas en la nube
Para acabar, repasemos cómo funcionaiCloud Keychain, el servicio de Apple que permite sincronizar contraseñas en varios dispositivos.
La idea del Keychain de iCloud es, curiosamente, que las contraseñas no se almacenan en iCloud,al menos no de forma permanente. Lo que se almacena es un
círculo de confianzaque incluye las identidades de cada uno tus dispositivos.
Al activar Keychain por primera vez en tu cuenta, tu teléfonocrea un par de clave pública y clave privada. La clave pública se almacena en el círculode confianza, que se firma con la clave privada y con una clave derivada de tu contraseña de iCloud.
iCloud Keychain es como un club al que sólo puedes entrar si todos sus miembros te dejan.
Cuando añades otro dispositivo a iCloudKeychain, este crea su par de claves y, al detectar que ya hay otros dispositivos vinculados, crea una petición de vinculación. Esa petición o ticket contienela clave pública del dispositivo, y está firmada con la clave derivada de la contraseña de iCloud. La petición se envía a iCloud.
En ese momento tienes que usar el teléfonoen el que ya esté configurado iCloud Keychain, que habrá detectado que hay una petición pendiente y te preguntará con un popupsi quieres añadir la nueva identidad. Si aceptas e introduces tu contraseña de iCloud,se verifica la firma y se añade la clave pública al círculo de confianza. Denuevo, el círculo se firma con la clave privada y la clave derivada. El nuevo dispositivo también firma el círculocon su clave privada.
El funcionamientopuede parecer bastante lioso (de hecho, lo es). Hagamos una analogía. iCloud Keychain es un club elitista del cual tú eres el presidente. Si alguien quiere entrar, primero tiene que preguntartea ti el santo y seña. Después va al club y les dice a los miembros que quiere entrar, y les da el santo y seña. Ellos te preguntan si el santo y seña es válido. Si lo es, el nuevo miembro es bienvenido al club.
A la hora de enviar los datos, se hace entre los clientes. Si creas una nueva contraseña en tu iPhone y hay que sincronizarla en tu Macbook, el iPhone cifra la nueva entrada con la clave pública del Macbook y se la envía directamente a través de iCloud.
Deesta forma, tuscontraseñas se guardan en tus dispostivos. Se transmiten de tal forma que nadie más que el dispositivo destino puede descifrarlas.
Por otra parte, cada dispositivo envía una copia de seguridad de tuscontraseñas a los servidores de Apple. Ahí se guarda cifrada con tu códigode seguridad de iCloud,de tal forma que si pierdes tu dispositivo puedes recuperar las contraseñas. Las copias de seguridad están almacenadas en un cluster de servidores seguros,que cifran las copias de nuevo con una clave única para cada servidor. A la hora de recuperar la copia, se verifica que el usuario conoce el códigode seguridad de iCloudsin pedirlo directamente (no sale del teléfono). Si todosale bien, se envía la copia al usuario y se recuperan las contraseñas.
Como medida de seguridad adicional, el firmware de esos servidores borra automáticamentelos registros si se tratan de desbloquear 10 veces sin éxito o si se intenta modificar el propio software de los servidores.
Estos son los aspectos más destacados del paper de Apple. Desdeluego, es muy de agradecer tener tantas explicacionessobre un aspecto en el que Apple es normalmente muy opaca. Denuevo, si tenéis curiosidad, en el PDF hay más datos y más técnicos, como por ejemplo el sistema de cifrado de archivos o cómo ejecutan sólo aplicacionesautorizadas en el teléfono.
Más información | iOS Security
Temas: Mac | Seguridad | Apple | imessage |