Autenticaci´on de usuarios por proximidad usando la
plataforma eZ430-Chronos
Manuel Mancera Jim´enez
Isaac Agudo Ruiz
Depa...
Conceptos
Autenticaci´on y autorizaci´on de usuarios
¿Qu´e es la autenticaci´on?
Confirmaci´on de la identidad de un usuari...
Conceptos
Autenticaci´on y autorizaci´on de usuarios
¿Qu´e es la autenticaci´on?
Confirmaci´on de la identidad de un usuari...
Conceptos
Autenticaci´on y autorizaci´on de usuarios
¿Qu´e es la autenticaci´on?
Confirmaci´on de la identidad de un usuari...
Conceptos
Criptograf´ıa
¿Qu´e es?
Es la ciencia que estudia como mantener la seguridad en los mensajes.
Es la herramienta ...
Objetivos
Sistema de autenticaci´on
Objetivo del proyecto
Creaci´on de un sistema seguro de autenticaci´on de usuarios por...
Objetivos
Sistema de autenticaci´on
Objetivo del proyecto
Creaci´on de un sistema seguro de autenticaci´on de usuarios por...
Herramientas utilizadas
Elementos involucrados en el sistema
eZ430-Chronos
Sistema de desarrollo inal´ambrico creado para
...
Herramientas utilizadas
Elementos involucrados en el sistema
eZ430-Chronos
Sistema de desarrollo inal´ambrico creado para
...
Herramientas utilizadas
Elementos involucrados en el sistema
eZ430-Chronos
Sistema de desarrollo inal´ambrico creado para
...
Herramientas de desarrollo
eZ430-Chronos
Parte hardware que nos interesa:
Microcontrolador msp430.
M´odulo de radio CC1101...
Herramientas de desarrollo
Access Point
Dos elementos: CC1111 + Un PC
Parte hardware:
CC1111
8051 MCU.
M´odulo de radio.
C...
Herramientas de desarrollo
Servidor
Parte hardware necesaria:
Cualquier equipo con Linux, Python y conexi´on de red, ya se...
Protocolo
Protocolo
ClientServer AP
AESks(uid,AESkw(RAND1))
uid,RAND,AESkw(RAND1)
COMPROBACION
DE CREDENCIALES
DESCIFRANDO...
Protocolo
Protocolo
ClientServer AP
AESks(uid,AESkw(RAND1))
uid,RAND,AESkw(RAND1)
COMPROBACION
DE CREDENCIALES
DESCIFRANDO...
Protocolo
Tipos de paquetes
Tenemos 4 tipos de paquetes distintos para la comunicaci´on por RF:
Beacon: 13 bytes. Destino-...
Funcionamiento del Sistema
Funcionamiento
ESPERA
BEACON
START
ENVIA
AUTENTICACION
SESION
ENVIA
PING
FIN
¿Recibe
beacon?
SI...
Funcionamiento del Sistema
Funcionamiento
ESPERA
BEACON
START
ENVIA
AUTENTICACION
SESION
ENVIA
PING
FIN
¿Recibe
beacon?
SI...
Implementaci´on
Software utilizado
Cliente eZ430-Chronos:
Compilador msp430-gcc-4.4.3 (http://mspgcc4.sourceforge.net/)
ms...
Implementaci´on
Python
Punto de acceso.
M´odulos principales:
serial. Necesario para la comunicaci´on con el CC1111, usand...
Implementaci´on
Python
Servidor.
M´odulos principales:
socket y ssl. Necesarios para la comunicaci´on y cifrado de est´a c...
Utilizaci´on del Sistema
Interfaces
Access Point:
Archivo de configuraci´on: /etc/accesspoint.conf.
Daemon: /etc/init.d/dae...
Utilizaci´on del Sistema
Interfaces
Servidor:
Archivo de configuraci´on: /etc/adminssl.conf.
Daemon: /etc/init.d/daemon adm...
Utilizaci´on del Sistema
Interfaces
Cliente:
Reloj de pulsera.
Sistema embebido.
Cargar el sistema en la memoria es tarea ...
Detalles
Im´agenes
Sistema de Logging en el
servidor.
Notificaciones de eventos.
Ficheros para la configuraci´on
del servici...
Bibliograf´ıa y documentaci´on
Bibliograf´ıa:
Website eZ430-Chronos. http://www.ti.com/ez430
Proyecto OpenChronos. https:/...
Próxima SlideShare
Cargando en…5
×

Presentacion

456 visualizaciones

Publicado el

Presentación del proyecto Autenticación de usuarios por proximidad usando la plataforma eZ430-Chronos.

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
456
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Presentacion

  1. 1. Autenticaci´on de usuarios por proximidad usando la plataforma eZ430-Chronos Manuel Mancera Jim´enez Isaac Agudo Ruiz Departamento de Lenguajes y Ciencias de la Computaci´on Universidad de M´alaga 27 de junio de 2013 Manuel Mancera Jim´enez Isaac Agudo Ruiz (Univ. M´alaga)Autenticaci´on de usuarios por proximidad usando la plataforma eZ430-Chronos27 de junio de 2013 1 / 19
  2. 2. Conceptos Autenticaci´on y autorizaci´on de usuarios ¿Qu´e es la autenticaci´on? Confirmaci´on de la identidad de un usuario. Seg´un la RAE, dar f´e de un hecho o documento.
  3. 3. Conceptos Autenticaci´on y autorizaci´on de usuarios ¿Qu´e es la autenticaci´on? Confirmaci´on de la identidad de un usuario. Seg´un la RAE, dar f´e de un hecho o documento. Actualmente se conocen tres m´etodos para identificar usuarios: Secreto compartido: contrase˜nas (Passwords). Posesi´on de un objeto, ya sea software o hardware. Caracter´ısticas f´ısicas del usuario: biom´etricos. Para aumentar la seguridad se pueden combinar todos los sistemas.
  4. 4. Conceptos Autenticaci´on y autorizaci´on de usuarios ¿Qu´e es la autenticaci´on? Confirmaci´on de la identidad de un usuario. Seg´un la RAE, dar f´e de un hecho o documento. Actualmente se conocen tres m´etodos para identificar usuarios: Secreto compartido: contrase˜nas (Passwords). Posesi´on de un objeto, ya sea software o hardware. Caracter´ısticas f´ısicas del usuario: biom´etricos. Para aumentar la seguridad se pueden combinar todos los sistemas. Autorizaci´on Proceso que determina qu´e, c´omo y cu´ando un usuario autenticado puede utilizar los recursos del sistema.
  5. 5. Conceptos Criptograf´ıa ¿Qu´e es? Es la ciencia que estudia como mantener la seguridad en los mensajes. Es la herramienta m´as poderosa para proporcionar servicios de seguridad en los sistemas inform´aticos. El proceso de convertir un texto en claro en ininteligible se llama cifrado, y el proceso inverso descifrado. Tenemos dos tipos de criptosistemas seg´un usen algoritmos sim´etricos o asim´etricos. Algoritmos sim´etricos: la clave para cifrar y descifrar es la misma. Algoritmos asim´etricos: la clave utilizada para cifrar es distinta de la utilizada para descifrar. Criptoan´alisis: ciencia que estudia c´omo romper los textos cifrados. Un protocolo de seguridad es un conjunto de reglas y formatos que determinan la informaci´on que se intercambian entre dos o m´as entidades con objeto de proporcionar un servicio de seguridad.
  6. 6. Objetivos Sistema de autenticaci´on Objetivo del proyecto Creaci´on de un sistema seguro de autenticaci´on de usuarios por proximidad usando la plataforma eZ430-Chronos.
  7. 7. Objetivos Sistema de autenticaci´on Objetivo del proyecto Creaci´on de un sistema seguro de autenticaci´on de usuarios por proximidad usando la plataforma eZ430-Chronos. ¿Qu´e necesitamos? Creaci´on de un protocolo de comunicaci´on por RF (frecuencia 868MHz) entre el eZ430-Chronos y el equipo donde se quiere autenticar. Creaci´on de un firmware para los dispositivos que intervendr´an en el sistema. eZ430-Chronos: Ampliaci´on del firmware de Openchronos. CC1111: Creaci´on de un firmware para recibir/enviar mensajes por RF y proporcionar una API para la comunicaci´on con el equipo en el cual este conectado. Para ambos dispositivos el lenguaje de programaci´on usado ser´a C. Creaci´on de un servidor, para lo cual usaremos el lenguaje de programaci´on python.
  8. 8. Herramientas utilizadas Elementos involucrados en el sistema eZ430-Chronos Sistema de desarrollo inal´ambrico creado para desarrolladores que crean aplicaciones inal´ambricas tales como sistemas de vigilancia, pantallas para redes de ´area personal, nodos de sensores in´alambricos, etc. Basado en el microcontrolador CC430F6137, dispone de una pantalla LCD de 96 segmentos, m´odulo para la comunicaci´on por RF, co-procesador AES, aceler´ometro y sensor de presi´on entre otras caracter´ısticas.
  9. 9. Herramientas utilizadas Elementos involucrados en el sistema eZ430-Chronos Sistema de desarrollo inal´ambrico creado para desarrolladores que crean aplicaciones inal´ambricas tales como sistemas de vigilancia, pantallas para redes de ´area personal, nodos de sensores in´alambricos, etc. Basado en el microcontrolador CC430F6137, dispone de una pantalla LCD de 96 segmentos, m´odulo para la comunicaci´on por RF, co-procesador AES, aceler´ometro y sensor de presi´on entre otras caracter´ısticas. Es un dongle USB programable el cu´al facilita una comunicaci´on directa entre un PC y una red inal´ambrica sub<1GHz. Dispone de un m´odulo de RF basado en el chip CC1101, al igual que el eZ430-Chronos. CC1111
  10. 10. Herramientas utilizadas Elementos involucrados en el sistema eZ430-Chronos Sistema de desarrollo inal´ambrico creado para desarrolladores que crean aplicaciones inal´ambricas tales como sistemas de vigilancia, pantallas para redes de ´area personal, nodos de sensores in´alambricos, etc. Basado en el microcontrolador CC430F6137, dispone de una pantalla LCD de 96 segmentos, m´odulo para la comunicaci´on por RF, co-procesador AES, aceler´ometro y sensor de presi´on entre otras caracter´ısticas. Es un dongle USB programable el cu´al facilita una comunicaci´on directa entre un PC y una red inal´ambrica sub<1GHz. Dispone de un m´odulo de RF basado en el chip CC1101, al igual que el eZ430-Chronos. CC1111 El otro elemento ser´ıa un PC al cual conectar el CC1111 y PC que har´a de servidor.
  11. 11. Herramientas de desarrollo eZ430-Chronos Parte hardware que nos interesa: Microcontrolador msp430. M´odulo de radio CC1101. Co-procesador AES de 128 bits. Est´a integrado en un reloj de pulsera. Parte software: Openchronos Es un firmware Open Source para el eZ430-Chronos. Contiene todos los drivers necesarios para el sistema. Una nueva funci´on Chronos Auth System Se modificaran los drivers de la radio y se a˜nadir´an funciones a los de AES.
  12. 12. Herramientas de desarrollo Access Point Dos elementos: CC1111 + Un PC Parte hardware: CC1111 8051 MCU. M´odulo de radio. Co-procesador AES de 128 bits. Controlador USB. Parte software que debemos implementar: Firmware para el CC1111. Bas´andonos en el firmware Recovery de TI para el dongle del kit eZ430-Chronos Development Tool + Datasheet Creaci´on de una API para la comunicaci´on con el PC a trav´es del USB. PC Creaci´on de un daemon en el lenguaje Python. Se comunica con el CC1111 por USB y con el servidor por TCP/IP. Usa la PAM para autenticar.
  13. 13. Herramientas de desarrollo Servidor Parte hardware necesaria: Cualquier equipo con Linux, Python y conexi´on de red, ya sea inal´ambrica o cableada. Puede ser un equipo externo o la misma m´aquina en la que se encuentra el AP. Parte software: Creaci´on de un daemon en Python. Interfaz de administraci´on para a˜nadir, modificar o eliminar usuarios. Se comunicar´a con el AP por TCP/IP usando SSL. Encargado de autorizar o denegar al AP el acceso al usuario. Control del estado del sistema mediante logs.
  14. 14. Protocolo Protocolo ClientServer AP AESks(uid,AESkw(RAND1)) uid,RAND,AESkw(RAND1) COMPROBACION DE CREDENCIALES DESCIFRANDO RAND1. AESKW(RAND1+1) beacon(RAND1) OK, AESKW(RAND1+1) SESION ABIERTA beacon(RAND2) AESks(uid,AESkw(RAND2)) uid,RAND,AESkw(RAND2) PING OK COMPROBACION DE CREDENCIALES DESCIFRANDO RAND2. Diagrama del funcionamiento del sistema
  15. 15. Protocolo Protocolo ClientServer AP AESks(uid,AESkw(RAND1)) uid,RAND,AESkw(RAND1) COMPROBACION DE CREDENCIALES DESCIFRANDO RAND1. AESKW(RAND1+1) beacon(RAND1) OK, AESKW(RAND1+1) SESION ABIERTA beacon(RAND2) AESks(uid,AESkw(RAND2)) uid,RAND,AESkw(RAND2) PING OK COMPROBACION DE CREDENCIALES DESCIFRANDO RAND2. Diagrama del funcionamiento del sistema Protocolo desaf´ıo-respuesta con tres elementos: Cliente: ez430-Chronos Punto de acceso: CC1111+PC Servidor Dos sistemas criptogr´aficos: Criptograf´ıa sim´etrica: AES. Para cifrar el n´umero aleatorio. Criptograf´ıa asim´etrica: SSL. Para la comunicaci´on entre el AP y el servidor.
  16. 16. Protocolo Tipos de paquetes Tenemos 4 tipos de paquetes distintos para la comunicaci´on por RF: Beacon: 13 bytes. Destino-Origen-Tipo-n´umero aleatorio Paquete tipo Auth: 41 bytes. Destino-Origen-Tipo-Payload Payload: 256 bits cifrados con AES-CBC. Contiene el n´umero aleatorio y el uid del usuario cifrado. Paquete tipo OK 25 bytes. Destino-Origen-Tipo-Payload Payload: 128 bits cifrados con AES. Contiene el random+1 Paquete tipo Ping: 41 bytes. Igual que paquete tipo auth. Para la comunicaci´on entre el AP y el servidor se usa TCP/IP. Usando paquetes de 23 bytes, los cuales contienen el tipo de petici´on, uid, n´umero aleatorio en texto claro y n´umero aleatorio cifrado. El servidor responde con un paquete de 18 bytes con estado y random+1 cifrado con la clave del usuario.
  17. 17. Funcionamiento del Sistema Funcionamiento ESPERA BEACON START ENVIA AUTENTICACION SESION ENVIA PING FIN ¿Recibe beacon? SI NO ¿Credenciales correctas? ¿Recibe beacon? SI SI NO NO ¿Credenciales correctas? NO SI Cada elemento funciona de manera independiente:
  18. 18. Funcionamiento del Sistema Funcionamiento ESPERA BEACON START ENVIA AUTENTICACION SESION ENVIA PING FIN ¿Recibe beacon? SI NO ¿Credenciales correctas? ¿Recibe beacon? SI SI NO NO ¿Credenciales correctas? NO SI Cada elemento funciona de manera independiente: AP: Siempre env´ıa beacons, se comunica con el servidor para comprobar credenciales y proporciona el acceso al sistema a trav´es de la PAM de Linux. Cliente: Una vez activado, al recibir un beacon comienza la autenticaci´on. Servidor: Espera peticiones desde el AP, una vez recibida una petici´on, comprueba credenciales y devuelve un resultado al AP.
  19. 19. Implementaci´on Software utilizado Cliente eZ430-Chronos: Compilador msp430-gcc-4.4.3 (http://mspgcc4.sourceforge.net/) mspdebug (http://mspdebug.sourceforge.net/) Depurador para MSP430 MCUs. Usado para cargar el programa en la memoria del eZ430-Chronos. Para programar no se ha usado ning´un IDE. Solo gedit Punto de Acceso: CC1111: IAR Embedded Workbench for 8051 IDE para sistemas empotrados. CCDebugger Sirve para cargar el programa en el CC1111. M´odulos usados en Python: random,struct,sys,os,ssl,dbus,socket,time,serial,binascii y SafeConfigParser Servidor: M´odulos usados en Python: AES,struct,sys,os,ssl,dbus,socket,time,binascii,optparse y SafeConfigParser OpenSSL para crear los certificados.
  20. 20. Implementaci´on Python Punto de acceso. M´odulos principales: serial. Necesario para la comunicaci´on con el CC1111, usando la API creada. socket y ssl. Necesarios para la comunicaci´on cifrada con el servidor. ConfigParser. Usada para cargar la configuraci´on desde un archivo. dbus. Usado para las notificaciones. Ya que el demonio se ejecuta como root, necesita dbus. struct. Para hacer conversiones entre valores en Python y estructuras en C. Tambi´en usado para manejar datos binarios en las conexiones de red. random. Para generar n´umeros aleatorio. Otros m´odulos: sys,os,time,binascii.
  21. 21. Implementaci´on Python Servidor. M´odulos principales: socket y ssl. Necesarios para la comunicaci´on y cifrado de est´a con el AP. Crypto.Cipher - AES. Usado para descifrar el n´umero aleatorio. ConfigParser. Usada para cargar la configuraci´on desde un archivo. adminssl.conf optparse. Usada para capturar y manejar los par´ametros pasados al programa. Otros m´odulos necesarios: struct,sys,os,dbus,time,binascii Para el manejo de los logs se usan funciones creadas especialmente para el programa.
  22. 22. Utilizaci´on del Sistema Interfaces Access Point: Archivo de configuraci´on: /etc/accesspoint.conf. Daemon: /etc/init.d/daemon AP CLI para iniciar, detener y depurar el servicio. Para iniciar mejor usar service o systemctl. Necesario leer el README para su correcta instalaci´on.
  23. 23. Utilizaci´on del Sistema Interfaces Servidor: Archivo de configuraci´on: /etc/adminssl.conf. Daemon: /etc/init.d/daemon admineZ430 CLI. Interfaz de l´ınea de comandos para la administraci´on. Necesario leer el README para su correcta instalaci´on.
  24. 24. Utilizaci´on del Sistema Interfaces Cliente: Reloj de pulsera. Sistema embebido. Cargar el sistema en la memoria es tarea del administrador. uid configurable desde el cliente.
  25. 25. Detalles Im´agenes Sistema de Logging en el servidor. Notificaciones de eventos. Ficheros para la configuraci´on del servicio.
  26. 26. Bibliograf´ıa y documentaci´on Bibliograf´ıa: Website eZ430-Chronos. http://www.ti.com/ez430 Proyecto OpenChronos. https://github.com/poelzi/OpenChronos Datasheet CC1111. http://www.ti.com/tool/cc1110-cc1111dk Gu´ıa usuario eZ430-RF2500. http://focus.ti.com/lit/ug/slau227c/slau227c.pdf Datasheet CC430. http://www.ti.com/lit/ug/slau259e/slau259e.pdf Descargar: GitHub: https://github.com/Sinkmanu/auth-system-chronos Google code: http://code.google.com/p/auth-system-chronos/

×