miércoles, 25 de septiembre de 2013

Seguridad en dispositivos iOS (1)

Últimamente he estado repasando conceptos de seguridad en dispositivos iOS y hay algo que me ha resultado tremendamente curioso. El sistema de cifrado de datos. La verdad es que no soy un experto en la materia y no se si realmente el sistema en si es avanzado, bueno o una castaña. Pero me parece bastante interesante.

La idea general es enrevesada, así que voy a tratar de aproximarla mediante una serie de pasos consecutivos.

Pongamos que queremos hacernos con el contenido de un archivo. ¿Qué pasos se siguen para acceder al mismo?.

Un disco duro cifrado

Lo primero es que el disco duro está cifrado por hardware gracias al uso de un sistema integrado entre la memoria y el disco duro. Esto hace que todos los archivos que se utilizan pasen por un filtro de cifrado / descifrado del que solo conocemos los resultados al realizarse con un parámetro grabado en el interior de un chip y al que no podemos acceder.

Esto hace que para ver los contenidos tengamos que pasar por ese camino, es decir, estar en el mismo teléfono. Nada de sacar el disco duro y acceder a el desde fuera.

Un cifrado por archivo

Además, cada vez que queremos guardar un archivo se genera un cifrado basado en un número aleatorio que se guarda en los metadatos del archivo. Los metadatos del archivo son cifrados por un código que se guarda en el disco duro. Este no tiene como objetivo la seguridad, sino la posibilidad de hacer un "borrado" total de datos al eliminarlo del disco. En ese caso, no es que se borren los datos, sino que no se puede descifrar.

Volviendo a los metadatos, sus contenidos son tambien cifrados mediante algo llamado clases. Esto define el nivel de seguridad del archivo y las condiciones para descrifrarlo. De esta forma, se precisará o no un código por parte del usuario.

En conclusión

Si necesitamos descifrar un archivo de bajo nivel de seguridad, prácticamente se descifrará solo, sin embargo, si es un archivo de alto nivel de seguridad precisará interacción del usuario. El proceso es utilizar un código único del dispositivo y el guardado en el disco duro para descifrar los metadatos, obtener el tipo de clase, descifrar el tipo de clase a través del código único del dispositivo y/o del código introducido por el usuario, obtendremos entonces el código de cifrado único del archivo y podremos descifrar el contenido del mismo. Todo esto, teniendo en cuenta que para pasar del disco duro a memoria, los datos deben descifrarse con el sistema hardware que lleva el teléfono y que únicamente funcionarán en el mismo teléfono

Así que...

Es complicado y no se si he sido suficientemente preciso. Pero la idea a transmitir creo que la pillaréis...

No hay comentarios:

Publicar un comentario