19
Instituto Politécnico Nacional Centro de Investigación en Computación Módulo Criptográfico de Anonimato para Servicios Basados en Localización en Dispositivos Android Autores: Andrea Viridiana Soto Miranda Eleazar Aguirre Anaya Gina Gallegos García Presenta: Andrea Viridiana Soto Miranda

Centro de Investigación en Computación - UTEYCV - … Andrea V Soto.pdf · que corre en espacio de usuario, con los comandos adb shell, insmod aes.ko, dmesg, lsmod. Figura 8. Comando

Embed Size (px)

Citation preview

Instituto Politécnico NacionalCentro de Investigación en Computación

Módulo Criptográfico de Anonimato para Servicios Basados en Localización en Dispositivos Android

Autores:Andrea Viridiana Soto Miranda Eleazar Aguirre AnayaGina Gallegos García

Presenta:Andrea Viridiana Soto Miranda

Agenda Introducción

Trabajos relacionados

Diseño de módulo propuesto

Desarrollo de módulo

Resultados

Conclusiones

Referencias

2CIC-IPN CIBERSEGURIDAD

IntroducciónLos módulos en el núcleo de Linux,permiten agregar funcionalidad alsistema sin afectar su rendimiento.Dichos módulos se ejecutan a nivel denúcleo y permiten la comunicación conlas aplicaciones que se ejecutan a nivelde usuario [1,2]. Los dispositivosAndroid con arquitectura ARM, estánconstruidos por encima del núcleo deLinux, por lo que se pueden integrarmódulos para brindar diferentesservicios a los usuarios.

CIC-IPN CIBERSEGURIDAD 3

Figura 1. Arquitectura de dispositivos Android ARM

Introducción

Debido al uso de estos dispositivos hoy en día para almacenar y compartir información,es que se hace necesaria la implementación de mecanismos que garanticen al usuarioservicios de seguridad, como confidencialidad, integridad, autenticidad, entre otros.Existe la posibilidad de integrar primitivas criptográficas de llave simétrica con soporteen el núcleo para proveer estos servicios, por medio del API criptográfica.

CIC-IPN CIBERSEGURIDAD 4

Trabajos relacionados

Algunos trabajos relacionados con el presentado en este trabajo son:

En [3] se presenta el desarrollo de un módulo para una arquitectura x86, en donde se permiteal usuario conocer información detallada de los procesos en ejecución del sistema, con lafinalidad de ver su rendimiento.

En [4] se desarrolla un módulo de igual forma para un arquitectura x86, el cual cifra lainformación que es transmitida desde una computadora hasta una USB, para evitar queentidades ajenas tengan conocimiento de dicha información, a menos que cuenten con la llavepara descifrarla.

CIC-IPN CIBERSEGURIDAD 5

Diseño de módulo propuesto

Un módulo criptográfico que garantice anonimato al usuario de SBL en datos comoidentidad y ubicación, integrando primitivas criptográficas de llave simétrica y de llaveasimétrica. Debido a que el núcleo de Linux solo tiene soporte para primitivascriptográficas de llave simétrica, la parte de criptografía de llave asimétrica se trabajaráa nivel de aplicación, haciendo compatible la interacción entre ambas y las demásentidades del esquema. Dicho módulo tiene que ser accesible por las aplicacionesinstaladas en el dispositivo y que ofrezcan SBL al usuario.

CIC-IPN CIBERSEGURIDAD 6

CIC-IPN CIBERSEGURIDAD 7

Figura 3. Esquema de anonimato con módulo integrado

Diseño de módulo

CIC-IPN CIBERSEGURIDAD 8

Comunicación del módulo que se comunique con el espacio de usuario a través de un nodo en /dev/Nodo:

Cifrado/Descifrado de información con Crypto API en el kernel de Linux (AES en modo CTR)

Uso de Hashes con Crypto API

Desarrollo de módulo

CIC-IPN CIBERSEGURIDAD 9

Figura 4. Funcionamiento del módulo

Desarrollo de módulo

CIC-IPN CIBERSEGURIDAD 10

El uso de estructuras definidas, que permiten tener acceso a datos

específicos

Usadas en AES y funciones hash

struct crypto_cipher *tfm;

struct crypto_hash *tfm;

struct hash_desc desc;

struct crypto_blkcipher * blk;

Comunicación entre espacio de kernel y espacio de usuario

CIC-IPN CIBERSEGURIDAD 11

• Char devices

struct file_operations fops={

.owner=THIS_MODULE,

.open=myopen,

.release=myrelease,

.write=mywrite, }

int fd=open("/dev/myNode",O_RDWR)

write(fd ,opt,strlen (opt));

Figura 5. Comunicación entre espacio de usuario y espacio de núcleo

Resultados

CIC-IPN CIBERSEGURIDAD 12

El dispositivo Android debeaceptar la carga y descarga demódulos y tener habilitado la APIcriptográfica, en este caso seintegró un nuevo kernel como seobserva en la Figura 6.

Figura 6. Información de archivos generados para dispositivo Android

Resultados

CIC-IPN CIBERSEGURIDAD 13

Los archivos generados muestran la información como se ve en la Figura 7.

Figura 7. Información de archivos generados para dispositivo Android

Acceder al dispositivo mediante la herramienta de adb, para instalar el módulo y ejecutar el programa que corre en espacio de usuario, con los comandos adb shell, insmod aes.ko, dmesg, lsmod.

Figura 8. Comando lsmod

Resultados

CIC-IPN CIBERSEGURIDAD 14

Figura 9. Nodo para comunicación entre espacio de usuario y espacio de núcleo

Una vez que se cargó el módulo, se puede visualizar el nodo de comunicación en /dev, en este caso se declaró myNode, como se observa en la figura 9.

Resultados

CIC-IPN CIBERSEGURIDAD 15

Etapa de cifrado para cadena ¡HolaMundo!, Espacio de usuario, figura 10.

Figura 10. Ejecución de etapa de cifrado. Espacio de usuario.

Figura 11. Ejecución de etapa de cifrado. Espacio de núcleo.

Resultados

CIC-IPN CIBERSEGURIDAD 16

Etapa de descifrado y verificación para cadena ¡HolaMundo!, Espacio de usuario, figura 10.

Figura 12. Ejecución de etapa de descifrado y verificación. Espacio de usuario.

Figura 13. Ejecución de etapa de descifrado y verificación. Espacio de núcleo.

ConclusionesLa garantía de servicios criptográficos entre ellos la confidencialidad, la integridad y elanonimato, a nivel del núcleo de Linux debe considerar el análisis de los recursos que setienen disponibles en el dispositivo, de tal forma que el módulo pueda ser funcional.

Debido a que no existe soporte en el núcleo de Linux para criptografía de llaveasimétrica, se debe realizar una compatibilidad entre las funciones que trabajarán a nivelde aplicación y las que estarán a nivel de núcleo, para que el servicio de anonimato sepueda brindar al usuario de manera completa.

Se debe considerar la compilación cruzada para poder construir el módulo, aparte decontar con el código fuente en especifico del dispositivo donde se instalará el módulo,para asegurar que el módulo sea funcional en el dispositivo donde se desea integrar.

CIC-IPN CIBERSEGURIDAD 17

Bibliografía[1] Daniel P. Bovet & Marco Cesati, “Understanding the Linux Kernel”, 3rd ed., Ed. O’Reilly, 2006.

[2] Rubini, A., & Corbet, J. (2001). Linux device drivers. " O'Reilly Media, Inc.".

[3] Parichha, B. K. (2015, April). Performance Analysis of Process Using Loadable Kernel Module(LKM). In Communication Systems and Network Technologies (CSNT), 2015 Fifth InternationalConference on (pp. 1338-1343). IEEE

[4] Furukawa, J., Sakai, A., Nishide, T., Hori, Y., & Sakurai, K. (2011, June). Design andImplementation of a Forced Encryption Kernel Module. (IMIS), 2011 Fifth InternationalConference on (pp. 607-611). IEEE

[5] Barboza G. M., Aguirre A. E., and Gallegos G. G.. ”Anonymity Scheme For Location BasedServices”. Escuela Superior de Ingenierıa Mecánica y Eléctrica Unidad Culhuacán, Sección deEstudios de Posgrado e Investigación, 2015.

CIC-IPN CIBERSEGURIDAD 18

¡Gracias!

CIC-IPN CIBERSEGURIDAD 19

Dudas o comentariosAndrea Viridiana Soto [email protected]