(')%%*+(%%% ,)#+(-.% (()(/0&) 10(()))(%).)')#2 1((% #$% &' ii RESUMEN Vivimos un momento en el que cada vez más objetos de uso común llevan aso- ciado un microcontrolador, lo que permite a dichos objetos establecer redes de co- municaciones entre ellos y con Internet. Es la llamada internet de las cosas (IoT por sus siglas en inglés). Sus aplicaciones van desde el control doméstico de temperatura hasta la automatización de procesos industriales. Tal ubicuidad plantea la cuestión del elevado impacto que podría tener un ataque realizado con éxito sobre esta clase de redes. Por otra parte, dada la limitada potencia de algunos de los microcontrola- dores, no es factible la aplicación de soluciones clásicas de la criptografía, tales como la infraestructura de clave pública (PKI). La información de los sensores y los comandos que se envían a los actuadores generalmente no necesitan ser privados, pero es peligroso no autenticar la informa- ción y, sobre todo, los comandos. Es importante recordar que se trata de sistemas Ciberfísicos: microcontroladores que gobiernan objetos físicos, por lo que un ataque podría causar daños a objetos o incluso a personas. El objetivo de este trabajo es diseñar e implementar un protocolo de autentica- ción que asegure que un mensaje recibido procede de un dispositivo legítimo y que fue enviado en un rango de tiempo concreto. Se pretende conseguir esto utilizando la mínima potencia de cómputo posible. iii iv RESUMEN ABSTRACT We live in a moment in which more and more objects of common use ara associa- ted with a microcontroller. This fact allows these objects to establish communication networks between them and with the Internet. These networks form the so-called In- ternet of Things (IoT). Its applications range from domestic temperature control to the automation of industrial processes. Such ubiquity raises the question of the high impact a succesful attack would have on this type of networks. In addition, given the limited power of some microcontrollers, the application of classical cryptography solutions, such as public key infrastructure (PKI), become infeasible. The information from sensors and the commands sent to actuators do not need to be private. However, it is dangerous not to authenticate the information and, above all, the commands. It is important to keep in mind that these microcontrollers are attached to physical objects and, because of that, an attack coud harm objects or even people. The target of this work is to design and implement an authentication protocol. That is, to ensure that a received message comes from a legitimate device and that it was sent in a fixed range of time. Moreover, it is intended to achive that using the lowest possible computing power. v vi ABSTRACT Índice general RESUMEN III ABSTRACT V 1. Introducción 1 1.1. Notación .................................. 2 2. ESTADO DEL ARTE 3 2.1. Criptografía ................................ 3 2.1.1. Criptografía simétrica ...................... 3 2.1.2. Funciones de derivación de claves ................ 7 2.2. Modelo OSI ................................ 8 2.3. Microcontroladores y sistemas de control ................ 10 2.3.1. Arquitecturas de microcontroladores .............. 11 2.4. Internet of Things ............................. 12 2.4.1. Raspberry Pi Zero W ....................... 13 2.4.2. ESP32 ............................... 13 2.5. Comunicación por radio ......................... 14 2.5.1. Modulación digital ........................ 14 2.5.2. Protocolos wireless ........................ 17 vii viii ÍNDICE GENERAL 3. ESCENARIO DE TRABAJO 21 3.1. Objetivo .................................. 21 3.2. Topología de la red . ........................... 22 3.3. Atacante .................................. 24 4. SOLUCION PROPUESTA 25 4.1. Alta de un nodo .............................. 26 4.2. Operación del nodo ............................ 27 4.2.1. Formato del mensaje ....................... 27 4.2.2. Firmado del mensaje ....................... 28 4.2.3. Comprobación de la firma .................... 29 4.2.4. Resincronización del contador .................. 30 4.3. Baja de un nodo ............................. 31 4.4. Elección de algoritmos criptográficos .................. 31 4.4.1. Longitud de las claves ...................... 33 4.5. Limitaciones ................................ 33 4.6. Pruebas .................................. 34 5. CONCLUSIONES Y LÍNEAS FUTURAS 39 5.1. Conclusiones ................................ 39 5.2. Líneas futuras ............................... 40 Bibliografía 41 Índice de figuras 2.1. Jerarquía de derivación de claves .................... 7 2.2. Comunicación según el modelo OSI con un intermediario a nivel de red 8 2.3. Encapsulación en tres niveles ....................... 9 2.4. Esquema de la arquitectura de Von Neumann ............. 11 2.5. Raspberry Pi Zero ............................ 13 2.6. Módulo ESP32 . ........................... 13 2.7. Modulación de señales en amplitud y frecuencia ............ 15 2.8. Contaminación con ruido de una señal digital ............. 15 2.9. Típica red wifi doméstica ......................... 17 3.1. Topologías de red ............................. 22 3.2. Número de claves en el sistema en función del número de nodos en la red para las distintas topologías ..................... 23 3.3. Número máximo de saltos que debe dar un mensaje en función del número de nodos en la red para las distintas topologías ........ 23 4.1. Intercambio de mensajes en el alta de un nuevo nodo ......... 26 4.2. Formato del mensaje ........................... 27 4.3. Intercambio de mensajes en el alta de un nuevo nodo. Fuente: Google 32 4.4. Escenario para las pruebas del protocolo ................ 34 ix x ÍNDICE DE FIGURAS 4.5. Trama correcta .............................. 35 4.6. Trama con el contador erróneo ...................... 36 4.7. Trama de sincronización ......................... 36 4.8. Paquete capturado por el atacante y que será modificado ....... 36 4.9. Paquete modificado por el atacante ................... 36 4.10. Paquete correcto ............................. 37 4.11. Paquetes involucrados en el ataque por repetición ........... 37 4.12. Paquete repetido en el ataque por repetición .............. 37 4.13. Trama de sincronización ......................... 37 Índice de tablas 1.1. Tabla de verdad del operador XOR ................... 2 2.1. Resumen de algoritmos de cifrado simétrico .............. 5 2.2. Tamaño del payload en LoRa según región y frecuencia ........ 18 4.1. Comparación entre ChaCha20 y AES256 ................ 32 xi xii ÍNDICE DE TABLAS Capítulo 1 Introducción Con el auge de la Internet of Things, las redes de sensores y actuadores con- trolados por dispositivos de bajo consumo están a la orden el día. Cuando estos dispositivos utilizan un cable como medio de transmisión de sus comunicaciones y se tiene un control sobre qué dispositivos están conectados, basta un control de ac- ceso físico a dicho cable para proveer de seguridad al sistema. Tal control puede no tener una implementación trivial, pero cuando el medio de transmisión son ondas de radio es muy difícil, cuando no imposible, implementarn medidas de seguridad análogas a la protección de un cable. Por otra parte, la transmisión mediante ondas de radio es más barata y sencilla en cuanto a que no requiere extender un cable entre los dos nodos que participan en la comunicación, y a que puede llegar a cubrir largas distancias con una inversión mínima en infraestructura. Así, está claro que las ondas de radio como canal ofrecen ventajas suficientes como para utilizarlas en algunas de las redes que pueden formar esta Internet of Things. Volviendo al problema de la seguridad, queda descartada la aplicación del mismo principio de control de acceso físico que se podría aplicar a redes cableadas, puesto que con una antena no es posible averiguar ni cuántos dispositivos captan una señal que ha emitido ni qué dispositivo ha emitido una señal que haya captado. Así, hay que encontrar un mecanismo para asegurar la autenticidad de los mensajes recibidos y que parta de la suposición de que un atacante puede leer todos los mensajes que pasen por el canal e introducir mensajes nuevos sin que estos sean, en principio, diferenciables de un mensaje legítmo. Está claro que este mecanismo no puede pasar por la aplicación de un control sobre el canal, por lo que debe aplicar cambios en el mensaje de forma que, una vez recibido, sea posible verificar que este mensaje es legítimo. La manera de solucionar este problema pasa necesariamente por la aplicación de funciones criptográficas al mensaje, de forma que sólo aquellos que demuestren conocer un secreto, esto es, la clave, sean considerados como emisores legítimos en la comunicación. 1 2 CAPÍTULO 1. INTRODUCCIÓN 1.1. Notación Los operadores no estándar utilizados en las fórmulas que se encuentran a lo largo de este trabajo son los siguientes: ⊕: Operador de or exclusivo o XOR, operación lógica bit a bit cuya tabla de verdad se muestra en la tabla 1.1 Tabla 1.1: Tabla de verdad del operador XOR ABA⊕ B 00 0 01 1 10 1 11 0 ||: Operador de concatenación, consiste en añadir el operando derecho a la representación del izquierdo. Por ejemplo: 0011||1100 = 00111100 (x)16: Representación hexadecimal, significa que el número entre paréntesis está escrito en notación hexadecimal (base 16) en lugar de la notación usual (decimal o base 10). Capítulo 2 ESTADO DEL ARTE 2.1. Criptografía La criptografía estudia un conjunto de técnicas matemáticas para implementar servicios
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages56 Page
-
File Size-