Este documento describe un sistema de autenticación de usuarios por proximidad que utiliza la plataforma eZ430-Chronos. El sistema consta de tres elementos: un reloj eZ430-Chronos como cliente, un dispositivo CC1111 conectado a un PC como punto de acceso, y un servidor. El sistema utiliza criptografía simétrica AES para cifrar los números aleatorios intercambiados durante el proceso de autenticación, y criptografía asimétrica SSL para la comunicación entre el punto de acceso y el servidor.
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Presentacion
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. 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. 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. 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. 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.
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. 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. 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. 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. 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. 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. 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.
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.
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. 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. 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. 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. 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.