Tag Archive: iPhone


todo-sobre-ios7

Apple suele ser muy opaca a la hora de explicar cómo funciona su sistema operativo móvil, iOS. Por eso resulta 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.

> Arranque y actualización del sistema

Apple pretende que el sistema sea seguro desde el primer momento. ¿Cómo lograr eso? Con una cadena de confianza que empieza en la ROM de arranque. Este segmento de memoria es sólo de lectura y se crea durante la fabricación del teléfono. Entre otras cosas, contiene la clave pública del certificado raíz de Apple.

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. De esta 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úcleo de iOS.

Esta cadena de confianza asegura que todo lo que se está ejecutando en el dispositivo está firmado por Apple. Teóricamente, no podríamos crear 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 proceso se llama System Software Authorization: se crea una especie de “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ía hardware

secureenclave

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 ninguna otra parte del 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 enhardware. iOS cuenta con Data Protection, una característica para cifrar todos los datos sensibles, activada por defecto para todas las aplicaciones en 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 la memoria 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 ni el firmware pueden acceder a ellas.

> Touch ID y contraseñas de bloqueo

touchid

Una de las características estrella del iPhone 5S es Touch ID. En este paper se profundiza más en cómo funciona el sistema, que está muy vinculado con las contraseñas de bloqueo del teléfono.

Al configurar tu huella dactilar, se escanea tu dedo y 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ún Apple, esos datos cifrados no se envían a ningún servidor, ni se guardan en iCloud o iTunes.

¿Cómo funciona el proceso de 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, aplicaciones o datos confidenciales de tus cuentas, se vuelven inaccesibles. Sin clave no hay ficheros, y sin ficheros no puedes hacer nada.

Así, cuando el teléfono está bloqueado, se mete en su caparazón, por así decirlo. Uno pensaría que bloquear el teléfono es sólo superficial y sólo sirve para evitar que tus amigos 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 sigue funcionando normalmente accediendo a los ficheros protegidos.

> Seguridad en iMessage: quizá no tan seguro

messages-1

El paper de Apple también explica cómo funciona la 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 todo un fan de Apple y tiene un iPhone, un iPad, un Macbook y un iMac. Alicia escribe el mensaje en 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ón para descargar y descifrar el archivo desde iCloud.

Sin embargo, este esquema tiene fallos. 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. Y es que no hace falta que sea Bartolo el superhacker quien entre a los servidores. Pensando mal, podríamos imaginarnos que 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

icloud

Para acabar, repasemos cómo funciona iCloud 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 confianza que incluye las identidades de cada uno tus dispositivos.

Al activar Keychain por primera vez en tu cuenta, tu teléfono crea un par de clave pública y clave privada. La clave pública se almacena en el círculo de confianza, que se firma con la clave privada y con una clave derivada de tu contraseña de iCloud.

Cuando añades otro dispositivo a iCloud Keychain, 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 contiene la 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éfono en el que ya esté configurado iCloud Keychain, que habrá detectado que hay una petición pendiente y te preguntará con un popup si 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. De nuevo, el círculo se firma con la clave privada y la clave derivada. El nuevo dispositivo también firma el círculo con su clave privada.

El funcionamiento puede 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 preguntarte a 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.

De esta forma, tus contraseñ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 tus contraseñas a los servidores de Apple. Ahí se guarda cifrada con tu código de seguridad de iCloud, de tal forma que si pierdes tu dispositivo puedes recuperar las contraseñas. Las copias de seguridad están almacenadas en uncluster 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ódigo de seguridad de iCloud sin pedirlo directamente (no sale del teléfono). Si todo sale 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áticamente los 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. Desde luego, es muy de agradecer tener tantas explicaciones sobre un aspecto en el que Apple es normalmente muy opaca. De nuevo, 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 aplicaciones autorizadas en el teléfono.

Fuente | iOS Security

touch-id

Cuando Apple presentó su nuevo sistema de desbloqueo Touch ID, no tardaron en asegurar que esta información no se almacena en los servidores de la compañía. A pesar de la aclaración, y con todo el tema de PRISM y las filtraciones de la NSA muy reciente, desde la empresa de Cupertino han tenido que volver a salir ante las cámaras a explicar cómo funciona exactamente el sistema y dónde se guardan los datos de nuestra huella dactilar.

Tras insistir a The Wall Street Journal en que las huellas en ningún momento viajan por Internet hacia ningún servidor, en declaraciones a este mismo periódico Apple asegura que toda esta información se almacena en el propio teléfono. Además, afirman que no se guarda una imagen de la huella en sí, sino una copia cifrada a modo de “firma digital”, de tal forma que si alguien accede al terminal y quiere descifrarla, no pueda obtener el original. Ésa, al menos, es la teoría.

De hecho, Apple ha sido bastante cuidadosa en la implementación de este sistema. Como se anunció en la presentación, por ahora con Touch ID sólo se puede desbloquear el teléfono o identificarse en algunas aplicaciones nativas. Las aplicaciones de terceros no tienen acceso a esta tecnología y no está muy claro si está entre los objetivos de Apple el que vayan a tenerla en un futuro cercano.

¿Y qué ocurre si te roban el teléfono? Para evitar dar tiempo a los delincuentes para saltarse el sistema, Apple también ha introducido alguna restricción adicional. Por ejemplo, si se reinicia el terminal o si lleva sin desbloquearse más de 48 horas, será necesario introducir la contraseña de refuerzo que el propio terminal pide a los usuarios al configurar Touch ID.

> El sensor de huellas: una pantalla táctil mucho más densa

A grandes rasgos, el sensor de huellas del iPhone es sólo un pedazo de pantalla táctil en el que se han agrupado sensores táctiles con muchísima mayor densidad de lo normal (500 por pulgada). Tened en cuenta que tenemos que distinguir entre los diferentes rasgos y líneas del dedo.

touchid2

Como algunos sabréis, el sensor táctil funciona midiendo cambios en la carga eléctrica. En el caso del sensor de huellas hay otras particularidades que permiten meter muchos más sensores en poco espacio, pero vayamos primero a lo básico.

Un sensor consiste de dos placas conductoras, separadas por un aislante. Una de ellas, la de arriba, es un electrodo y la otra, un sensor. Cuando queremos medir la huella, el electrodo se carga a un cierto voltaje, y eso crea un campo eléctrico. En el sensor, ese campo induce una carga eléctrica que luego se amplifica y pasa a la circuitería para ser medido.

El truco de la medición está en que, cuando acercamos nuestro dedo, el campo eléctrico cambia. Nuestro dedo es mejor conductor que el aire y la fuerza del campo eléctrico aumenta en proporción a la distancia con respecto al sensor.

Pero, si es tan fácil como meter más sensores táctiles, ¿cómo es que esto no se ha hecho antes? Lo cierto es que es más difícil que simplemente hacerlos más pequeños. Al juntar más los sensores, se produce un fenómeno de capacitancia parásita. Antes veíamos que es el electrodo el que genera el campo eléctrico que medimos. Sin embargo, todos los componentes del circuito por los que circula electricidad también generan un campo eléctrico. Cuando ese campo es muy fuerte o está muy cerca de nuestro sensor, éste lo medirá y parecerá que tiene un dedo encima cuando en realidad no hay nada. Todo esto dejaría nuestro sensor inútil.

El iPhone utiliza varias técnicas para reducir esa capacitancia parásita al mínimo. Lo primero, cambiar el diseño de los sensores con respecto a los táctiles.

EstructuraSensor

El sensor táctil del iPhone está organizado en una cuadrícula continua: en líneas horizontales se distribuyen los electrodos; y en las verticales los sensores. El sensor de huellas es distinto: el electrodo y el sensor son dos “cintas” colocadas una encima de la otra (electrodo arriba), y el electrodo es ligeramente más corto que el sensor. Cada par es un “píxel”, y se colocan en filas y columnas, cada uno aislado del otro. Esto permite realizar una medición en dos fases: cada vez medimos el campo de sólo una parte de los sensores.

En cada fase, una parte de los sensores están activos (midiendo) y la otra inactivos. Los electrodos de los sensores activos se ponen en modo escudo para aislarlos y reducir la capacitancia parásita. Los electrodos encima de los sensores inactivos son los que se cargan a un cierto voltaje para generar el campo eléctrico.

De esta forma, ponemos una separación más grande entre los sensores activos, podremos meter más en menos espacio y así sabremos las pequeñas diferencias entre los distintos relieves del dedo.

Entre todos los sensores, tendremos una matriz (cuadrícula, por así decirlo) con los valores de distancia que dibujarán una imagen muy precisa del relieve de nuestro dedo. Ahora sólo falta el siguiente paso: analizar la huella y almacenarla.

> La parte software: reconociendo una huella

TiposHuellasUna vez que tenemos la “imagen” de la huella, el software tiene que analizarla para extraer sus características. Aunque para nosotros es muy fácil reconocer una huella, para el ordenador no lo es tanto: la imagen es sólo un conjunto de números del que hay que extraer algún significado.

El problema es que aquí ya no tenemos mucha información sobre cómo puede estar implementándolo Apple. Sabemos que es independiente de la orientación, pero hay tantos algoritmos que es imposible saber cuál de todos ellos están usando. Por eso esta parte será un poco más de especulación, basándome en esta patente de AuthenTec (compañía comprada por Apple) y funcionamiento general del reconocimiento de huellas dactilares, y sin entrar en temas de reconocimiento de imagen que son demasiado complejos.

Las huellas dactilares son prácticamente únicas en cada persona, y tienen varias características que las definen. La primera, distinguible a simple vista, es el patrón en el que se agrupan las líneas: arco, bucle o espiral.

FingerprintMinutia

La segunda ya es más difícil de distinguir: son las minutiae, pequeños detalles en las líneas del dedo. Por ejemplo, el final de una línea, una bifurcación o un punto (una línea más corta de lo normal).

Cuando tenemos la imagen, lo primero que hay que buscar es el punto de referencia, el “centro” de la huella dactilar. Desde ahí, mediremos dónde está cada una de las minutiae. Al final, tendremos una serie de coordenadas, cada una asociada a un tipo de detalle en las líneas del dedo.

A la hora de verificar una huella, volvemos a extraer las coordenadas de las minutiae con respecto al centro de la huella y vemos si coinciden con las que teníamos guardadas. Si lo hacen, la huella es la misma.

Ahora bien, hay un problema: ¿qué pasa si la orientación del dedo no es la misma? Como veis en la imagen, a pesar de que sea la misma huella, las coordenadas de los minutiae van a ser distintas y el sistema considerará que son huellas diferentes.

Para corregir la orientación, hay que ver en qué sentido están orientadas las líneas. Hay varias formas de medir esa orientación: veamos una simplificada.

MedicionAnguloHuellasLo que hacemos es tirar líneas desde el centro de la huella: una horizontal, otra a 45º, otra vertical… y vamos mirando el ángulo que forman las líneas del dedo con esas rectas. Al final, tenemos una serie de ángulos que nunca cambian y siempre están en el mismo orden (en realidad habría que interpolar esos datos y obtener un modelo más o menos aproximado a la realidad, pero no me meteré con ello)

La próxima vez que obtengamos la huella, mediremos de nuevo los ángulos, que deberían de ser los mismos si la huella es la misma. Quizás estén rotados (el que antes estaba en la recta horizontal está ahora en la vertical, por ejemplo) pero seguirán el mismo orden. Es decir, habremos detectado la orientación del dedo y podremos corregirla, resolviendo el problema que teníamos antes.

> Seguridad del lector: ¿Y si me cortan un dedo?

touchid3

Las preguntas que vienen ahora son inevitables: ¿qué nos aporta, como usuarios, el tener un lector de este tipo? ¿Cómo podemos usarlo?

Al ser un lector capacitivo, tiene una gran ventaja frente a lectores de huellas ópticos: no le importa la suciedad que tenga tu dedo, ni manchas, ni nada. Sólo el dedo en sí, la piel, es lo que activa más o menos los sensores, así que lo que tenga por encima da igual (hasta cierto límite, claro).

Por otra parte, también es más seguro. Como sólo funciona con el dedo, no es posible engañarle con una fotografía. Sólo se podría hacer con materiales de conductividad similar al de un dedo humano, y por supuesto con la misma huella. Tampoco es un escenario muy preocupante: si se da el caso de que un atacante tenga las capacidades para leer tu huella dactilar, reproducirla en un material especial y desbloquear tu iPhone con ella, de lo que menos tendrías que preocuparte es de que te desbloquee el iPhone.

Y por último, la pregunta que todos os estáis haciendo: ¿qué pasa si te cortan el dedo? No me atrevería a asegurarlo al 100%, pero es muy probable que la huella siga funcionando. Claro está, siempre que el dedo no esté muy degradado.

> ¿Dónde se guarda mi huella?

Apple se ha cuidado mucho de asegurar que los datos de tu huella no dejan nunca el iPhone: se guardan en el Secure Enclave del chip A7. Aun así, pueden surgir varias dudas sobre la seguridad de este método, más allá de que no tenemos información de qué es Secure Enclave ni de cómo asegura los datos.

Los de Cupertino prometen que sólo el chip Touch ID puede acceder al espacio donde se almacena la huella dactilar. Entonces, lo más probable es que el chip sólo responda a una petición del sistema de escanear la huella con “huella válida” o “huella inválida”. Ni siquiera el propio sistema iOS podría acceder a esos datos seguros, lo que evitaría que cualquier atacante pudiese aprovechar un resquicio de seguridad para copiar tu huella dactilar.

Tal y como se ha enfocado el sistema, parece seguro y útil. Habrá, por supuesto, que esperar a probarlo para ver si funciona sin fallos y no causa problemas. Si finalmente lo han hecho bien, en Apple habrán hecho mucho por la seguridad de sus usuarios.

Fuente | Xataka

El sistema operativo móvil de Apple nos ofrece multitud de aplicaciones y utilidades, aunque siempre habrá alguna que echemos en falta. Por suerte, gracias a la App Store y a Cydia podemos muchas veces encontrar lo que necesitamos.

app-store-600

En este caso vamos a hablar de unas funciones “extra” de seguridad que nos pueden venir bien para mantener nuestro iPhone y su contenido a buen recaudo.

1. iCaughtU

Esta aplicación nos permite controlar quién intenta acceder a nuestro teléfono sin permiso, además de poder localizarlo en caso de robo si el ladrón intenta usarlo. Para ello, eso sí, tenemos que tener activado el desbloqueo por contraseña.

En la configuración de iCaughtU podemos ajustar el número máximo de intentos antes de que la aplicación saque una foto de la persona que está intentando usar el teléfono y nos la envíe por email. Podemos recibir la localización y hora.

Otra opción interesante es la de ajustar un mensaje personalizado que verá la persona que intente desbloquear el iPhone. En ese mensaje podemos indicar un teléfono de contacto, por ejemplo, por si perdemos el terminal y la persona que lo encuentra es lo suficientemente honrada para querer devolvérnoslo. Existen dos versiones, la gratuita y la “Pro” (2.5 dólares), que añade integración con “Encuentra mi iPhone”.

2. Dot Lock Protection Pro

Aunque existen algunas parecidas, Dot Lock me ha parecido interesante, a pesar de imitar el sistema de desbloqueo de Android. Este sistema de desbloqueo es fácil de recordar, y personalmente me gusta bastante. La aplicación en sí nos permite guardar imágenes y vídeos dentro de ella y organizarlos por carpeta. Para acceder tenemos que conocer el patrón de desbloqueo por puntos que previamente hemos establecido.

Las imágenes o vídeos que importemos a la aplicación no se borrarán del carrete, con lo que si queremos que nadie acceda a estos no debemos olvidarnos de este paso.

El uso que le podemos dar puede no parecer muy obvio, ya que hay otras aplicaciones que permiten poner una contraseña a la aplicación de la cámara o de las fotos, pero os aseguro que en algunas ocasiones es mejor que nadie se de cuenta de que no puede acceder a la aplicación fotos. Algo sospecharía…

3. Locktopus

Este “tweak” nos permite asignar una contraseña maestra necesaria para abrir las aplicaciones que bloqueemos. Cuando entremos en el modo de edición de iconos (dejando presionado un icono hasta que tiembla), veremos un nuevo símbolo en ellos, representando un candado. Al pulsar sobre él bloqueamos o desbloqueamos la aplicación por contraseña.

Muy útil y rápido, ya que no tenemos que entrar en ajustes ni realizar operaciones adicionales.

Estas son tan solo 3 aplicaciones pero existen multitud de ellas (de pago y gratuitas) En posteriores posts iré incluyendo más aplicaciones que nos ayuden a securizar un poco más este amiguito que llevamos todos los días, y que contiene información tan valiosa. Para nosotros

Fuente | Appleweblog