Application-Driven Security in Wireless Sensor Networks
Transcription
Application-Driven Security in Wireless Sensor Networks
APPLICATION-DRIVEN SECURITY IN WIRELESS SENSOR NETWORKS (SEGURIDAD ORIENTADA A APLICACIONES EN REDES DE SENSORES) By Rodrigo Román Castro SUBMITTED IN FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR IN COMPUTER SCIENCE AT UNIVERSITY OF MALAGA CAMPUS DE TEATINOS BLV. LOUIS PASTEUR, 35. 29071 MALAGA 2008 Advisor: F. Javier López Muñoz Profesor Titular, Universidad de Malaga A aquellos que están en mi corazón To those who are in my heart ii Table of Contents Table of Contents iii List of Figures vii List of Tables ix Acknowledgements xi Acronyms xiii 1 PRELIMINARIES - SENSOR NETWORKS 1.1 Introduction to Wireless Sensor Networks . . . . . . . . . . 1.1.1 Sensor Networks paradigm . . . . . . . . . . . . . . 1.1.1.1 The need to “sense” . . . . . . . . . . . . 1.1.1.2 An overview of Wireless Sensor Networks 1.1.1.3 Differences with Ad Hoc Networks . . . . 1.1.2 Sensing the real world . . . . . . . . . . . . . . . . 1.1.2.1 A brief history of Sensor Networks . . . . 1.1.2.2 Sensor Networks applications . . . . . . . 1.1.3 Sensor node hardware and software . . . . . . . . . 1.1.3.1 Node hardware . . . . . . . . . . . . . . . 1.1.3.2 Operating systems . . . . . . . . . . . . . 1.1.4 Network stack - cross-layering . . . . . . . . . . . . 1.1.4.1 Academic cross-layer architectures . . . . 1.1.4.2 ZigBee standard . . . . . . . . . . . . . . 1.2 Wireless Sensor Networks security . . . . . . . . . . . . . . 1.2.1 Security threats . . . . . . . . . . . . . . . . . . . . 1.2.2 Security mechanisms for Sensor Networks . . . . . . 1.2.2.1 Hardware protection . . . . . . . . . . . . 1.2.2.2 Secure communication channels . . . . . . iii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 2 3 5 7 7 8 10 10 13 14 15 17 17 17 19 20 22 1.3 1.4 1.2.2.3 Protocols and services: 1.2.2.4 Protocols and services: 1.2.3 Security as a transversal layer . Goals of this thesis . . . . . . . . . . . 1.3.1 Direct contributions . . . . . . 1.3.2 Outline of this dissertation . . . Publications and funding . . . . . . . . core protocols . . . supporting protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 25 27 28 30 31 32 2 SECURITY PRIMITIVES & KEY MANAGEMENT SERVICES 35 2.1 Insights on the use of security primitives . . . . . . . . . . . . . . . . 36 2.1.1 Description of the security primitives . . . . . . . . . . . . . . 36 2.1.2 Software implementation of primitives for WSN . . . . . . . . 41 2.1.2.1 Symmetric Key Cryptography and Hash functions . . 41 2.1.2.2 Public Key Cryptography . . . . . . . . . . . . . . . 42 2.1.2.3 Suitability of software implementations . . . . . . . . 44 2.1.3 Integrations on silicon for WSN . . . . . . . . . . . . . . . . . 45 2.1.3.1 Research efforts . . . . . . . . . . . . . . . . . . . . . 46 2.1.3.2 Industrial efforts . . . . . . . . . . . . . . . . . . . . 48 2.1.3.3 Applicability of HW designs . . . . . . . . . . . . . . 49 2.2 Key management approaches based on SKC . . . . . . . . . . . . . . 50 2.2.1 Key Management Systems (KMS) . . . . . . . . . . . . . . . . 50 2.2.2 Analyzing Key Management Systems for Sensor Networks . . 51 2.2.2.1 Main properties of a KMS . . . . . . . . . . . . . . . 52 2.2.2.2 KMS frameworks . . . . . . . . . . . . . . . . . . . . 55 2.2.3 KMS Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.2.3.1 The methodology . . . . . . . . . . . . . . . . . . . . 60 2.2.3.2 The prototype . . . . . . . . . . . . . . . . . . . . . 62 2.2.4 Applying the KMS Guidelines . . . . . . . . . . . . . . . . . . 63 2.2.4.1 Using the methodology: a concrete example . . . . . 63 2.2.4.2 Grouping real-world applications . . . . . . . . . . . 65 2.2.4.3 Protecting the groups through the methodology . . . 67 2.2.4.4 Open issues . . . . . . . . . . . . . . . . . . . . . . . 68 2.2.5 KMS Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.3 Key management approaches based on PKC . . . . . . . . . . . . . . 71 2.3.1 The case of traditional asymmetric cryptography . . . . . . . 71 2.3.1.1 Adapting PKI for Sensor Networks . . . . . . . . . . 72 2.3.1.2 Certificate format for Sensor Networks . . . . . . . . 73 2.3.1.3 Other PKI functions in Sensor Networks . . . . . . . 75 2.3.2 The case of identity-based cryptography . . . . . . . . . . . . 77 2.3.2.1 Identity-based and self-certified cryptography . . . . 77 2.3.2.2 Preliminaries and energy consumption estimations . 78 iv 2.3.2.3 2.3.2.4 Authenticated Key Exchange (AKE) . . . . . . . . . Total energy cost and applicability discussions . . . . 3 SELF-AWARENESS SERVICES 3.1 Protocol diversity . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Heterogeneity of core protocols . . . . . . . . . . . . 3.1.1.1 Routing . . . . . . . . . . . . . . . . . . . . 3.1.1.2 Aggregation . . . . . . . . . . . . . . . . . . 3.1.1.3 Time synchronization . . . . . . . . . . . . 3.1.2 Protocols and self-awareness . . . . . . . . . . . . . . 3.2 Self-Configurability and situation awareness . . . . . . . . . 3.2.1 Situation awareness in Wireless Sensor Networks . . . 3.2.2 Development of lightweight awareness mechanisms . . 3.2.2.1 Types of abnormal events . . . . . . . . . . 3.2.2.2 Situation awareness mechanisms . . . . . . 3.2.2.3 Application influence on situation awareness 3.3 Intrusion Detection Systems . . . . . . . . . . . . . . . . . . 3.3.1 An overview of Intrusion Detection Systems (IDS) . . 3.3.1.1 Purpose of an IDS . . . . . . . . . . . . . . 3.3.1.2 IDS and wireless networks . . . . . . . . . . 3.3.1.3 IDS and Sensor Networks: related work . . 3.3.2 Applying IDS to Wireless Sensor Networks . . . . . . 3.3.2.1 Architecture . . . . . . . . . . . . . . . . . . 3.3.2.2 Agents tasks . . . . . . . . . . . . . . . . . 3.3.2.3 Support protocols . . . . . . . . . . . . . . 3.4 Trust Management . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Introduction to Trust Management . . . . . . . . . . 3.4.1.1 Trust and Sensor Networks . . . . . . . . . 3.4.1.2 Solutions for Ad Hoc Networks . . . . . . . 3.4.1.3 Solutions for WSN . . . . . . . . . . . . . . 3.4.2 Features of Trust Management Systems for WSN . . 3.4.2.1 Architecture and components . . . . . . . . 3.4.2.2 Initialization and information gathering . . 3.4.2.3 Information modeling . . . . . . . . . . . . 3.4.2.4 Existing computation models . . . . . . . . 4 APPLICABILITY OF SECURITY SERVICES 4.1 Middleware . . . . . . . . . . . . . . . . . . . . . 4.1.1 Security in the Middleware . . . . . . . . . 4.1.1.1 Middleware architecture . . . . . 4.1.1.2 Levels of security . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 86 86 86 88 89 90 91 91 93 94 97 100 102 102 102 103 104 105 105 108 111 116 116 117 118 119 122 123 124 125 126 . . . . 129 130 131 131 134 4.2 Connectivity - Sensor Networks and the Internet 4.2.1 Integrating WSN and the Internet . . . . 4.2.2 Security challenges . . . . . . . . . . . . 4.2.3 Security achievements and open issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 135 138 140 5 CONCLUSIONS 145 5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 A Proof of the Spontaneous Watchdog Equation B Resumen de la Tesis en Español B.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Redes de Sensores y seguridad . . . . . . . . . . . . . . . . . B.2.1 Redes de Sensores . . . . . . . . . . . . . . . . . . . . B.2.2 Seguridad en Redes de Sensores . . . . . . . . . . . . B.3 Objetivos y resultados de la tesis . . . . . . . . . . . . . . . B.3.1 Objetivos de la tesis . . . . . . . . . . . . . . . . . . B.3.2 Resultados de la tesis . . . . . . . . . . . . . . . . . . B.4 Soporte para primitivas criptográficas . . . . . . . . . . . . . B.4.1 Implementaciones software y hardware . . . . . . . . B.4.2 Primitivas criptograficas en Redes de Sensores . . . . B.5 Sistemas de administración de claves en Redes de Sensores . B.5.1 Desarrollo de una metodologı́a de selección . . . . . . B.5.2 Resultados del análisis . . . . . . . . . . . . . . . . . B.6 Administración de claves con clave pública . . . . . . . . . . B.6.1 Especificación de una infraestructura de clave pública B.6.2 Otros paradigmas de clave pública . . . . . . . . . . B.7 Servicio de autoinspección . . . . . . . . . . . . . . . . . . . B.7.1 Mecanismos de conocimiento del entorno . . . . . . . B.8 Detección de intrusiones y Redes de Sensores . . . . . . . . . B.8.1 Propuesta de un sistema de detección de intrusiones . B.9 Sistemas de confianza y Redes de Sensores . . . . . . . . . . B.9.1 Especificación de la confianza en Redes de Sensores . B.10 Redes de Sensores y middleware seguro . . . . . . . . . . . . B.11 Integración de Redes de Sensores en Internet . . . . . . . . . B.11.1 Problemas abiertos y propuestas de soluciones . . . . B.12 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliography 153 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 155 156 156 158 160 160 161 162 163 164 165 166 167 167 168 169 170 170 172 173 174 175 177 178 180 181 182 vi List of Figures 1.1 An overview of the architecture of WSN . . . . . . . . . . . . . . . . 3 1.2 Hardware elements of a sensor node . . . . . . . . . . . . . . . . . . . 11 1.3 Layered architectures for sensor nodes . . . . . . . . . . . . . . . . . 14 1.4 Outline of the ZigBee stack architecture . . . . . . . . . . . . . . . . 16 1.5 Security as a transversal layer . . . . . . . . . . . . . . . . . . . . . . 27 1.6 “Complete Set” of security mechanisms . . . . . . . . . . . . . . . . . 29 2.1 KMS frameworks for WSN . . . . . . . . . . . . . . . . . . . . . . . . 56 2.2 KMS Guidelines web application. Input screen & Results screen . . . 62 2.3 Simple Certificate format for sensor networks . . . . . . . . . . . . . . 74 3.1 Importance of self-awareness mechanisms for sensor networks . . . . . 92 3.2 Simile: A sensor network as a living being . . . . . . . . . . . . . . . 93 3.3 Blueprint of an IDS Architecture for WSN . . . . . . . . . . . . . . . 106 3.4 Example of Piggybacking Forwarded Messages, with A as the “ticket” 112 3.5 Normal Watchdog, and Obfuscated Watchdog . . . . . . . . . . . . . 113 3.6 Network scenario with Spontaneous Watchdogs . . . . . . . . . . . . 114 3.7 Number of Spontaneous Watchdogs, Normal & Double Probability . . 115 3.8 Overall Architecture of a Trust Management System for WSN . . . . 122 4.1 An Overview of the SMEPP functional structure . . . . . . . . . . . . 132 4.2 The three levels of security in SMEPP . . . . . . . . . . . . . . . . . 134 4.3 WSN-Internet integration strategies . . . . . . . . . . . . . . . . . . . 136 vii B.1 Estructura de una red de sensores . . . . . . . . . . . . . . . . . . . . 156 B.2 “Conjunto Integral” de mecanismos de seguridad . . . . . . . . . . . 160 B.3 Estructura de una arquitectura IDS para WSN . . . . . . . . . . . . . 173 B.4 Los tres niveles de seguridad en SMEPP . . . . . . . . . . . . . . . . 178 B.5 Estrategias de integración WSN-Internet . . . . . . . . . . . . . . . . 179 viii List of Tables 1.1 Partial list of microcontrollers used in the sensor networks market . . 11 1.2 Partial list transceivers used in the sensor networks market. . . . . . 12 2.1 Summary of Software implementations of ECC . . . . . . . . . . . . . 43 2.2 Summary of Hardware prototypes for PKC . . . . . . . . . . . . . . . 47 2.3 Relevant KMS Properties . . . . . . . . . . . . . . . . . . . . . . . . 52 2.4 Classification of Real-World WSN applications . . . . . . . . . . . . . 65 2.5 KMS Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.6 Analysis of the energy consumption of acoustic modems. . . . . . . . 80 2.7 Energy cost of authenticated key exchange (in mJ) . . . . . . . . . . 84 3.1 Outsider and insider attacks in WSN . . . . . . . . . . . . . . . . . . 94 3.2 Relationship between WSN attacks and their symptoms . . . . . . . . 98 B.1 Clases de nodos sensores . . . . . . . . . . . . . . . . . . . . . . . . . 158 B.2 Propiedades relevantes de un protocolo KMS . . . . . . . . . . . . . . 166 B.3 Gasto energético de un intercambio de claves autenticado (en mJ) . . 169 B.4 Relación entre eventos anómalos y sus efectos colaterales . . . . . . . 171 ix x Acknowledgements I have many things to write about, but the space is limited, and it is impossible to pour inside these sheets of paper all my feelings. Therefore, I’ll be brief, but I’ll do it my way. First, thanks to my PhD supervisor, Javier López Muñoz, for introducing me in the research community, and for guiding me in this strange and fulfilling path, where one can eat gazpacho and read newspapers in Malaga and the next day one can eat sushi and read research projects in Japan. I kinda like it ˆ ˆ . Also, thanks to Jianying Zhou and the staff @ I 2 R, for the Singaporean days and their trust. And thanks to Prof. Jose Marı́a Troya Linero, for believing in me. During the development of this thesis, I have been fortunate enough to be surrounded by great professionals, who have helped me in many different ways. Dr. M. Carmen Fernández Gago made me see how both human beings and devices can believe in trust, in order to cooperate for the greater good. Dr. David Galindo introduced me to the universe of mathematical cryptography. Prof. Gene Tsudik made me understand that “there are no assumptions”. Prof. Stefanos Gritzalis showed me the riddles of the Aegean Sea. And, as a friend and as a professional, Cristina Alcaraz Tello is one of the best colleagues one can have. Kisses, “socia”. All my other colleagues (Ana, Andres, Ángel, Arantxa, Gerardo, Jesús, Kino, Miguel, Montes, Noelia, Onieva, Pablo, Pepe Vivas, Rubén) at our security research group, and other great guys @ UMA like Anto, illuminated my long working days. You guys are one of the best research groups one can work and stay with. Your brightness go well beyond the walls of the office: Post-party armchairs, ping-pong sessions, gaming sessions, feasts at “Gondor”... all those achivements will be fondly remembered ˆ ˆ . My friends also have been an unvaluable source of happiness. Maybe they have not influenced in the direct realization of this thesis, but without their suppport and their friendship, life would have been very different. I have very few space here to say what I should say. But you should know that, deep in my heart, I am happy for your friendship. Thanks to AnaIs, for being herself. Thanks to Carlos & Carmen (& the younglings), for their big hearts. Thanks to Chavi, Arancha, David “Dioni”, Ale, Laura, Pepe, for many days of warm friendship. Thanks to my Chinese language class, and the Chinese students from Chongqing - I promise I’ll learn chinese someday. Thanks to Cristina Alcaraz, Manolin, Judith, and all the gang xi xii at the residence. Thanks to Marisilla & Noe. Thanks to Leli. Thanks to Paraskevi & “Meili”, for those walks on Kokkari. Thanks to Sergio Sánchez (and all his cinema troupe) for making me a microscopic star in a world that moves at 24 frames-per-second. Thanks to Sergio Ramı́rez (and Ale, Comanche, Pedro, Fran, and many others...) for the good meals and the good laughs. Thanks to the friends I made in Singapore, because they are scattered around the world but I feel them very near my heart: Cheng, Havard (& Judy), Kayo Nagazono, Liao Xinting (廖新婷 ), Marek Bieler (and Rianti and Freya), Nobita Jong, Raghu, Ritchie Ri, Shumeet, Zhuang Wenyue (庄文玥 ), and all the rest. Thanks to Roberto Vargas for our lunchtime game programming talks. Thanks to the guys at the restaurant in Karlovassi, “my” fruit stall @ NUS biz school, the friends of my brother (Jesus, Juanjo, Raul, etc), the Dı́az sisters (Alicia, Clara, Regina, Elena). And special thanks to “Annie” Ruan Yi (阮奕 ) and “Nurdo” Xiao Ping (肖萍 ) for helping me grow as a human being. My family is also part of this great project. Thanks to the “Castro” gang (Salvi, Sandra, Sara, Jose, Cristina, Marı́a, Manuel, Jesus, Ana, Benjamin, Mayka, Antonio, Antonio Jr., Mario, Roberto, Vanessa, Lucı́a, and all my cousins, aunts and uncles), the “Roman” gang (Edu, Sonia, Mario, Laura, Coke, Monica, uncle Eduardo, aunt Carmela, aunt Carmen), my sister-in-law (Manme)... ... and, finally, thanks to my mother Ana Castro Rivera, my father Ramón Román Gámez and my brother Ramón Román Castro. In fact, I think I could write another thesis just about them, so I think it is better to stop now. Pero ahora, en Español ˆ ˆ . Puedo agradeceros únicamente en un par de cosas en estas páginas, pero tened por seguro que os agradezco que esteis ahı́ de todo corazón. A AnaIs por ser ella misma, A Carlos & Carmen (& los chicos), por su gran corazón. A Chavi, Arancha, David “Dioni”, Ale, Laura, Pepe, por la amistad que me regalais cada dı́a. A Cristina Alcaraz, Manolin, Judith, y los de la “resi”. A Marisilla y Noe. A Leli. A Sergio Sánchez (y todos los demás) por hacerme una microscópica estrella del celuloide y pasarlo de vicio en el intento. A Sergio Ramı́rez (y Ale, Comanche, Pedro, Fran, y tantos otros...) por los “desconchones” y las risas. A Roberto Vargas por las conversaciones sobre juegos. A los amigos de Ramón y mı́os (Jesus, Juanjo, Raul, etc), a “las niñas” (Alicia, Clara, Regina, Elena). A mi familia materna (Salvi, Sandra, Sara, Jose, Cristina, Marı́a, Manuel, Jesus, Ana, Benjamin, Mayka, Antonio, Antonio, Mario, Roberto, Vanessa, Lucı́a, y todos mis primos, tios y tias) y paterna (Edu, Sonia, Mario, Laura, Coke, Monica, tito Edu, tita Carmelita, tita Manme), a mi cuñá (Manme),... Y por supuesto, a mi madre Ana Castro Rivera, a mi padre Ramón Román Gamez, y a mi hermano Ramón Román Castro. Y aquı́ termino esta sección, porque si me pongo a hablar de ellos, nunca acabarı́a. Y todo trabajo cientı́fico debe acabar en algún lado ˆ ˆ . Acronyms 6lowpan - IPv6 over Low power WPAN. ACK - Acknowledgement (packet). ACL - Access Control List. AES - Advanced Encryption Standard. AKE - Authenticated Key Exchange. BSL - Bootstrap Loader. CA - Certification Authority. CBC - Cipher-Block Chaining. CCM - Counter with CBC-MAC. CMOS - Complementary metal–oxide–semiconductor. CRL - Certificate Revocation List. DoS - Denial of Service. DTN - Delay Tolerant Network. ECB - Electronic codebook. ECC - Elliptic Curve Cryptography. ECDH - Elliptic Curve Diffie-Hellman. ECDSA - Elliptic Curve Digital Signature Algorithm. ECIES - Elliptic Curve Integrated Encryption Scheme. ECMQV - Elliptic Curve Menezes Qu Vanstone (authenticated key exchange protocol). ECMV - Elliptic Curve Menezes Vanstone (encryption / decryption). EP2P - Embedded Peer-to-Peer Systems. FFD - Full Function Device (ZigBee). xiii xiv GCD - Greatest Common Divisor. GCM - Galois Counter Mode. GPS - Global Positioning System. HTTP - Hypertext Transfer Protocol. HVAC - Heating, Ventilating, and Air Conditioning. HW - Hardware. IBC - Identity-based Cryptography. IDS - Intrusion Detection System. IEEE - Institute of Electrical and Electronics Engineers. IP - Internet Protocol. IPsec - IP security. IPv4 - Internet Protocol, version 4. IPv6 - Internet Protocol, version 6. ISM - Industrial, Scientific and Medical. ITU-T - International Telecommunication Union, Telecommunication Standardization Sector. IV - Initialization Vector. JTAG - Joint Test Action Group (IEEE Standard 1149.1). KMS - Key Management System. MAC - Message Authentication Code. MAC - Medium Access Control. MANET - Mobile Ad Hoc Networks. MMX - Matrix Math Extensions, MultiMedia eXtension. nesC - Network Embedded System C. NSA - U.S.A. National Security Agency. OCB - Offset Codebook Mode. OFB - Output Feedback. OS - Operative System. P2P - Peer-to-Peer Systems. PAN - Personal Area Network. PDA - Personal Digital Assitant. xv PHT - Pseudo-Hadamard Transformation. PKC - Public Key Cryptography. PKIX - X.509-based Public Key Infrastructures. QoS - Quality of Service. RA - Registration Authority. RAM - Random Access Memory. RF - Radiofrequency. RFD - Reduced Function Device. ROM - Read-only Memory. RSA - Rivest-Shamir-Adleman (PKC algorithm). SKC - Symmetric Key Cryptography. SOK - Sakai, Ohgishi and Kasahara (identity-based key exchange protocol). SSL - Secure Sockets Layer. STREP - Specific Targeted Research Project. SW - Software. TCP - Transmission Control Protocol. TLS - Transport Layer Security. TLS-PSK - Transport Layer Security Pre-shared Key Ciphersuites. USN - Underground Sensor Network. UTC - Universal Time. UWSN - Underwater Sensor Network. WEP - Wired Equivalent Privacy. WPA - Wi-Fi Protected Access. WPAN - Wireless Personal Area Network. WSN - Wireless Sensor Network. CHAPTER 1 PRELIMINARIES - SENSOR NETWORKS In this chapter, we introduce the concept of Wireless Sensor Networks, highlighting their features, their differences with other wireless paradigms, their hardware and software elements, and their specific network stack requirements. Later, we explain why sensor networks are very vulnerable against external and internal attacks. We show the security mechanisms that can be used to protect the network from internal and external threats, and present how these security mechanisms should be included inside a sensor network. Finally, we explain the major goal of this thesis: to specify a “complete set” of application-aware security mechanisms that are necessary to minimally enforce the security properties needed by the applications. 1 2 1.1 Introduction to Wireless Sensor Networks 1.1.1 Sensor Networks paradigm 1.1.1.1 The need to “sense” While there is no universal definition of life, it can be argued that one of the characteristics that can define any living being is the ability to respond to changes in their environment and inside themselves [1]. The environment is full of physical events, which can be felt using our senses. In fact, humans are known to have sensory cells that fall into the following categories: photoreceptors (for light), mechanoreceptors (for touch, sound, and equilibrium), chemoreceptors (for smell and taste), thermoreceptors (for heat), and nociceptors (for pain). Through these senses, we can maintain our internal biological equilibrium (i.e. homeostasis), but also we can picture the physical world that surround us. In fact, we need to perceive the physical world in order to survive. There are some the basic needs that, as human beings, we need to fulfill: find food and water to stay alive, create a shelter where we can be safe from the weather and other menaces, communicate with other beings to socialize and perpetuate the species [2]. But without our senses, it would not be possible to decide whether food is edible or not, to choose an adequate place to sleep, to participate in a social environment. Beyond survival, we also need our senses to satisfy more complex needs such as identity, creation, leisure, and freedom [3]. Although we can live without some of our senses, it is difficult to imagine life if we were completely cut off from the physical environment. In a certain degree, most computer systems do live that kind of life. Computer systems by themselves cannot perceive the physical world directly, like living beings do. they are capable of acquiring information from external and internal sources, such as storage devices, human-machine interfaces, operative systems, and so on. They can also communicate with other computer systems in order to exchange information. But the ability to perceive the physical world is not inherent to their nature: Computer systems are tightly tied to the realm of the abstract. The existence of sensor hardware tries to build a bridge between the abstract world and the physical world. Sensors are devices that can measure a physical quantity and convert it into a digital signal. For example, specific sensors such as thermistors, hygrometers, and photodetectors, allow a computer to “feel” the temperature, humidity, and light intensity of its surroundings, respectively. Using these sensors, computer systems ranging from the simplest washing machines to the Large Hadron Collider (a particle accelerator located at the European Organization for Nuclear Research (CERN) [4]) can acquire and process information coming from the physical world. The ability to “feel” the environment using the sensors is usually an integral part of the design of the computer system. Besides, the physical information 3 Base Station FLAT HIERARCHICAL Figure 1.1: An overview of the architecture of WSN obtained by these knowledgeable computer systems is usually limited in terms of scope: sensors only provide very specific information about the internal state of the systems and, in some cases, about the condition of their immediate surroundings. However, it would be particularly interesting to go further in terms of multiplicity and scope. The ability to “feel” the physical world should be available as an offthe-shelf component, so any computer system, regardless of its design, could be able to perceive the physical world and use the available information to improve its behaviour and/or increase its capabilities. Moreover, a computer system should be able to perceive the physical information of any areas and entities that are related to its functionality (e.g. in HVAC systems, the rooms of a building). The ultimate purpose of this vision is to consider the existence of a new dimension, where any element of the virtual world can be able to obtain information and interact with any element of the real world. The realization of this vision will require of an independent “sensory system” capable of obtaining and processing physical information, with “sensory cells” that can be deployed in areas and entities of interest. An approach that can simulate this sensory system in a computer environment is the wireless sensor networks paradigm (known also as sensor networks or WSN [46]), which is the central character of this thesis. 1.1.1.2 An overview of Wireless Sensor Networks The structure of a wireless sensor network can be seen in Figure 1.1. A wireless sensor network is composed by two types of devices: sensor nodes, and base stations. The 4 sensor nodes, also known as motes or simply nodes, are small and constrained devices that have the ability to “feel”, “think”, “talk”, and “subsist”. They can “feel”, because they can sense the physical features of their surrounding (e.g. temperature, humidity, radiation, vibration) using hardware sensors. They can “think”, because although they are highly constrained in both computational power and memory, they are capable of processing information on their own. They can “talk”, because they are equipped with wireless transceivers, and can collaborate towards a common goal. Finally, they can “subsist” because they are in most cases powered by batteries, and can survive in their deployment field for more than a year if their internal operations are optimized. Regarding the base station, it is a more powerful device that usually behaves as an interface between the services provided by the sensor nodes (the “data acquisition network”) and the users of the network (the “data dissemination network”). Normally, the base station collects all the information coming from the sensor nodes and stores it for later use. Also, it can issue control orders to the sensor nodes in order to change their behaviour. While it would seem that wireless sensor networks are highly dependent of the existence of this base station, the architecture of the network is not centralized. The sensor nodes do operate in a decentralized fashion, managing themselves without accessing to the base station. Even more, they can choose to store the information of the environment until a base station is available. A powerful simile that can be used to illustrate the structure of wireless sensor networks is to consider them as “living beings”. The sensor nodes behaves as “cells”1 , since they all belong to the same body (WSN), are usually loaded with the same “DNA” (program), and cooperate unselfishly towards a common goal. On the other hand, the base station could be considered as the “brain” 2 , since it receives and processes all the physical information coming from the “cells”, and can also send control information to them. Note that, in terms of communications, the “cells” also behave as “nerves”, since they transmit (wirelessly) the information sensed by other “cells” to the “brain”. The services offered by wireless sensor networks can be classified into four major categories: monitoring, alerting, provisioning of information “on-demand”, and actuating. As for the first case, sensor nodes can continuously monitor certain features of their surroundings (e.g. measuring the ambient noise level) and timely send such information to the base station. Secondly, sensor nodes can check whether certain physical circumstances (e.g. a fire) are occurring, alerting the users of the system when an alarm is triggered. In the third case, the network can be queried about the actual levels of a certain feature, providing information “on-demand”. Finally, sensor nodes can be able to change the behaviour of an external system (e.g. an 1 More specifically, sensor nodes should be considered “sensory cells”, since they feel the environment. However, we will consider them as “cells” for simplifications purposes. 2 More specifically, the base station should be the “brain stem”, because it is in charge of sending and forwarding information to / from the users (the real “brain”). However, we will consider it as a “brain” for simplification purposes. 5 irrigation system) according to the actual state of the context (e.g. humidity of the soil)3 . Due to the computational capabilities of the sensor nodes, it is possible to reprogram the network during its lifetime, or even use it as a distributed computing platform under specific circumstances. Aside from their structure and their services, there are some features that help to define what a wireless sensor networks is: specificity, autonomy, self-configurability, long lifetime, deployment location, and mobility. The embedded intelligence of sensor nodes allow them to perform various tasks, but their services, protocols and architectures are highly dependent on the functionality of the network, due to their inherent constraints. Also, unlike other more capable devices such as PDAs, there is no human user directly controlling the sensor node: motes are usually accessed through other motes or through the base station. In fact, sensor nodes can set up their services and function properly in situations where there is no central control available. Due to this autonomy, sensor nodes need to self-configure and maintain themselves during the lifetime of the network. Precisely, a wireless sensor network can function for long periods of time, ranging from several days to one or two years. Regarding the network deployment, sensor nodes are usually deployed near the physical source of the events, and the exact deployment location of these sensor nodes is usually not known in advance. Finally, sensor nodes are usually not mobile, although there might be scenarios where some sensor nodes or even the base station need to move (e.g. tracking a target). Wireless sensor networks can be organized in a completely distributed way (flat configuration), but they can also implement levels of hierarchy (hierarchical configurations). In flat configurations, all the nodes contribute in the decision-making process and participate in the internal protocols, like routing. Conversely, in hierarchical configurations the network is divided into clusters or group of nodes. Inside a cluster all organizational decisions, like data aggregation, are made by a single entity called cluster head. It should be noticed that it is also possible to have a combination of the two previous configurations into the same network; for instance, to avoid situations where the “spinal cord” of the network - the cluster heads - fail and the information must be routed to the base station. 1.1.1.3 Differences with Ad Hoc Networks Due to their specific features, wireless sensor networks are capable of providing the services that are needed to create a digital “sensory system”. However, there might exist other network paradigms that can fulfill the same role. It is then necessary to study which are the differences between the wireless sensor networks paradigm and other paradigms, in order to consider the creation of solutions specifically designed for sensor networks. As a result, it will be established whether the wireless sensor networks paradigm is really an useful contribution to the world or not. 3 These type of sensor networks are also known as Wireless Sensor and Actuator Networks (WSAN). 6 The paradigm that is more closely related to the wireless sensor networks paradigm is the ad hoc network paradigm [5]. A wireless ad hoc network is a collection of wireless devices that can dynamically self-organize into an arbitrary and temporary topology to form a network without necessarily using any pre-existing infrastructure. An extension to this paradigm is the mobile ad hoc network paradigm (MANET), which is composed by a self-configuring network of mobile devices connected by wireless links. In fact, wireless sensor networks could be considered as a specific subset of ad hoc networks with only a very simple difference: the devices in wireless sensor networks are able to “feel”. However, the differences between ad hoc networks and wireless sensor networks are significantly greater. In fact, one of the major differences between these paradigms is their actual purpose. Ad hoc networks do provide ubiquitous information access: The devices of an ad hoc network, which are usually owned by an user and may not be fully cooperative, will interact with the other devices of the network to get the information its user needs. However, the main goal of wireless sensor networks is ubiquitous information providing: all the autonomous sensor nodes collaborate in order to get some information of the environment that will be provided to a certain user. In biological terms, an ad hoc network can be seen as a symbiosis of different organisms (devices), and their interactions can be categorized as being mutualistic (mutual benefit), parasitic (one is benefited, one is harmed), or commensal (only one is benefited). On the other hand, wireless sensor networks should be considered as a complete organism, where all the “cells” (sensor nodes) always collaborate towards a common goal. Another significant difference is the structure of the network and the characteristics of the information flow. While ad hoc networks are usually completely distributed networks, in wireless sensor networks there exists a central control system, the base station. Note that this central control system may be present or not, and the sensor nodes are autonomous enough to function properly without it. Regarding the information flow, it is normal for the devices of an ad hoc network to open a communication channel with other device in the network as part of their normal functionality. However, in wireless sensor networks, most traffic is sent from the sensor nodes to the base station, and viceversa. Only in a few exceptional cases one node will send information directly to another sensor node. There are other minor differences between ad hoc networks and wireless sensor networks. For example, the devices of wireless sensor networks are usually more constrained in terms of computational power and memory. Also, the lifetime of wireless sensor networks is usually higher than the lifetime of an ad hoc network, and the number of nodes located in a wireless sensor network deployment is also higher. Finally, the protocols and services used by the nodes must be optimized to just provide the specific functionality needed by the users of the wireless sensor networks, and also must consider, with a high level of priority, the amount of energy spent by their operations. 7 Aside from the previously presented differences, there exist an additional difference between wireless sensor networks and mobile ad hoc networks. The device population of a MANET is highly dynamic, since in most cases devices enter and exit the MANET continuously (e.g. office workers entering and exiting a meeting room). As a result, the network’s wireless topology may change rapidly and unpredictably. On the other hand, the population of wireless sensor networks stays uniform, with few nodes entering or exiting the network at a given time. In the case of wireless sensor networks with some mobile nodes, those nodes usually stay inside the network, moving from one part of the network to another. 1.1.2 Sensing the real world 1.1.2.1 A brief history of Sensor Networks The wireless sensor networks paradigm that has been introduced in the previous section is not novel. In fact, there were “sensor networks” before “wireless sensor networks” came into being [6]. The first known deployments of a “sensor network” occurred in the U.S. military, during the Cold War. For example, a system of acoustic sensors (hydrophones) was deployed at strategic locations on the ocean bottom to detect and track quiet Soviet submarines. This system was called the Sound Surveillance System (SOSUS), and has evolved into civil system that monitors events in the ocean, such as seismic and animal activity [7]. Other “sensor network” systems included networks of air defense radars that defended the continental United States and Canada. This system has also evolved over the years to include aerostats as sensors and Airborne Warning and Control System (AWACS) planes, and is also used for drug interdiction. These sensor networks generally adopted a hierarchical processing structure, and in many cases, human operators played a key role in the system. Modern research on sensor networks started on the late seventies with the Distributed Sensor Networks (DSN) program at the U.S. Defense Advanced Research Projects Agency (DARPA). Technology components for a DSN were identified in a Distributed Sensor Networks workshop in 1978 [8]. These included sensor HW, communication capabilities, processing algorithms including self-location, and distributed software. Artificial Intelligence was also being considered at the time, in particular for understanding signals and assessing situations, as well as various distributed problem-solving techniques. The resulting DSN program had to address distributed computing support, signal processing, tracking, and test beds. There were various interesting results derived from the DSN program in the eighties. Researchers at Carnegie Mellon University (CMU) developed an indoor test bed with signal sources, acoustic sensors, and VAX computers. This test bed focused on providing a network operating system that allowed flexible, transparent access to distributed resources needed for a fault-tolerant DSN [9]. Researchers at the Massachusetts Institute of Technology (MIT), Cambridge, focused on knowledge-based 8 signal processing techniques [10] for tracking low-flying aircrafts helicopters using a distributed array of acoustic microphones. Other applications included distributed vehicle monitoring using a functionally accurate, cooperative architecture [11], and tracking multiple targets in a distributed environment by using multiple-hypothesis tracking algorithms [12]. Still, the size of the devices that were part of these systems was significant, and also communication was done by Ethernet and (in extreme cases) microwave radio. It was the advances in micro-electro-mechanical systems (MEMS) technology, wireless communications, and digital electronics that allowed the existence of presentday4 wireless sensor networks. While DARPA continued its military-oriented research with the SensIT program (1999), whose goal was to create sensor networks to be used in battlefield surveillance, reconnaissance, and targeting [13], new research programs without military-oriented goals started to appear. For example, “The Disappearing Computer”, a FET Proactive Initiative in the E.U. 5th Framework Programme influenced by the “pervasive computing” vision of Mark Weiser and other visionaries, started funding sensor network-related projects, such as “Smart-Its” [14]. Also, civil applications that took advantage of the sensing capabilities of sensor networks, such as health applications and home applications, were envisioned [46]. Finally, the emerging importance of sensor networks related research resulted on the creation of the first specific international workshops (ACM WSNA (2002), ACM SenSys (2003), ACM/IEEE IPSN (2003), ACM SASN (2003), and EWSN (2004)) and Journals (ACM Transactions on Sensor Networks (2005)). 1.1.2.2 Sensor Networks applications The evolution of sensor networks into a generic wireless “sensing layer” for computer systems has opened a wide range of application possibilities. These kind of networks can not be considered as the “panacea” for all the sensing needs of computer systems, since they are not specially suitable for very complex applications (such as the Large Hadron Collider [4]) or applications with hard Quality of Service (QoS) requirements. Nevertheless, because of their particular characteristics, the benefits of using wireless sensor networks for sensing the real world are numerous: • The network can survive in its deployment area for long periods of time. • The network can be able to run unattended. • The overall cost of the network is low, due to the price of the nodes and the use of a wireless interface. • The network can be deployed by non-experts, and can be easy to maintain. • The network can react to abnormal events, maintaining the availability of its services. 4 With “present day” I refer to “as of 2008” 9 There are many types of applications that can take advantage of all these benefits. According to Culler et. al. [15], those applications can be classified into the following categories: 1. Monitoring space. The sensor network simply monitors the physical features of a certain environment. This category includes applications such as environmental and habitat monitoring, precision agriculture, indoor climate control, surveillance, treaty verification, and intelligent alarms. 2. Monitoring things. The sensor network controls the status of a physical entity. This category includes applications such as structural monitoring, ecophysiology, condition-based equipment maintenance, medical diagnostics, and urban terrain mapping. 3. Monitoring interactions. The sensor network monitors the interactions of things (both inanimate and animate) with each other and the encompassing space. This category includes applications such as wildlife habitats, disaster management, critical (information) infrastructure systems, emergency response, asset tracking, healthcare, and manufacturing process flow. While all the application areas presented in the previous classification are mere ideas of where wireless sensor networks could be applied, the research community have already proven the usefulness of wireless sensor networks in real-world settings. Some examples of prototypes and research areas include: Monitoring of ageing infrastructures [21], critical (information) infrastructures [257], surveillance [22], detecting equipment vibration [16], control of vineyards [17], water quality analysis [28], control of glacier behavior [18], monitoring of an active volcano [19], habitat monitoring [20], firefighters assistance [29], monitoring of assisted-living residents [24][23][26], healthcare [27], smart environments [25], checking availability of washing machines [30], and optimization of HVAC systems [31]. In fact, wireless sensor networks have already jumped from the research laboratories to the commercial world, with applications such as precision agriculture [32], pipeline and freighter monitoring [16], and many others. Not only wireless sensor networks are useful for providing services to specific applications, but also are an important part of the “pervasive computing” paradigm and the “‘Internet of Things” paradigm due to their “sensing layer” nature. Envisioned by Mark Weiser in 1991 [33] and continued by other visionaries such as Satyanarayanan [34], the major idea behind pervasive computing is that “computers will disappear into the background, weaving themselves into the fabric of everyday life until they are indistinguishable from it”. In other words: the environment itself will be saturated with computing and communication capabilities, yet gracefully integrated with human users. The elements of that augmented environment (e.g. urban spaces [35]) will collaborate to process information coming from both the real 10 world (e.g. traffic conditions, room temperatures) and the virtual world (e.g. internal state of traffic lights and air conditioner), providing context-adapted services to themselves, other machines, and humans. On the other hand, the vision of the “Internet of Things” [36] considers that all the elements of these pervasive environments will be connected to the Internet, thus objects and locations in the real world (e.g. restaurants, roads) will be linked to information on the web. As a result, it will be possible to convert real-world events into meaningful information that could be analyzed anywhere, providing real entities (e.g. humans) and virtual entities with the capability of making better decisions. In both paradigms, the sensor networks play an important role either by providing an intelligent environment the ability to understand its context or by enhancing the capabilities of a single entity (e.g. a toy) with the ability to “sense”. By using the wireless sensor networks paradigm, we can be able to create a heterogeneous set of applications linking the real world with the virtual world. However, a specific configuration of a wireless sensor network may not work for two different applications. In fact, different applications have different requirements, and these requirements will have a significant influence over the actual structure, architecture, and protocols of a wireless sensor network. As an example, we can cite the transmission media used in the wireless communications. In underwater sensor networks (UWSN [145]), sensor nodes are deployed below the ocean surface, and it is necessary to use underwater acoustic modems, which have low bandwidth and are prone to communication errors. On the other hand, in underground sensor networks (USN [37]) sensor nodes are deployed completely below the ground, where it is necessary to cope with extra challenges such as path loss due to material absorption. These differences in the transmission channel will influence on the behaviour of the sensor nodes and on the behaviour of the sensor network as a whole. 1.1.3 Sensor node hardware and software 1.1.3.1 Node hardware A sensor node is made up of four basic components: sensing unit, processor unit, transceiver, and power unit, as seen in Figure 1.2. The sensing unit consists of an array of sensors that can measure the physical characteristics of its environment, like temperature, light, vibration, and others. The processing unit is, in most cases, a microcontroller, which can be considered as a highly constrained computer that contains the memory and interfaces required to create simple applications. The transceiver is able to send and receive messages through a wireless channel. Finally, the power unit provides the energy required by all components, and such energy may come from either a battery or from renewable sources. Note that there can be also other components depending on the needs of the application, like external data storage (e.g. flash memory), location devices (e.g. GPS chips), or cryptographic chips. This section will focus on the processing unit and the transceiver unit because 11 Other Components Sensing Unit Temp. Light Vibr. … External Storage Microcontroller Transceiver Power Unit Figure 1.2: Hardware elements of a sensor node they largely represent the capabilities that are available to a sensor node. Notice that the energy consumption of the transceiver is far greater than the energy consumption of the microcontroller, thus sensor nodes are encouraged to do as much in-network processing as possible [38]. Microcontroller devices. Microcontrollers are specially suitable for the wireless sensor networks environment, due to their cost-effectiveness: a microcontroller used in a sensor node has enough computational capabilities and memory for executing simple tasks while consuming as less energy as possible. The selection of a microcontroller depends on what services has to provide to the node in terms of energy consumption, instruction memory and RAM memory, storage, speed, and external IO ports. Class I Class II Class III Model Atmega168MSP430F16xATmega128L PXA271 ARM920T Frequency 4Mhz 8Mhz 8Mhz 13(416)Mhz 180Mhz Word size 8bit 16bit 8bit 32bit 32bit RAM memory 1kB 10kB 4kB 256kB 512kB Inst. memory 16kB 48kB 128kB 32MB 4MB Power (awake) <1mA 2mA 8mA 31-44mA 40-100mA Power (slept) 0.1µA 1.1µA 15µA 390µA 40µA Table 1.1: Partial list of microcontrollers used in the sensor networks market It is possible to classify the microcontrollers used in sensor nodes by their overall capabilities, as seen in Table 1.1. Some of them are extremely constrained, and barely support the “de-facto” standard operating system for sensor nodes, TinyOS [78]. These devices will be called “class I”. An example of this type of device is the Atmega168, which is used by the Arduino Mini node [84]5 . On the other side of the 5 Another example of a class I node was the uPart node by Particle Computer GmbH [88], but this node is out of production as of 2008. 12 spectrum, there are microcontrollers that are as powerful as the microprocessors used in PDAs, and can host complex operating systems or Java-based virtual machines. These devices will be named “class III”. Examples of these devices are the PXA271 and the ARM920T, which are used in the iMote2 [85] and the SunSPOT [90], respectively. Finally, the devices that are resource-constrained but powerful enough to hold a complex application will be known as “class II”. This is the most common type of device for sensor nodes, and there are many microcontrollers that fall into this category. One of them is the ATmega128L, used in the MICAz [85]6 , Mica2 [85] and BTNode [86]. Another example is the MSP430F16x family, which is integrated in the Tmote Sky [87], TelosB [85], and MSB nodes [89]7 . Transceivers. One of the major features of sensor nodes are their ability to send and receive messages through a wireless channel. Thus, it is necessary to integrate a transceiver (i.e. transmitter-receiver) unit in the node. These transceivers have to offer an adequate balance between a low data rate (e.g. between 19.2Kbps and 250Kbps) and a small energy consumption in low-voltage environments (i.e. around 3V), allowing the node to live for a extended period of time. Because of these reasons, standards such as 802.11 cannot be used in this kind of networks. Narrowband Wideband Model CC1000 CC1020 CC2420 ZV4002 Frequency 300-1000Mhz 402-940Mhz 2.4Ghz 2.4Ghz Max. Data Rate 76.8kbps 153.6kbps 250kbps 723.2kbps Modulation FSK/OOK FSK/GFSK/OOKDSSS-O-QPSKFHSS-GFSK Turn on time < 2ms < 2ms < 1ms — Power (RX) 9.6mA 19.9mA 18.8mA 65mA Power (TX) 16.5mA 20.5mA 17.4mA 65mA Power (slept) < 1µA < 1µA < 1µA 140µA Security none none AES-128 SC-128 Table 1.2: Partial list transceivers used in the sensor networks market. Transceivers in sensor networks can be divided into two categories, as seen in Table 1.2: narrowband radios and wideband radios. Narrowband radios have less throughput and are more susceptible to noise, but they have less power consumption and faster wakeup times. These advantages and disadvantages of narrowband are reversed in wideband radios: they are faster and more robust, but also more powerdemanding and slower to wake up. Narrowband radios work at lower frequencies (433Mhz and 868Mhz in Europe, 915Mhz in USA), while wideband radios usually work at higher frequencies (2.4Ghz). The most common narrowband transceiver is 6 An advanced version of the MICAz node, known as IRIS, provides 8kB of RAM instead of 4kB. Note that the computational capabilities of the MSB nodes are slightly higher than the TelosB, with 55kB ROM and 5kB RAM. 7 13 the CC1000, used by the BTNode [86] and the Mica2 [85]. A chip with similar characteristics, the CC1020, is used on the MSB [89] nodes. On the wideband side, the most common chip is the Chipcon CC2420, which is used by the MICAz [85], TMote Sky [87], SunSpot [90], and IMote2 [85]. Other sensor nodes, like the BTNode [86], use the bluetooth-enabled ZV4002 chip. While a sensor network might employ the bluetooth standard for the wireless channel, the energy consumption and other features of this standard discourages its use. There is another standard that is more suitable for wireless sensor networks context: IEEE 802.15.4 [57] for low-rate wireless personal area networks (PANs). This standard specifies both the physical and medium access control layers, and although it was aimed to PAN, it can provide a good data rate and a relatively low energy consumption to sensor networks. The standard also provides support for clustered sensor networks, differentiating between cluster heads (coordinators, or FFD) and leaves (RFD). Nevertheless, the TinyOS network stacks use just some of the capabilities of the IEEE 802.15.4 standard, although it can be possible to implement the whole standard in a sensor node [77]. 1.1.3.2 Operating systems Operating systems (OS) manage the tasks and resources of a computer and provide an interface to those resources that can be used by programmers and users. There are many embedded devices that do not use or need an operating system, but the use of an OS for sensor nodes can provide an efficient access to the hardware services and simplify the development of applications [81]. Such OS must comply with certain features given by the existing constraints: smallness in size, low energy consumption capability, limited parallelism and event handling, and a good controller hierarchy. Even more, a node OS should also provide services that are important to a sensor node, such as communication protocols and neighbour discovery. Initially developed by the U.C. Berkeley EECS Department, the “de-facto” standard operating system for sensor networks is TinyOS8 [78]. TinyOS is a low-footprint, stable, portable OS based on modular components. These components can connect to other components, post low priority tasks, and react to asynchronous events. Also, TinyOS allows a good balance between portability and optimization by means of a three-tier Hardware Abstraction Architecture (HAA), which provides three different levels of abstraction. Finally, TinyOS facilitates the development of applications by using a component-based extension to the C language, nesC. Note that, in order to simplify the structure of the OS, TinyOS does not provide dynamic memory allocation and preemptive tasks, amongst other things. Besides TinyOS, there are other OS with different design goals. For example, Contiki [79] provides a very lightweight event-driven kernel protothread with optional per process preemptive multithreading, and includes partial support for dynamic 8 As of 2008, the version of TinyOS is 2.0.2 14 Figure 1.3: Layered architectures for sensor nodes allocation of memory. Full support for dynamic allocation of memory, alongside with support for loadable modules, is offered by the SOS operating system [80]. All these operating systems try to optimize the resources of the node, but there are other abstractions, like the Java Virtual Machine used by the Sentilla motes [87], that are focused on providing solutions for developing, deploying, integrating and managing software solutions. Since every mote OS is based on different design principles, the choice of an operating system for an specific sensor network mainly depends on whether a certain OS provides the services and features that the application developers need [81]. 1.1.4 Network stack - cross-layering Sensor networks are highly dependent of their communication channel. Without proper connectivity, sensor nodes are not able to provide users with the information obtained from its hardware sensors. Even more, no connectivity means no cooperation between nodes. As a result, it is very important to define an optimized network stack for sensor networks. As mentioned in section 1.1.3.1, sensor nodes usually use the IEEE 802.15.4 standard for the physical and medium access control layers. However, it is not yet clear how the upper layers should be designed, because the rigid layered communication architecture may not be completely suitable for sensor networks. This particular issue is discussed in this section. Traditionally, network design has followed a layered communication architecture. In this architecture, communication tasks are separated into several layers, with a clear definition of the functionality of each layer. In a layered communication stack, interaction among layers occurs through well-defined standardized interfaces that connect only the neighbouring layers in the stack. By using this approach, it can be possible to provide a high degree of modularity and interoperability among 15 heterogeneous networks. The benefits of using a well-defined layered architecture are numerous. Modularity provides the abstractions necessary for designers to understand the overall system. It accelerates development of both design and implementation by enabling parallelization of effort. Designers can focus their effort on a particular subsystem with the assurance that the entire system will interoperate. Moreover, individual modules can be upgraded without necessitating a complete system redesign, increasing the longevity of the system. Widely used in wired networks (e.g. the Internet TCP/IP model), this kind of architecture can be also applied to wireless networks, including sensor networks (cf. Figure 1.3) [46]. However, is precisely in the field of wireless networks where this traditional network stack point of view is being challenged. The unique problems created by wireless links, the resource constraints inherent to sensor nodes, and many other design challenges, are enabling the development of novel cross-layer designs. Cross-layer design enables different layers of the communication stack to share state information or to coordinate their actions. For example, supplying information on a node’s remaining battery energy to all of the nodes’ communication layers. The use of a cross-layer approach in a wireless network environment yields many advantages. Nodes must be able to manage several performance aspects, such as power management, that cut across traditional layers. Also, nodes should have access to their current resources and processes (e.g. wireless channel link properties), which contributes favorably to the autonomy and self-configurability of the node. This ubiquitous access to control and information is even more necessary due to the inherent constraints of the nodes, that requires fine-grained optimization techniques, and due to application-specific performance requirements, that suggest the need for a general model that is tuneable to each application. There are some aspects that have to be taken into account when designing crosslayer architectures. Cross-layer design opens the floodgate of information flow across layers, raising concerns on multiple, sometimes subtle, interactions among existing layers. This makes the architecture more difficult to develop and maintain, as there may be some new dependencies that must be taken into account. Also, the introduction of excessive and uncontrolled interactions can break the design of the system, hindering its usefulness and longevity [39]. As a result, cross-layer designers must consider the impact of their design with a holistic view that includes the long-term development and innovation considerations. The benefits of the different cross-layer design proposals and its possible coexistence should be studied in more deep [40]. Still, as of today, there have been both academic and standard network stacks that implement some cross-layer optimizations in sensor networks. 1.1.4.1 Academic cross-layer architectures The use of cross-layer optimizations and architectures has been widely considered in sensor networks designs and prototypes developed in the academia. In fact, in his 16 Figure 1.4: Outline of the ZigBee stack architecture seminal paper of 2002, Akyildiz considered the existence of transversal management planes interacting with the layered architecture [46]. Later, he even changed his initial point of view regarding sensor networks architectures and considered that the best solution is to use a unified cross-layer module [41]. Other architectural examples for wireless sensor networks include TinyCubus [42], The “Sensor Protocol” [43], SensorStack [44] and many others. Even more, the “de-facto” standard O.S for sensor networks environments, TinyOS, introduces cross-layer optimizations as a part of its core design [78]. The aspects of a network layer that should be included into a cross-layer design for sensor networks are outlined by all these architectures. First, there are some services that should be accessed by all the layers of the network: power management, network discovery, localization, synchronization, and security. Second, the network architecture should follow a component-based approach, where the functionality that is used by two or more layers (e.g. encryption of messages) should not be replicated. Third, there should exist mechanisms that allow one layer of the network to access the services of non-adjacent layers, for optimization purposes (e.g. one application accessing the hardware services directly). Finally, it should be required to have certain mediators that provide system information and internal information from other layers through well-defined interfaces. 17 1.1.4.2 ZigBee standard One of the suites of high level communication protocols that have been standardized and applied to some sensor networks deployments is the ZigBee stack [45]. Created in 2004 by the ZigBee Alliance, the major purpose of the ZigBee stack is to enable broadbased deployment of low cost, low power wireless networks that addresses the needs of remote sensing, monitoring and control. In particular, the ZigBee stack is targeting the following applications: Advanced Metering Infrastructure (AMI), Commercial Building Automation (CBA), Home Automation (HA), Personal, Home and Hospital Care (PHHC), Telecom Applications (TA), and Wireless Sensor Applications (WSA). For wireless sensor networks, as of 2008 the ZigBee Alliance is still defining the profile specification that will allow the creation of sensor networks applications through ZigBee. Figure 1.4 shows an overview of the ZigBee network stack, which operates over the IEEE 802.15.4 standard. The network stack is organized into several layers: Network (NWK) layer, and Application (APL) layer. The network layer allows end-toend communication and multi-hop capabilities. The Application layer is partitioned into several subcomponents: the Application Support Sublayer, which combines the functionality of a traditional transport layer and of an application layer, the ZigBee Device Object, in charge of storing design parameters and management commands, and the Application Framework, containing the application profiles. While the ZigBee network stack follows a layered approach, there are some crosslayer interactions. For example, the ZDO Management Plane allows all the ZigBee layers to access the design information and management commands included inside the ZigBee Device Object. Also, the Security Service Provider acts as a component that is shared by the Network Layer and the Application Support Sublayer, and its main task is to provide security mechanisms for data encryption. Besides from these specific optimizations, the ZigBee stack does not consider the existence of certain transversal services that should be used by all layers, such as power management. Also, aside from the management planes, the ZigBee stack follows a strict layered approach, where the application layer cannot have access to the services provided by the link layer. 1.2 1.2.1 Wireless Sensor Networks security Security threats In any environment, either physical or logical, there exists the need of maintaining someone or something safe, away from harm. This is the role of security. On any computer-related environment, security can be considered as a non-functional requirement that maintains the overall system usable and reliable, protecting the information and information systems. In fact, in wireless sensor networks, security 18 is of paramount importance: the network must be adequately protected against malicious threats that can affect its functionality. Due to the role of sensor networks as a “sensory system”, any disturbance in a sensor network may have consequences in the real world. However, achieving this goal is not an easy task, because sensor networks are especially vulnerable against external and internal attacks due to their peculiar characteristics. The devices of the network (i.e. sensor nodes) are highly constrained in terms of computational capabilities, memory, communication bandwidth and battery power. Additionally, it is easy to physically access such nodes because they must be located near the physical source of the events, and they usually are not tamperresistant due to cost constraints. Furthermore, any internal or external device can access to the information exchange because the communication channel is public. As a result, sensor networks have to face multiple threats that may easily hinder its functionality and nullify the benefits of using its services. These threats to WSN can be categorized as follows: • Common attacks • Denial of service attack (DoS) • Node compromise • Impersonation attack • Protocol-Specific attacks Due to the features of sensor networks, there are some specific attacks targeting the communication channels. An adversary can easily retrieve valuable data from the transmitted packets that are sent (Eavesdropping). That adversary can also simply intercept and modify the packets’ content meant for the base station or intermediate nodes (Message Modification), or re-transmit the contents of those packets at a later time (Message Replay). Finally, the attacker can send out false data into the network, maybe masquerading as one of the nodes, with the objectives of corrupting the collected sensors’ reading or disrupting the internal control data (Message Injection). Since sensor networks are wireless service-oriented infrastructures, one of the most problematic attacks that they may face is the Denial of Service attacks (DoS). A DoS attack on a WSN may take several forms. The most important are the following: Node collaboration, in which a set of sensor nodes act maliciously and prevent broadcast messages from reaching certain section(s) of the sensor network, jamming attack, in which an attacker jams the communication channel and avoid any member of the network in the affected area to send or receive any packet, and exhaustion of power, in which an attacker repeatedly requests packets from nodes to deplete their battery life. A sensor node is considered as being compromised when an attacker, through various means, can either read or modify its internal memory. Attacks can be invasive 19 or non-invasive. An invasive physical attack is defined as an attack where the attacker physically breaks into the hardware by modifying its hardware structure (e.g. using focused ion beam, or drilling a hole in the storage media). On the other hand, A noninvasive attack is defined as an attack where the data is taken from the hardware device without any form of structural modification done to the device itself (e.g. taking advantage of the JTAG interface [49] ). Various complex attacks can be easily launched from compromised sensor nodes, since the subverted node is a full-fledged member of the network. The most common attacks that can be launched using a compromised node are the impersonation attacks. In an impersonation attack, a malicious node impersonates a legitimate node, and uses its identity to mount active attacks such as sybil attacks or node replication attacks. In a Sybil attack, a single sensor node takes on multiple identities to deceive other sensor nodes. A sensor node that wishes to conduct the Sybil attack can adopt a new identity by creating a new identity or by stealing the identity of an existing sensor node. On the other hand, node or identity replication is the simple duplication of sensor nodes. As sensor nodes tend to be physically unprotected, it is feasible for an attacker to capture, replicate and insert duplicate nodes back into selected regions of the network. Node replication is different from a Sybil attack in that the multiple sensor nodes are duplicates and basically have the same identities. Complex attacks from subverted nodes can target the internal protocols used in the network, such as routing. Attacks against routing protocols in a WSN fall into one of the following categories [174] : corruption of the internal control information such as the routing tables (Spoofed Routing Information), selective forwarding of the packets that traverse a malicious node depending on some criteria (Selective Forwarding), creation of a “wormhole” that captures the information at one location and replays them in another location either unchanged (Wormhole attack) or tampered (Sinkhole attack), creation of false control packets during the deployment of the network (Hello Flood Attack), and creation of false acknowledge information (Acknowledgment Spoofing). Other protocols can be attacked as well, such as data aggregation (e.g. by forging the data before, during of after the aggregation process). 1.2.2 Security mechanisms for Sensor Networks As we have previously seen, sensor networks are vulnerable to external and internal attacks. The effects of those attacks in the network are not trivial, since they can render the services of the network useless. It is clear that there is the need of using security mechanisms either to prevent the attacks from influencing over the functionality of the network or to minimize the adverse effects of such attacks. By using the security mechanisms, it can be possible to enforce in sensor networks the following security properties: • Confidentiality. A given message must not be understood by anyone other than 20 the desired recipients. • Integrity. The data produced and consumed by the sensor network must not be maliciously altered. • Authentication. The information received by the sensor nodes and the base station must come from a valid member of the network. • Authorization. Only authorized entities (sensor nodes and base station) can be involved in providing information to the network. • Availability. The users of a sensor network must be capable of accessing its services when they need them. • Freshness. The data produced by the sensor network must be recent. • Self-Organization. Every sensor node must be independent and flexible enough to self-organize and self-heal itself according to different situations. In a sensor network context, the existing security mechanisms try to protect the hardware of the sensor nodes, the communication channel, and the protocols and services. By protecting the hardware of the sensor nodes, it is possible to detect and/or prevent attacks that try to compromise a sensor node. A secure communication channel cannot be affected by most of the common attacks (eavesdropping, modification, replay, and injection) that affect the exchange of messages between the sensor nodes. Finally, with the adequate support, the protocols and services used in the network can tolerate the existence of service disruptions and complex attacks [259, 263]. 1.2.2.1 Hardware protection Sensor nodes are easy to access, since they have to be physically near of the event they monitor. As a result, an adversary can try to compromise a sensor node. Once the attacker obtains, subverts, and takes control over a sensor node, it can access to its internal information, and also use it for malicious purposes by launching complex or stealthy attacks. Therefore, there should be some kind of protection on the hardware layer to avoid such attacks, like a tamper proof module (TPM). Such modules allow the security credentials to be stored securely, preventing an attacker from retrieving the credentials when the sensor node is compromised. Once a tampering of the chip is detected, the TPM will destroy the keys and other information stored in the module. Unfortunately, although adding a TPM into a sensor node would help to defend against node compromise, the addition of the module will also significantly increase its overall cost. As a result, it is necessary to use other software-based mechanisms that are not dependent on any hardware configuration. Code attestation techniques can not directly defend against node compromise, but they can be able to detect 21 whether a certain node has been compromised or not. Also, code obfuscation techniques increase the complexity of analysing the memory of a node. Code attestation. Software based attestation enables a third party to verify the code running on the system to detect any maliciously altered code. Usually code attestation is done through the use of special hardware mechanisms proposed by the Trusted Computing Group (TCG) and Next Generation Secure Computing Based (NGSCB). However, these hardware mechanisms are costly and are not implemented in the current version of the nodes, as of 2008. Thus this kind of software attestation is designed to provide the detection of malicious code alteration and verify that the nodes are using the correct codes. A verification procedure is needed to effectively verify that the node’s code is correct and not maliciously altered. A verifier needs to generate a random challenge to be sent to the node. The node will then use this challenge to generate a response using the verification procedure. The verifier will then compare the response against an expected value. Any discrepancy would imply that the code in the node has been modified. Data used in the code attestation usually includes the clock speed, instruction set architecture, the memory architecture of the microcontroller and the size of the device’s memory. The verification procedure is mostly based on the “pseudorandom memory traversal” concept: using a seed (i.e. the random challenge) provided by the verifier, the node must randomly access some positions of its own memory, summarizing them into one report that will be used as a response. If the node is malicious, the time used on calculating a valid response will be longer, and such delay can be detected by the verifier [69]. An improvement over this basic scheme consist on sending an obfuscated attestation routine alongside with the seed, thus delaying even more the efforts of the malicious adversary to reply with a valid response [70]. Code obfuscation. Code obfuscation, or diversification, is a mechanism that allows the protection of a valuable piece of information (e.g. the security credentials) contained inside the node. By obfuscating the code and data, the amount of time needed by the attacker to analyze the compromised nodes will increase, thus it will be more difficult to deduce the secrets from the extracted contents of program flash, the EEPROM or the SRAM. The obfuscation methods must not be equal for all the nodes. This is to prevent the attacker from using the same method to retrieve the secrets once he/she is successful in compromising one node. Those diversification techniques may include stack randomization, instruction set randomization, library randomization, and system call randomization. In a sensor node, it is possible to hide vital information, such as the secret keys, using a hash function to scramble the information in the data segment [47]. By hiding the keys in a randomized manner, it would be difficult for the attacker to find the keys from the downloaded EEPROM. 22 1.2.2.2 Secure communication channels In sensor networks, all devices communicate through a wireless channel. As a result, the information flow can be easily accessed by anyone in the vicinity, and all packets are unprotected against any kind of communication attack. Therefore, it is necessary to establish a secure communication channel between sensor nodes, where no attacker can eavesdrop, modify, replay, or inject messages. In order to create this channel it is necessary to use security primitives, and it is also essential to distribute the security credentials (secret keys) needed by such primitives. Security primitives. Security primitives allow the sensor nodes to give a minimal protection to the information flow, and can also be used as a foundation to create secure protocols. Those security primitives are symmetric key cryptography schemes (SKC), hash primitives, and public key cryptography (PKC). Since sensor nodes are highly constrained in terms of resources, implementing the security primitives in an efficient way (using less energy, computational time and memory space) without sacrificing the strength of their security properties is one of the most important challenges in this area. Symmetric Key Cryptography (SKC) primitives use the same secret key to hide / unhide information through encryption and decryption. Instances of these primitives are able to provide confidentiality to a certain information flow, given that the origin and the destination of the data share the same secret key. They can also provide integrity and authentication if a certain mode of operation is used. Cryptographic hash functions or hash primitives are utilized in order to compress a set of data of variable length into a set of bits of fixed length. The result is a “digital fingerprint” of the data, identified as a hash value. A cryptographic hash function must satisfy two properties: i) given a hash value h, it should be hard to find a message m such that hash(m) = h, and ii) it should be hard to find two different messages m1 and m2 such that hash(m1 ) = hash(m2 ). Hash functions are typically used for assuring the integrity of the information flow, providing a unique fingerprint for every packet in the form of a Message Authentication Code (MAC). Finally, Public key cryptography (PKC), also known as asymmetric cryptography, is a form of cryptography that uses two keys: a key called secret key, which has to be kept private, and another key named public key, which is publicly known. Any operation done with the private key can only be reversed with the public key, and vice versa. This nice property makes all PKC-based algorithms useful for authentication purposes. Still, the computational cost of calculating their underlying operations had hindered its application in highly-constrained devices, such as sensor nodes. Key management. In order to create and share a secure channel by using security primitives, the sensor nodes need to share certain security credentials. For example, in SKC, when one node A encrypts the information with a certain secret key K, the other node B will need the same secret key K for obtaining the original information 23 through decryption. The task of generating and distributing those keys has to be done by a Key Management System (KMS). There are three basic factors that every key management system for sensor networks should adequately fulfil: key storage, key distribution, and key maintenance. • Key storage policies indicate the number of keys that a sensor node needs to store in order to open a secure channel with other peers. • Key distribution protocols define how the keys are issued to the sensor nodes. A sensor node can receive its keys before the initial deployment of the network or create its keys after the deployment using preloaded information. • Key maintenance procedures specify how a sensor node can be included into or erased from the network, receiving or nullifying a set of keys in the process. There are two extreme design cases for a key management system: global keying and pairwise keying. In global keying, a single key is created for the entire network, and all the secure communications must be encrypted with that key. In the other case, pairwise keying, a node must store a key for every other node inside the network, thus every pair of nodes will have a particular secure channel. These two cases are not feasible in a real scenario. In global keying, any tampered sensor node will reveal the global secret key, thus opening all the communications of the network to any potential attacker. Also, pairwise keying is not a scalable solution due to the memory constraints of the sensor nodes. Therefore, security researchers have been trying to develop more optimal solutions that are scalable and resilient, amongst other properties. The existent systems developed by researchers can be classified into four frameworks: “Key Pool” Framework, Mathematical Framework, Negotiation Framework, and Public Key Framework. Every framework provides different properties, and there is no framework that is completely adequate for every sensor network scenario. 1.2.2.3 Protocols and services: core protocols While protecting the communication channel keeps sensor networks safe against certain attacks, it does not entirely guarantee that other attacks will not affect them. For example, a DoS attack can stop the provisioning of the services, and other protocol-specific attacks crafted by malicious insiders can influence over the internal behaviour of the network. Therefore, it is necessary to i) strengthen the minimal set of protocols that sensor networks need in order to function properly (i.e. its “core” protocols), and ii) create specialized protocols and services that can adequately provide support for the protection of the network. The following paragraphs will focus on the core protocols of the network, which are routing (transmitting a packet from one sensor node to another sensor node), data aggregation (briefing many sensor readings into one single piece of data), and time synchronization (synchronizing the clocks of the network). 24 Routing. Designing routing algorithms is a challenging area. All the nodes inside a sensor network should be reachable (connectivity) while covering the maximum possible area of environment using their sensors (coverage), even when the nodes inside the network start to fail due to energy issues or other problems (fault tolerance). The algorithm should also work with any network size and node density (scalability) and provide a certain quality of service. At the same time, designers must try to lower the memory usage, speed, and energy consumption of the algorithms. Security is another factor that cannot be ignored in the design of routing algorithms. Any potential adversary has a wide range of attacks at his disposition [174] to manipulate the routing subsystem and take control over the routes, resulting in eavesdropped, altered, spoofed or discarded packets. He can direct traffic over his own nodes by advertising them as nodes with better (real or fake) connectivity or speed. He can alter the routing control packets on his own benefit, and also spoof the identity of the nodes using a sybil attack [63]. The key infrastructure may help in the protection against routing attacks by authenticating nodes and protecting the confidentiality and integrity of the packets, but it is not enough to protect the routing infrastructure. Any adversary can take control of a set of legitimate nodes of the network and modify or discard any control messages on his own benefit. He can also attack the network or certain sections of it using a denial of service attack, jamming the communication signal or colliding certain control packets. Therefore, it is essential to make the routing algorithm robust against such attacks, by means of multiple braided paths, restricting the structure of the topology, and other protection mechanisms. Data aggregation. Inside sensor networks, the nodes generate an immense amount of raw data product of their measurements. In most cases all these information must be sent to the base station, thus there is a great cost, in terms of energy consumption and bandwidth usage, on transporting all the data from the nodes to the base station. However, since nodes are physically near each other, there will be some data redundancy. The role of aggregation is to exploit this redundancy by collecting the data from a certain region and summarizing it into one report, hence decreasing the number of packets sent to the base station. Aggregated data can be easily attacked by a malicious adversary, even if the communications are protected against any data injection attack or data integrity attack. If an aggregator node is being controlled by an adversary, it can easily ignore the data received from its neighbours and create a false report. Trusted aggregators can still receive false data from faulty nodes or from nodes being controlled by an adversary. By using strong aggregation functions that are resilient against internal attacks, it should be possible to defend the network against false data coming from malicious or faulty nodes [72]. Another possible solution is to try to discover whether the reports sent by a malicious aggregator are forged or not. One approach is to query the aggregator itself about the data used to create the report [66]. Other approaches take 25 advantage of the density of sensor networks by using the nodes in the neighbourhood of the aggregator as witnesses [51]. Finally, it is also possible to filter the packets containing the report and the proofs in their way to the base station, hence decreasing the amount of traffic created by false aggregations [76]. Time synchronization. The major task of sensor networks is the collection of data from a certain physical environment. But the data itself should be linked to the time it was collected in order to be properly used. Although sensor nodes are able to know the local time, i.e. the time that has passed after the moment they were born, it is necessary to create a set of protocols that allow the maintenance of a global time. Such protocols are also essential for synchronizing the clocks of the sensor nodes, avoiding problems such as clock drifts. If these issues are not dealt with, services such as tracking and localization may provide erroneous results. A time synchronization protocol must comply with certain design principles. The use of high-demanding energy devices such as GPS should be limited to powerful nodes (energy efficiency), the number of transmissions should be kept to a bare minimum (transmission efficiency), factors such as the latency error and the jitter should be taken into account (end-to-end latency), and the protocols should deal with message loss and problems in message delivery (fault tolerance) [71]. Finally, the protocol must stay secure: any protocol that incorrectly updates the clock of a single sensor node can easily thwart the behaviour of the entire system. Possible countermeasures against the security problems [178] include using authenticated broadcast mechanisms for avoiding the existence of malicious external entities or compromised sensor nodes changing the clock information. Also, it is possible to take advantage of the redundancy of the network, allowing many sensor nodes to serve as the root for the global time in case no base station is present or near, or letting one sensor node to get the time information from many sources discouraging the existence of a malicious entity with an abnormal clock drift. At last, the sensor nodes can use approximations to get an upper bound on the error that could be induced by an adversary, and use such approximation in case there is no reliable information around. 1.2.2.4 Protocols and services: supporting protocols Once the security of the core protocols have been discussed, the following paragraphs will focus on introducing certain security mechanisms and systems that can assist the decision-making processes of a sensor node. Besides, it will also show other protocols and services that also need to be protected. Intrusion Detection Systems. An intrusion can be defined as a set of actions (i.e. attacks), either external or internal to a certain system, that can lead to an unauthorized access or alteration of the system. The mission of an IDS (cf. [67]) is to monitor a certain system in order to detect possible intrusions in the network, 26 alert users after intrusions had been detected and, finally, reconfigure the network provided that is possible. In a WSN environment, such IDS allows sensor nodes to monitor themselves and to react to the abnormal situations in their environment, providing an infrastructure that protects their normal operations and detects and reacts to any possible attacks against network services. An Intrusion Detection System must decide carefully where to locate its detection agents, due to the distributed nature of the network and the constraints inherent to the nodes. Choosing an adequate set of lightweight detection procedures, like automata, packet analysis, and health monitoring systems, is also of importance. Finally, agents should be able to collaborate in the detection processes, and send the alerts to the base station for the sake of informing the user of the system about any abnormal behaviour. Trust Management Systems. The concept of trust (“the firm belief in the reliability or truth or strength of an entity”) derives from sociological or psychological environments, and it can be applied to a computer environment. It helps the members of a network to deal with uncertainty about the future actions of other participants. As a result, trust becomes specially important in distributed systems such as sensor networks because it may assist the execution of other protocols and services, by using the output of a trust management system as an assistant in their decision-making process. It is possible to point out some aspects that can be considered crucial for creating a satisfactory trust system. One is the initialization of the trust model. Another is the interpretation of the events that occur during the lifetime of the network [54]. The evolution and density of the events that occur in sensor networks are also of importance. Finally, due to the constraints of the nodes, it is imperative to balance the overhead of the data collection process, and to make both these processes and the trust and reputation models as lightweight as possible. Authenticated broadcast and authenticated streams. The communications model of sensor networks is mostly base-station centric: all sensor nodes have to send the information they collect about their environment to the base station. Nevertheless, the base station can also send control information to a certain subset of the sensor nodes of the network. The base station is considered by the sensor nodes as a completely trusted entity. Consequently, it is of extreme importance to assure the authentication of the packets that supposedly come from the base station. It may be possible to use PKC for signing the contents of the message, or use SKC-based techniques like µTESLA [65] in order to save resources. However, in certain cases, it may be necessary to check for the authenticity and integrity of a complete stream of data. This is the case of code update protocols, which allow the whole network to be reprogrammed from the base station (sending either interpreted code [61] or machine code [56]) by using the wireless channel. For this purpose, it is possible to sign and send the hashed value of the entire stream, or 27 Cross-Layer Transversal Sec. Layer Layered Architecture Service 1 Application Layer Transport Layer Network Layer Service N Link Layer Physical Layer Figure 1.5: Security as a transversal layer include inside the signed i packets the hash value of the i+1 packets (i.e. hash-chain) [52], or to use one-time signatures alongside with those hash-chains [59]. Other issues. There are many other security issues that have to be taken into account while using sensor networks. For example, in case a sensor network is organized into zones (e.g. kitchen, bedroom, etc) using an overlay, it is necessary to offer secure methods to manage that overlay, such as secure node lookup protocols. Also, there may be some mechanisms that allow a fine-grained access control in case the users can directly query the contents of a sensor network through delegated base stations. Those delegated base stations have delegated privileges from the main base station, thus in this context is essential to organize the delegation of privileges, granting or revoking them if necessary. There are other aspects that need to be protected if included inside a sensor network, such as distributed computing, secure location, secure mobile base station location, and so on. Moreover, other aspects such as the existence of random number generators in sensor nodes [60] should be analyzed carefully. As a final note, there is a security property that is very important in certain scenarios: Privacy [64]. For example, in a battlefield, it would be important to hide the location and identities of the base station and the nodes that generated the information. In contrast, in an earthquake rescue situation locating the source nodes (if the nodes are worn by, for example, dogs) is an absolute must. Note that this property can transcend beyond the technological dimension and affect its social environment, since sensor networks could be used as a surveillance tool to collect data about the behaviour of human beings. 1.2.3 Security as a transversal layer In order to properly use the security mechanisms in wireless sensor networks, it is necessary to include them inside a communication architecture. Even more, it is 28 necessary to define which are the interactions and relationships between these mechanisms and the other elements of the architecture. However, as seen in section 1.1.4, it is not yet clear whether sensor networks should use a layered approach or should focus on cross-layer architectures. As a result, we should be able to incorporate the security mechanisms inside any existing sensor network architecture, being it layered or cross-layer. For this purpose, we believe that security must be considered as a transversal layer, that in both layered and cross-layer architectures will be able to provide information and services to the other elements of the architecture. Security services will be located inside that transversal layer, and they can be able interact between them and between the other elements of the architecture using well-defined interfaces. Shown in Figure 1.5, this point of view is shared by some academic cross-layer architectures [40][43][44], and it is also partially shared by the ZigBee standard [45]. In layered communication architectures, the existence of a transversal layer containing the security services will allow the modification of those services according to the requirements of the applications (e.g. choose a different security primitive) without causing collateral effects that may negatively affect the other layers. In addition, it can be possible to add new security services derived from the necessities of the applications and / or long-term academic research. On the other hand, in cross-layer architectures the security layer behaves as another component of the architecture that can be accessed from any other component, providing security-related services and information. By centralizing all security services inside one single component, we can improve the overall stability and maintainability of the architecture, and also we can provide a better control over the possible interactions and dependencies that may arise. We can also justify the choice of a security transversal layer by analyzing the interaction between security services. Certain security services (e.g. code attestation) might be used only by one layer (e.g. application layer), thus it is possible to think that those services should be integrated within the layer that uses them. However, those security services will probably interact with other security services (e.g. intrusion detection systems) which have interactions with many layers. Therefore it is more adequate to locate the security services inside the transversal layer. Finally, as aforementioned, the use of a transversal layer allows the modification of security services and the inclusion of new security services, limiting the possible collateral effects. 1.3 Goals of this thesis With their ability to link the real world and the virtual world, Wireless Sensor Networks open a wide range of possibilities for empowering the world of today. Unfortunately, these networks are inherently insecure: any malicious adversary can be able to access or modify the information flow. If a sensor network is compromised, 29 Confidentiality Aggregation Prot. Integrity Code Attestation Intrusión Detection System Authentication Time Synch. Prot. Authorization Key Management Trust Self-Awareness Routing Prot. Figure 1.6: “Complete Set” of security mechanisms the link between what is virtual (data) and what is real (physical features) will be severed, and such inconsistency will render the sensor network useless. As a result, it is necessary to develop security mechanisms to protect the functionality of these kind of networks. This point of view is shared by the research community, and there is an abundant literature on the subject of securing sensor networks. There is a factor that still has not been widely considered in the development of these security mechanisms: the influence of the applications. Sensor networks are not general purpose systems, because they provide a very specific functionality using highly constrained devices. In fact, the actual structure, architecture, and protocols of wireless sensor networks needs to be tailored to the nature of the application. For example, a medical diagnostics application will have higher QoS requirements than an asset tracking application. Also, if the physical location of the nodes is of paramount importance for a certain application (e.g. in urban terrain mapping), in most cases the network will use a routing protocol based on geographical information. However, in most cases, security mechanisms for sensor networks are designed considering neither the type of nodes used in the network nor the context where the application will run. And the nature of the application will have significant influence over which security mechanisms should be used and how these security mechanisms should behave. A class I node (cf. section 1.1.3.1) may not be able to run certain security primitives, whereas a class III node may have no problems when executing these primitives. Also, it will be not possible to use a non-scalable mechanism for distributing security credentials if the size of the network is large. Precisely, one of the major goals of this thesis is to consider the influence of the applications and their context in the protection of sensor networks and the development of the security mechanisms. For every security mechanism, it is necessary to point out where the application and its context will influence on its behaviour. Once this influence is known, it can be possible to adapt the security mechanism so it can offer good protection capabilities that can maintain the network secure. Once we consider that the security mechanisms must be application-driven, other major goal of this thesis is to specify a “complete set” of security mechanisms. With “complete set”, we refer to a set of application-aware security mechanisms that are necessary to minimally enforce the security properties that were shown in section 1.2.2, either preventing the existence of attacks or minimizing their adverse 30 effects. This way, a sensor network implementing this “complete set” can offer a minimal protection to its overall functionality. Through these protection mechanisms, we can reduce the gap between research and reality. What we consider to be a “complete set” of security mechanisms is shown in Figure 1.6. From the security perspective, it is necessary to create confidentiality, integrity, authentication, and authorization services for the network to work adequately. They provide security support to the protocols of the network, such as routing. However, these services need to use cryptographic primitives that could work within a constrained device. Also, the security credentials used by those cryptographic primitives must be distributed through a key management system (KMS). This thesis will focus on reviewing the suitability of the security primitives and analyzing the relationship between the application and the key management systems. On the other hand, the protocols used in sensor networks (e.g. core protocols such as routing) need other security services that reinforce their own internal protection mechanisms. By detecting potential problems in the network and providing decision tools, it will be possible to maintain the availability and freshness of the network. Those security services are intrusion detection systems (IDS) and trust management systems. The foundation of these services is the self-awareness service, whose main task is to analyze the behaviour of a node and its neighbours in order to detect abnormal events (e.g. a dead node, a malfunctioning sensor) that may happen in the context of the application. All these services are very useful for allowing the network to self-organize itself, and this thesis will study how to develop such services (situation awareness, IDS, trust management) in a sensor network context. As with any other software components, it should be possible to include the “complete set” of security mechanisms inside a sensor network architecture. In order to allow the maintainability of the mechanisms, and their adaptation to the necessities of the application, this set should be included as part of a security transversal layer (cf. section 1.2.3). This thesis will show how this concept have been fulfilled in a middleware architecture for sensor networks. Finally, since the ultimate role of sensor networks is to become a pervasive “sensory system”, this thesis will analyze if the sensor networks can securely be connected to the rest of the world, through the Internet. Regarding the scenarios considered in this thesis, we mainly consider the security of scenarios where the nodes are static, and few or no nodes are mobile. This is the network configuration used by most applications and research projects as of 2008. Nevertheless, some of the mechanisms presented in this thesis may be also valid for networks with some mobile nodes. 1.3.1 Direct contributions The major contributions of this thesis to the area of wireless sensor networks security are detailed below: 31 • Definition of a “complete set” of security mechanisms, and locate them as a transversal layer in the sensor networks architecture. • Description of the actual state of the art in cryptographic primitives for sensor networks, and review the suitability of these primitives for the different classes of sensor nodes. • Analysis of the relationship between the application requirements and the properties of a key management system (KMS). We also develop a methodology that can distinguish which protocol is the most suitable to the context where the network is going to be deployed. • Study of the suitability of the current state of the art in KMS for offering a viable solution to the key establishment problem in wireless sensor networks, determining where researchers should focus their effort in order to create useful KMS protocols that could be used in real-world applications. • Support for the existence of Public Key Infrastructures (PKI) in Sensor Networks. Applicability of other public key paradigms such as identity-based cryptography or self-certified cryptography in specific environments such as Underwater Sensor Networks. • Development of lightweight awareness mechanisms that can detect the existence of an abnormal event based on the presence of certain collateral effects. We also show how the application influence over these detection processes. • Development of an intrusion detection system for sensor networks that fulfills all the following properties: full network coverage, simplicity, usefulness, and adaptability. • Analysis how the specific features of wireless sensor networks influence over the definition of a trust management system for sensor networks. • Explanation of how the concepts of the “complete set” of security mechanisms have been applied in a real middleware architecture for sensor networks. • Analysis of the secure interactions between wireless sensor networks and the Internet, illustrating how they also depend on the application. We also describe open issues in this area. 1.3.2 Outline of this dissertation In this first chapter, we have reviewed the wireless sensor networks paradigm: its specific features, devices, and architectures. We also have introduced the security problems that may affect the functionality of sensor networks, alongside with the 32 security mechanisms that try to enforce certain security properties. Finally, we have explained which are the goals and the contributions of this thesis. Chapter 2 is focused on the security primitives and mechanisms in charge of managing the security credentials needed by the primitives. We describe the security primitives and analyze their suitability for constrained devices. We review the key management approaches based on symmetric keys, defining their properties and providing a methodology that will allow the study of their applicability to real world applications. Finally, we analyze two key management approaches based on public key cryptography: classical and identity-based. In the classical approach, we illustrate how to provide support for a Public Key Infrastructure in a sensor network context. In the identity-base approach, we show how certain key-escrowed public key paradigms are advantageous for specific contexts. The contents of Chapter 3 will primarily deal with self-awareness services, which are essential for self-configurability. We explain how the sensor protocols can benefit from the existence of these mechanisms, and we further develop situation awareness mechanisms based on the analysis of the existing abnormal events that may happen in a sensor network context. Later, we develop a blueprint of a distributed intrusion detection system for sensor networks, specifying its components, its detection mechanisms, and some support protocols. Finally, we review the concept of trust management systems for sensor networks, specifying which are the sensor networks specific issues that must be taken into account while developing these kind of systems. In Chapter 4 we review how the concepts presented in this thesis have been included inside a research project, and will also analyze how assuring the security of sensor networks is not enough to guarantee a secure integration of sensor networks and the Internet. We will introduce the SMEPP research project, whose main goal is to develop a secure EP2P middleware, and we will examine how the ideas of the “complete set” of application-driven security mechanisms have been included inside its architecture. Regarding the secure integration between the sensor networks and the Internet, we will analyze what are the security problems that may hinder this integration, and we will propose some solutions and point out some open problems. The conclusion of this thesis can be found in Chapter 5, in which we summarize our contributions and present research lines that must be taken into account by the research community. 1.4 Publications and funding The work presented in this thesis has been internationally awarded in different security and communication conferences, meetings and journals where experts have provided their valuable insights and thoughts. 33 Journals: 1. R. Roman, J. Lopez, S. Gritzalis. Situation Awareness Mechanisms for Wireless Sensor Networks. IEEE Communications Magazine. Vol. 46, no. 4 (2008), pp 102-107. 2. R. Roman, C. Alcaraz, J. Lopez. A Survey of Cryptographic Primitives and Implementations for Hardware-Constrained Sensor Network Nodes. Mobile, Networks and Applications (MONET) Journal, Springer. Vol. 12, no 4 (2007), pp 231-244. Book chapters: 3. R. Roman, C. Alcaraz, N. Sklavos. On the Hardware Implementation Efficiency of Cryptographic Primitives. In Wireless Sensor Network Security, IOS Press. ISBN: 978-1-58603-813-7. 4. R. Roman, M.C. Fernandez-Gago, J. Lopez, H.H. Chen. Trust and Reputation Systems for Wireless Sensor Networks. In Security and Privacy in Mobile and Wireless Networking, Troubador Publishing Ltd. ISBN: 978-1905886-906. International conferences: 5. R. Roman, M.C. Fernandez-Gago, J. Lopez. Featuring Trust and Reputation Management Systems for Constrained Hardware Devices. Proceedings of the 1st International Conference on Autonomic Computing and Communication Systems (Autonomics 2007), Rome (Italy), October 2007. 6. M.C. Fernandez-Gago, R. Roman, J. Lopez. A Survey on the Applicability of Trust Management Systems for Wireless Sensor Networks. Proceedings of the 3rd International Workshop on Security, Privacy and Trust in Pervasive and Ubiquitous Computing (SecPerU 2007), pp. 25-30, Istanbul (Turkey), July 2007. 7. R. Roman, C. Alcaraz. Applicability of Public Key Infrastructures in Wireless Sensor Networks. Proceedings of the 2007 European PKI Workshop: Theory and Practice (EuroPKI’07), pp. 313-320, Mallorca (Spain), June 2007. 8. C. Alcaraz, R. Roman. Applying Key Infrastructures for Sensor Networks in CIP/CIIP Scenarios. 1st International Workshop on Critical Information Infrastructures Security (CRITIS 2006), pp. 166-178, Samos (Greece), AugustSeptember 2006. 9. J. Lopez, J.A. Montenegro, R. Roman. Service-Oriented Security Architecture for CII based on Sensor Networks. 2nd International Workshop on Security, Privacy and Trust in Pervasive and Ubiquitous Computing (SecPerU 2006), Lyon (France), June 2006. 34 10. R. Roman, J. Zhou, J. Lopez. Applying Intrusion Detection Systems to Wireless Sensor Networks. IEEE Consumer Communications & Networking Conference (CCNC 2006), pp. 640-644, Las Vegas (EEUU), January 2006. 11. R. Roman, J. Zhou, J. Lopez. On the Security of Wireless Sensor Networks. Proceedings of 2005 ICCSA Workshop on Internet Communications Security, pp 681-690, LNCS 3482, Singapur, May 2005. Spanish conferences: 12. D. Galindo, R. Roman, J. Lopez. An Evaluation of the Energy Cost of Authenticated Key Agreement in Wireless Sensor Networks. Proceedings of the X Spanish Meeting on Cryptology and Information Security (RECSI’08), Salamanca, September 2008. 13. C. Alcaraz, R. Roman. Análisis de Primitivas Criptográficas para Redes de Sensores. VI Jornadas de Ingenierı́a Telemática (JITEL’07), Malaga, Septiembre 2007. 14. R. Roman, J. Lopez, J. Zhou. Aplicación de Sistemas de Detección de Intrusiones en Redes de Sensores. Simposio sobre Computación Ubicua e Inteligencia Ambiental (UCAmI’05), pp 113-120, Granada, Septiembre 2005. 15. R. Roman, J. Lopez, J. Zhou. Análisis de seguridad en redes inalámbricas de sensores. V Jornadas de Ingenierı́a Telemática (JITEL’05), pp 335-342, Vigo, Septiembre 2005. Also, the following articles are submitted for evaluation or under revision: 16. R. Roman, J. Lopez. Integrating Wireless Sensor Networks and the Internet: A Security Analysis. Internet Research. Under revision. 17. D. Garrido-Marquez, P. Plaza-Tron, R. Roman, N. Sanz-Martı́n, J.L. SerranoMartı́n. Middleware seguro P2P para dispositivos de baja capacidad. Telecom I+D 2008. Submitted for evaluation. This thesis has been funded by the Institute of Infocomm Research (Singapore) during its first year, and subsequently it has been funded by the Consejerı́a de Innovación, Ciencia y Empresa (Junta de Andalucı́a) under the III Andalusian Research Plan and by the Ministry of Education and Science of Spain under the “Programa Nacional de Formación de Profesorado Universitario”. Some parts of the work were also carried out in the Laboratory of Information & Communication Systems Security of the University of the Aegean (Greece). Besides, part of the work carried out in this thesis has been applied to the projects CRISIS (TIN2006-09242), CONSOLIDER ARES (CSD2007-00004), and SMEPP (EU-FP6-IST 0333563). CHAPTER 2 SECURITY PRIMITIVES & KEY MANAGEMENT SERVICES This chapter studies the different security primitives and key management services that can be used in sensor networks. We describe the different security primitives, and provide an analysis of the suitability of the hardware and software implementations of these primitives in constrained devices. Next, we analyze whether the actual state of the art in symmetric key-based key management systems (KMS) can satisfy the requirements of sensor networks applications. For this purpose, we develop a methodology that allows any user to easily select a KMS protocol according to the requirements of a sensor network application. Finally, we analyze two key management approaches based on public key cryptography: classical and identity-based. In the classical approach, we provide support for public key operations in the form of a Public Key Infrastructure for sensor networks. In the identity-based approach, we show how certain key-escrowed public key paradigms, such as identitybased cryptography, can perform better than other algorithms in extreme environments such as underwater sensor networks. 35 36 2.1 2.1.1 Insights on the use of security primitives Description of the security primitives The foundation of almost all the secure protocols that can be used in sensor networks, and the tools that can aid these systems on integrating the security properties into their operations, are the cryptographic primitives such as Symmetric Key Encryption (SKE), Hash functions, and Public Key Cryptography (PKC). Without these primitives, it would not be possible to provide essential security services such as confidentiality of the communication channel, authentication of the peers involved in an information exchange, and integrity of the messages, among others. These primitives are not sufficient by themselves for guaranteeing the overall security of the whole network. For example, a malicious insider located inside the network can easily bypass the protection of the communication channel. Nevertheless, without these primitives, it would be nearly impossible to create a secure and functional environment. Moreover, it is possible to create better network services based on the primitives. For example, by using secure code uploading, it will be possible to update the behavior of a node or to implement mobile agents. Also, if a group of nodes wants to communicate in a secure fashion, they can use the cryptographic primitives to protect the information flow between the members of the same group. Symmetric Key Cryptography (SKC) Symmetric Key Cryptography (SKC) primitives are able to offer the necessary mechanisms for protecting the confidentiality of the information flow in a communication channel. For achieving this confidentiality level is necessary that both the origin and destination share the same security credential (i.e. secret key), which is utilized for both encryption and decryption. As a result, any third-party that does not have such secret key cannot access the information exchange. The security properties of these primitives mainly resides on the complexity of their internal operations and the length of the keys. There are two types of SKC primitives: Stream Ciphers and Block Ciphers. Stream Ciphers are simpler and faster, while Block Ciphers are more flexible and powerful. These two types are discussed in more detail in the following paragraphs. Stream ciphers and block ciphers. A stream cipher is a method of symmetric cryptography that takes as an input a flow of bits of variable size and transforms it into a ciphertext. For that purpose, these cryptographic algorithms combines, mainly by using simple operators such as XOR, those input bits with a pseudorandom key flow obtained from a cryptographic key and an initialization vector (IV). It is essential to use such IV in stream ciphers for avoiding situations where one plaintext produces the same ciphertext when encrypted with the same key. 37 On the other hand, a symmetric block cipher operates on a group of bits with a fixed-size –usually 64 or 128 bits–, known as blocks. A block of plaintext is transformed into blocks of ciphertext by using several rounds of mathematical operations. In all these rounds most block ciphers also have to transform the original key, using a usually complicated process named key schedule. In cases where more than one block has to be encrypted (e.g. a plaintext that is larger than the block size), it is necessary to use a mode of operation (mode, for short). Moreover, if the plaintext is not a multiple of the block size, some modes requires padding that plaintext. Modes are just a set of operations using the block cipher inputs and outputs. Some of them provide confidentiality, and a few of them provide integrity. Concretely, the earliest modes, as ECB (Electronic Codebook), OFB (Output Feedback) or CBC (Cipher Block Chaining), provide only confidentiality. However, modes such as CCM (Counter with MAC), GCM (Galois Counter Mode), OCB (Offset Codebook Mode) and others modes guarantee both security properties by including a Message Authentication Code (MAC). In addition, in order to generate some randomization in the process, these modes, except ECB, needs of an initialization vector (IV) that has to be combined with the original key. The following subsections present a set of stream cipher and block cipher primitives that could be used in highly constrained devices. These primitives are arranged according to their complexity, and hence according to the resources that they demand to a device. Concretely, they are classified from less to more complex. RC4. One of the better known stream cipher algorithm, which is used by several protocols like Secure Sockets Layer (SSL) or Wi-Fi Protected Access (WPA), is RC4 [96] . This simple algorithm was designed by Ron Rivest in 1987, and it is also known as ARC4 or ARCFOUR. There are two design decisions that explain its simplicity. Firstly, it minimizes the execution time by using simple operations as XOR, AND, addition and shifting. And secondly, it uses a block size of 8-bit, consuming less memory space than others cryptosystems. Therefore, RC4 is highly suitable for those architectures with extremely limited microcontrollers. However, RC4 must be implemented carefully for avoiding any attacks as the detected in WEP [97] , where the primitive was not properly initialized. Skipjack. Skipjack [99] is considered one of the simplest and fastest block ciphers, in comparison with other ciphers such as RC5, RC6 or AES. It was designed by the NSA (U.S. National Security Agency), and declassified in 1998. The primitive uses building blocks of 64 bits and a cryptographic key of 80 bits for encrypting data blocks of 16 bits. Therefore, it is especially suitable for constrained sensor nodes with 16-bit microcontrollers. This primitive needs of 32 rounds to encrypt the plaintext, alternating two stepping rules known as A and B. Both rules can described as a linear feedback shift register with additional non linear keyed G permutation (Feistel cipher of 4 rounds). 38 Also, the key schedule of Skipjack is straightforward, i.e. the key is cyclically repeated enough times to fill the key schedule buffer. Besides these obvious benefits regarding the simplicity of the algorithm, this primitive does not provide the same security than others, due to its small key size. RC5 and RC6. In 1994, Ron Rivest designed a simple symmetric algorithm named RC5 [107] . This primitive has variable parameters both in block size (32, 64, 128 bits), in key size (0 to 2040 bits) and in number of rounds (between 0 and 255), although it is recommended to use a block size of 64 bits, a key size of 128 bits and 20 rounds. On the other hand, its internal operations are quite simple: integer additions, bitwise XOR, and variable rotations, over two b /2 bits registers. An algorithm based on RC5 is RC6 [108] , which it was designed by Ron Rivest, Matt Robshaw, Ray Sidney and Yiqun Lisa Yin in 1998. It is very similar to RC5, except that its recommended block size is 128 bits, and internally includes integer multiplication and uses four b /4 bits registers. In spite of using simple building blocks, resulting on a small code size in their implementation, both algorithms are complex and slow, thus not all the highlyconstrained devices could support them. Basically, they use 32-bit registers for the recommended block size (i.e. b /2 where b=64 in RC5, and b /4 where b=128 in RC6), the number of rounds is high, and the key schedule is quite complex in comparison with simpler ones such as in Skipjack. AES & Twofish. The Advanced Encryption Standard (AES) [98] was designed in 1998 by Joan Daemen and Vicent Rijmen. It is a derivative of the Rijndael algorithm, which supports a larger range of block and key sizes ranging between 128 bits and 256 bits. On the other hand, AES works with a fixed block size of 128 bits and a key size of 128, 192 or 256 bits. Depending on the size of the key, the number of rounds is 10, 12 and 14 respectively. For encrypting, AES needs a 4 × 4 array of bytes (known as the state) over a finite field. In each round (except the last round) four distinct stages are executed: AddRoundKey, where the subkey is combined (XOR operation) with the state, SubBytes, where each byte is replaced with its entry in a fixed 8 bits lookup table, ShiftRows, where bytes in each row of the state are shifted cyclically toward the left, and MixColumns, where each column is multiplied with a fixed polynomial p(x). Other block cipher algorithm similar to AES is Twofish [115] , designed in 1998 by Bruce Schneier, John Kelsev, Doug Whiting, David Wagner, Chris Hall and Niels Ferguson. Twofish uses a block size of 128 bits with large key sizes (up to 256 bits). Internally, it features a complex key schedule, and four different key-dependent 8x8 bits S-boxes. Besides, it uses other elements belonging to other cipher families, concretely the pseudo-Hadamard transform (PHT(a,b)=α,β, where α = a + b mod 232 and β = a + 2b mod 232 ), and the maximum distance separable (MDS) matrix (4 × 4) over GF(28 ). Both AES and Twofish are quite fast in their encryption/decryption operations 39 due to their small number of rounds, and also some operations can be calculated in 8-bit registers. On the other hand they are considerably complex, which results on a larger code size. Therefore, not all constrained devices can afford to implement them in software. Public Key Cryptography (PKC) Public key cryptography (PKC), also known as asymmetric cryptography, is a form of cryptography that uses two keys: a key called secret key, which has to be kept private, and another key named public key, which is publicly known. Any operation done with the private key can only be reversed with the public key, and viceversa. This nice property makes all PKC-based algorithms useful for secure broadcasting and authentication purposes. It is also an invaluable tool for allowing the secure exchange of secret keys between previously unknown partners. The computational cost of calculating the underlying primitive operations had hindered its application in highly-constrained devices, such as sensor nodes. However, at present there are several PKC primitives that are being considered for a sensor network environment. Obviously, it is important to know their properties to determinate if they could be suitable in a constrained architecture. For example, the algorithm RSA [112] is known by offering good cryptographic operations (encrypting and signing), but limited microprocessors must pay a relatively high computational cost. For all these reasons, it is necessary to analyze what kind of PKC primitives are more suitable for the sensor nodes. Elliptic Curve Cryptography. In 1985, Koblitz and Miller proposed one of the most investigated PKC primitives in the field of WSN security, named Elliptic Curve Cryptography (ECC) [100] . This interest is due to some interesting features offered by ECC that are appropriated for WSN context, such as the small key size and fast computation. ECC is based on elliptic curve structures defined as y2 = x3 + ax + b over finite fields Fp or F2 m . Then, the base of security in this type of cryptosystem is determined by the discrete logarithm problem. Concretely, given the parameters a and c, the security is determined by the resolution of the equation ab = c. The basic operation in ECC is the scalar point multiplication, which can be calculated by the repetitive computation of point additions and doublings, and also it requires an integer inversion calculated over affine coordinates. Although the point multiplication operation is less expensive in computational terms than the primitive operations of RSA (i.e. exponentiations), it is still quite resource intensive. For this purpose, there exist several optimizations, such as the use of projective coordinates to avoid the inversion operations, or the use of the Shamir’s trick method for minimizing the verification time. As aforementioned, ECC is able to offer the same security as other cryptosystems, like RSA, providing signatures by using Elliptic Curve DSA (ECDSA) key establishment by using Elliptic Curve Diffie-Hellman (ECDH), and asymmetric encryption by 40 using Elliptic Curve Integrated Encryption Scheme (ECIES). Moreover, ECC works with a smaller key size (160 bits in ECC is equivalent to 1024 bits in RSA), and its basic operation executes in a reasonable time. These properties are very appreciated by the research community in order to try their integration in sensor nodes. Other cryptographic approaches. Other cryptographic approaches that could be suitable for constrained architectures are Rabin’s scheme [106] , NtruEncrypt [105] and MQ-schemes [103] . Overall, their execution time is quite optimal, but their memory requirements in terms of the key size are very heavy. In 1979, Michael Rabin proposed a high-speed scheme based on the factorization problem of large prime numbers, known as Rabin’s scheme. Therefore, its security is determined of the same way than RSA. This primitive is characterized by the speed of its encryption and signature verification operation, which are built by a simple squaring operation, i.e En,b ≡ x(x+b) mod n when b takes value zero. However, the function of Rabin generates three results, and only one of these results is correct. Also, the size of a single signature is quite large (512 bits). Other asymmetric approach is NtruEncrypt and its corresponding signature scheme NtruSign, which were created by Joseph H. Silverman, Jeffrey Hoffstein, Jill Pipher and Daniel Lieman in 1996. These cryptographic primitives are usually based on a polynomial ring R = Z (x)/((xN - 1), q), and their strength is based on the hardness of solving the Closest Vector Problem (CVP) and the Shortest Vector Problem (SVP). Due to its simple primitive operations for encryption and signing, just mere polynomial multiplications, NtruEncrypt claims to be faster than other asymmetric encryption schemes, although it requires a public key size of 1169 bits. Finally, the most recent asymmetric approach is the multivariate public-key cryptosystems, also known as MQ-schemes. Their security is determined by the hardness of solving w = V −1 (z) = (ω1 , ..., ωn ) ∈ K n , given a quadratic polynomial map V = (γ1 , ..., γm ) : K n → K m . In particular, the security of the variant known as the enTTS(20,28) algorithm, which belongs to the STS-UOV family of MQ-signatures, is comparable to RSA-1024. A MQ-scheme is quite fast in its cryptographic operations, such as the verification of a signature. However, there is a significative storage cost for restricted environments due to the size of the keys in RAM. Concretely, it is necessary to book 879 bytes for the private key and 8680 bytes for the public key. Obviously, this cryptosystem can only be supported by sensor nodes with high memory capabilities. Hash Functions Cryptographic hash functions or hash primitives are utilized in order to compress a set of data of variable length into a set of bits of fixed length. The result is a “digital fingerprint” of the data, identified as a hash value. A cryptographic hash function must satisfy two properties: i) given a hash value h, it should be hard to find a message m such that hash(m) = h, and ii) it should be hard to find two different 41 messages m1 and m2 such that hash(m1 ) = hash(m2 ). This kind of hash primitives are usually used to build other cryptographic primitives. For example, the Message Authentication Code (MAC) primitive provides authenticity and integrity in the messages, either by using the CBC mode of operation in a process named CBC-MAC, or by taking advantage of the existence of hash primitives. An example of hash function is SHA-1 algorithm [114] , which takes 512 bits and returns 160 bits, and operates with operations of additions, rotations, XOR, AND, OR and NOT. Nevertheless, the complexity required for finding a collision is only 263 [109, 110], hence it is recommended to use other stronger algorithms such as SHA-256. The algorithm SHA-256 takes 512 bits and returns 256 bits. There are other hash functions, such as RIPEMD-160 [111]. This hash function takes an input of 512 bits and produces an output of 160 bits, and its internal operations are based on rotations, permutations, shifts, and others. 2.1.2 Software implementation of primitives for WSN There are many instances of these primitives (i.e. algorithms), and each one of them has different requirements in terms of processing power, word size, etc. Our first goal will be to review existing implementations of the less resource-demanding algorithms in order to analyze their theoretical suitability to the different classes of sensor node hardware [249, 251, 261]. 2.1.2.1 Symmetric Key Cryptography and Hash functions One of the first studies on the encryption overhead of SKC and Hash primitives in constrained microcontrollers was made by Ganesan et. al. [53] in 2003. In their software implementation, they discovered that the time required for encrypting a single plaintext was much less than the time need for executing hash primitives. Nonetheless, the average code size of a single primitive is less than 4000 bytes of ROM. For example, the encryption time of a single byte of plaintext with the stream cipher RC4 was 6µs, with RC5 was 26µs and with IDEA was 21µs, whereas the execution of the hash primitive SHA-1 is 122µs for digesting one byte. Later, in 2004 SKC primitives are introduced by means of a new cryptographic package in Mica and Mica2 nodes over the “de-facto” standard OS for sensor nodes, TinyOS1 . This package known as TinySec [91] provided the Skipjack primitive, which needed 48µs for encrypting a byte, and the RC5 primitive, which needed 33µs for encrypting a byte. RC5 was considerably better in encryption overhead than Skipjack. However, it did not include any hash primitives, so the integrity process was achieved through of CBC-MAC, which generates the message authentication code using the SKC primitives. 1 This library is only available in the 1.x version of the OS, and cannot be used in IEEE 802.15.4based nodes. 42 In 2006, Wei Law et. al. [74] and Jun Choi and Song [58] carried out a detailed analysis on the encryption overhead of other instances of SKC primitives. Their studies demonstrated that an optimized Skipjack improved in both encryption overhead (25µs) per byte and in memory overhead (2600 bytes for instructions) than the rest of algorithms (an average of 8000 bytes). Nonetheless, RC4 achieved in terms of memory overhead 428 bytes, thus it was much better than an optimized Skipjack for extremely constrained devices. Note also that the memory consumption of most primitives in terms of RAM memory is smaller than 100 bytes. 2.1.2.2 Public Key Cryptography Until 2004, most security algorithms and protocols were based only on symmetric key cryptography (SKC). The reason was quite simple: the use of public key cryptography (PKC) in Wireless Sensor Networks was considered, even labelled, as ”not possible”. However, Gura et. al.’s studies [101] opened a door of possibilities for the applicability of PKC in sensor networks. They demonstrated that Elliptic Curve Cryptography (ECC) could be used to implement PKC in highly-constrained contexts. ECC has smaller requirements both in computation and memory storage. The cause of this reduction is due to its small key sizes and its simpler primitives, in comparison with other PKC algorithms such as RSA. Moreover, Gura et. al.’s studies encouraged the research community to advance more on this topic. In fact, Malan et. al. [102] presented in the same year the first library with ECC primitives over the field F2 p , known as EccM 2.0. It worked with a key size of 163 bit, achieving an average execution time of 34 seconds in its operations (point multiplication and secret key generation). However, 34 seconds was not fast enough for allowing the creation of secure services based on PKC. For that reason, several studies started to optimize the ECC capabilities. One of the firsts ECC optimizations was presented by Gura et. al. in [101] . They ensured that performance of ECC could be improved if it used projective coordinates instead of affine coordinates to reduce the number of expensive operations, such as the inversion. Other of their suggestions was to work over a field Fp instead of F2 p . Such optimizations were taken into account by Batina et. al. [48] for their work on their hardware implementation of ECC (cf. section 2.1.3.1). As of 2008, there are several implementations using a few of the ECC optimizations previously described. For instance, Liu and Ning implemented TinyECC [62] , and Wang and Li implemented WMECC [73] . Concretely, TinyECC have a set of implementations in various elliptic curve domains (sec128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, and secp192r1) according to the Standards for Efficient Cryptography Group [113] , while WMECC only has the implementation on the secp160r1 elliptic curve domain. All of them work under TinyOS, and were codified in nesC (Network Embedded System C). Although, TinyECC and WMECC are very different both in design and in code, 43 they are relatively similar because they have in common some optimization techniques. Firstly, for getting optimization in the modular reduction in multiplications and square, they make use of pseudo-Mersenne primes (being p a field prime, whose value is 2n –c). Nonetheless, TinyECC is a little better in performance than WMECC on this aspect. It can compute modular multiplication of large integers by using Hybrid Multiplication. Secondly, they use projective coordinates, although TinyECC applied Jacobian representations (X,Y,Z) while WMECC utilized a combination of representations between a modified Jacobian coordinates (X,Y,Z,aZ4 ) and Affine coordinates (X, Y ). Lastly, both implementations utilize two methods, Shamir’s trick method and sliding window method, for reducing and improving operational calculus inverted in scalar point multiplications. The purpose of the Shamir’s trick method (also known as Strauss algorithm [165]) is to execute in parallel several point multiplications, and this way is possible to minimize the signature verification time. The sliding window method, grouping the scalars in s bits clusters, allows the reduction of the running time by pre-computing point multiplications. It is important to notice that the precomputation phase in TinyECC is much more expensive than the pre-computation phase in WMECC. WMECC uses a small window for both sliding window method and Shamir’s trick method, and its initialization time is negligible. Test - ROM size Test - RAM size ECC init ECDSA init Pub. Key Gen. Signature Verification TinyECC MICAz TelosB 28266 26048 2306 2327 1.837s 3.550s 5.225s 1.788s 1.916s 4.361s 2.431s 5.448s WMECC MICAz TelosB 57982 46156 1685 1657 1.809s 1.744s 0s 0s 1.261s 1.425s 1.348s 1.498s 2.017s 2.207 WMECC+ MICAz TelosB 29734 25774 1643 1599 1.809s 1.744s 0s 0s 1.261s 1.425s 1.348s 1.498s 2.019s 2.209s Table 2.1: Summary of Software implementations of ECC Table 2.1 shows the results obtained by the execution of TinyECC and WMECC in the elliptic curve domain secp160r12 . This table summarizes the results obtained after executing 20 rounds of the ECC primitives over the MICAz and TelosB nodes. The first rows of the table shows the ROM and RAM size reserved for the primitives and the test program, and the rest of rows shows the time spent in the execution of the primitive. The differences between both nodes can be partially explained by their architecture: the microcontroller of MICAz does not spend time in computing unsigned multiplications, but the microcontroller of TelosB (MSP430) dedicated 2 Regarding the versions used in this test, the version of TinyECC was 0.3, while the version of WMECC had no version number (it was an internal beta version) and was retrieved on January 29nd, 2007. 44 several cycles to them. Comparing both implementations, the WMECC package yields a better performance than the TinyECC package: It has no (ECDSA) initialization time, and the time it needs to sign and verify a signature is slightly faster. However, its memory footprint is simply prohibitive, thus it would be impossible to develop any kind of application for a TelosB. Fortunately, we discovered that the major penalty of the WMECC code was inside the SHA-1 function, and the TinyECC implementation is precisely characterized by an optimized SHA-1 code. Thanks to the component capabilities of the TinyOS operating system, we included the SHA-1 component of TinyECC in the WMECC code, resulting on a new version of the WMECC package (WMECC+) that is significantly better. By means of this optimization, which as of 2008 is included inside the official WMECC library, it can be perfectly possible to create PKC-based applications on a constrained node such as the TelosB. It can be concluded that the results obtained by the TinyECC and WMECC implementations effectively reduced the running time for signing or verifying a signature to less than 2 seconds. This was an important improvement with respect to the results obtained by Malan et. al.’s work. As a result, nowadays it is considered that it is possible to use software implementations of PKC in constrained sensor node. On the other hand, it would be better to reduce even more the execution time of these primitives. 2.1.2.3 Suitability of software implementations In order to analyze the suitability of these security primitives software implementations, we need to evaluate two specific factors: their execution time and their memory consumption. If the sensor nodes are not fast enough to execute the primitives, the communication process will be delayed. On the other hand, if the memory consumption of the primitives is prohibitive, sensor nodes will not be able to implement any protocols and services. Regarding execution time, both Symmetric Key Cryptography and Hash functions should not cause a penalty in communication. That is, the time required for encrypting / digesting a byte should be less than the byte time, which represents the time required for sending a single byte of data. For example, for a CC1000 transceiver with a bandwidth of 19.2kbps, the byte time is approximately 420µs, and for the 802.15.4-based CC2420 with a bandwidth of 250kps, the byte time is closer to 32µs. Most of the symmetric key primitives can encrypt a byte in less than the smallest byte time, 32µs. Besides, the penalty caused by the slowest block ciphers is not very high: RC5, for example, only uses 33µs. On the other hand, hash functions are slower: SHA-1 needs 122µs to digest a byte. However, most applications do not need to send large volumes of data through the wireless channel, thus sensor networks will not use the entire bandwidth, and the execution of the cryptographic primitives will not cause a penalty in the communication between nodes. Suffice to say that the 45 high execution time of Public Key primitives, around 2 seconds, limits their use to specific situations such as key negotiation or broadcast authentication. Regarding memory consumption, the class type of a node will determine the amount of memory available to the application logic, including the security primitives. Therefore, this class type will influence over the type of primitives that the node can run. “Class III” nodes have roughly 256kB of RAM and 4MB of instruction memory. These type of sensor nodes are powerful enough to cope with any kind of cryptographic primitive, either symmetric or asymmetric, via software. On the other side of the spectrum, we can find “Class I” nodes. These nodes, with roughly 1kB of RAM and 16kB of instruction memory, can support software implementations of block cipher algorithms such as AES, RC5, and Skipjack. However, the amount of memory left for implementing the application logic is quite small. Therefore, it may be better to use stream cipher algorithms, whose memory requirements (e.g. 428 bytes of inst. memory for RC4) are quite small. Note that, due to their extreme memory constraints, these kind of nodes are completely unable to execute Public Key Cryptography on software. Regarding “class II” nodes, they are the most common hardware platform used on wireless sensor networks. With roughly 4-8kB of RAM and 48-128kB of instruction memory, these nodes are powerful enough to support the execution of any cryptographic primitive on software. Still, considering the actual state of the art, a simple application prototype with support for all the primitives in software will consume 34kB3 of instruction memory. From this analysis we can assert that, as of 2008, sensor nodes are capable of running cryptographic primitives such as Symmetric Key Cryptography, Public Key Cryptography, and Hash functions on software. However, the inclusion of HW cryptographic modules in both “class I” and “class II’ nodes should be considered, in order to reduce the overhead posed by the implementation of the primitives. Besides, there is the need of designing and developing better cryptographic primitives, suitable for environments with small resource requirements. There are some ongoing research projects that pursue this goal. For example, in April 2008, the ECRYPT Stream Cipher Project [82] selected eight novel stream ciphers for their final “portfolio”, and some of these ciphers have been already implemented in node microcontrollers [116]. As of hash functions, there is an ongoing cryptographic hash algorithm competition that pursues the creation of a new hash function standard [83] which will surely foster the research in this field. 2.1.3 Integrations on silicon for WSN The constraints inherent to the sensor nodes advise against the total dependence on software-based implementations, even more in the case of expensive primitives 3 AES-128 consumes 8kB, and ECC consumes 26kB - including example code and the code of the SHA-1 primitive (2kB). 46 such as PKC. The time a single node spends executing these primitives could be used for other primordial tasks, or even for implementing the necessary steps that are required to provide other security properties. Consequently, our goal in this section will be to analyze the suitability of the implementation of these primitives on hardware [249, 251, 261]. 2.1.3.1 Research efforts Most hardware extensions proposed by the research community for constrained devices such as sensor nodes aim to improve the execution of asymmetric cryptography primitives, but they only exist as a mere proof-of-concept. It is then desirable that these extensions are implemented as part of the microcontrollers or as external chips so that they can be used for leveraging the load of the computing core. Nearly all efforts in the research community have been aimed on providing hardware support to Elliptic Curve Cryptography (ECC). Wolkerstorfer et. al. [94], as well as Kumar et. al. [95] developed integrated chips that can provide an excellent performance for signing a message using ECDSA, but at the cost of a high operating frequency. In the case of Wolkerstorfer, the chip has an area of 23000 gates implemented in 0.35µm CMOS technology, operates at 68.5Mhz, and is able to execute a one point multiplication over F2191 in only 6.67ms. On the other hand, the chip created by Kumar and Paar is slower, providing a point multiplication over F2131 in 18ms, but has less gates (almost 12k), and works at a slower operating frequency (around 13Mhz). These implementations are not applicable to most sensor nodes, although some microcontrollers, like the PXA271 and the ARM920T, would be able to support them. The implementation by Gaubatz et. al. [55] is more oriented to highly constrained sensor nodes, since its operational frequency is only 500kHz. In their ECC scalar point multiplication architecture, operations are performed over Fp100 , occupying a chip area equivalent to 18720 gates in 0.13µm CMOS technology, and consuming just under 400µW in signing and encrypting messages. ECDSA signatures and ECMV decryptions are performed at around 410ms, and ECDSA verifications and ECMV encryptions are performed at around 820ms. As for the optimizations, they efficiently implement modular reduction, achieve a fast inversion algorithm, and implement all arithmetic primitives in a bitserial fashion. These implementations were further improved by Batina et. al. [48]. Their Elliptic Curve Processor (ECP) included a Modular Arithmetic Logic Unit (MALU) capable of computing modular additions and multiplications, using the same cells for both purposes without having a full-length array of multiplexors. Moreover, squaring is considered a special case of multiplication, and inversion is avoided mostly by using projective coordinates. The results are promising: using 8104 gates (12kgates including RAM) in 0.13µm CMOS technology, one point multiplication over F2131 is performed in only 115ms, consuming less than 30µW in a operational frequency of 500kHz. 47 ECC is not the only primitive that researchers have considered for implementing PKC in sensor networks. In [55], Gaubatz et. al. proposed the NtruEncrypt public key cryptosystem as a possible candidate. This solution employs a small number of gates (3000) and only consumes about 20µW in an operational frequency of 500kHz. Encryption and verification operations are performed at around 58ms, decryptions are calculated in almost 117ms, and messages are signed in almost 234ms. Another scheme, Rabin’s scheme, was proposed by the same authors [55]. The design used less than 17000 gates with an average power consumption of 148.18µW, and achieved speeds as low as 2.88ms for encrypting and verifying messages. However, the downside comes from the decryption and signature operations: the processor has to employ 1.089s for executing them. Finally, the Multivariate public key cryptosystem was also considered due to its benefits regarding Quantum Computing. The implementation made by Yang et. al. [75] only included signature generation, since it was mostly oriented to RFID tags. The optimal form, the circulant (LPSQR) form of enTTS(20,28), uses 17000 gates in 0.25µm CMOS technology, and has a signature time of only 44ms and a energy consumption of 25µA in an operational frequency of 100kHz. This speed is achieved thanks to the substitution of the Lanczos’ method used in the internal operations with the symmetric Gaussian elimination. ECC Gates Technology Frequency Field Point Mult. Encryption Decryption Signing Verifying Energy NTRU Rabin MQ Wolker. Kumar Gaubatz Batina Gaubatz Gaubatz Yang 23000 0.35µm 68.5MHz F2191 9.98ms — — — — n.a. 12000 0.35µm 13.5Mhz F2131 18ms — — — — n.a. 18720 0.13µm 500khz Fp100 ∼ 400ms — — — — ∼ 133µA 12000 0.13µm 500kHz F2131 115ms — — — — ∼ 10µA 3000 — 500kHz — — 58ms 117ms 234ms 58ms ∼ 6.6µA 17000 — 500kHz — — 2.88ms 1.089s 1.089s 2.88ms ∼ 49.4µA 17000 0.25µm 100kHz — — — — 44ms — 25µA Table 2.2: Summary of Hardware prototypes for PKC Table 2.2 shows the different hardware prototypes categorized by their underlying primitive, considering the operating voltage at 3V. Note that the encryption time and other time-related rows are empty for ECC-based prototypes because the time of completing a scalar point multiplication largely influences over the operations of the algorithms. From the table, it is possible to notice that Batina et.al. hardware implementation is the best ECC prototype. Comparing it with other primitives, the prototype consumes slightly less energy, but the time for calculating an internal operation (a point multiplication for a ECC-based primitive) is a bit larger. The MQ prototype is really powerful for signing, but the size of its key is too large. Regarding NTRU, it is well-balanced, but its signature is 1.169 bits, thus it needs 48 at least 5 packets in order to send a message. Lastly, Rabin is extremely fast on encryption and verifying, although its signatures requires 512 bits. 2.1.3.2 Industrial efforts Aside from the previously mentioned prototypes developed in research environments, there are, as of 2008, very few solutions specifically designed for sensor nodes that are able to provide hardware support for cryptographic primitives. However, it is possible to take advantage of the existing hardware support included in the microcontrollers and transceivers. For example, some wireless communications standards include hardware support for symmetric key cryptography. In addition, by using processorspecific instructions sets like MMX, the execution of certain security primitives can be improved. Since all network packets must traverse the radio transceiver, this is the ideal place where the hardware support could be located. The reason is simple: usually, all communications have to be protected with SKC primitives in order to assure the confidentiality, integrity and authentication of the packets that traverse the network. Not all radio transceivers incorporate this type of support, though: only a certain group of standards require the implementation of the primitives on silicon. One of those standards, widely used on sensor networks, is the IEEE 802.15.4 standard [57]. All transceiver chips that implement the 802.15.4 standard can offer a suite of AES-based symmetric key cryptography operations for assuring the confidentiality and integrity of the network packets. The available suites are AES-CTR, AES-CBCMAC, and AES-CCM. The AES-CTR suite only provides confidentiality by using AES in Counter Mode, thus behaving as a stream cipher. AES-CBC-MAC ensures data integrity through Message Authentication Codes using AES in Cipher Block Chaining Mode (CBC-MAC), where the size of the MAC can be 32, 64 or 128 bits long. Finally, AES-CCM provides both confidentiality and integrity, by applying integrity protection using AES-CBC-MAC and then encrypting the data using AESCTR mode. In order to use these security suites, the application must create an ACL (access control list) entry consisting on a source address, a destination address, a suite, and the secret key of 128 bits to be used between the source and the destination. Once the standard-compliant radio transceiver receives a packet with security enabled, it looks up for an entry in the ACL, and applies the security suite if a match is found. Note that, although there can be up to 255 ACL entries, the standard does not specify a minimum size. Moreover, the only mandatory suite that the transceiver must offer by default is AES-CCM with a 64-bit MAC. Unfortunately, the 802.15.4 standard, and all the chips that implement it, is not exempt of flaws [68] . One of the security suites, AES-CTR, is deeply flawed, since it does not properly support replay detection and it is possible to launch Denial of Service (DoS) attacks sending a single forged packet. Also, the acknowledgement packets are not protected by a MAC, thus it is possible to forge them. Other minor 49 problems include deleting the ACL entries when entering low power mode. As a result, chip manufacturers and application designers must take into account the inherent problems of the standard. As an example, the most common 802.15.4 chip integrated in sensor nodes as of 2007, the Chipcon CC2420, implements all the recommended security suites (including the flawed AES-CTR), and also provides an additional simple encryption mode where a 128 bit plaintext is encrypted with a 128 bit secret key. The hardware implementation of these suites is quite fast: the CC2420 is able to apply AES-CCM to a single packet in 222µs, and the simple encryption mode works in only 14µs. However, its ACL has only two entries, thus the chip only provides “out-of-the-box” support for two neighbors. Regarding MMX, this SIMD instruction set was designed by Intel and introduced in 1997 as part of the Pentium MMX microprocessors. Nowadays, this instruction set is also part of the PXA27X family of microprocessors as “Wireless MMX”. This extension provides 16 data registers of 64 bits and 8 control registers of 32 bits, and is able to perform two 32-bit, four 16-bit, or eight 8-bit operations in a single instruction. These operations range from simple mathematical and logical operations like rotating, adding and multiplying to other specific operations such as calculating the vector maximum/minimum. These kind of extended instruction sets were not designed with cryptographic primitives in mind, since they are focused on providing support for multimediabased tasks such as video compression, 2D and 3D graphics, and image processing. Nonetheless, their parallelism capabilities can help to efficiently implement block ciphers such as AES or Twofish [93], which use simple operations such as XOR over a set of 8-bit registers. In the case of AES, it has a large internal parallelism, thus there is potential for optimization. On the other hand, the Pseudo-Hadamard Transformation in Twofish somewhat difficulties the parallelization process, although it is still possible to optimize certain parts of the algorithm. Hash functions can be also improved by the use of MMX instructions. For example, Nakajima and Matsui [104] explored the optimization of MD5, the RIPEMD family, the SHA family, and Whirlpool, by processing two or three message blocks in parallel using MMX registers for 32-bit oriented hash functions. This type of parallelization can be possible in embedded systems, but it has not been researched yet. There were also some optimizations for 64-bit oriented hash functions like SHA-512 and Whirlpool, but these optimizations cannot be applied to the “Wireless MMX” instruction set, because it cannot parallelize operations over 64-bit fields. 2.1.3.3 Applicability of HW designs In a sensor network environment, it would be very advantageous to have hardware modules that offer cryptographic support to the sensor nodes, leveraging the load of the computing core. While the integration of such modules in a node would surely increase its price, there might be some scenarios (e.g. military scenarios and critical 50 infrastructure scenarios) that can tradeoff overall cost for increased security. In fact, the execution time of the most resource-demanding primitive, public key cryptography, can be greatly improved by using hardware modules. The most optimal ECC prototype by Batina et. al. [48] is approximately ten times faster than the most efficient software implementation, and its energy consumption is much smaller than the energy consumption of the microcontroller. Still, the prototype performs ECC operations over F2131 , whereas it should be better to use F2163 or greater for assuring a good security level. Another useful PKC algorithm that can be integrated in hardware is Rabin. Due to the speed of its operations, it can be used in scenarios that mainly require the nodes to encrypt messages or verify signatures. While the integration of cryptographic modules in a node can be costly, there is no cost associated with using the hardware capabilities that are available by default. For IEEE 802.15.4-enabled nodes, it can be possible to use the simple AES-128 encryption mechanism already available on hardware as a foundation to implement CBC-MAC in software [92]. Also, some class III nodes can take advantage of the Wireless MMX instruction set to optimize the implementation of symmetric key primitives such as AES and Twofish. 2.2 2.2.1 Key management approaches based on SKC Key Management Systems (KMS) Security primitives, such as Symmetric Key Cryptography (SKC), Public key cryptography (PKC), can provide a secure communication channel between two or more devices with the properties of confidentiality, integrity, and authentication, protecting the information flow against any unintended recipients. This is essential to create secure protocols and a secure infrastructure, because no external entities or unintended recipients should be able to manipulate the contents of the messages exchanged by two peers. However, such security primitives need certain security credentials, i.e. secret keys, in order to work. The task of creating and distributing these keys, hence constructing a secure key infrastructure, is done by the Key Management Systems (KMS). Creating KMS protocols is a mildly complex task in distributed systems, mainly because of the capacity of the devices. However, in sensor networks, and due to the inherent constraints existent in sensor nodes (e.g. memory, computational capabilities), the design of a KMS is not trivial. There are other aspects of sensor networks that hinder this design process as well. Usually the network designer does not know the exact deployment point of a sensor node, thus it is unknown which neighbors it will have and which keys it should be preloaded with. Besides, in most cases the public nature of the network and its wireless communication channel advises against the unprotected negotiation of these security credentials. There are two simple, yet unfeasible, solutions to this problem: global keying 51 and pairwise keying. In global keying, a single key is created for the entire network, and all the secure communications must be encrypted with that key. In the other case, pairwise keying, a sensor node must store a key for every other sensor node inside the network, thus every pair of nodes will have a particular secure channel. However, global keying has no network resilience because any tampered node will reveal the global secret key, thus opening all the communications of the network to any potential attacker. Also, pairwise keying is not a scalable solution due to the memory constraints of the nodes. Due to its importance for establishing the foundations of a secure system, the creation of KMS for sensor networks have received increasing attention in the scientific literature, and many researchers have developed viable and valid KMS. Amongst all those systems, there are no “ideal” KMS that could be applicable to every scenario. The reason is simple. Every KMS give some priority to certain objectives, optimizing certain properties (e.g. scalability) of the network while neglecting others (e.g. network resilience). However, the application and its context enforce the fulfilment of certain requirements, and these requirements influence over the properties that the KMS should have. Therefore, if a KMS protocol neglects certain properties, there will be some scenarios where it will not be useful. For example, several networks have to operate underwater, with special requirements regarding long and variable propagation delays, and limited bandwidth. As a result, it is not possible to use KMS protocols that use too much bandwidth. On the other hand, other networks can provide physical data to a domotics system located inside a private home. In this case, the size of this sensor network is small, and it may not be necessary to use complex KMS protocols that offer scalability as one of their properties. 2.2.2 Analyzing Key Management Systems for Sensor Networks As it has been mentioned, due to the actual number of KMS protocols, identifying and choosing one KMS protocol for a specific application is not a trivial task. The requirements of a certain sensor network application will influence over the importance of certain properties (e.g. scalability, network resilience), and the KMS protocols may be able to comply with those properties (e.g. support networks of large size) or not (e.g. provide the credentials of other sensor nodes after a node compromise attack). Consequently, it is necessary to define which are the properties that a KMS protocol may have, and how the requirements of the applications (e.g. network size) influence over the importance of those properties (e.g. scalability). Both the enumeration of the properties and the link between the application and the properties have been underdeveloped in the literature, but are essential in order to choose an adequate KMS protocol. 52 After identifying and defining the possible properties of a KMS protocol, we will survey the state of the art in KMS protocols, classifying them according to the nature of their underlying design. By analyzing this classification, we were able to understand why the protocols included inside a specific framework provide some specific properties. As a result, this classification will include not only their features but also the properties that they explicitly have by design. 2.2.2.1 Main properties of a KMS Property name Memory footprint [Mem] Communication overhead [Comm] Processing speed [Sp] Network bootstrapping [Sec] Network resilience [Res] Global conn. [GConn] Connectivity Local conn. [LConn] Node conn. [NConn] Scalability [Sca] Extensibility [Ext] Energy [En] Description ROM and RAM used for the protocol Number of messages exchanged between peers Computational cost of the protocol Confidentiality of the bootstrap process Resistance against stolen credentials Existence of a “key path” between any node Existence of a shared secret between neighbour nodes Existence of a shared secret between any nodes Support for big networks Capability of adding new nodes Optimization of the energy usage Table 2.3: Relevant KMS Properties A Key Management System can be classified by the properties it has. As seen in Table 2.3, there are, in total, nine major properties, which are subdivided into eleven properties: Memory Footprint, Processing Speed, Communication Overhead, Security (Confidentiality), Network Resilience, Global Connectivity, Local Connectivity, Node Connectivity, Scalability, Extensibility, and Energy. For a single KMS, any property can be positive (i.e. an advantage, the system is quite good at this particular property), negative (i.e. a disadvantage, the system lacks strength on this property), or neutral (i.e. the protocol is neither good nor bad in this property). All those properties are described below. It is important to note that the requirements of a certain sensor network application influence over the importance of certain properties. For example, an unreliable communication channel will advise designers to use an algorithm with a small communication overhead. Therefore, the importance of every property (essential, important but not essential, and non-important) will be determined by the requirements of a particular application. This issue is also discussed within every property. Memory footprint. A sensor node is usually very constrained in terms of memory. For example, a MICAz node has only 4kB of Data Memory, 128kB of Instruction Memory and 512kB of Storage memory [85], whereas a TelosB node has 10kB of Data Memory, 48kB of Instruction Memory and 1024kB of Storage memory [85]. In such context, it is essential for certain applications to reduce the 53 memory footprint as much as possible. Many protocols are designed to reduce the memory space reserved to the security credentials (i.e., keys), primarily by reducing the number of keys to be used for bootstrapping the entire infrastructure. From a development point of view, it is very important to get enough free memory for implementing the logic of the application. In complex applications, if the security subsystem wastes too many resources, other subsystems of the node will have not enough space to compute their tasks. Note that it is always possible to use the storage memory to store some of the credentials and retrieve them when they are needed. Nevertheless, this approach would slow down the operations of the node. Processing speed. Sensor nodes are also constrained in terms of computing power. For example, both MICAz nodes and TelosB nodes have a 8Mhz microprocessor. Although limited, the sensor nodes are able to provide the services required by sensor networks at a decent speed. Most KMS are not very computationally expensive, and the time consumed in negotiating the pairwise keys is usually invested in sending and receiving messages through the wireless channel. However, for some computational intensive tasks like public key cryptography, the sensor nodes must spend seconds in order to achieve their tasks. The processing speed is a critical property whenever it is crucial to set up a secure channel between two previously unknown sensor nodes in a fast way. As this requirement decreases, so does the need of having a fast algorithm for negotiating a secure key. An example of an scenario where processing speed is essential is when a node located in a mobile entity, like a firefighter or a car, briefly meets with another similar node and requires to share information with it. Communication overhead. In most KMS, the sensor nodes must negotiate with their peers the security credentials that they will share. Due to the size of the data included inside the negotiation packets and the retransmissions that could happen during those negotiations, there are some protocols that are specialized in decreasing the overall communication overhead. There are many scenarios and applications where the network should reduce its communication overhead. For example, for a sensor network that must provide its services as soon as possible, even during the deployment, any extra overhead would hinder its operations. Also, if the communication channel is unreliable or prone to errors, a high communication overhead would decrease the network resources faster. Finally, there are some cases where the network should try to not advertise itself, like a deployment of a sensor network for monitoring wildlife [64]. Network bootstrapping. The purpose of any KMS is to provide the nodes in the network with some security credentials that the cryptographical primitives need for their operation. The whole process of distributing the keys must be secure by default. For example, the Confidentiality of the key distribution process in the first moments of life of the network should be assured. However, some protocols consider that the network is not in danger right after its deployment, thus it may be possible to exchange secret information without any protection whatsoever. 54 If the environment where the sensor nodes are deployed is secure enough, Confidentiality is not an issue, since there is no attacker on the area that could steal the security credentials. But problems may arise whenever the deployment area is public or when the information managed by the sensor nodes is important. As these two factors increase, so do the chances of a malicious attacker trying to hinder the operation of the network. Network resilience. In order to provide the right data, a sensor node must be located near the source of the possible events. However, this also implies that any node is vulnerable against physical capture, revealing its security credentials. In order to avoid the disruption of the network services, some protocols are designed to increase the network resilience, that is, the ability to cope with stolen credentials and rogue nodes. The importance of the network resilience varies depending on the nature of the environment where the sensor nodes are deployed and on the resources an attacker has to spent in order to capture a set of nodes. If the environment of a sensor network is heavily protected or the chances of capturing a set of nodes are extremely low, then the network designer does not need to take resilience into account. Consequently, the need for network resilience increases as the chances of a sensor node being subverted by an adversary become higher. Connectivity. This network property is related to the chance of two sensor nodes sharing the same security credentials. In general, most protocols try to provide the maximum connectivity while having a decent memory footprint or network resilience. There are three main connectivity properties: Global Connectivity, Local Connectivity, and Node Connectivity. Global Connectivity (Gconn.) is the ratio of the size of the largest isolated component in the network and the size of network. If the Gconn. is 100% it means that there is a “key path”, i.e. a secure routing path, between all the nodes of the network. Local Connectivity (Lconn.) is defined like the probability that two neighboring nodes share one secret key right after the network deployment. If the Lconn. is 100% any node can securely communicate with any of its neighbors without any negotiation. Finally, Node Connectivity (Nconn.) is the probability of two nodes of the network sharing one secret key, regardless of their location inside the network. If the Nconn. is 100% any node in the network can open a pairwise secure channel with any other node. Global Connectivity is, in most cases, an essential property, because in many scenarios all nodes are equally important for providing the network services. Since in most cases the location of the nodes inside the network is unknown, it is usually important to have a high Local Connectivity, assuring that most nodes will be able to set up a pairwise key with their neighborhood with as less overhead as possible. Finally, Node Connectivity is indispensable in scenarios where nodes are mobile, and it has some importance in risky scenarios where a certain nodes may need to open a secure channel with other nodes beyond its neighbourhood as fast as possible. Note that it would seem that Local Connectivity and Node Connectivity are the same 55 property, and, for many protocols, they are equal. However, there are some cases where the nodes are able to negotiate a secret key with their immediate neighbors, but not with any other node of the network. Therefore, it is important to make this distinction. Scalability. It is widely believed that someday there will be sensor network deployments of thousands of nodes, even hundreds of thousands. Besides, it is sometimes necessary to increment the number of nodes inside a sensor network to increase the sensing (or communication) coverage. For those reasons, a key management protocol should be able to negotiate the security credentials regardless the number of nodes in the network (Scalability), or to include new nodes after the initial deployment finishes (Extensibility). If a sensor network is composed by a small number of sensor nodes (i.e. less than 100), it can take advantage of protocols that are not scalable but offer other beneficial properties. However, as the size of the network increases, Scalability becomes a more important property. Regarding Extensibility, some scenarios must deal with dangerous external conditions that would render a number of nodes unusable. This problem is more significant in networks that have to provide a service for long periods of time. On those networks, there should be some maintenance policies involving the addition of more nodes inside the network. Energy. A sensor node relies on batteries for powering itself, thus it must minimize its internal operations (sensing, communication, and so on) in order to live a long lifetime. Since the negotiation of the security credentials is a time-consuming and energy-consuming task (inferring the security credentials, sending/receiving data to/from other peers,...), it is the purpose of some protocols to minimize the energetic impact of their operations. Although all protocols in sensor networks should be optimized to spend as less energy as possible, there are some scenarios where saving energy is not the principal aspect. For instance, a sensor network with a small useful lifetime does not need to focus its resources in saving energy. Also, if accessing and maintaining the sensor nodes is not a complicated and time-consuming operation, it is clear that the network operators could easily replace the batteries of a sensor node if needed. Finally, there are some network configurations where the sensor nodes can access to an “unlimited” energy source, such as solar energy. 2.2.2.2 KMS frameworks The problem of creating a secure and efficient Key Management System for Sensor Networks has spanned three major KMS frameworks: “Key-Pool” Frameworks, Mathematical Frameworks and Negotiation Frameworks (see Figure 2.1). Each one of these frameworks are focused on solving the KMS problem while trying to achieve a balance in the overall properties of the system. It is worth mentioning the existence of a fourth framework, public key framework, that is actually underdeveloped because of the widespread notion that public key cryptography is not feasible in sensor 56 KMS Frameworks PKC-based SKE-based Mathematical-based Key Pool-based Combinatorics Linear Algebra Alg. Geometry Negotiation-based Figure 2.1: KMS frameworks for WSN networks, whereas recent discoveries on the area (cf. section 2.1.2.2) proof the opposite. In the following, the first three frameworks will be presented, alongside with their evolution and the properties that they explicitly have by design. The fourth framework will be discussed in detail in section 2.3. “Key Pool” Framework. The “key pool” paradigm is the pillar behind one of the most important KMS frameworks to date. The main idea behind this framework is quite simple: the network designer creates a “key pool”, a large set of precalculated secret keys, and before the network deployment every sensor node in the network is assigned with a unique “key chain”, i.e. a small subset of keys from the “key pool” (Key pre-distribution phase). After the deployment, the sensor nodes can interchange the identification numbers of the keys from their “key chains”, trying to find a common key (shared-key discovery phase). If they find that they share a common key, that key (or a derivation from that original key) will be used as the pairwise key between the two sensor nodes. Otherwise, if two nodes want to communicate but they do not share any key, they will try to find a “key path” between them in order to negotiate a pairwise key (path-key establishment phase). The basic scheme, introduced by Eschenauer and Gligor [122], is able to provide a low memory overhead, due to the reduced size of the “key chain” in comparison with the size of the “key pool”. It is also scalable, since the growing factor of the “key chain” given a certain fixed connectivity is low. However, the overall connectivity of the network depends on the probability that two nodes share a key in their “key chains”, that is, the relationship between the size of a “key chain” and the size of the “key pool”. The network resilience is affected by this as well: the more keys that are obtained from stolen “key chains”, higher the chances of breaking the communication channels. The communication overhead is also affected by the connectivity and the number of keys in the “key chain”: every sensor node has to broadcast the ID number of all their keys, and the lower the connectivity, the higher the number of “key paths” that needs to be found. Finally, the overall security of the scheme is affected by the unprotected transmission of the ID numbers of the keys. The original scheme has been expanded by many researchers, trying to solve or to 57 improve the limitations associated with the “key pool” paradigm. One approach is to optimize the assignment of the “key chains” by using Deployment Knowledge, i.e. the knowledge of the final location of the nodes in the field. If a network designer knows the area where a certain node is going to be deployed [128] (and, in some cases, the probability density function that models the final location of the sensor nodes [139]), it is feasible to construct and assign the “key chains” in a more efficient manner, increasing the connectivity. The network designer may also know which are the neighbors of any sensor node inside the network [131], thus creating a totally optimized “key chain”. Another approach is to reduce the communication overhead by linking the IDs of the keys from a “key chain” to a simpler, smaller parameter. One idea is to cluster the keys from the “key chain”, where a sensor node can deduce the IDs of the keys inside a cluster given its representative ID [124]. Another idea consists in deducing the IDs of the keys inside the “key chain” by using the ID of the sensor node and a certain function [133, 137]. Finally, it is also possible to associate a key from the “key chain” with the identity of the sensor nodes that also holds that key [121]. In all cases, the communication overhead is reduced to one ID per node. Other approaches change the behavior of the sensor nodes in the shared-key discovery phase, requiring them to have more than one common key in their “key chains” in order to increase the network resilience, at the cost of decreasing the network connectivity [121]. Finally, the construction of the “key pool” can also be optimized. One example is to shape the “key pool” as a grid and assign a row and a column of keys to every node √[138], increasing the network Scalability (every sensor node receives a total of 2 ∗ n keys, being n the number of sensor nodes inside the network) and decreasing the communication overhead if the designers of the network take advantage of the Deployment Knowledge. Mathematical Framework. Certain KMS use mathematical concepts belonging to the fields of Linear Algebra, Combinatorics and Algebraic Geometry for calculating the pairwise keys of the nodes, being by combining certain information after the deployment phase or by specially crafting a “key pool”. All these KMS belong to the Mathematical Framework, since they share some common properties. On the one hand, their connectivity is very high, since by design almost all sensor nodes can have a pairwise key with any node in the network. Also, the communication overhead is low, since the nodes need to share only small bits of information. On the other hand, the memory footprint is usually high because all nodes need to store certain mathematical information (e.g. rows of a matrix), and the network resilience and the scalability is highly tied to the design of the underlying mechanisms. In the field of Linear Algebra, the most important scheme is the Blom scheme [126]. In this scheme, there is a (λ+1)×N public Vandermonde matrix G, a symmetric random (λ + 1) × (λ + 1) secret matrix D, and a matrix A where A = (D · G)T . If every node i stores a row of A and one column of G, every node can calculate the pairwise key it shares with another node j by doing A(i)·G(j) = A(j)·G(i). On the field of 58 Combinatorics, the Generalized Quadrangle and Symmetric Design models [120] are the most important. Using Generalized Quadrangles GQ(s, t) a network designer can construct a “key chain” of size s+1 where GQ(s, t) = GQ(q, q) = q 3 +q 2 +q+1 >= N . Otherwise, by using Finite Projective Planes F P P (q) a network designer can construct a “key chain” of size q + 1 where q 2 + q + 1 >= N . In both Generalized Quadrangles and Finite Projective Planes q must be a prime power. Finally, on the field of Algebraic Geometry, the most important scheme is based on Bivariate Polynomials [132]. In this scheme, every node A in the network is able to solve a function f (A, y), where y is the identity of another node of the network, and f is a bivariate polynomial of degree λ generated over a Finite Field Fq , being q a prime large enough to contain a pairwise key, that satisfies the property f (x, y) = f (y, x). All the previous schemes, with the exception of the Generalized Quadrangle, provide full connectivity inside the sensor network, since every node can calculate by itself the pairwise key that it shares with another node. However, these designs are often difficult to apply, and they are not very scalable: The Linear Algebra and Algebraic Geometry schemes needs a high amount of memory in order to store the mathematical structures (i.e. rows of matrices and polynoms, respectively), and the Combinatorics schemes only work as intended for certain network configurations (i.e. when GQ(q, q) = N or F P P (q) = N ). These problems can be partially solved by combining the basic schemes with the “key pool” paradigm. As a result, the keys belonging to a pool are not keys, but tuplas of (D, G)i matrices [126] or bivariate polynomials fi (A, y) [132]. Also, in the schemes that already use “key pools” such as the Combinatorics schemes, the solution consist on constructing new “key chains” that are derived from the previously existent chains, adding a probabilistic extension to the deterministic core [120]. The drawback of these solutions is that the nodes lose, although not to a great degree, their perfect connectivity. There are some variations to the original schemes that pursue to increase the network scalability as well, sacrificing other features like Local Connectivity. One Blom-based scheme divides the network into a bipartite key graph, i.e. a graph where all nodes in a set U are connected to at least one node in another set V and viceversa, but there is no connection between nodes belonging to the same set [130]. As a result, it is quite possible that many nodes will not share a pairwise key, but more nodes can be included inside the network. Another polynomial-based scheme assigns a virtual coordinate to every node, and all nodes belonging to the same virtual row or column can calculate a pairwise key [132]. Both schemes can be enhanced if the deployment information is known in advance [130],[132]. It is always possible to improve the features of the basic schemes if the deployment information is available in advance as well. On Blom-based schemes the nodes belonging to the same area (i.e. an hexagon) share rows of the same secret matrix A, while nodes belonging to adjacent areas can share rows of certain secret matrices F to assure Global Connectivity [135]. The same idea can be used in polynomial-based schemes: nodes deployed inside the same area can get 6 distinct polynomials, thus 59 they will be able to communicate with the nodes of the same area and with the nodes in the adjacent areas [136]. Such schemes increase the network scalability without sacrificing the local and Global Connectivity. Negotiation Framework. It can be possible to let sensor nodes negotiate their keys with their closer neighbors just after the deployment of the network, requiring none or few steps in the Pre-distribution phase. This self-configuration approach is usually seen as non-feasible because any potential adversary can attack the network at this point and obtain the messages that contain the secret keys, effectively thwarting the overall security of the network. However, it can be assumed that in several scenarios the sensor nodes and the network itself are not endangered in the first steps after the deployment, because the resources that an attacker has to spend in order to break the security of the network does not justify the benefits obtained from that attack. All the schemes that take this assumption into account can be considered part of the Negotiation Framework. All these schemes are extremely efficient in terms of memory, because all sensor nodes only have to store the pairwise keys they share with their neighbors, scalability, since the size of the network is not an issue, and resilience, as a sensor node can only disclose the keys it share with its neighbors if an adversary takes control of it. They also have a small energy consumption and a small communication overhead (required to send the information needed to construct the keys and calculate the keys themselves). Nevertheless, the connectivity of the network is strictly restricted to, basically, one-hop neighbors. Also, the overall security of these schemes is usually non-existent, since any entity listening to the communication channels can obtain or derive the secret keys. As a result, these schemes are usually applied under the assumption that there is little or no treat against the integrity of the network in its first moments of life. Improvements over the basic scheme involves increasing step by step the radio transmission of the negotiation messages with different key materials, in order to avoid other sensor nodes, being friendly or malicious, to learn the pairwise key between two nodes [119, 134]. The nodes can be also preloaded with a master secret key in order to provide some level of protection to the first negotiation steps [123]. If the network designer has an accurate knowledge of the deployment of the network, i.e. the groups in which the network is going to be divided, that master key can also be different for every group [127]. 2.2.3 KMS Guidelines One of the initial problems that a network designer must face in order to create secure sensor networks is to choose an adequate KMS protocol for an specific application. However, at present, it is quite difficult for those designers to select a single protocol from all the existent research. In their descriptions, the protocols does not clearly state which are the advantages and disadvantages they offer. Also, although there are 60 some research on the field [117] that offers a comparison of every KMS protocol, it is still difficult for a designer to use those surveys as a tool, because they do not clearly state which are the properties that those protocols have and in which scenarios they would work better. To solve this matter, we have developed a methodology (henceforth known as “the (KMS) Guidelines”) [256] that allows any user to easily select a KMS protocol based on the needs of the network application. The main goal of the Guidelines is threefold. First, to facilitate the deployment of any real-world WSN application. By providing network designers with a useful methodology, simple and very straightforward, it will be a simple task to include support for key management in any sensor network, because the network designer can distinguish in every situation which protocol is the most suitable to the context where the network is going to be deployed. The Guidelines are very easy to update, thus any final user can quickly take advantage of any new protocols designed by the research community. Second, to check whether the current state of the art in KMS can offer a viable solution to the key establishment problem in wireless sensor networks. It is possible to classify the existing applications for sensor networks into groups, and derive some common properties from the requirements of those applications. By using those requirements and the guidelines, we can analyze which are the actual KMS that are more suitable to the actual applications. Third, to determine where researchers should focus their effort in order to create useful KMS protocols that could be used in real-world applications. Research on key establishment for sensor networks is still strong as of 2008, but it is not exactly known which are the most important research goals that are yet to be solved. The guidelines will help to locate those goals by analyzing the application groups that does not have a set of optimized key management protocols. 2.2.3.1 The methodology The first component of the Guidelines is a table (the KMS Table) that contains KMS protocols in two-column format. This table classifies the SKC-based KMS4 according to their properties (cf. section 2.2.2.1), rather than their features or the underlying mechanisms employed in their construction, such as Key Pools or Combinatorial Designs. As the main purpose of a protocol is to fulfill the application requirements, this approach is more suitable for comparing the applicability of KMS protocols to real world scenarios. The first column of the KMS Table specifies the name of the protocol in our Guidelines (AT -number), followed by its “official” name given by their authors and a reference to the publication where the detailed description of the protocol can be 4 Note that, for the sake of comparing SKC-based key management protocols with PKC-based key management protocols, we have included Public Key Cryptography inside the KMS Table, labelled as AT-XX. 61 found. The following columns shows the advantages and disadvantages of every protocol, that is, which properties does and does not fulfill a certain protocol. This table, alongside with a deeper explanation about its notation, is shown in section 2.2.5. The second component of the Guidelines is a set of rules that are applied sequentially to the KMS Table. The main purpose of this process is fairly simple: to exclude the KMS protocols that are not suitable for a certain WSN application given its requirements. Therefore, a network designer will not need to know and review all the existent KMS protocols, just the protocols given as an output. These rules are explained below. 1. The network designer must find out which properties are essential for a KMS in the context of the application, called Main Properties, and which properties are important but not essential in the context of the application, called Secondary Properties. A network designer can deduce which properties are needed in his/her own scenario by analyzing the requirements of the scenario and the application based on the descriptions included in section 2.2.2.1. 2. The network designer must select all the KMS from the KMS Table that contain one or more main properties in its advantages. This set of KMS will be called KMS Candidate Set, and will contain all the possible protocols that could be used for protecting the specific sensor network. 3. From the KMS Candidate Set, the network designer must discard all the protocols that have one of its main properties or secondary properties in its disadvantages. Note that if a property α is affected by the variables used on the design of the protocol (i.e., the property is (-) or (X) or (×)), it should be ignored. As a result of this step, the KMS Candidate Set will only contain protocols that at least are good enough to respect the properties of the application. 4. From the resulting KMS Candidate Set, the network designer must discard all the protocols that does not have every main property in its advantages. As a result of this step, the KMS Candidate Set will contain protocols that provide the essential properties required for the application. 5. Finally, the network designer must review the protocols contained in the KMS Candidate Set, and choose the more suitable for the context of the application. Note that it is possible to order the protocols inside the set by importance: Those protocols with all or some of the secondary properties in its advantages will be more interesting than the others. Also, the network designer must pay attention to the design parameters of a protocol if a main or secondary property α is dependant on them. It is possible to obtain an empty KMS Candidate Set while applying the Guidelines, in case where there is no protocol that is able to fulfill the requirements needed 62 Figure 2.2: KMS Guidelines web application. Input screen & Results screen by the application. Such situation is normal with the current State of the Art: There are still some open issues in scenarios that researchers have to solve. It is also perfectly possible that there is no existing protocol that is able to fulfill the needs of the designer, since every protocol must balance the importance of its properties in order to provide the key management services. In either case, a network designer can apply the Guidelines again, but this time marking the properties that does not fulfill the requirements of steps number 3 (Main Property ∨ Secondary Property ∈ Disadvantages [×]) and 4 (Main Property 6∈ Advantages [X]). Using the resulting list, the network designer can choose some KMS that have less marked properties. After this point there are two options: Apply one of those protocols for that scenario, or start a line of research based on the resulting protocols in order to create a new one that would fulfill the requirements of the scenario. Since the area of Key Management Systems is very dynamic, it is important to assure that the Guidelines are extensible, i.e. that new protocols could be added without major effort. This is in fact fairly easy: once a new protocol is discovered, its creator should point out what advantages and disadvantages has the protocol according to the properties presented in section 2.2.2.1. After that, the protocol can receive an unique number inside the Guidelines, and be added into the KMS Table. 2.2.3.2 The prototype Given that manually applying the Guidelines is a tedious process, we have designed a web application that greatly facilitates the task of obtaining a KMS protocol. This web application uses as an input the main and secondary properties required 63 by a certain scenario. Then, it returns the possible protocols that the designer could use sorted by relevance, even in the case that there is no KMS protocol that can fulfill the designer’s needs. This web application has been published under the Spanish project CRISIS (CRitical Information Infrastructures Security based on Internetworking Sensors)5 , and it is free to use for both academic and industrial purposes. The application is simple and easy to use. First, as seen in Figure 2.2a, the user must input the Main Properties and the Secondary Properties of its application, alongside with other information such as if the location of the sensor nodes are known in advance. The interface of the application also offers context-sensitive help for every listed property. After the properties are selected, the application will select the most adequate KMS protocols and will present them to the user in order of importance, as shown in Figure 2.2b. Lastly, it is possible to set up the application to produce a printer-friendly result, thus the user can print such results and review them later. 2.2.4 Applying the KMS Guidelines As aforementioned, there is no Key Management System that can be considered as “ideal” for every scenario: the context and the requirements of the applications that are needed for every scenario are quite different from each other. However, it is possible to recommend which set of KMS protocols can be used in certain scenarios by applying the KMS Guidelines. From the requirements of every scenario, the Guidelines will output the most suitable set of protocols. This section will show how the Guidelines can be applied, and how it fulfills the three goals that were presented before. First, a single application belonging to a scenario will be analyzed, and the output of the Guidelines will be discussed. Second, a set of real-world applications will be grouped according to their network features and size, and it will be shown what kind of Key Management Systems can be used for every one of the groups according to the Guidelines. Third, there will be some discussions about the results produced by the Guidelines, that will help on determining where researchers should focus their effort in order to create new KMS protocols. 2.2.4.1 Using the methodology: a concrete example One of the goals of the methodology was to provide network designers with a tool, which could be used to find a set of suitable KMS based on the requirements of their specific applications. A way of demonstrating this functionality is to elaborate an example step by step. By using it, is possible to verify how the protocols that better adjust to the original requirements are obtained as an output, using as input the properties of an scenario. 5 http://www.isac.uma.es/CRISIS/ 64 The example application will be “Monitoring of Ageing Infrastructures” [21]. In this application, a wireless sensor network system was deployed to monitor the condition of a stretch of London Underground tunnel due to the construction of a new tunnel on that area. In this specific trial, sensors transmitted the data to the Base Stations located in the columns, and then the data was forwarded to a central database. To point out the importance of this scenario, it should be noted that many London Underground tunnels are over 75 years old, for example, and there are still miles of cast-iron Victorian water mains in the UK. The first step consist on finding out which are the main properties and the secondary properties of the application. The main property is Global Connectivity, and the secondary properties are Resilience, Security, Local Connectivity, Scalability, Extensibility, and Node Connectivity. We will now explain in detail why these properties were chosen. Global Connectivity is considered a main property because in this application it is essential for all sensor nodes to be able to find a routing path with each other at any time, since an underground tunnel is a risky environment. The importance of the application and the characteristics of the underground tunnel also make necessary to consider Node Connectivity and Security as secondary properties: a node should have some chances to connect to other nodes beyond its direct neighbourhood for safety purposes (e.g. when the nodes in the immediate neighbourhood are inoperative), and the initial keys exchanged in the deployment site should be safe. Another three properties to consider as secondary properties are Scalability, Local Connectivity, and Extensibility. Regarding Scalability, the number of nodes required to provide the services is considerable, although mostly sure less than 1000. About the Local Connectivity, it is important for the neighbours to have as few negotiations as possible for establishing the pairwise keys. Finally, Extensibility is important because there might be the need of changing existent faulty nodes during the course of the application. Now, there are some properties that are neither main nor secondary. Speed is not an important issue because there is no need to quickly set up the sensor nodes for negotiating the keys. About Memory, at this point it is still unknown which are the exact requirements of the application, but the task of this network is just to collect data and route it to the base station. The Communication Overhead is also not essential. The network size is not large and dense enough to consider reducing the overhead to a bare minimum. Also, the importance of the Local Connectivity reduces the possible number of negotiations. Lastly, Energy is always a factor to consider in every sensor network, but in this case the nodes only calculate the keys on the start of the deployment, and the network was useful only while a new tunnel was being built. After the Main and Secondary properties are discovered, it is time to apply the Methodology, constructing the KMS Candidate Set. The network designer can do this operation manually, following the steps in section 2.2.3.1, or automatically, using 65 the web application shown in section 2.2.3.2. The results are the following: ATXX (Public Key Cryptography), AT-25 (Polynomial-Based Key Predistribution), AT-41 (Dynamic Cluster-Based KMS), and AT-04 (Hybrid Designs - Generalized Quadrangle). Arrived to this point, it is up to the network designer to review and choose which protocol is more suitable for his/her application. Since the network is organized in a pseudo-cluster fashion (sensor nodes in the tunnel, base stations on columns), the cluster-based protocol AT-41 can be applied. Still, AT-25 is simple, and offers all the secondary properties as advantages. In addition, AT-XX (PKC) is complex, but also can be a good choice for this scenario. The rest of the protocols (AT-04) could also be useful, although many of their properties depends on the final parameters of their design. 2.2.4.2 Grouping real-world applications Scenario Type One-Hop Net. Simple Simple Net. Medium Large w. Mobile B.S. Small Small w. Mobile Nodes Medium Short-lifetime Net. Small Examples Industrial machinery Office Monitoring Wine production industry Wildfire detection Vehicle Tracking Assisted-living residents Safety-critical structures Measuring noise pollution Properties LConn GConn, LConn Sca, GConn, LConn Sca, GConn, LConn, Comm GConn, LConn NConn, GConn, Comm, LConn NConn,Sca,GConn,Comm,LConn LConn, Comm, En, Ext Table 2.4: Classification of Real-World WSN applications The number of scenarios where sensor networks can be used is specially broad. Generally speaking, WSNs can be used in applications where sensors are unobtrusively embedded into systems, consequently involving operations like monitoring, tracking, detecting, collecting or reporting. Such applications can range from simple systems like measuring the environmental situation of a household to critical applications like monitoring the health of workers and the robustness of the infrastructures of a coal mine. In order to analyze which are the Key Management Systems that are more appropriate for a set of well-known applications, we have grouped them in Table 2.4 according to the mobility of the nodes and the network size. For all groups, we also have detailed which must be the properties that are to be considered main (in roman type), secondary (in italic type), or should be ignored (in strikethrough text). We outline why we have chosen these properties to be (un)important for a certain group in the following paragraphs. The most simple networks are the One-Hop Networks, in which there is a single base station and all the sensor nodes can communicate with it in one single hop or 66 two. In these networks, the Local Connectivity is a main property, since all sensor nodes need to talk with the base station and, in some cases, with each other. The next group is the Simple Networks, which are the sensor networks with only one base station and with a network of static nodes. Regarding small networks (less than 50-100 nodes), Local Connectivity is a secondary property, since it is permitted to have some negotiations to create a pairwise key with the neighborhood. However, Global Connectivity is a main property, because in small networks all nodes should be connected to the network. In Medium networks (less than 500-1000 nodes), both Global Connectivity and Local Connectivity are secondary properties, since the redundancy of the network allows to have a tiny fraction of the network unconnected. Scalability is also a secondary property, due to the size of the network. Lastly, in Big networks (more than 1000 nodes), Scalability is a main property because of the number of nodes. Other secondary features are Local Connectivity, Global Connectivity, and Communication Overhead, since the number of broadcasted messages should be reduced due to the high number of nodes. When the Base Station is mobile, it would seem that the situation is very different than the previous scenarios. However, this is not the case. In Networks with Mobile Base Station(s), the sensor nodes will have the same neighbors in all their lifetime, with one exception: the base station. Therefore, the management of the keys in the networks will be almost like the Simple Networks, but Global Connectivity and Local Connectivity should be always main properties, due to the need of the routing algorithms to be always connected to the base station. The situation changes drastically when the sensor nodes are the devices that move over the deployment field. In both small and medium-size networks of Mobile Nodes with a Static Infrastructure, the Node Connectivity is a main property, because it is essential to assure that all nodes are able to communicate with each other. Another property to be considered as a secondary property is the Communication Overhead, since the negotiations in certain periods of time can be plentiful. Finally, the importance of other Connectivity properties (Global and Local) and Scalability is the same as in Simple Networks. In addition, Speed could be considered as an important property (main or secondary) depending on the actual speed of the nodes. Finally, for Short Lifetime Networks, the application just requires to measure a certain factor for a short period of time. This lessens the complexity of the network, and as a result, properties like Energy and Extensibility become irrelevant. Moreover, Communication Overhead could turn out to be important because of staggered deployment and the significance of start providing services as soon as possible. Note that, both in Table 2.4 and in the previous paragraphs, we have not considered properties such as energy, extensibility, memory, resilience, security, and speed. This is because, for classification purposes, we only point out those properties that are relevant to the mobility of the nodes and the network size. The requirements of the application and its context will indicate the importance of all those properties, 67 regardless of its mobility and size. 2.2.4.3 Protecting the groups through the methodology Once is known how to apply the Methodology to a single application, it is time to infer what are the best protocols and frameworks that could be used for protecting the groups presented in the previous section. In fact, applications belonging to the same group share most of their primary and secondary properties. Hence, the protocols that are suitable for a certain group will be also suitable, in most cases, to an application belonging to that group. This analysis will have two parts. First, we will analyze the suitability of the protocols by considering only those properties indicated in Table 2.4. Second, we will take into account the properties indicated in Table 2.4 and all the other properties: energy, extensibility, memory, resilience, security, and speed. After performing the first analysis, it can be concluded that, as of 2008, it is perfectly possible to provide link-layer secret keys to almost any kind of static sensor network if only the size of the network and the node mobility are considered. In onehop network, simple - small networks, and short-lifetime networks, there is no need to use complex protocols that need of “key pools” or complex negotiations: simple mathematical schemes such as the Blom Key Predistribution and Polynomial Key Predistribution are enough. On simple - medium/large networks scalability starts to become an issue, and it is better to use other kind of protocols, such as Cluster-based protocols like Panja or any “Key Pool” protocol. Note that other simple negotiation schemes, such as Key Infection, may also work on any kind of static scenario. Scenarios with Mobile Base Stations do not pose a problem, since a sensor node may share a preinstalled pairwise key with that Base Station. As a result, it is possible to use almost any of the protocols utilized on static networks. On the other hand, in networks with mobile nodes, the number of protocols that fulfill their requirements is limited. Nevertheless, Blom and Polynomial Key Predistribution may work for small networks, but for bigger networks it may be necessary to use PKC-based protocols. While the results from the first analysis look promising, the results from the second analysis are not so optimistic. One of the major problems that arises is the issue of the extensibility of the network. Almost all the existing KMS protocols can afford to install a few nodes after its initial deployment. However, most protocols include by design a limit to the number of nodes that can be added after the initial deployment. Therefore, the network designer will have almost no protocols to choose if his/her application needs to change nodes or add new nodes from time to time. A similar problem happens with Resilience. Many protocols are partially resilient, and in fact, it is perfectly possible to choose a KMS protocol that provides partial resiliency and partial extensibility. However, few protocols provide an almost perfect resilience: that is, when a node that do provide little or no information about the keys contained in other nodes. In this case, the explanation is simple: most protocols base 68 their design either on including more keys inside the node or on embedding certain mathematical information (e.g. a column / row of a matrix), shared with other nodes, that can be used to calculate a shared key. The case of Speed is quite interesting. This property is essential in those networks where mobile nodes must establish a secure channel as fast as possible (almost immediately) with other peers. However, there are very few protocols that can assure Speed and Node Connectivity at the same time. Moreover, if Extensibility is required, then there is only one useful protocol, and this protocol (based on Generalized Quadrangles) is highly dependent on knowing in advance the maximum number of sensor nodes included inside the network. Regarding the security property, if the security of the network during its initial deployment is not important, it can be possible to use some negotiation-base protocols such as Key Infection in all the groups. However, if the Extensibility or even the Resilience (in some cases) of the network becomes important, these protocols can not be applied to the network. As for Energy, very few protocols are especially energy-consuming. The existing KMS protocols are also optimized to consume as less memory as possible, so Memory is not a big issue. As a final note, it is necessary to point out one particular problem that may arise in certain large networks. It has been said in section 2.2.4.2 that, for large networks, the redundancy of the network allows to have a tiny fraction of the network disconnected, thus global connectivity can be considered as a secondary property. However, there are some situations (e.g. in actuator networks) where there should be no sensor nodes disconnected from the network. In these situations, global connectivity becomes a main property, and most “key pool” based frameworks cease to be useful. Even more, if extensibility becomes of importance (even as a secondary property), very few KMS protocols (mostly those based on mathematical frameworks) can become useful for the network designer. 2.2.4.4 Open issues The actual state of the art in KMS protocols for sensor networks allows the protection of certain specific applications, mostly those applications with a small / medium network size, limited resilience capabilities against malicious attackers, and able to add some new sensor nodes after the deployment. As a result it can be affirmed, at least from the point of view of key management, that the communication channel of some sensor networks applications can be adequately protected as of 2008. However, there are some issues that remain to be solved. One of the open issues is to develop a KMS protocol with superior Extensibility and Resilience properties. In fact, most KMS protocols do not pay attention to the need of adding new sensor nodes to a sensor network after its deployment. This particular viewpoint needs to change. Regarding Resilience, it is true that most KMS protocols are based on redundancy (including extra security credentials) in order to allow nodes to find and share pairwise keys with their neighbourhoods. While there 69 is the need of finding new design assumptions beyond redundancy, it is not clear if it can be possible. The creation of KMS protocols that are particularly suitable for certain scenarios is another open issue that needs to be solved. Two of those scenarios have been highlighted in the previous section, and are i) a network with mobile nodes that move at a high speed, and ii) a static network of medium / large size where no nodes should be disconnected from the network. It is even possible to find an additional scenario: iii) an extensible network with almost no communication overhead, that is, where the communication overhead is a main property (e.g. underwater sensor networks). At this point, we should also analyze why protocols AT-25 (Polynomial Key Predistribution) and AT-13 (Blom Key Predistribution) are recommended most of the time for covering the security requirements of the applications. In fact, network designers may not understand this output from the methodology after reviewing the internal operations of these protocols, because they are extremely simple and are used as the building blocks for more complex and evolved protocols such as AT-26 (Key Predistribution using Random Subset) and AT-20 (Multiple Space Blom). The reason is that these complex protocols were created for assuring the scalability of sensor networks, supporting dozens of thousands of nodes. However, most actual applications are small or medium-size, with a number of nodes ranging from 50 to 1000. And for this size, the simpler protocols are good enough. Still, the security of these primitives used by mathematical-based frameworks have not been formally proven yet. If these primitives were to be found not secure, then there would be more scenarios that need to find an adequate KMS protocol. Before finishing this discussion, it is necessary to point out the possibility of using Public Key Cryptography to distribute the keys of the network. In fact, in almost all applications and scenarios, PKC is one of the most optimal solutions for setting up and maintaining the keys of sensor networks. This technology was deemed unsuitable for nodes due to their hardware constraints like limited computational speed or memory size, but advances in the field like elliptic curve cryptography (ECC) demonstrated that it is possible to calculate PKC operations in nodes (cf. section 2.1.2.2). Discussions about the use of PKC will be included in section 2.3. 70 2.2.5 KMS Table The notation used in the KMS Table is explained in the following table: Notation X/ × (X) / (×) (-) Description Advantage / Disadvantage Advantage / Disadvantage, depending on the design of the protocol Either advantage or disadvantage, depending on the design of the protocol Location of sensor nodes known before deployment Also, every property is abbreviated: Communication Overhead (Cm), Global Connectivity (GC), Local Connectivity (LC), Node Connectivity (NC), Energy (En), Extensibility (Ext), Memory Footprint (Mm), Network Resilience (Rs), Scalability (Sc), Security (Sec) and Speed (Sp). Protocol AT-01 - Key Infection [119, 134] AT-02 - Generalized Quadrangle [120] AT-03 - Symmetric Design [120] AT-04 - Hybrid Designs - Gen. Quadrangle [120] AT-05 - Random Pairwise Key [121] AT-07 - Q-Composite [121] AT-08 - Basic Prob. Key Predistribution [122] AT-09 - BROSK [123] AT-10 - Cluster Key Grouping [124] AT-11 - Co-operative Pairwise Key Est. [125] AT-13 - Blom Key Predistribution [126] AT-14 - Multiple Space Key Predistribution [126] AT-16 - Key Predistribution and D.K.[128] AT-17 - Transmission Range Adjustment [129] AT-18 - Mul. ID-Based one-way Function [130] AT-20 - Mul. Space Blom (MBS) [130] AT-21 - DMBS [130] AT-23 - Closest Pairwise Key Predis. [131] AT-24 - Grid Based Key Predistribution [132] AT-25 - Polynomial Based Key Predis. [132] AT-26 - Key Predis. using Random Subset [132] AT-30 - RINK-RKP [133] AT-33 - YG Blom Scheme [135] AT-34 - LLK [136] AT-36 - PIKE [138] AT-37 - RKDS-PDF [139] AT-40 - LEAP [140] AT-41 - Dynamic Cluster-Based KMS [141] AT-42 - Panja [142] AT-XX - Public Key Cryptography-based KMS Cm (×) × X (×) (×) X (-) × X (×) (×) × × X (×) X X X (×) GC X X X (-) (-) (×) (×) X (×) X (×) (-) (×) X (×) X X X (×) (×) X X (×) (×) (×) (-) X X X X X LC NC En X × (X) × X X (-) (-) (-) (-) (×) (×) × (×) (×) X × (X) (×) (×) × X X (×) (×) × (-) (×) (-) (×) (-) X × (×) X X X (×) (×) X X (×) (-) X X X X Table 2.5: KMS Table (×) × × X × (×) × (×) (×) (×) × (×) (×) × × X × Ex Mm Rs Sc Sec × X X X × × X × X × (×) X (-) × (×) (×) X X (×) (-) (-) (×) X (×) X × X × (-) (×) X X X × (-) (-) (-) (-) X X X (-) X X (×) × × X × X × (-) (-) (-) (-) X X × X X × X × (-) X (-) X (-) (-) (-) X (-) (-) X (×) (×) X X × (-) X X X (-) X X (×) X X X (-) X × X X (×) X × X × X X X X X Sp (X) X X X × × × × X × × × × X × × 71 2.3 2.3.1 Key management approaches based on PKC The case of traditional asymmetric cryptography One of the multiple uses of asymmetric cryptography has been to securely bootstrap the pairwise key of two nodes over a public communication channel. Two nodes just need to interchange their public keys and some information that will be used to create the pairwise secret key and its associated values like initialization vectors. If the public keys are certified by a trusted third party, both peers will be also authenticated. It has been proven that PKC is possible for sensor nodes using Elliptic Curve Cryptography, for example by using an implementation of the ECDH-ECDSA handshake protocol [118] or by using the Elliptic Curve version of the Menezes-QuVanstone protocol, ECMQV [158, 157]. In fact, an implementation of ECDH is available for sensor nodes in the TinyECC library6 [62]. With all the optimization switches enabled, a MICAz node executes the ECDH operation in 2.1s, using ∼16kB of ROM and ∼1.7kB of RAM. The TelosB executes the ECDH operation in 3.5s, although the memory consumption is smaller: ∼11kB of ROM and ∼1.8kB of RAM. As a result, it could be possible to create a framework that uses PKC to allow any sensor node to negotiate pairwise keys with its neighbors. In terms of the properties presented in section 2.2.2.1, this solution is extremely good in terms of security, scalability, connectivity, and resilience, with a small communication overhead while sending and receiving the public keys. The disadvantages of this solution in comparison with the other frameworks is the high amount of memory required to implement the actual PKC procedures and the time and energy needed to complete the negotiation. It would seem that for every single situation PKC (or any hybrid framework based on PKC) is the ideal KMS protocol, obsoleting every KMS protocol based on symmetric cryptography. Nevertheless, PKC is still an expensive and slow operation, and in networks that are not very complex other simpler protocols based on symmetric cryptography can be used. In other words, there is no need to use a full-fledged car where a motorbike can be equally useful. Nevertheless, if the network is sufficiently complex (e.g. slow mobile nodes, very large networks, hard requirements on Resilience and Extensibility), or if there is the need of other services such as signatures, then PKC is an ideal candidate. Besides, it is also possible to mix the benefits of the previous frameworks with the capabilities of the Public Key Cryptography in Hybrid Frameworks, where the PKC would be used only for rekeying and for cases where two sensor nodes does not have a common secret key. In addition, the improvements utilized in other symmetric keybased frameworks can be also used for enhancing any possible PKC-based protocol. For example, if the deployment information of the sensor nodes is already known, the 6 The ECDH, ECIES, and ECDSA are supported in the v1.0 of the TinyECC library. 72 certificates of sensor nodes located in the neighborhood of a node can be preloaded, avoiding the need to receive and verify such public keys. However, the use of PKC alone is not enough for protecting a WSN: it is necessary to have a Public Key Infrastructure (PKI) that can be able to establish a trusted identity, amongst other things such as defining the certificate format that is more suitable for sensor nodes. In the following sections we will describe how to define a PKI for sensor networks according to the PKIX model, while optimizing the certificate format to the specific features of sensor networks. 2.3.1.1 Adapting PKI for Sensor Networks The major components of a PKI, according to the PKIX model [143], are the following: the clients, which are the users of a PKI certificate; the Certification Authority (CA), which establishes identities and creates digital certificates; the Registration Authority (RA), which is responsible for the registration and initial authentication of the clients; and the Repository, which stores the certificates and the Certification Revocation Lists (CRLs). In order to provide the services of a PKI, such as initialization and certification, these components and their functionality must be mapped to the entities of wireless sensor networks [255]. It is not trivial to apply a PKI to wireless sensor networks, though. It is necessary to develop an infrastructure that has the several distinctive features of sensor networks in mind. For example, all sensor nodes have to be configured by the base station in a secure environment before their final deployment in the network. Also, the architecture of the network is highly decentralized, where the autonomous sensor nodes collaborate towards a common goal, but all the critical information produced by the network must be sent to the Base Station. Although sensor networks are highly decentralized by nature, it is easy to notice that there is a central system, the base station, that takes the role of initializing the nodes of the network and interacting with the data provided by all these nodes. Therefore, it is clear that the base station can be considered as the Certification Authority. It is the base station, then, the entity responsible for creating the digital certificates that associate the identity of a node with its public/private key pair. Moreover, the base station can also take the role of Registration Authority, since it is in charge of assigning the identity of all the nodes of the network before the deployment of the network. As a side note, the base station can also create the public/private key pair of a nodes, as the base station is trustworthy, and it is not efficient for a node to create its own key. Although the base station may also act as the Certificate Repository, this is not practical for sensor networks. Most sensor nodes would need to route their information through other sensor nodes in order to obtain the certificate information from the base station, and the costs of doing so are quite prohibitive in terms of energy and time. Therefore, it is better to adopt a decentralized solution for retrieving the certificates. Every sensor node will have its own certificate, and will provide it to 73 any neighbor that requests it. This exchange can be done in the first steps of the lifetime of the network. In order to deploy a PKI, it is also obligatory to select an appropriate hierarchy model. Fortunately, in most cases the architecture of sensor networks is extremely simple: one base station that serves as the interface to hundreds or thousands of sensor nodes, which only know and can communicate with the nodes belonging to the same network. Therefore, it is safe to consider that most sensor networks will use a simple hierarchical PKI architecture, with only one root CA. The basic functionality of a PKI, that is, registration, initialization, key generation, certification, and certification retrieval, is done as follows: The base station creates the public/private key pair of a sensor node, assigns an unique identification to it, and creates the digital certificate that links that unique identification with its public key. Later, it initializes the contents of the sensor node (such as configuration data and internal programming), including its certificate and the certificate of the root CA (i.e. the base station itself). Later, when a sensor node retrieves the certificate of one of its neighbors, it will be able to check its validity using the root CA certificate. 2.3.1.2 Certificate format for Sensor Networks In every PKI it is essential to use certificates for storing and exchanging the public keys. A certificate is a piece of information that includes the public key of an entity, its identity, a signature by a trusted third party (the Certification Authority explained in the previous section) that certifies the link between the identity of the owner of the certificate and its public key, and other useful information. By using certificates, any device can check if the public key of another device is valid or not. As we are implementing a PKI for wireless sensor networks, we need to define which should be the certificate format used inside the network. While it could be possible to use the X.509v3 ITU-T [144] standard format for defining the contents of the digital certificates, this standard defines many fields that might not be necessary for the interactions between the members of a single sensor network. In the following we will analyze the different fields of the X.509v3 certificate format, in order to check whether some fields are not necessary or must exist. • Version. Version Number of the Certificate. If the certificate is a simplified certificate to be used only inside a sensor network, this field is not necessary. • Serial Number. Serial number of the certificate, which must be unique for each certificate issued by a given CA. Inside a sensor network, this field is not necessary. • Signature Algorithm Identifier. Signature algorithm ID for the certificate signature algorithm. Since sensor nodes have limited capabilities, they should 74 Version Serial Number Signature Algorithm Identifier Issuer Name Validity Period (Not before/after) Subject Name Subject Public Key Information Issuer unique ID / Subject unique ID Extensions Certificate Signature Algorithm Certificate Signature Figure 2.3: Simple Certificate format for sensor networks support only one type of certificate signature algorithm (e.g. SHA-1/ECDSA). Therefore, for a sensor network, this field is not necessary. • Issuer Name. Identifies the entity that signed (and issued) the certificate. Since there is only one CA in a sensor network, this field is not necessary. • Validity Period (not before / after). Indicates when this particular certificate is not valid: before a certain date, after a certain date. For a sensor network, this field must be changed. See section 2.3.1.3 for details. • Subject name. Identifies a particular sensor node. This field must contain the ID of the sensor node. • Subject Public Key Information. This field contains the ID of the Public Key Algorithm and the Public Key of the subject (sensor node). Since the Public Key Algorithm is unique for all the sensor nodes (cf. Signature Algorithm ID field), this field must contain only the public key of the sensor node. • issuerUniqueID, subjectUniqueID. These are optional fields, containing the issuer unique ID attribute and the subject unique ID attribute. These fields are not necessary. • Extensions. Extensions for the X509v3 certificate. Since a sensor node certificate has no extensions, this field is not necessary. • Certificate Signature Algorithm. Signature algorithm name for the certificate signature algorithm. As with the Signature Algorithm ID, this field is not necessary. 75 • Certificate Signature. Contains a digital signature. By generating this signature, the CA certifies the validity of the information contained within this certificate. This field must exist. We can conclude that the format of a digital certificate that stores the public keys of the members of a certain sensor network (shown in Figure 2.3) can be simplified. Due to its reduced size, the memory consumption and the communication overhead of the PKC protocols will be reduced significantly. Note, however, that this simplified certificate should be used only in the interactions between members of the same network. If a sensor node exchanges certificates with other node located in another context (e.g. another sensor network, or an Internet host), or if a mobile base station wants to interact with the members of the network, this kind of simplified certificate is not useful. 2.3.1.3 Other PKI functions in Sensor Networks Thanks to the characteristics and peculiarities of the architecture of wireless sensor networks, it is possible to identify which are the elements of sensor networks that take the role of the PKI entities (CA, RA, repository). However, there are still other PKI functions whose applicability must be discussed, such as Key Pair Recovery, Key Update, Cross Certification, and Key Revocation. Some of these functions are not required for a sensor network context, whereas other functions could be important in certain scenarios [255]. The issues of key archival and key pair recovery are simple to solve. Since the base station is considered as a fully trusted entity, all keys pairs can be stored inside it, or in another secure server that interacts with it for redundancy purposes. On the other hand, the issue of cross certification is a bit more complicated. For typical sensor networks, with only one base station that behaves as the root CA, it is not necessary to use cross-certificates. However, there are some scenarios where more than one base station can be able to control the network. In addition, in hierarchical configurations, a set of “cluster heads” control a cluster of sensor nodes. It is then necessary to know if we should use cross-certificates to manage these extra base stations and cluster heads. The additional base stations can be static, also serving as an interface to the functionality of the network, or mobile, directly querying the sensor nodes about their status. Inside the network, mobile base stations can behave as any other sensor node, except that they should have a short-lived (full) certificate signed by the main base station, with enough privileges to influence over the behavior of the sensor nodes. Regarding static base stations, there are usually only a few of them, thus it can be possible to simply preload their certificates, signed by the root CA, into all sensor nodes. Finally, it is not necessary to consider a cluster head as a CA, since it has no need to either produce or sign any certificate of the other members of its cluster. As a conclusion, there is no need to use cross-certificates, even in these complex scenarios. 76 Regarding Key Revocation and Key Update, there may be some situations in which it is important to use these services. For example, if one node is subverted by an adversary but is discovered by the network, the base station should revoke its certificate. Alerting the nodes about the revocation of the previous certificate is not easy, though. It is prohibitive for the nodes to retrieve a Certificate Revocation List from the base station (pull model), since querying the base station is a timeconsuming and energy-consuming process. A better solution would be to use a online revocation notification mechanism (push model), where the base station alerts the nodes of the network that a certain certificate has been revoked. Upon receiving this authenticated message, the nodes of the network can then request the public key of the node that had its certificate revoked. If the malicious node is replaced with a new legitimate node, this new node will be able to provide a valid certificate. On the other hand, the user of the network can retrieve the malicious node and reprogram it. Updating the certificate of this now legitimate node is an easy task, since the human administrator of the network has to physically obtain the node for putting inside the new certificate, alongside with the private key associated with it. An aspect related to node revocation, and mentioned in mobile base stations, is the existence of a validity period inside all certificates. Nevertheless, for short-lived networks, the context of the application (“deployment”) is more important than the expiration date. For instance, a short-lived network may measure the level of ambient noise in a certain area for a week or more (Deployment A), but later the same sensor nodes from that network can be reutilized in another area (Deployment B ). It should be then more efficient to identify the deployment rather than the expiration date, and discard any certificate that belongs to a previous deployment (e.g. a sensor node belonging to the Deployment B does not accept any certificate that was created during Deployment A). The root CA, then, has to assign new certificates to all the sensor nodes before deploying them in a new area. In long-lived networks, such as a network that monitors the overall conditions of a vineyard for an entire year, this notion of “deployments” may not be enough, since the sensor nodes will be continuously monitoring an environment for a long period of time. Nevertheless, the expiration date of the certificates used in these networks should not allow a situation where the sensor nodes are not able to use the PKI services. What expiration date should be chosen is unknown at present due to the lack of long-lived real-world deployments, but it is safe to assume that there is no danger in configuring the certificates of the network to have no expiration date. If there is no external influence, the network will function properly during all its lifetime. And if there is any malicious influence, such as the destruction of the base station, the owner of the network can “reboot” the whole network, reconfiguring it and labelling it as a new “deployment”. 77 2.3.2 The case of identity-based cryptography 2.3.2.1 Identity-based and self-certified cryptography Certificates are needed to establish a trusted link between a public key and the identity of its owner (in our case a sensor node) in order to prevent man-in-the-middle attacks. In a WSN, nodes are supposed to establish pairwise keys with nodes that belong to the same network, and forbidden to do so with nodes or devices outside the network. Therefore, in key establishment protocols like ECMQV or ECDH, the nodes exchange their certificates in order to prove their identity and their membership. It is natural to assume these certificates take the form of a signature by the base station on the identity and public key of the node, as seen in section 2.3.1.2. However, as we have discussed before, sensor nodes public and secret keys are set up by the base station. Such a setting can be viewed as a key-escrowed system, that is, there exists a trusted party who computes the secret keys of the users. As a consequence one is tempted to analyze the applicability of different forms of key-escrowed public key paradigms, like identity-based cryptography or self-certified cryptography [250]. The concept of identity-based cryptography was proposed by Shamir in [162], aimed at simplifying certificate management inherent to the deployment of public key cryptography. The idea is that an arbitrary string uniquely identifying a user (such as an e-mail address or a telephone number) can serve as a public key for a cryptographic scheme. The user can not compute the corresponding secret key anymore, but instead it must authenticate itself to a Key Generation Center from which it obtains the corresponding private key via a secret channel. The interest of IBC for WSN is that in IBC systems only the identity of the sensors must be exchanged, and thus public keys and certificates need not be sent. This results in an energy saving for the point of view of the communication between sensors, which can be very considerable depending on the sensor’s transmitter. Additionally, in WSN the base station can naturally play the role of the Key Generation Center in an IBC system. The base station embeds the secret key prior to its use in the field, and no authentic nor secret channel is needed for key setup. On the other hand, the self-certified cryptography paradigm [152, 160], advocates for using an implicit certificate, as opposed to the traditional approach, where public keys are authenticated by verifying an explicit certificate. The practical consequence of using an implicit certificate is that the certificate and the public key are merged into a single object, named as self-certified key. This again results in communication savings, since now the sensors exchange identities and self-certified keys, but no certificates. The conceptual consequence is that the link between the identity and the self-certified key is only known to be authentic in the the course of a cryptographic operation (i.e. only the legitimate user will be able to decrypt a ciphertext encrypted with a self-certified encryption scheme). 78 2.3.2.2 Preliminaries and energy consumption estimations In order to explain the applicability of identity-based cryptography and self-certified cryptography to sensor networks, it is necessary to explain in more detail the concept of Elliptic curves (already presented in section 2.1.1), and introduce the concept of Pairings. In addition, we show some energy consumption estimations for elliptic curve computations and for the transmission and reception of information. In these estimations, we also introduce the concept of Underwater Sensor Networks. Elliptic curves. Let GF(p) be a finite field. An elliptic curve over the field GF(p) can be defined by an equation of the form y 2 +a1 xy +a3 y = x3 +a2 x2 +a4 x+a6 where a1 , . . . , a6 ∈ GF(p) and satisfy certain restrictions (see [151]). A point of the curve is specified by a pair (x, y) satisfying the above equation. It is possible to define an addition law on the points of the elliptic curve together with a special point called the ”point at infinity”, obtaining an abelian group G of order a certain integer n. We use multiplicative notation for the group G and assume it is finitely generated by an element g, i.e. every element h ∈ G can be uniquely written as h = g α for some α ∈ Zn . An exponentiation refers to the operation g r for a randomly taken r ∈ Zn . A multi-exponentiation mexp(l) refers to computing g1r1 · · · glrl , where g1 , . . . , gl ∈ G and r1 , . . . , rl ∈ Zn , an operation that can be computed more efficiently than just computing l single exponentiations due to Shamir’s trick (the Strauss algorithm [165]). Pairings. We start by defining the concept of bilinear map. Let G = hgi and GT be cyclic groups of order q for prime q > 3. A map e : G × G → GT to a group GT is called a bilinear map, if it satisfies the following two properties: - Bilinearity: e(ga , gb ) = e(g, g)ab for all integers a, b - Non-trivial: e(g, g) 6= 1 in GT . and if it is efficiently computable. Bilinear maps are usually implemented using the Weil or modified Tate pairings on an elliptic curve. Let G = E(GF (r)) denote the group of points of an elliptic curve E over the finite field GF (r) with order divisible by q such that q also divides rα − 1, where α is the order of r in Z∗q and is called the MOV embedding degree. The modified Tate pairing t(·, ·), which is the bilinear map usually recommended, takes values in the subgroup GT of GF (rα )∗ of order q. These curves correspond to the Type 1 category defined in [149, 153], and there exist efficient hash functions H : {0, 1}∗ → G mapping bit strings to elements in G. Additionally, the equality e(u, v) = e(v, u) holds for any u, v ∈ G. Evaluation of computation energy. Our energy figures for elliptic curve computations are based on the work [164]. The elliptic curve used is E1 : y 2 = x3 − 3x + 157 79 over the field GF (p) where p = 2160 − 2112 + 264 + 1. GF (p) allows for several computational efficiency improvements, such as improved squaring in the group of points G of the elliptic curve and efficient square roots in the finite field GF (p). The latter is specially relevant in our context, since thanks to the technique of point compression [100], a point h = (x, y) ∈ G can be represented only by its x-coordinate together with a so-called compression bit. With the x-coordinate in hand, one can find y satisfying y 2 = x3 − 3x + 157 by computing one square root in GF (p). This results in at most two square roots, and the compression bit determines the right solution. The amount of energy consumed by a primitive on a given processor is proportional to the time needed to execute the primitive. Using the ATmega128L [146] microcontroller, the energy spent to compute an exponentiation on the above curve is 30.02mJ, while computing a multiplication in GF (p) requires 12 · 10−3 mJ [164]. On the other hand, theoretical and experimental figures suggest that computing multi-exponentiations mexp(2) and mexp(3) take about 22% and 44% more energy respectively than that of a single exponentiation [148]. Since p = 3 mod 4, computing a square root modulo p requires 160 finite field products and 1 division by virtue of Algorithm 3.36 in [159]. One field division can be computed by one field inversion and one field product. Field inversion can be done trough the Greatest Common Divisor (GCD) algorithm. By using Lehmer’s [156] GCD computation method, the cost of 1 division equals 9 field multiplications [147]. Hence, a square root modulo p consumes around 2 mJ. Regarding pairings, [164] measures that computing the Tate pairing in the (supersingular) elliptic curve E2 : y 2 + y = x3 + x2 over GF (2171 ) and with MOV embedding degree α = 4 consumes circa 258.44 mJ. Additionally, computing an exponentiation in G = E2 (GF (2171 )) can be done within 50.93 mJ. A hash evaluation H : {0, 1}∗ → G requires roughly the same amount of processing time/energy than an exponentiation [161]. Evaluation of communication energy (RF and Acoustic). The cost of using the communication channel largely impacts the energy required to run any interactive protocol between sensor nodes. The most common situation in wireless sensor networks is to use the air as a transmission medium, and most prototypes have been deployed on such conditions. However, there are some scenarios where the sensor nodes should be deployed in a lake or in the sea. For example, sensor networks can be used to monitor oil platforms or underwater construction projects. These networks have received the generic name of Underwater Sensor Networks (UWSN) [145]. In these UWSN, it is unpractical to use radio frequency transceivers, because of the severe attenuation factor presented by water. In order to open a communication channel between sensors, it is necessary to use specific underwater acoustic modems. These modems have different features than RF transceivers, and as a result, sending one bit of information carries a high energy penalty. The differences between radio transceivers and acoustic modems in terms of the 80 Working range Throughput Tx. consumption Rx. consumption µJ per bit (Tx) µJ per bit (Rx) Mica2 150 m 19.2 kbit/s 81mW 30mW 4.12 µJ 1.52 µJ MICAz 100 m 250 kbit/s 52.2mW 59.1mW 0.204 µJ 0.23 µJ UWM2000 1500 m 9600 bit/s 4000 mW 800 mW 416.66 µJ 83.33 µJ UWM4000 4000 m 4800 bit/s 7000 mW 800 mW 1458.33 µJ 166.66 µJ Table 2.6: Analysis of the energy consumption of acoustic modems. energy consumed by transmitting and receiving one single bit of data are highlighted in Table 2.6. It can be seen that the difference in consumption (J per bit) between acoustic modems and RF transceivers is not negligible. For the radio transceivers, we have considered the most popular sensor nodes platforms as of today, which are the Mica2 and the MICAz [85]. The Mica2 transceivers use the 868/916 MHz ISM bands, while the MICAz transceivers use the IEEE 802.15.4 standard. For the acoustic modems, we have considered the UWM2000 and UWM4000 modems [155], which are commonly used in research literature. These results have been obtained using the information contained in the modem and node datasheets, under the following assumptions: i) For the UWM2000 modem, we have used the mean of the transmission power indicated in its datasheet (2-8W). ii) For the transceivers used in the MICA2 and MICAz nodes, we have considered the most expensive transmission mode, which is theoretically able to send one bit of data to the maximum working range. 2.3.2.3 Authenticated Key Exchange (AKE) In this section we present two algorithms that use identity-based cryptography and self-certified cryptography to establish a pairwise key between two sensor nodes. The description includes the overall energy cost of the algorithms and the number of bits sent and received by a single node. For the sake of comparison, we also include one of the most standardized key exchange protocols using “traditional” public key cryptography. Traditional approach: ECMQV. The elliptic curve version of the Menezes-QuVanstone authenticated key exchange protocol, ECMQV [158, 157], is described in Algorithm 2.3.1. We provide an abridged version of the scheme which suffices for our purposes. KDF is a key derivation function, which can be implemented with SHA-160 for example. Node A’s public key is pkA = g xA , where xA is A’s secret key. Similarly for node B. In the first stage, the nodes exchange and verify certificates vouching for the fact that pkA and pkB are public keys from nodes belonging to the network. In a second stage, they exchange their ephemeral keys EA = g yA and EB = g yB , 81 where yA , yB are taken at random from the finite field GF(p). We assume certificates are minimalist and take the form of ECDSA [166] signatures (rA , sA ) and (rB , sB ) by the owner/manufacturer of the network on the messages idA ||pkA and idB ||pkB respectively, where || denotes concatenation. Algorithm 2.3.1 ECMQV key derivation for entity A Require: Elliptic curve domain parameters G, g, n, the secret keys xA , yA and the public elements pkA , pkB , EA , EB Ensure: A secret key KAB shared with entity with public key pkB 1: m ← dlog2 (n)e/2 {m is the half bitlength of n} m 2: uA ← (ux mod 2 ) + 2m {ux is the x-coordinate of EA } 3: sA ← (yA + uA xA ) mod n 4: vA ← (vx mod 2m ) + 2m {vx is the x-coordinate of EB } 5: zA ← sA vA mod n s z 6: KAB ← KDF (EBA · pkBA mod n) Entity B runs the same algorithm by simply swapping the values (xA , yA , pkB , EA , EB ) in Algorithm 2.3.1 with (xB , yB , pkA , EA , EB ) and finally obtains the same key KAB (cf. [157]). The energy cost is dominated on the communication side by the exchange of public keys, certificates and ephemeral keys. Public keys have 161 bits (160 bits + 1 compression bit), each ECDSA certificate has 320 bits, while each ephemeral key contributes with 161 bits. Additionally, each message exchanged includes a payload consisting on communicating nodes identities, protocol ID, message ID, checksum, and low-level headers and footers, amounting to a total of 384 bits. In total, 2820 bits are exchanged, which means every such a bit is sent and received by each node. On the computation side, each party has to verify an ECDSA signature, whose individual computational cost is dominated by one multi-exponentiation mexp(2), and has to run the ECMQV protocol, whose computational cost is dominated by one exponentiation plus one multi-exponentiation mexp(2). Additionally, two square roots are computed by each node to obtain the y-coordinate from the x-coordinate of pkA , pkB , EA , EB . The overall energy cost of ECMQV for a single node thus amounts to 2mexp(2) + 1exp + 2sqrt(+trans 1410 bits + recv 1410 bits) (2.1) Authenticated key exchange using identity-based keys. Due to the lack of any standardized identity-based key exchange protocol, we describe a non-interactive scheme due to Sakai, Ohgishi and Kasahara, the SOK protocol [163, 150]. We provide an abridged version of the scheme which suffices for efficiency considerations. In order to run the key agreement protocol, the nodes only need to exchange their identities. The SOK protocol does not need any further communication between the parties for building a shared authenticated key. However this key remains unchanged for the 82 life-time of the system (and thus this protocol does not provide forward secrecy), which can be unacceptable in some applications. SOK was the first identity-based authenticated key agreement protocol proposed in the literature. In the SOK protocol, a hash function H : {0, 1}∗ → G is included in the domain parameters of the system, together with gz , where the master secret key z is only known to the base station. Node A’s secret key is skA = H(idA )z , while node B’s secret key is defined as skB = H(idB )z . Algorithm 2.3.2 SOK non-interactive ID-based key derivation for entity A Require: Bilinear map domain parameters G, G1 , e, gz , n, the identity idB and the secret key skA Ensure: A secret¡key KAB shared¢ with entity with identity idB 1: KAB ← KDF e(skA , H(idB )) ¡ ¢ Entity B on inputs idA , idB , skB computes the same key KAB ← KDF e(skB , H(idA )) thanks to the bilinearity of the pairing, e(skA , H(idB )) = e(H(idA )z , H(idB )) = e(H(idA ), H(idB )z ) = = e(H(idB )z , H(idA )) = e(skB , H(idA )) The energy cost on the communication side consists on exchanging messages containing communicating nodes identities, protocol ID, message ID, checksum, and low-level headers and footers, amounting to a total of 2 · 384 = 768 bits. This is a huge communication saving with respect to the 2820 bits required by ECMQV. On the computation side, each party has to perform one hash operation, which is roughly equivalent to 1 exponentiation in G, plus 1 pairing computation. Thus, the energy cost of SOK key agreement for a single node amounts to around 1expG + 1pairing(+trans 384 bits + recv 384 bits) (2.2) Self-certified ECMQV. In this variant of ECMQV, implicit public key certificates are used. A similar implicit certificate approach is included in Mandatory ECC Security Algorithm Suite submitted to the IEEE P802.15 Working Group for Wireless Personal Area Networks [154]. We provide an abridged version of the scheme which suffices for efficiency considerations. The base station has a public key g0 = g z , where z ∈ Zn is secret, and h : {0, 1}∗ → Zn is a public hash function. The self-certified public keys of the sensors are wA = g rA and wB = g rB , with rA , rB only known to the owner, while the corresponding secret keys known to the nodes are xA = z · h(idA , wB ) + rA and xB = z · h(idB , wB ) + rB with xA , xB ∈ Zn . The ECMQV-like public keys pkA , pkB can be obtained by combining the public information together with self-certified keys, 83 h(id ,w ) h(id ,w ) i.e. pkA = g xA = g0 A A · wA and pkB = g xB = g0 B B · wB . This allows to build a self-certified version of ECMQV. In this version, sensors only exchange their self-certified public keys and the ephemeral keys EA and EB , where yA , yB are taken at random from the corresponding finite field. It is important to note that they do not exchange nor verify any certificates. Algorithm 2.3.3 Self-certified ECMQV key derivation for entity A Require: Elliptic curve domain parameters G, g, n, g0 , h, the secret keys xA , yA and the public elements wA , wB , EA , EB Ensure: A secret key KAB shared with entity with self-certified public key wB 1: m ← dlog2 (n)e/2 {m is the half bitlength of n} 2: uA ← (ux mod 2m ) + 2m {ux is the x-coordinate of EA } 3: sA ← (yA + uA xA ) mod n 4: vA ← (vx mod 2m ) + 2m {vx is the x-coordinate of EB } 5: zA ← sA vA mod n ¢ ¡ s h(id ,w ) 6: KAB ← KDF EBA · (g0 B B · wB )zA mod n Entity B runs the same algorithm by simply swapping the values (xA , yA , wB , EA , EB ) in Algorithm 2.3.3 with (xB , yB , wA , EA , EB ) and finally obtains the same key KAB . The energy cost is dominated on the communication side by the exchange of selfcertified public keys and ephemeral keys. Self-certified and ephemeral keys contribute each with 161 bits, and can be exchanged in the same message7 . Therefore the communication overhead of self-certified ECQMV amounts to 384 · 2 + 161 · 4 = 1412 bits, a 50% saving with respect to traditional ECMQV. On the computation side, running the self-certified ECMQV protocol has a computational cost dominated by one exponentiation plus one multi-exponentiation mexp(3), plus two square roots in GF (p) for point decompression. The energy cost of ECMQV for a single node amounts to 1mexp(3) + 1exp + 2sqrt(+trans 706 bits + recv 706 bits) 2.3.2.4 (2.3) Total energy cost and applicability discussions Using the previously shown equations, together with the energy figures from section 2.3.2.2, it is possible to calculate the energy consumption of a sensor node engaged in the key exchange protocols in “normal” and underwater sensor networks, in terms of mJ. The results are shown in Table 2.7. It turns out that, for the MICA family of motes, self-certified ECMQV is the most efficient protocol. This is not surprising, since self-certified ECMQV requires 50% less information to be exchanged 7 The reason is that the validity of the self-certified keys is not checked until the key exchange has been performed. 84 than ECMQV, while keeping a similar computational cost profile. The energy savings of self-certified ECMQV with respect to ECMQV vary from 30% to 50% depending on the platform considered. MICA2 ECMQV SOK SC-ECMQV UWM2000 ECMQV SOK SC-ECMQV Comp. 107.26 309.39 77.25 Comp. 107.26 309.39 77.25 Comm. 7.95 2.16 3.98 Comm. 704.98 191.99 352.99 115.21 311.55 81.23 812.24 501.38 430.24 MICAz ECMQV SOK SC-ECMQV UWM4000 ECMQV SOK SC-ECMQV Comp. 107.26 309.39 77.25 Comp. 107.26 309.39 77.25 Comm. 0.61 0.166 0.306 Comm. 2291.23 623.99 1147.24 107.87 309.55 77.56 2398.49 933.38 1224.49 Table 2.7: Energy cost of authenticated key exchange (in mJ) The unexpected energy performance is to be found with the underwater sensor nodes, for which identity-based AKE (the SOK protocol) has better performance that standard AKE (ECMQV) for the UWM2000 and UWM4000 nodes, and it even surpasses self-certified ECMQV in the case of UWM4000 nodes. Such a (energy-wise) efficiency result for identity-based cryptography primitives is unknown in traditional wired systems. The reason is quite simple: identity-based key exchange protocols exchange less data than the other protocols, and the more energy is required to send a bit of data, the more optimal identity-based key exchange becomes. In fact, due to the special features of the underwater environment, the transmission channel is very slow and prone to errors, so application developers not only consider the possible energy savings, but also the number of bits exchanged during the key establishment process become of paramount importance. Precisely, identitybased AKE only exchanges 384 bits, while self-certified AKE exchanges 706 bits and standard AKE exchanges 1410 bits. As a result, if energy is not an issue (e.g. due to the use of a more powerful battery in the underwater node), it will be better to use identity-based cryptography. On the other hand, if energy is considered to be a problem, the features of the acoustic modem will influence over the choice between identity-based AKE and self-certified AKE. CHAPTER 3 SELF-AWARENESS SERVICES This chapter deals with the importance of self-awareness services as essential tools for achieving self-configurability in the context of sensor networks. We explain why the sensor protocols can benefit from the existence of these mechanisms. Next, we develop several situation awareness mechanisms, which can detect abnormal events that might affect the behaviour of the network, and we also describe how these awareness mechanisms are influenced by the nature of the sensor network application. Afterwards, we develop a blueprint of a distributed IDS architecture that fulfills all the following properties: full network coverage, simplicity, and adaptability. We describe its components, its detection mechanisms, and some support protocols that may improve its functionality. Finally, we study the applicability of trust management systems in sensor networks, discovering how the intrinsic nature of the sensor networks paradigm influences over these systems, and subsequently we define how the components of a trust management system should behave in sensor networks. 85 86 3.1 3.1.1 Protocol diversity Heterogeneity of core protocols The core protocols can be considered as the minimal set of protocols that sensor networks needs in order to function properly. These protocols are: routing (transmitting a packet from one sensor node to another sensor node), data aggregation (briefing many sensor readings into one single piece of data), and time synchronization (synchronizing the clocks of the network). The properties and the behaviour of these protocols is highly dependent on the characteristics of the sensor network application where they are running, because they must be adapted to the requirements of the scenario. As a result, there are many core protocols from where an application designer can choose the most optimal for his/her scenario. 3.1.1.1 Routing In most sensor networks, it is not possible for a sensor node to open a direct communication channel with the base station or with any other sensor node in the network. It is then necessary to make use of a routing service to send the information from the sender to the receiver. However, due to the specific features of sensor networks, the constrained nature of sensor nodes, and the requirements of every specific application (e.g. some applications may require the latency of the data to be as small as possible), there exist different routing protocols that provide service for particular scenarios. Some of the challenges that need to be taken into account while designing these routing protocols are the following [167]: Node deployment (existence of deterministic paths), energy consumption (balancing energy conservation and accuracy), node/sensor heterogeneity (different sets of sensors and node capabilities), fault tolerance (environment adaptability), scalability (work with a huge number of nodes), mobility (existence of mobile devices), transmission media (MAC1 -design, error rates), connectivity (variable topology), coverage (assure area coverage), aggregation (data fusion), and quality of service (assure a certain latency). The need to solve these specific challenges have spawned multiple routing protocols, which can be classified according to their underlying network structure, their internal functionality and operations, and their relationship with other core protocols such as data fusion [168][167]. Underlying network structure. • Flat Routing. This category refers to routing protocols for multi-hop flat configurations. In flat networks, each node typically plays the same role and nodes 1 This MAC refers to Medium Access Control, not to Message Authentication Code 87 collaborate to perform the sensing task. In this case, the network usually implements simple routing tree protocols, where the information is sent from the nodes to the base station. • Data-centric Routing. Whenever the base station wants to query the network for specific flows of information, it can use data-centric routing. These protocols view the network as a huge distributed database system, where the sensor nodes provide data according to the necessities of the base station. This type of routing can be also known as Query-Based Routing. • Hierarchical Routing. Some routing approaches focus on providing services to hierarchical configurations, where the network is divided into clusters. Such configurations can be either static, with powerful cluster heads, or dynamic, where cluster heads are elected dynamically. For dynamic configurations, most routing algorithm also specifies how to construct the clusters. • Location-Based Routing Protocols. In this kind of routing, sensor nodes are addressed by means of their locations. It can be possible to use relative coordinates, obtained by exchanging the distance between neighboring nodes, or absolute coordinates, retrieved through small low-power GPS receivers. Protocol operation. • Multipath Routing Protocols. Some protocols use multiple paths rather than a single path in order to enhance network performance. Alternate paths are usually kept alive by sending periodic messages. Therefore, network reliability can be increased at the expense of increased overhead in maintaining the alternate paths. • Negotiation-Based Routing Protocols. The main idea of these protocols in WSNs is to suppress duplicate information and prevent redundant data from being sent to the next sensor or the BS. This purpose is achieved by conducting a series of short negotiation messages before the real data transmission begins. • QoS-based Routing. In QoS-based routing protocols, the network has to satisfy certain QoS metrics (delay, energy, bandwidth, etc.) when delivering data to the BS. These quality requirements can be provided by constructing the routing path according to QoS factors or by maintaining certain QoS information of a neighbourhood, amongst others. • Coherent and Noncoherent Processing. This type of routing protocols are closely related to the aggregation processes. In noncoherent routing, sensor nodes will locally process the raw data before it is sent to the aggregators. In coherent routing, the data is forwarded to aggregators after minimum processing (e.g. timestamping, duplicate suppression). 88 3.1.1.2 Aggregation Due to the redundancy of the network, nodes staying in the same area (e.g. a kitchen) will collect the same sensory data under normal circumstances. Sending all this sensory data to the base station is a waste of energy, mainly due to the energy consumption associated with the communication channel. Therefore, it is necessary to reduce the existence of redundant data. This proccess is commonly known as aggregation. A more formal definition of in-network aggregation is presented in [169]: ‘In-network aggregation is the global process of gathering and routing information through a multihop network, processing data at intermediate nodes with the objective of reducing resource consumption (in particular energy), thereby increasing network lifetime’. The aggregation process is closely related to the routing service. In fact, aggregation capabilities are usually embedded inside routing protocols. For example, the routing paths may be constructed according to the physical layout of the environment, in order to adequately capture the sensory data of certain regions of interest. A classification of the routing protocols according to their data fusion capabilities is as follows [170]: • Routing-driven algorithms. Routing schemes in this class focus on the route design without explicit consideration of the fusion process as an additional requirement. The goal of such algorithms is to minimize the total communication cost for gathering the data to the sink, and aggregation only occurs opportunistically when routes intersect. • Coding-driven algorithms. This class of algorithms focuses on coding techniques at the source nodes for data reduction. Through compression, it is expected that the data amount can be minimized, and further in-network fusion can be either completely avoided or significantly reduced. • Fusion-driven algorithms. In fusion-driven routing algorithms, routing paths are heavily dependent on data correlation in order to fully benefit from information reduction resulting from data aggregation. In contrast to coding-driven algorithms, fusion-driven algorithms often assume that data can be fused more than once along its path, as long as it is deemed beneficial. There are other aspects that have to be taken into account while developing aggregation protocols. The network configuration (flat or hierarchical), the strategies used to identify the nodes (existence of data-centric protocols), and others, greatly influence over the internal behaviour of an aggregation protocol. Also, some protocols seek a balance between lifetime maximization and quality of service, while other protocols try to improve one factor in order to provide a better service for a certain application context (e.g. maximize the amount of information collected at the sinks, or focus on congestion control and end-to-end reliability) [171]. 89 Finally, the means to represent the data and the nature of the in-network aggregation functions have to be considered as well. Some solutions adopt very simple aggregation functions such as average, median, quantile, min, max, etc. On the other hand, other applications will require of aggregation functions that do not affect significantly the precision of the transmitted information. As a result, these applications need a more detailed representation of the data, which calls for more complex functions and data structures (taking into account the spatial, temporal and semantic correlation of the readings) [169]. 3.1.1.3 Time synchronization The primary function of sensor networks is to measure data. Alongside with data, in most cases (e.g. for enabling the data fusion procedures) it is necessary to provide a timestamp that indicates when the data was collected from the physical environment. However, as with any distributed system, the clock values of all sensor nodes will gradually diverge from each other due to various factors related to the physical components of the computer clock. Therefore, it is necessary for all nodes to maintain a common notion of time by means of time synchronization protocols. Time synchronization protocols can be classified basically on two major categories: according to the strategies used to synchronize the clocks, and according to the influence of the application on the synchronization process [172][173]. Synchronization issues. • Master-slave vs. peer-to-peer. In the master-slave solution, The slave nodes consider the local clock reading of the master as the reference time and attempt to synchronize with it. On the other hand, other solutions are based on a peerto-peer structure, where all the nodes agree on the “actual” time. • Clock correction vs untethered clocks. Some methods perform synchronization by correcting the local clock in each node to run on par with a global time scale. Other methods try to achieve a common notion of time without synchronization. • Internal vs. external synchronization. Internal synchronization seeks to minimize the differences between the local clocks of the nodes, while external synchronization provide a standard source of time such as Universal Time (UTC). • Probabilistic vs. deterministic synchronization. Deterministic algorithms guarantee that the clock offset will not exceed a certain bound. On the other hand, probabilistic algorithms only provide a probabilistic guarantee on the maximum clock offset, but have smaller energy requirements. • Sender-to-receiver vs. receiver-to-receiver synchronization. Some methods synchronize a sender with a receiver by transmitting the current clock values as 90 timestamps. In contrast, other approaches exploits the properties of the physical broadcast medium. Application-dependent features. • Single-hop vs. multi-hop. In a single-hop network, a sensor node can directly communicate and exchange synchronization information with any other sensor in the network. On the other hand, sensors in a multi-hop network need to synchronize their clocks more effectively. • Stationary v. mobile networks. Mobility induces more difficulties in achieving synchronization. Therefore, it is necessary to design robust and effective protocols with mobility in mind. • MAC-layer approaches vs. standard approaches. It is possible to use the Medium Access Control (MAC) layer of a sensor node to effectively carry out the time synchronization process in order to achieve better energy efficiency. The nature of the Medium Access Control layer is sometimes dependent of the application, due to factors such as QoS and power awareness. 3.1.2 Protocols and self-awareness All the aspects of a particular wireless sensor networks deployment are heavily influenced by both the scenario and the requirements of the application. The core protocols that have to be implemented inside sensor nodes are no exception. The exact nature of these protocols and its algorithms depends heavily on factors such as expected quality of service, network configuration, supported number of devices, lifetime, robustness, device capabilities, and many others. One of the factors that should be considered by every protocol is security. Due to the vulnerable nature of sensor networks, the core protocols should be able to withstand attacks from malicious adversaries, either external or internal. However, it is very difficult to define security mechanisms that could be seamlessly adapted to every type of protocol. They must be prepared to analyze their internal processes in order to detect failure or misbehaviour, and to react to these events in order to maintain the functionality of the network. For example, routing protocols must be able to maintain the consistency of their routing tables (e.g. routing trees), to create clusters in a secure fashion, to avoid packets to be sent to the wrong destination (route diversion), to securely negotiate parameters, and many others [174][175]. Aggregation protocols need to assure the integrity and authenticity of the sensory data before and after the aggregation takes place [176][177]. Moreover, time synchronization protocols have to be robust against false clock information or attacks that try to delay or influence over the negotiation process [178][179]. 91 However, all protocols, regardless of their design and functionality, need to be aware of their environment. A sensor node that does not know its own situation and the situation of its environment cannot react to possible events that may influence its functionality. Therefore, it is essential to have certain self-awareness services that provide this information (e.g. whether a certain node has disappeared from a neighbourhood) to the protocols of the sensor node. In fact, this information is also vital for the user of the network, because he/she should be able to know at all times the state of the network. Besides, self-awareness can facilitate the creation of security services such as intrusion detection systems and trust management systems. By using intrusion detection systems, it is possible to know if a certain node is suspicious of misbehaviour or malicious. This knowledge can be used by any of the core protocols to ignore any interactions with these malicious entities. As for trust management systems, they can indicate if a certain node can be trusted for a particular task (e.g. route a packet to the base station), improving the overall intelligence of the core protocols. 3.2 3.2.1 Self-Configurability and situation awareness Situation awareness in Wireless Sensor Networks One of the specific features of sensor nodes is their inherent autonomy. By means of their computational capabilities, nodes can analyze the data coming from their embedded sensing units. Additionally, they operate without any preexisting infrastructure because they can communicate with their surroundings using wireless transceivers. Furthermore, they can survive in their deployment site, even for years in certain configurations, because they are powered by small batteries. Due to this autonomy, sensor nodes are considered self-configurable entities that can be set up without any major effort by non-experts. They just need to be programmed, deployed, and switched on. This self-configuration is not limited to the deployment of the network: sensor nodes should configure themselves to run for long periods of time (from months to years) with almost no human intervention. However, in order to be fully autonomous and self-capable, it is essential for the sensor nodes to be aware of their environment. That is, to recognize certain events that might affect the behaviour of the network. For example, the nodes that are affected when one of the routers of the network fails to work must be able to automatically notice it and react accordingly, as shown in Figure 3.1. The task of detecting such events relies upon the existence of situation awareness mechanisms. Without these mechanisms, a sensor node can not fully understand the current situation of its environment, and will not be able to configure itself in order to respond to internal/external events. Not only the nodes are interested on this kind of internal information, but the user of the network as well. Once the network starts failing, the user will not detect the 92 Room Humidity A 25% RH … … Room A ERROR 25% RH 100% RH 20% RH 30% RH Figure 3.1: Importance of self-awareness mechanisms for sensor networks reason of this failure: it will only know that the network or a part of it is not providing its functionality. Logical events will remain undetected if there is no mechanism that can inform the user about their occurrence. And since the user can be far away from the deployment zone, any physical events that affect a set of sensor nodes can also pass undetected. As a result, it should also be necessary to give the user access to the output of the situation awareness mechanisms. Such audit information can be requested (“on-demand”), or reported automatically when a special or abnormal situation is detected. Designing these kind of mechanisms specifically for a wireless sensor networks is not an easy task, though. Due to the distributed nature of the network, most sensor nodes are equally important for offering the services of the network (e.g. monitoring the environment). Also, any occurring event will be detected mostly by the neighbourhood in which the event takes place. Therefore, it is necessary to adopt a decentralized solution, where total coverage is assured by making all nodes and base stations participant in the analysis of the state of the network. This leads to the second problem: the limiting resources of a typical sensor node. A sensor node is very constrained in terms of battery life and processing power, so any detection mechanism crafted for sensor nodes should consist only on simple tasks. There are some existing techniques that allow to control simple factors such as the actual situation of the sensor nodes. For example, it is possible to send periodical “heartbeat” messages to other nodes in order to check whether they are alive [181]. This simple technique has been improved in [182] by sending that information to the base station while trying to minimize the use of resources. Regarding attack detection mechanisms, most approaches analyze the packet ratio of the network, and their contents when possible [184]. For discovering specific attacks in the protocols of the network it is also possible to use other techniques such as automata theory 93 - Back Pain - Fever - No Packets - Destination does not relay Figure 3.2: Simile: A sensor network as a living being [185]. 3.2.2 Development of lightweight awareness mechanisms As aforementioned, one of the key factors for the development of lightweight detection mechanisms is the acquaintance of the problematic events that can occur and how to properly detect them. For this purpose, we have used the simile of “a sensor network as a living body” (already introduced in section 1.1.1.2), where a sensor node is considered the “cell” of the system, and the base station is the “brain”, as seen in Figure 3.2. Having in mind this simile, it is possible to think that the presence of certain symptoms (i.e. collateral effects) will be indicative of the existence of a disease (i.e. abnormal event) [248]. One of the difficulties associated with the diagnosis of a disease consists on separating the existing symptoms from the normal behavior of the body. However, the functionality of sensor networks is usually fixed, with sensor nodes providing the same services during all the lifetime of the network. Therefore, any deviation of the behavioral pattern of the network, or the existence of a well-established set of unusual patterns, can be considered as a potential effect of an abnormal event. Another issue that can affect the diagnosis is to distinguish one disease from another one according to the existing symptoms. Nevertheless, in a sensor network context, the mere possibility of detecting and warning about the existence of a problem can be useful enough for the user of the network. Even more, it will be shown later that most abnormal events do not share the same effects. It is also important to point out that the symptoms associated to a specific illness depend not only on the illness itself, but also on the patient characteristics. For example, the symptoms of a myocardial infarction (heart attack) vary according to the gender of the patient [180]. Therefore, it can be deduced that, in a sensor network context, the detection of abnormal events from its associated collateral effects is influenced by the nature of the application. In fact, according to the properties 94 of the application, there will exist some scenarios where the analyses must adapt themselves to the behaviour of the network (e.g. the time frame where a node is not sending packets). Also, there will be some other scenarios where the existence of an abnormal event (e.g. the disappearance of a node) cannot be inferred directly. 3.2.2.1 Types of abnormal events In order to discover what are the possible symptoms that sensor networks may suffer, it is first necessary to know what the existing diseases are; that is, what the awareness mechanisms want to detect. All abnormal situations are triggered by one or more of the following principal causes: failure of a sensor node, an external attack, or an internal attack. However, the diseases caused by attacks are far more numerous than the ones caused by node failure. As shown in section 1.2.1, there are many kind of attacks that can affect a sensor node, from the hardware layer to the application layer. On the other hand, there are only two major events that the mechanisms should detect in case of node failure: a node that becomes unavailable from the network, and a sensor that malfunctions and provides inconsistent information. Therefore, in the remainder of this section we focus on abnormal events caused by external or internal attacks. Although attacks were already enumerated in section 1.2.1, this section will explain them in more detail. Outsider Attacks Change Environment Physical Change Sensors Hardware Node Tampering Injection Comm. Channel Replaying Jamming Insider Attacks Protocol-specific attacks Impersonation attacks Message Creation Packet Alteration Feature Advertising Time-Related Attacks Table 3.1: Outsider and insider attacks in WSN Outsider Attacks The purpose of a malicious outsider that has no prior knowledge of the network is to gain access over one or more of its elements in order to influence on the network behaviour as a result. The only element that can be manipulated in a WSN is the sensor node. As mentioned in the introductory section, a typical sensor node has mainly three tasks: obtain the physical information of its surroundings with its built-in sensors, exchange control and data messages with the nodes located in its neighbourhood, and process both the sensed data and the information that comes from the radio. Therefore, any outsider can use three entry points: the physical environment of the sensor, the sensor node itself, and the wireless communication channel. 95 It is conceivable to change the physical environment of the network with the purpose of interfering with its normal operation. This operation is, in most cases, extremely easy, since the sensor node must be physically close to the source of the events in order to monitor them. For example, a sensor node that monitors the temperature and humidity of oil tanks must be located nearby the tanks. Consequently, any outsider simply has to access the node and manipulate the environment (e.g. pouring some water on it) in order to introduce bogus data into the network. In a more extreme case, an outsider may try to change the hardware sensors of the node with his/her own set of sensors. The difficulty of this attack may range from easy (just plug a circuit board with modified sensors) to medium (separate the existent sensors and solder new ones). Nevertheless, the scope of these manipulations, environmental-based or hardware-based, is rather small due to the high density of sensor networks and the embedded memory and intelligence of the node. An attacker would be more interested in accessing the internal information contained inside the sensor node, obtaining any credentials like, for instance, secret cryptographic keys. This kind of attack would allow the outsider to either modify or clone the node, gaining the possibility of influencing the network with insider attacks. Furthermore, modern sensor nodes are not tamper resistant because of cost issues. However, as demonstrated by Becher, Benenson, and Dornseif [49], it is not trivial to physically attack a sensor node. By disabling the JTAG debugging interface and implementing an adequate protection to other interfaces, a network designer effectively forces any outsider to employ a significant amount of time to obtain the information contained in the sensor node. Moreover, if the attacker actually possesses the necessary information to access the contents of the node (such as the BSL password in a MSP430-based node), he/she should need more than 20 seconds to read or write all the contents of the memory of the node. Finally, the attacker could try to manipulate the communication channel. It is easy to hear or to inject packets inside the network because of its wireless nature. All the attacker needs is a device whose radio is compatible with the radio of the wireless network (e.g. 802.15.4-enabled device) and find out which channel is being used by the network (e.g. by employing a spectrum analyzer). Fortunately, if the data contained in the network packets is protected by pairwise keys (cf. section 2.2) the attacker can only try to deplete the energy of the target or create a denial-ofservice (DoS) attack. Regarding packet injection, an attacker can inject inside the network a bogus packet with a fake source. Such packet will be immediately discarded by its destination since the MAC (Message Authentication Code) field does not contain a valid value. An attacker could also try to resend a previously captured packet, even if he/she is not aware of its meaning. This kind of attack could be easily thwarted including a timestamp or a sequence number field inside the protected packet, although it requires the sensor nodes to be time synchronized. In addition, an attacker can try to jam the signal of the network, preventing nodes from sending and receiving 96 any kind of packet. This is a DoS attack, which is easily detectable but very difficult to avoid. Insider Attacks Once a malicious outsider has gained access to one or more of the sensor nodes, it becomes an insider. At this point, the malicious insider has at his/her disposition all the information stored in the node, like the security credentials, and can gain access to the content of the communication flow that traverses the sensor. That is, it can create and alter any packet being sent to this particular node. Note that it is probable that the insider cannot snoop the information sent to other nodes in its neighbourhood, since the subverted node may not have the necessary keys to do that (cf. section 2.2.2.2). Still, this insider can effectively launch complex attacks to the core protocols of the network that can damage the functionality of the network. One of the most important protocols in WSN is routing because, due to the limited radio transmission range and energy constraints, it is not possible for a sensor node to communicate with another node without the help of other ones in the network. Routing protocols are prone to be attacked in multiple ways, as shown by Karlof and Wagner ([174]). The rogue node can spoof, alter, delay, or replay control packets that contain routing information. It can also forward a certain subset of the packets that receives (Selective Forwarding), dropping important packets such as alerts. In addition, the node can try to advertise itself as a ”good” link towards the base station (Sinkhole attack ), attracting the traffic from the neighbourhood. In another sophisticate, although more difficult attack, the node can try to present multiple identities to other nodes in the network using stolen credentials (impersonation attacks). Data aggregation is another significant protocol for WSN that can be easily attacked by a malicious insider (cf. Sang et. al. ([176]). Data aggregation is performed by an aggregator node, and its role is to collect the data from a certain area and summarize it into one report, hence decreasing the number of packets that are sent to the base station. There are three major points of attack against the aggregation process: the source nodes, the aggregator node, and the report. A trusted aggregator can receive false data from faulty nodes or from malicious nodes. If the aggregator node itself is malicious it can easily ignore the data received from its neighbours and create a false report. Regarding the report, it can also be modified while it is being routed to the base station. Finally, many applications such as tracking and localization require the local clocks of the sensor nodes to be synchronized in order to guarantee the consistency and freshness of the results. Therefore, time synchronization becomes another essential protocol for assuring the correct performance of a WSN and, at the same time, another interesting point of attack for a malicious insider. As can be deduced from Manzo et. al. ([178]), almost all attacks against this kind of protocols can be classified into two types. The simplest attack consists on broadcasting a falsified synchronization message, aiming to increase the clock skew (i.e. the difference in the frequencies of the clock and the perfect clock). The second and more complex attack 97 can be done if the protocol uses a hierarchy to transmit the control messages. In this case, the malicious insider can advertise itself as a node with a high level in the hierarchy in order to influence over as many nodes as possible. Summarizing, a malicious insider can perform a wide range of attacks against the core protocols of sensor networks in order to affect its functionality. The scope and effects of these attacks, alongside with the specific steps required to launch it, depend on the specific implementation used by a network, though. Still, it is possible to obtain from the previously mentioned attacks five attack templates that any generic IDS could partially detect: (i) impersonation attacks (when a node presents fake/multiple credentials) (ii) message creation (related to malicious sensor nodes creating fake packets regardless the state of the other nodes in the network), (iii) packet alteration (when the contents of a relayed packet are changed in unacceptable ways), (iv) feature advertising (when a sensor node broadcasts false control information), and (v) time-related attacks (related to whether packets are going to be delayed or are not going to achieve their destination at all). As a side note, it would be interesting to know if it is possible for a malicious insider to take control over another sensor node via the communication channel. In wired networks, this is the most common perception of “intrusion”, where a malicious user access a system using so-called “exploits”. One possible way of doing so is by using buffer overflow attacks [189], where a maliciously formed packet stores data beyond the boundaries of a fixed buffer, overwriting memory locations of the device. Another approach can be exploiting the mechanisms provided by the WSN for updating the code, being machine code or interpreted code, inside the nodes. Examples of these mechanisms are Deluge by Hui and Culler [56] and Mate by Lewis and Culler [61], respectively. Fortunately, the maximum size of the network packets on a WSN is usually fixed, so it is possible to allocate a buffer large enough to manage any type of incoming packet and avoid a buffer-overflow attack. Still, the possible effects of a buffer overflow in vulnerable sensor implementations are still unknown, although there are some extensions, like the one developed by Regehr et. al. [190], that could help to mitigate the problem. As for code update procedures, most existent protocols have been secured using authentication mechanisms, like Deluge by Krontiris et. al. [59]. In conclusion, in a WSN environment it is not probable that a malicious insider can spread itself to other nodes in the network. 3.2.2.2 Situation awareness mechanisms Once the diseases are known, it is possible to examine them in order to diagnose what are their related symptoms. That is, the analysis of the collateral effects of an abnormal event will lead to the inference of the mechanisms that should be used in order to detect them [248]. A summary of the different abnormal events alongside with their effects can be found in Table 3.2. Note that, in most cases, the detection mechanisms that infer the existence of abnormal events are not complex, and such 98 events can be detected just by storing and analyzing simple statistics generated by the network. As a result, these mechanisms can be lightweight enough for constrained environments. Abnormal event (disease) Collateral effect (symptom) Jamming Wide data unavailability Hw. failure (“unavailable” node) Data unavailability Node subversion Node temporarily unavailable Tampered, Malfunctioning sensor Deviations, Inconsistences Packet Replaying Packet too old Impersonation Attacks New neighbours, Packets per node Message creation Changes in packet density, Inconsistent alerts Packet alteration Changes in packet (only for broadcasted) Feature advertising Inconsistent feature with neighborhood Long delays, Traffic imbalance Time-Related attacks Table 3.2: Relationship between WSN attacks and their symptoms A jamming attack is very difficult to circumvent, although it produces a clear symptom: an abnormal decrease in the number of packets coming from the affected zone. Such symptom can be detected by both the base station and the nodes on the routing path. Even more, nodes belonging or near the affected zone will detect an unusual increment on the number of collisions. Note that a single node who is not available due to hardware failure will also be detected by the base station and other nodes because of disappearing packets. However, in the case of Hw. failure, there will be no abnormal collisions going on in the neighborhood of the “dead” node. A node will be temporarily unavailable from the network if an attacker is trying to subvert it. In this case, the number and ratio of messages from that node will drop to zero for a non-trivial period of time. Therefore, a node that returns to the network after such period of time has passed should be considered suspicious by its neighbors and the base station. A set of false measurements (either coming from a tampered sensor or a malfunctioning one) can be detected by the node itself, the neighborhood, and the base station. Certain values, such as the humidity of a room, do not fluctuate abruptly unless there is an extreme situation (e.g. a flood) going on, and that fluctuation should continue over time. The neighborhood of a sensor node should also be able to sense the same physical readings if they are physically near. At last, the base station may have a history of all the readings and could detect a significant deviation of the expected values based on the context and on the history of the network. A malformed packet, that is, a packet with an invalid Message Authentication Code, can only be sent by a malicious attacker who created a packet without the required credentials. Therefore, the existence of such packets is an evidence of an attack. While it is not possible to detect the identity of the attacker from the 99 (possibly forged) fields, it is possible to estimate its position using the signal strength. The attacker may also try to launch a DoS attack using these packets, although the sensor nodes can opt to treat them all as one single alert. An external attacker can also replay a previously captured packet, but these kinds of attacks are easily detectable if the network packets have the necessary protection, such as timestamps. In the simplest case, a node can choose to mark as suspicious any packet whose timestamp is either too delayed or too advanced in terms of its local clock. Regarding attacks against the core protocols of the network, the symptoms created by an attack vary from protocol to protocol, because all protocols and algoritms used in a WSN must be adapted to the particular context of the application (cf. section 3.1). Thus, there must be adapted detection mechanisms for every protocol configuration (e.g. location anomaly detection [198] and disruptive routers detection [196]). However, it is still possible to describe what are the symptoms for the non-specific attacks presented in the previous section. About Impersonation Attacks, their symptoms can be detected by both sensor nodes and base stations. For sybil attacks, where an adversary uses many identities, nodes will immediately detect those identities as new neighbours, and the base station can quickly check if those nodes were deployed by the network administrator. For node replication attacks, where an adversary use the same identity in different regions of the network, either the nodes or the base station can be able to detect that there are more messages coming from an unique node identity. Regarding message creation attacks, sensor nodes usually create and send packets to the base station only inside specific times frames (known as “burst periods”2 ). Also, under normal circumstances packets should not be sent outside that “burst period”. If the sensor nodes or the base station detect a change on the packet density of the network (i.e. more packets being sent within a “burst period”), there is a chance that a message creation attack is taking place. Note that the change on the packet density of the network can be caused by alerts and/or queries, thus this factor needs to be taken into account. Other mechanisms that can help in detecting fake alerts. An alert usually corresponds with a certain physical event, and nodes near to the source node will be able to detect that event. Therefore, if a node routes an alert and is close enough to the source node, it can check by its own or with other nodes whether such alert is real. Even more, in most cases, a reply is sent after a query is broadcasted to a section of the network by the base station. If a node sends a fake reply, the nodes routing that information to the base station and belonging to the same section of the source node should have received the query before. If no query was received or will be received in a small period of time, the answer will be clearly a fake. An attacker can also create a message on behalf of other nodes. This is usually 2 A normal period will be defined as the time frame between recurrent burst periods, including the last of these ones. 100 the case of a malicious aggregator node sending a fake report to the base station. Since most packets coming from aggregation points are the result of monitoring a certain event, the nodes that depend on the aggregator have to send their messages before any aggregation process takes place. As a result, if the aggregator node sends a packet before receiving any information from nodes below it, it can be seen as suspicious. Packet alteration attacks are, unfortunately, very difficult to detect. Its more obvious symptom is when a malicious node changes the information contained inside a packet that has been forwarded. However, in sensor networks with basic security services, the contents of a packet can only be read by its origin and its destination. Therefore, no one of the neighbors is able to read the contents of a relayed packet. There is a case in which this attack can be detected, though: broadcasted packets. Therefore, a modified broadcasted packet can be easily detected by any node that belongs to the group where the packet is being sent. Another attack related to packet broadcasting is feature advertising. In certain protocols, sensor nodes advertise themselves as having a certain property that makes them more useful for the WSN as a whole (e.g. its distance to the base station in number of hops). If a malicious node fakes one of these properties, it is clear that such advertising will be suspicious if it is too deviated from the values generated in the neighbourhood (e.g. a node advertising it is near the base station while being on the edge of the network). Finally, a malicious adversary can execute some time-related attacks by delaying, selective forwarding, or dropping packets. Regarding delayed packets, this attack shows symptoms while performed either isolated or continuously. It is atypical for a packet to be relayed later than the normal amount of time it may spend inside a normal sensor node under average stressful conditions. This deviation can be detected by nodes in the neighborhood by comparing the ratio of messages entering and exiting a certain node, or by the base station by comparing the time a packet needs to be routed from its source. When packets are selective forwarded (i.e. dropped) by a malicious node, it is obvious that these packets will not be received either by the next hop or by the base station. Nodes surrounding a malicious forwarder cannot verify if a specific packet has been forwarded, due to the protection of the communication channel. However, they may be able to check if there is an imbalance between the number of packets going to that node and the number of packets coming from that node. Finally, any node that drops packets relayed to it (a black hole) will not send practically any message, and such piece of evidence can easily be detected almost immediately by any neighbor. 3.2.2.3 Application influence on situation awareness All the collateral effects that have been shown in the previous section always happen whenever an abnormal event occurs. For example, whenever a sensor node stops 101 functioning, its neighbours will detect that it neither sends messages nor processes packets. However, the way in which collateral effects are analyzed by the situation awareness mechanisms, and the conclusions drawn by the execution of those mechanisms, is highly dependant on the application requirements and characteristics. For example, in sensor networks with mobile nodes, the inexistence of packets cannot be considered as the only symptom for Hw. failure, although this symptom may help the old neighbourhood of the mobile node to realize that it moved. The application and its context actually influence over the network architecture (e.g. network size, node mobility) of a sensor network. For example, as seen in section 2.2.4.2, an application that monitors industrial machinery will probably use one-hop networks, while applications that monitor assisted-living residents on their homes will consist on a small networks containing a mixture of mobile nodes (worn by the user) and static nodes (monitoring the environment). The application will also influence over the network behaviour (e.g. length of the “burst period”). For instance, sensor networks that need to provide their services with no real-time QoS requirements for a long period of time will probably have a short “burst period” followed by a long “normal period”. Both the network architecture and the characteristics of the network will then have influence on the situation awareness mechanisms. Concerning network size, if a sensor network is a one-hop network, where the packets arrive directly to the base station without any need of routing, certain abnormal events will not happen (e.g. routing attacks) or will not be detected by the sensor nodes (e.g. jamming attacks). In such small networks, the analysis of these specific abnormal events can be done through the base station. On the other hand, if the size of the network is bigger than one-hop, all nodes can implement the awareness mechanisms used in the network. The influence of the network size on the mechanisms is not very significant, since only certain aspects such as the amount of messages relayed by nodes needs to be taken into account. For the situation awareness mechanisms, mobility is more significant than network size. There are two types of mobility that need to be analyzed: base station mobility and node mobility. When the base station is mobile (e.g. vehicle tracking scenarios), the number of packets managed by a node will be influenced by its relative distance (in number of hops) to the base station: nodes that are nearer the base station will relay more packets. This fact have an effect on those situation awareness mechanisms that depend on the analysis of the network load, such as the creation of messages and the delayed packets. If the nodes of the network are mobile, some collateral effects will only provide partial information about an event. Even more, other collateral effects will not be useful for detecting abnormal events. As already mentioned, an unavailable node due to hardware failure will produce the same symptoms as a node that moves to another area. A node that re-enters a certain neighbourhood may also produce the same symptoms as a compromised node. As to time-related attacks, a node can detect a false positive in the routing process whenever a node in charge of relaying 102 packets abandons the neighbourhood. Other aspects that need to be taken into account are, for example, the extra number of packets that some nodes will have to relay due to the traffic produced by the mobile nodes. Finally, nodes in networks with mobile nodes cannot detect some impersonation attacks with the actual awareness mechanisms, because it is very difficult to distinguish sybil nodes from mobile nodes. Besides network architecture, the specific nature of the application also has an effect on the network behaviour: number of messages sent, existence and length of a “burst period”, expected values of the sensors, etc. This behavior influences how the abnormal events are derived from the collateral effects. For example, for detecting the message creation attack, it is essential to know both the packet density of the network and the length of the “burst period”. Also, the application will dictate which are the services that are implemented inside the node, such as the capability of the network to generate alerts or the support for a query subsystem that can obtain information from the network “on-demand”. Both the type of events that the network can be aware of and the behaviour of some awareness mechanisms will depend on the existence of these services. For example, if a node is not capable of generating alerts, the implementation of the message creation control mechanisms will be simpler, and there will be no need to check for fake alerts. 3.3 Intrusion Detection Systems 3.3.1 An overview of Intrusion Detection Systems (IDS) 3.3.1.1 Purpose of an IDS An intrusion can be defined as a set of actions (i.e. attacks), either external or internal to a certain system, that can lead to an unauthorized access or alteration of such system. The mission of an Intrusion Detection System, or IDS, is to monitor computer networks and systems in order to detect possible intrusions in the network, alert users after intrusions had been detected and, finally, reconfigure the network provided that is possible [67]. Intrusion Detection Systems must gather and analyze audit data to check whether there is an intrusion in progress or not. Data can be obtained from various sources. In host-based IDS, data come from operating systems and application logs. In networkbased IDS, data come from the network packets. Additionally, some IDS use both application/system logs and network packets information. After the data gathering process, Intrusion Detection Systems analyze all the information available, searching for possible attacks and intrusions. Data analysis can be classified into two techniques: anomaly detection and misuse detection [191]. First ones store patterns of what can be considered as “normal” behaviour, and react against any significant deviation of those patterns. Second ones compare the collected 103 information with predefined “signatures” of well-known attacks. None of them can be considered better than the other; hence, both of them are usually employed in IDS. 3.3.1.2 IDS and wireless networks Intrusion detection systems are valuable tools for detection of possible attacks that could be launched against a network, as well as for prevention of service interruption or loss of data that could happen as a consequence of such intrusion. In wired netR works, IDS research is a mature field, spanning multiple applications such as Snort° [192] that are actively maintained and applied to networks everywhere. However, due to the nature of the vulnerabilities and specific features of wireless networks, it is a very difficult task to use that previous experience in order to create an IDS architecture for typical ad hoc networks and wireless sensor networks. In a wireless network, any computer or device within the radio transmission range of a node is capable of interchanging information with such node. This differs from wired networks, where in most cases there is only a single point of entrance to the network. Additionally, while in wired networks just a subset of the nodes are able to provide a certain service (like a web service), in most wireless networks all nodes are equally important for offering services. Moreover, wireless nodes are usually constrained in terms of battery and computational power, hence the nodes are more vulnerable against specific attacks, such as sleep deprivation attacks [193]. As a result, it is not possible to directly apply the hierarchical IDS architectures used in wired networks. In fact, in hierarchical architectures, physically secured hosts monitor the points of access of the network and centralized servers analyze the audit trails and react against any possible intrusion. However, in wireless networks an intruder could try to subvert any node belonging to the network without leaving any global trail. Due to these reasons, wireless networks need to adopt a decentralized solution. In a decentralized solution a certain set of nodes should be able to collect and analyze the audit data produced in the whole network by using software systems called IDS agents. Audit data may come from the packets circulating through the communication network and from the operating system and applications logs. During the course of those analyses, both anomaly detection techniques and misuse detection techniques should be employed by the agents for detecting unknown or known attacks. In certain cases, agents may start a collaborative process to provide assistance to other nodes in order to either improve the detection procedure or exclude a malicious node. There exists an abundant literature on the application of IDS for ad hoc networks and MANET networks [194]. Because ad hoc networks maintain a wireless communication channel without relying on any fixed infrastructure, it is reasonable that most IDS architectures in these scenarios use a decentralized approach, using in some cases advanced techniques like mobile agents. It would be interesting if all these 104 IDS architectures could be applied to other wireless networks, such as wireless sensor networks. Nonetheless, this is not possible because ad hoc networks and wireless sensor networks are essentially different in terms of infrastructure and functionality, as seen in section 1.1.1.3. As a result, an IDS for wireless sensor networks must be simple and highly specialized in order to react to the specific protocols used over the network and against specific sensor networks threats. 3.3.1.3 IDS and Sensor Networks: related work The importance of guaranteeing the security of the deployment of a WSN makes research on security a priority. So far, most of the research for WSN has focused on the security primitives and distribution of secret credentials (cf. chapter 2), with some advances on the provisioning of secure protocols such as aggregation and routing. Other fields like Intrusion Detection Systems have not been widely developed until recently. The reason behind this underdevelopment could be that the concept of “intrusion” is not clear in a wireless sensor network context. In any case, there are some studies that show how some types of attacks could be detected in the context of an intrusion detection system. A subset of this research assumes the existence of a full-fledged intrusion detection system. For instance, the work by Zhang, Yu and Ning [201] filters and detects the malicious nodes of the network based on alerts. Also, in the work by Basile et. al. [188], the data provided by the network is used as an input and, by using hidden markov models, the system can discover and distinguish errors from attacks coming from the network. A standard and full-fledged intrusion detection system for sensor networks has not been defined yet, but some authors have explored how to develop such a system. One part of the problem is the location of the IDS agents watching over the network. Some works are concentrated on hierarchical network configurations, like Su et. al. [187], where detection agents are located on the cluster heads monitoring the traffic of the entire network. Some authors like Anjum et. al. [195] take the approach of clustering the network dynamically as a measure for placing the detection agents. Other authors, like Roman et. al. [258] and Khalil et. al. [199], put the agents inside every node, although agents are subdivided into different entities with different schedules and tasks such as monitoring the local or the surrounding events. Other lines of research have been oriented to find the exact detection mechanisms that should be used for detecting the attacks. As suggested by Doumit and Agrawal [197], it is possible to use Hidden Markov Models inside powerful nodes as an anomaly detection technique. Other works use automata theory for analyzing the behaviour of the protocols and detect deviations, like DESERT by Inverardi et. al. [185]. Another simple approach, followed by da Silva et. al. [200] and Onat and Miri [184], is to analyze the packet ratio of the network in conjunction with other statistics and deduce the existence of attacks. Another interesting aspect of intrusion detection systems is their relationship with other systems and services. IDS are closely related to trust systems, and a 105 node marked as suspicious may lose some reputation in the trust process. This type of relationship is analyzed by Ganeriwal and Srivastava [54]. Regarding node monitoring, there are some works that focus on detecting the health of a member of the network, like that one by Hsin and Liu [181]. Sending this kind of health information to the base station is another aspect that has been optimized by Rost and Balakrishnan [182]. Finally, the results obtained by the IDS can improve the robustness of other protocols, such as the routing protocols [183]. 3.3.2 Applying IDS to Wireless Sensor Networks An intrusion detection system is a valuable security service for wireless sensor networks. It can inform the users of the network about the existence of internal and external attacks, and it can provide other services inside the node, such as trust, with information regarding the nodes that are suspicious or malicious. As a result, this system allows the network to self-configure itself to react against any attacks, improving its robustness. There have been aspects related to IDS that have been discussed in previous works, such as the situation of the detection agents, the nature of some detection mechanisms, and so on. However, there have been no proposals of an IDS scheme that fulfills all the following properties: full network coverage (cover all the information flow of the network), simplicity (use mainly simple components, statistics and mechanisms), and adaptability (possibility to include new or existing detection mechanisms, or to exclude those detection mechanisms that are not needed). It is then our purpose to present a blueprint of an intrusion detection system that fulfills all these properties. Situation awareness mechanisms, which were presented in section 3.2, serve as the cornerstone for the development of this blueprint. By using the mechanisms, we can comply with the simplicity property. The design of the blueprint allow its adaptability, while the full network coverage is achieved by distributing the detection tasks inside every node and inside every base station [248, 258]. 3.3.2.1 Architecture As stated in section 3.3.1.2, any IDS for wireless sensor networks must be decentralized, mainly because any part of the network can be a possible point of intrusion: all nodes can be manipulated or subverted, the communication channel is equally vulnerable in all the sections of the network, and any change in the internal behaviour of the network can lead to a potential problem. This ubiquitous nature of the attacks, which can happen anytime and anywhere, leads to the positioning of the software detection elements, that is, the agents able to detect and react against any possible intrusion. As in the case of the situation awareness (cf. section 3.2), attacks can be detected by any member of the network: the base station can become aware of a subtle variation on the messages and the 106 - Base Station Agent Sensors - Node Local Agent - Node Global Agent Situation Awareness Packets Protocol-specific Analyses Others DATA ACQUISITION - #packets (total , per period) - Last Sequence no. / timestamp - Others DETECTION - Measurements - Collisions (Backoffs) - Query / Alert information STATISTICS COLLABORATION Malicious Suspicious ALERT DB Figure 3.3: Blueprint of an IDS Architecture for WSN data coming from the network, a node can analyze the data coming from its sensors and from packets addressed to it, and that node can also detect any variations that happen in its neighbourhood. Consequently, the IDS agents must be located in every element of the network - all nodes and all base stations. However, the constraints inherent to the nodes belonging to the network, such as sparse resources and limited battery life, impose a cautious planning about how agents must be deployed in the network and what set of tasks they have to perform. This leads to the division of the node agents into two parts: the node local agent and the node global agent. Since base stations are supposed to have much more resources, the base station agents do not need this kind of separation. These agents are discussed below in more detail. • Node Local agents monitor the local activities of a sensor node. That is, they check the information processed by the node, either sensor readings or packets being forwarded by the node. They are located in every sensor node, and are activated anytime the node has to process some information. • Node Global agents watch over the communications of their neighbours, processing the information that can be extracted. They are also located in every sensor node, and run their tests periodically, not continuously. Besides, it is possible to adjust their activation levels due to the redundancy of the network. Note that, for clustered networks with one-hop clusters, it can be possible to include the Node Global Agent only in the cluster heads. • Base Station agents analyze the information flow obtained from the sensor nodes. Since the base station is rich in resources, it can be active at all times, running complex algorithms for discovering any variations that can lead to locating an intrusion. The internal components of all agents is identical, and is shown in Figure 3.3. In our architecture, the Data Acquisition component obtains data from the sources of 107 symptoms (e.g. packets and sensor information), and stores the processed information in the Statistics component. These two components are used by the Detection component, which infers the existence of abnormal events. The Detection component can proceed to its analyses periodically or when signalled by the Data Acquisition component. All results are shared in the Alert Database component, where nodes are labelled as suspicious or malicious. Finally, the architecture includes a Collaboration component that can be activated when the node needs to share an event with other of its subsystems, its neighbors, or the base station. The data sources of the Data Acquisition component depend on the type of the agent. For node local agents, the data sources are the sensed data and packets being processed or sent by the node. For node global agents, the data sources are packets circulating on the neighbourhood that are not directed to the node. Other information such as the number of backoffs and the number of malformed packets received is also important. On the other hand, the Base Station agents will use as input all the information coming from the sensor nodes (e.g., messages, timing, etc.). The information coming from the Data Acquisition component will feed the Statistics component, which holds some statistics about the network. The basic contents of this component for a sensor node, which are shared by both node global and local agents, are described below. • Number of Backoffs. Number of sequential backoffs occurred while transmitting a packet. This field is reset for every packet sent. • Backoff range. Arithmetic mean of the number of backoffs in this neighbourhood, alongside with an upper bound. • Number of malformed packets. Number of malformed packets (i.e. packets with an invalid Message Authentication Code) sent in the neighbourhood during a certain period of time. • Timestamp / Sequence number per sender. Information regarding the clock differences between nodes or the expected sequence numbers, including upper and lower bounds, per sender in the neighbourhood. • Query queue. Contains queries forwarded by the node to its childs. • Number of total packets per sender. Number of total packets received and sent by a particular node of the neighbourhood. • Number of packets per sender. Number of packets sent and received by a certain node during the actual normal period and burst period. • Packet range per sender. Arithmetic mean of the number of packets sent by a certain node during its normal periods and its burst periods, alongside with an upper and lower bound. 108 The Detection component will be in charge of obtaining the results from the Data Acquisition component and the Statistics component, analyzing them for signs of possible intrusion symptoms. This component can use both the situation awareness mechanisms introduced in section 3.2.2.2 and other detection mechanisms that are part of existing or future research. In order to save energy, all tests that are related to the Statistics component should not run continuously, but periodically on a programmable schedule. In case the Detection component considers that a node is behaving in an abnormal way, it must store this information in the Alert Database component. The alert database stores a counter for every node in the neighbourhood that is incremented for every anomaly. A node may be labelled as “suspicious” or “malicious” after certain thresholds are surpassed. These thresholds have to be tuned up depending on both the importance of the network and the presence of false positives in the detection process. There are certain symptoms that are a bigger indicator of an intrusion, such as behaving as a black hole, and can lead directly to mark a node with a certain label. Finally, the Collaboration component allows sensor nodes to send queries to their respective neighbourhoods in order to discuss their internal information. For instance, a node that receives a possible fake alert from another node can ask its neighbourhood to check if the alert conditions also apply to them. This collaboration component must be able to securely communicate and interchange information with its neighbours using schemes such as majority voting schemes [202]. Having this kind of architecture inside a sensor node does not pose a significant overhead: a prototype implementation of the IDS component in TinyOS 2.0, including many situation awareness mechanisms, fits in less than 4Kb of ROM and 500b of RAM. As a final note, a concern may arise on the subject of the node global agent having to receive the packets from its neighborhood. However, the wireless nature of the communication channel forces them to do so, in order to check if they are the destination of the packet. While doing this checking, a node can update the Statistics component (e.g. number of packets sent by a node). 3.3.2.2 Agents tasks Every agent is in charge of detecting whether certain attacks are taking place using their Detection components. This section will detail how these components work for every type of agent. Note that, in the development of the detection mechanisms presented in this section, we have only considered a network model where all or most of the nodes are static. Still, with or without support for mobile nodes, the detection tasks will be located inside the same agents. Node Local Agents. The primary source of information for the node local agents is the information processed by the node where the agent is located. As a result, 109 this type of agent is able to analyze the contents of packets, the features of its environment, and other local aspects in search of possible attacks. Since the node local agent can inspect the contents of the packets that traverse it, it can be specialized on analyzing and detecting abnormal situations (e.g., repetition of control messages) in the specific protocols used in the network. The specification of these detection mechanisms depends on how these protocols work. Besides, it is possible to include here detection mechanisms developed by other researchers, like Doumit and Agrawal [197], or Inverardi et. al. [185]. Nevertheless, it is still possible to describe the detection procedures used to detect more generic attacks. Regarding the jamming attack, the node can check whether the number of backoffs occurred while sending a single packet is higher than a certain threshold contained in the backoff range structure. If this is the case, the node can then try to contact their neighbours in a collaborative process. If the channel does not allow such collaborative process, then it is undoubtly jammed. Besides, the node can also measure the actual noise in the communication channel, and use this information to effectively detect the jamming [186]. On the subject of sensor tampering, the fluctuations and variations of sensory data can be analyzed by the sensor node. The node can compare its actual reading values or other node reading values with the normal physical values at a certain time and date (e.g. temperature at midnight on winter), the overall sensory data of its neighbourhood, and others. If all these readings are too deviated from the normal values for a certain context and time, a node can suspect of the well-being of the sensory data. The malformed packets, that is, packets with an invalid Message Authentication Code, are a clear symptom that there is a malicious outsider in the neighbourhood. Still, no node can be accused as malicious, since the headers of the packets are probably forged. In the case of repeated packets, it is also not possible to blame any node: maybe a malicious outsider is replying a packet that listened some time ago. In this case, the node local agent can simply analyze either the sequence number of the packet or its timestamp. Concerning created query answers, if one node sends an authenticated reply to the base station answering to a certain query, nodes staying in the same area where that query was sent can compare if that answer is related to one of the queries contained in the “query queue”. A negative match (the results of the query are unrelated to the query itself, or the node is answering to a nonexistent query) will lead to start suspecting from that node. A malicious node can also create bogus alerts in order to supply false information to the base station about a certain physical event. However, if a node is nearer enough of the source node, it can start a collaborative process in order to ask its neighbours if the sensory data contained in the alert is not contradictory. A negative answer will lead to mark the original source node as a suspicious node. 110 The node local agent can also detect the appearance of a new node with a previously unknown identification. Since only a trusted human user has the potential of adding a new node to the neighbourhood, the node local agent can signal this type of event to the Base Station, in order to advise the user of the existence of his/her newly deployed node or to alert him that a possible impersonation attack is under way. Note that the node global agent, whose operations are detailed below, can also perform this task. Node Global Agents. These agents are in charge of snooping the packets sent in their neighbourhood, analyzing their headers, timing information, and others. An important constraint of the node global agent is that it can only check the contents of broadcasted packets (e.g. checking for feature advertising attacks), because every packet with an unique destination node is supposed to be encrypted with a pairwise key shared only by the sender and the receiver. Still, it is possible to detect the symptoms of certain attacks just by using packet statistics. For example, a node global agent can compare the total number of packets sent in its neighbourhood with the average number of packets that should have been sent. In case the number of packets is extremely low, it can be easily deduced that a jamming attack has taken place. On the other hand, if the number of packets is higher than the upper bound of the packet range (having into account the possible existence, indicated by the node local agent, of alert messages and answers to queries) it is mostly certain that there is some sort of message creation attack under way. This kind of attack can also be detected if an aggregator node sends a packet without having received anything from its children. Node Destruction attacks and Blackhole attacks can be detected by checking the number of packets sent by a particular node. If after a burst period of time the node has not sent any packets, the agent should start a collaborative process asking the node to give any indication of its existence. A negative answer will mark it as dead, while a positive answer should mark it as suspicious of a blackhole attack. Besides, a node that has disappeared but comes back after a significant period of time [49] should raise an alarm as a possible compromised node. On the other hand, detecting timing-related attacks, such as selective forwarding and packet delaying, is very tricky. By default, it is not possible for a node to relate a packet entering into a node to another packet exiting the same node. Nevertheless, the use of certain support protocols described in section 3.3.2.3 may help. For example, if the sensor nodes implement the support protocol “Piggybacking Forwarded Messages”, node global agents just need to check the contents of the forwarded queue, and any packets that are not forwarded or are delayed too much are symptoms of these timing-related attacks. Still, there are some mechanisms that can be applied just using information related to the “Number of packets” and “packet range” lists. In regard to packet delaying, it can be possible to check the exiting ratio of a node, i.e. how many time passes between a node receives a packet and a node sends a packet. A high exiting 111 ratio can be an indicative of a malicious node, although it becomes a clear symptom if the channel is not very busy and the probabilities of losing a packet due to noise are low. Selective forwarding can also be detected comparing the number of messages directed to the suspicious node with the number of forwarded messages by that suspicious node. Observe that a node global agent may have not snooped all packets directed to the suspicious node (e.g. if the original sender is out of its range), but it is clear that the suspicious node should forward at least the number of packets that the node global agent overheard. Notice, however, that this process must be tweaked when the suspicious node is an aggregator node - such node would forward only one message per set of children. Finally, on a side note, it is important to observe that the node global agent may choose not to monitor the contents of certain broadcasted packets or certain “tickets” in the Piggybacking Forwarded Messages protocol if there is another node global agent that can do the work, thus saving energy on the process. For this purpose, it is possible to use the ”Spontaneous Watchdog” support protocol, that allows a node global agent to discover if a single packet is going to be monitored by more than one agent. Base Station Agents. The Base Station is the primary receiver of the messages generated by the sensor nodes. Those messages are mainly used as a source of information of the events of the network, but it is also possible to employ such messages for detecting a deviation on the normal behaviour of the network. This agent can incorporate the mechanisms of other existent base station-centered protocols as another piece of the infrastructure, like the solutions developed by Zhang, Yu and Ning [201] and Basile et. al. [188]. Aside from the data and the alerts, the base station agent can also analyze other aspects related to the incoming packets. If a sensor network is under a jamming attack, the base station will not receive any messages coming from the affected zone. This can be easily detected when the application requires a sensor network to periodically send information towards the base station. Also, if within a “burst period” the base station receives too few or too much messages, it can be possible to suspect the existence of selective forwarding attacks and message creation attacks, respectively. Packet delaying attacks can also be detected if the time spent by a packet of a certain node to cross the network is greater than the average traversing time of packets coming from the same node. 3.3.2.3 Support protocols We have developed some support protocols that can be included inside the IDS. One of the support protocols, Piggybacking Forwarded Messages, relies on modifying the format of the packets used in the network, for the sake of identifying the original sender of a forwarded message. Another support protocol, Obfuscated Watchdog, relies on expanding a well-known node monitoring technique to protect the nodes 112 To B DAT1 Node A Node B A DAT1 To C Node C A DAT1 Figure 3.4: Example of Piggybacking Forwarded Messages, with A as the “ticket” against subversion. Finally, the Spontaneous Watchdogs technique[262] allows node global agents to choose whether to analyze the contents of a packet or not depending on the redundancy of the network. Piggybacking Forwarded Messages. Piggybacking acknowledgments is one wellknown technique in data transmission on wired protocols, such as Ethernet. In this technique, when a node A sends a message α to a node B, the acknowledgement for the data α can be included in a message directed from node B to node A, reducing the number of ACKs in the network and saving bandwidth. An interesting variation, mostly oriented to wireless environments, would be not to acknowledge the reception of a packet, but the forwarding of a packet. In a wireless environment, the sender of a packet will receive the same packet forwarded by its original destination, if the signal strength is good enough between them. That is, if node A sends a packet including α to node B, A will also hear the forwarded packet by B that contains α. If the packet were not encrypted, the sender could check if the original destination has forwarded the packet. Unfortunately, this is usually not possible, because in a secure network all packets are encrypted with a pairwise key. Following the previous example, A can receive all packets sent by B, but it can not read their payload unless A is the destination of the packet. However, it may be possible to add a field into the header or the data of the packet that would go unprotected (in terms of encryption, not in terms of message integrity) and could be used for acknowledging any forwarded packets. For example, node B could add a field to all packets coming from A and forwarded to other nodes that would indicate that their previous hop were A. With this field, from now on called “ticket”, it is possible for a sender to check if its neighbours are behaving properly. This process is shown in Figure 3.4. If the ticket is just the identification of the sender of the packet, it is not possible to detect packet delaying attacks since there is no way to discover if the data contained in one packet corresponds to a certain forwarded packet. On the other hand, it is possible to detect selective forwarding attacks by expecting the subtraction (packets sent to node - packets piggybacked from node) not to be similar to zero if the forwarded node is malicious. Nevertheless, the source node has to take into account both the radio irregularities of its communication channel with the forwarding node and the 113 #####? ALIVE? ALIVE Node A ALIVE Node B Normal Watchdog Node A’ Obfuscated Watchdog Figure 3.5: Normal Watchdog, and Obfuscated Watchdog status of the environment in terms of failed messages while making this subtraction. It may also be possible to create the ticket using both the sender ID and a certain feature of the original packet (e.g. its sequence number, or its Message Authentication Code). As a result, the sender can check if the forwarding node is executing a packet delaying attack by matching the feature of a forwarded packet with the associated content of one of its previously sent packets. A sequence number is smaller in size (e.g. 2 bytes), but the malicious forwarding node can try to guess it. On the other hand, a MAC cannot be calculated in advance by that node, but its size is bigger (e.g. 4 bytes). If the forwarding node is malicious, the existence of such ticket forces the node to send a packet that contains a valid ticket. The malicious node can interchange the ticket of a packet with one of the tickets of previously received packets, effectively cheating the delay detection process. But in any case, the packet containing the valid data must be sent once the routing queue is empty, so the delay time is bounded by the network load. Of course, the malicious node can alter the message, but avoiding alteration attacks is not the purpose of this support protocol. Obfuscated Watchdog. Hsin and Liu ([181]) introduced a distributed monitoring mechanism for wireless sensor networks based on a two-phase timeout system: if a node of the network does not produce any packets in a certain period of time, the neighbours will consult the death of that node with its neighbourhood. It is also possible to consult the node itself about its health, in case it is suspected to be dead. In this way, nodes can act as active watchdogs of the other nodes. Since it has been demonstrated that a node cannot be subverted in a trivial period of time, it can be easily deduced that a subverted node will disappear from the neighbourhood for a period of time before sending again any packets, thus any reappearing node can be suspected to be a malicious node if the neighbourhood does not show symptoms of a more broader attack, e.g. a jamming attack. It is possible to increase the time an attacker needs to analyze and replicate the source code of a node by adding a challenge-response process to the consulting procedure. That is, if a node A requests another node B a proof of its liveliness, the node B must solve a small challenge included in A’s request, as seen in Figure 3.5. The way that a node calculates the answer to a challenge is unique for every challenger, i.e. node in the neighbourhood. As a result, the attacker is forced to analyze the 114 Node C Node A Node B Node D Figure 3.6: Network scenario with Spontaneous Watchdogs code included in a subverted node before making a valid replication. A simple way to include this challenge calculation into the nodes is to create the challenge as a simple operation dependent of the pairwise keys shared by both nodes (e.g. a simple XOR of the challenge with the pairwise key). Since it is possible to learn the nature of the challenge just by subverting one single node, a possible improvement is to tie the calculation of the answer with a set of parameters negotiated in the first moments of the network. The use of self-modifying code techniques could also be of interest. Spontaneous Watchdogs The spontaneous watchdog technique, whose main goal is to activate only one node global agent per packet circulating in the network (e.g. only one node global agent analyzing a broadcasted packet), relies on the broadcast nature of sensor communications, and takes advantage of their inherent redundancy. As seen in Figure 3.6, for every packet circulating in the network, there are a set of nodes that are able to receive both that packet and the relayed packet by the next-hop. Hence, all these nodes have a chance to activate their node global agents in order to monitor those packets. The process is as follows: • The node will check if both the origin of the packet and the destination of the packet are in its neighborhood. • If true, the node can be a spontaneous watchdog. Consequently, it will deduce how many nodes in the network are in its same situation. • If the number of nodes that fulfill the requirements are n, a single node will select itself as a node global agent for this packet with a probability of n1 . This process can resemble as n people with 1 dice of m sides each, where n = m, trying to obtain a 1 in the dice to activate the node global agent. This technique requires all the nodes to store a list of the neighbors of the immediate neighbors of the node. This list is not scalable for high density networks: 115 it grows as a quadratic function ((n2 ) + n) of the number of one-hop neighbors n. However, the size of the list can be reduced using Bloom filters [203], storing the neighbors’ list of every neighbor as a bit array. For a Bloom filter configuration of k = 1 (hash functions) and m = 2 (number of bits m doubles the number of neighn bors n), the size of the list is reduced 75%, at the cost of introducing a probability between 16% and 40% of false positives. By storing a list of neighbors for every node in its neighborhood, sensor nodes are capable of calculating how many nodes can activate their node global agents by intersecting the set of neighbors of the packet’s origin with the set of neighbors of the packet’s destination. If there is only one node who fulfills the requirements, it will activate its node global agent. Otherwise, if there are more than one node, all of them will have the same probability to take the role. All decisions are made independently from other nodes, hence the traffic of the network will not increase. In Figure 3.6, for example, Node A wants to send a packet to Node B while Nodes C and D are in the neighborhood. Both C and D will intersect the set of neighbors of A ({B, C, D}) and B ({A, C, D}), and the result will be {C, D}, i.e., two neighbors. Therefore, both nodes have a chance of 21 to activate their node global agents. 50 45 25 neighbors 45 25 neighbors 40 10 neighbors 40 10 neighbors Scenario probability (%) Scenario probability (%) 50 5 neighbors 35 3 neighbors 30 25 20 15 3 neighbors 30 25 20 15 10 10 5 5 0 5 neighbors 35 0 0 1 2 3 4 5 6 7 8 9 10 Number of spontaneous watchdogs (Nodes) 0 1 2 3 4 5 6 7 8 9 10 Number of spontaneous watchdogs (Nodes) Figure 3.7: Number of Spontaneous Watchdogs, Normal & Double Probability The spontaneous watchdog technique, however, does not assure that one and only one node will activate its node global agent for every packet in the network. The explanation of this problem lies in the independence of the nodes’ behavior. Since a node does not communicate its decision to others, more than two nodes (or even no node) may activate the node global agents. Therefore, there is a possibility where a packet can go unsupervised. The probability that α nodes have to activate their node global agents at the same time is given by the following equation: P Rnn−α,α · (m − 1)n−α (3.1) V Rm,n where P Rnn−α,α is the formula of permutation with repeated elements, V Rm,n is the formula of r-permutations with repetition, n is the number of nodes that could f (α, n, m) = 116 activate their node global agents (i.e., the number of nodes that are going to throw a dice), and m is the number of nodes that are going to influence on the probability of activating the node global agents, normally equal to n (i.e., the number of sides of every dice). The proof of this equation can be found in appendix A. Figure 3.7a is plotted using (3.1) where n = m = {3, 5, 10, 25} and α = [0..10]. As an example, if two nodes have n = 3 common neighbors, the probability of having 0, 1, 2, or 3 of them as spontaneous watchdogs is 0.296, 0.444, 0.222 and 0.038, respectively. As shown in Figure 3.7a, the probability of not supervising a packet is between 0.29 and 0.36. Therefore, in the spontaneous watchdog technique, one of three packets in the network will go unsupervised. Also, most packets will be analyzed by one or two nodes of their neighborhood independently of the density of the network. Thus, the energy consumption will be lesser in a high density neighborhood. All these results depend on the assumption that every node has the same probability of activating its node global agent. However, it is possible to tweak the behavior of the nodes by increasing that probability, hence decreasing the number of sides of the “dice” (i.e., m in (3.1)). The results of an experiment where every node has doubled its probability of being a watchdog (m = n2 ) are shown in Figure 3.7b. The probability of not supervising a packet is only between 0.03 and 0.12, but the number of nodes analyzing the same packet has increased by the order of one. Therefore, it is possible to decrease the number of packets left unsupervised by increasing the probability of a single node being a watchdog, but at the same time the number of nodes activating their node global agents will increase. This is a tradeoff between the security and energy utilization that network designers must have in mind. 3.4 3.4.1 Trust Management Introduction to Trust Management The concept of trust (‘the firm belief in the reliability or truth or strength of an entity’) derives from sociological or psychological environments. Trust is an essential factor in any kind of network, social or computer networks, since it aids the members of these networks to deal with uncertainty about the future actions of other participants. As a result, both trust and its management become specially important in distributed systems or internet transactions. The term trust management was first coined by Blaze et. al. [205] as an attempt to build a coherent framework for security policies, credentials and trust relationships. In a computing context, trust is usually defined in terms of the relationship between a trustor (the subject that trusts an entity or a service) and a trustee (the entity that is trusted). The basic tasks of a trust management system are the following: determining initial trust, observing the trustee’s actual behaviour and updating trust 117 accordingly [207]. Usually, trust management systems can be classified into two categories: credentialbased trust management systems and behaviour-based trust management systems. This classification is based upon the approach used in order to establish trust among the peers of a system. Credential-Based Trust Management Systems In this type of systems peers (or nodes) use credential verification in order to establish trust with other peers (or nodes). The primary goal of credential-based trust management systems is to enable access control. Therefore their concept of trust management is limited to verifying credentials and restricting access to resources according to application-defined policies. A peer requests for access to a restricted resource. The access is controlled by a resourceowner that provides access only if it can verify the credentials of the requesting peer. Trust of the requesting peer in the resource-owner is not usually included. Thus, this type of systems is useful when there is an implicit trust in the resource-owner. However, these type of systems do not incorporate the need of the requesting peer to establish trust on the resource-owner, for this reason they are not very good trust management solutions for all decentralized systems. Credential-based trust management systems are PolicyMaker [205], its successor, KeyNote [206] or REFEREE [209]. Behaviour-Based Trust Management Systems These type of systems are also called experience-based. In these models an entity trusts another entity based on past experience or behaviour. Thus, entities can perform evaluation on the other entities based on these features. These systems are mainly based on the concept of reputation (‘What is generally said or believed about a person or the character or standing of a thing’), which is quite related to the concept of trust. As it happens with the term trust there are several definitions of reputation in a computing context. AbdulRehman and Hailes [204] define reputation as an expectation about an individual’s behaviour based on information about or observations of its past behaviour. Jøsang et. al. [213] define reputation as a mean of building trust; one can trust another based on its good reputation. There are some basic properties that any reputation-based trust model should fulfil regardless their field of application: the model, the metrics, and the feedback. The model specifies how reputation is built, the metrics establish how the reputation values of an entity are stored, and the feedback indicates the type of output (either positive or negative) given by the reputation. An example of trust system based on reputation for e-commerce online applications is SPORAS [226]. Another example of reputation model in the context of agent is REGRET [220]. 3.4.1.1 Trust and Sensor Networks Trust is a very important factor in the decision-making processes of any network where uncertainty exists. That is, when the outcome of a certain situation cannot 118 be clearly established or assured. With no uncertainty, there is no need for a trust management system: if an element of the network knows in advance the actual behaviour of their partners (e.g. collaborative, malicious, faulty,...), it can make a flawless decision. As a result, for knowing if a trust management system can be applied to a WSN, it is necessary first to analyze the importance of uncertainty in such environment. Uncertainty originates basically from two sources [223]: information asymmetry (a partner does not have all the information it needs about others), and opportunism (transacting partners have different goals). On the context of sensor networks, opportunism is not a problem. All the elements of the network work towards the same goal, and they have neither reason nor the will to behave egoistically. On the other hand, a sensor node does not have information regarding others that will allow it to know in advance how a transacting partner is going to behave. Therefore, there exist some information asymmetry that the node must deal with. Since all nodes belong to the same “living being” (i.e. always collaborate towards a common goal), it is possible to think that the existence of information asymmetry is not a real problem. When a sensor node chooses a partner to collaborate with, such partner is supposed to be honest and fully collaborative. However, this is not entirely true. As aforementioned in this chapter, sensor networks can suffer the attack of malicious nodes or the existence of faulty nodes. As a result, uncertainty in sensor networks is a problem that must be dealt with. Trust Management becomes an important tool for securing long-lived sensor networks, allowing its autonomous nodes to avoid “dubious nodes” that can affect the overall functionality and to choose the “best partner” for a certain operation. 3.4.1.2 Solutions for Ad Hoc Networks Existing trust management systems for ad hoc networks. In [216] the authors present a trust model for mobile ad hoc networks that can be used in a dynamic context within the routing process. Initially, each node is assigned a trust value according to its identity. For instance, if no information is available about the trustworthiness of a node the assigned value will be unknown. Each node records the trust levels about their neighbours. Then, by using simple, logical calculations similar to averages a node i can derive the trust level of node j, T Li (j). In [225] secure routing is also considered but the way of assigning the trust levels is carried out by evaluation of nodes over other nodes. Trust is evaluated considering factors such as statistics, data value, intrusion detection or personal reference to other nodes. The trust evaluation values, T E(i, j), are stored in a matrix. The final trust value is calculated via a linear function that uses the values stored in the matrix. Reputation is considered in [218] as a way for building trust. The mechanism builds trust through an entity called the trust manager. An important part of the trust manager is the reputation handling module. Each node monitors the activities 119 of its neighbours and sends the information to the reputation manager. Then, the information is passed to the reputation handling module and the reputation values are obtained via simple metrics. Zhu et. al. [219] provide a practical approach to compute trust in wireless networks by viewing any individual mobile device as a node of a delegation graph G and mapping a delegation graph from the source node S to the target node T into an edge in the correspondent transitive closure of the graph G, from which the trust value is computed. Suitability of Existing Ad Hoc Solutions. As reviewed in section 1.1.1.3, ad hoc networks and sensor networks are essentially different. Their subjacent infrastructures are different, and also both the behaviour and the functionality of their elements are different. Due to these differences, it is not possible to directly apply ad hoc trust management systems to wireless sensor networks, although there are some aspects from their design (e.g. the existence of a reputation manager) that sensor networks solutions should take into account [254]. Actually, it is possible to identify some of the exact issues that hinder the applicability of the previously reviewed ad hoc trust management solutions in wireless sensor networks. For example, some approaches [216, 225] might not be suitable for sensor networks due to initialization assumptions. These methods consider that an initial trust value is given to each device according to their identity. This could be considered a bit contradictory with the nature of sensor networks, as initially all nodes in the WSN are preloaded with identification information created by the user. Other approaches, such as [218], have no “memory” regarding the malicious activities performed by a device (e.g. when the reputation dropped below a predefined threshold). This is of paramount importance for sensor networks, because a member of the network do not behave maliciously by default. Finally, those schemes that are designed for the specific architecture of ad hoc networks such as [219] cannot be applied to sensor networks due to . 3.4.1.3 Solutions for WSN Existing trust management systems for WSN. Research on trust and reputation systems for Wireless Sensor Networks is, as of 2008, at an early stage. Some works have been done in recent years, however most of them are designed in order to solve specific problems and do not identify the overall features that should characterize a trust management system for sensor networks. In the following, we will discuss some of the most existing relevant approaches of trust management systems for WSN, which have been mostly proposed for scenarios where the sensor nodes are static and do not move from their deployment area. One of the first works developed in this area was RFSN, by Ganeriwal and Srivastava [54]. They proposed a reputation-based framework for sensor networks where 120 nodes maintain reputation for other nodes and use it to evaluate their trustworthiness. Reputation is represented through a Bayesian formulation, more specifically, a beta reputation system. The mathematical tool used for representing and updating the reputation values is the beta distribution of Jøsang [212]. The architecture of the system consists of a watchdog mechanism, reputation, second hand information, trust and behaviour. Actually, many other systems are also based on watchdog mechanisms for obtaining first hand information, such as [208]. The use of second hand information, or information coming from other nodes, have been further extended in the literature. For example, in [228], The trust values are obtained taking into consideration different parameters: personal reference and reference. The personal reference (Tpr(i) ) that a node which is computing trust (judge) has on another node (suspect) is obtained by considering the events of the network. Reference (Tr(i) ) is the kind of recommendation provided by the juries (nodes that maintains the trust value of the suspect with the judge and sends out the corresponding opinion periodically). Reference is obtained via a recommendation protocol to specify how the judge and the jury communicate to exchange the information about the trust values. At last, the final trust value is obtained as a weighted summation of the personal reference and the reference. Other trust systems have been focusing on dealing with specific problems, like detecting misbehaving nodes in “core protocols” (e.g. routing and aggregation). [224] presents a location-centric architecture for isolating misbehaviour nodes and establishing trust in sensor networks. The underlying problem the authors target is a misbehaviour model in which a compromised or faulty node consistently drop data packets while participating in signaling and routing protocols, always over static networks. The aggregation problem is considered in [227]. Aggregators use Jøsang’s belief model in order to deal with uncertainty in data streams. The aggregator collects information from other nodes, which is given in forms of reputation. The aggregator node classifies the nodes into different groups based on their reputations. After calculating these reputation values, the aggregator determines whether there are compromised nodes. The best way to do that is by predefining a threshold. There are other trust models specialized to work in hierarchical configurations, trying to solve specific problems such as the election of a cluster head or detect failures in clustered networks. If a malicious node becomes cluster head, it could affect the services provided by all the members of a cluster. A possible countermeasure introduced in [210] is to use a trust-based framework that reduces the likelihood of a malicious or compromised node from being elected as a cluster head. The trust parameters used are measurable and observable networks events. Thus, the trust level, TN (Xi ), that node N has computed about node Xi , is calculated as a weighted summation of those events. Another example of cluster-based trust protocol is TIBFIT [211], whose main 121 purpose is to detect arbitrary node failures in an event-driven wireless sensor networks. A trust index is assigned to each node indicating its track record in reporting past events correctly. The cluster head is in charge of analysing these trust indexes and making event decisions. This trust index (TI) is a real number ranging from zero to 1. Initially it is set to 1. For each report a node makes that the cluster head estimates is incorrect the TI assigned to such a node decreases. The protocol is also able to determine locations of the event reports. Suitability of Existing WSN Solutions. It is clear that any trust management system has to be specially designed and prepared for reacting against the particular issues, such as autonomy, decentralization, and initialization, that can be found in wireless sensor networks environments. In fact, the existing state of the art on trust management systems can deal satisfactorily with some of the problems in this area, creating useful solutions. Nevertheless, there are some aspects related to trust management in sensor networks that have been neglected, or simply underdeveloped [253]. The initialization of the trust and reputation values is one of those aspects. Some systems do not consider it explicitly, and other systems tend to link initial reputation and trust values with authenticating the nodes [224]. However, in a realistic sensor network setting, any node with no credentials should be expelled from the network, since the communication channel needs to be protected with cryptographic primitives. The exact nature of the initial trust and reputation values has not been widely discussed yet. Once the network starts functioning, the kind of information that is gathered will determine how to calculate the reputation and trust values of a node. According to the state of the art, possible information sources could be, for instance, forwarding or dropping packets ([228, 224, 54]) or event reports [211]. Still, most of the existing works on trust management for WSN concentrate only on the communication layer of the network, forgetting information such as the sensory data. In addition, it was already pointed out in [54] that not all events should be given the same importance for calculating the reputation of a node. Still, this fact is not widely considered. The past behaviour of a sensor node is also extremely important, but has received little attention. Since all sensor nodes have to perform almost the same tasks continuously on time, a node should not be intermittently uncooperative. The consistence in the trust readings is significant, as well. A normal sensor network environment should produce very few reports regarding malicious activities. Therefore, the existence of different and contradictory reports should be evidence enough of malicious activity and source of mistrust. Another aspect that needs to be taken into account is the granularity of trust. It is a very well-known property of trust that it is not universal. This means an entity A may trust another entity B to perform an action but the level of trust changes if the action is different (e.g. I must trust a mechanic to fix my car but not to fix my teeth). Still, this concept has not been appropriately translated into 122 Base Station Sensor Node Trust Entity Trust Entity T 1st-Hand Information 2nd-Hand Information … … Reputation Manager … … T Trust Manager Trust Entity Figure 3.8: Overall Architecture of a Trust Management System for WSN the sensor networks context. For example, [208], gathers information and classifies it into positive or negative events without specifying which kind of events should be considered. Regarding reputation, only a few systems take reputation explicitly into account [208, 54, 227]. Still, having both reputation and trust in the same system is essential. By not calculating the trust directly from the behaviour of a node, it is possible to better handle aspects such as the evolution of the node, aging, etc. As a final matter, one of the biggest constraints regarding trust management for sensor networks is the overhead that the existence of this system may impose over the constrained elements of the network. It is then imperative to balance the overhead of the data collection process, and to make both these processes and the trust and reputation models as lightweight as possible. Due to the broadcast nature of the communications, the simplicity of the data collection processes, and the inherent redundancy of sensor networks, we think it is possible to create a functional trust management system for sensor networks. 3.4.2 Features of Trust Management Systems for WSN As explained in the previous section, there have been many solutions that try to solve the problem of applying trust values to decision-making processes in wireless sensor networks. Although their underlying architecture is similar, there are some important features and problems that are taken into account in some solutions, but partially or completely ignored in others. Even more, some specific issues like the initialization of reputation and trust are, in most cases, neglected. For the development of a specialized trust management system, adequate for sensor networks, it is necessary to review and point out which features have to be considered in a sensor network context, alongside with the open problems that need further research [252]. This is 123 the major objective of this section. 3.4.2.1 Architecture and components An important element of any trust management system is the trust entity. This entity is in charge of obtaining, calculating and maintaining reputation and trust values. For sensor networks, it is possible to define the structure of a generic trust entity, as shown in Figure 3.8. In this structure, the “information” modules obtain information about the behaviour of the members of its neighbourhood, either through observation and experience (i.e. “first-hand information”) or by sharing the observed events with other entities (i.e. “second-hand information”). After this process, the “reputation manager” module can use this list of events to infer and store the reputation of the members of its neighbourhood. Such reputation will be later used by the “trust manager” module to obtain the trust values. Those values can be used either to decide which is the best partner for a certain operation or to discover if one entity should not be trusted. Both modules need to maintain and update their values during the lifetime of the network. This structure is clearly applicable to wireless sensor networks, because a sensor node can obtain information about its surroundings either directly or indirectly. In addition, the sensors have limited computational capabilities. Consequently, by using lightweight algorithms, they can be able to infer the reputation of its neighbours and decide if they trust them for certain operations. Moreover, this model of a trust entity fits in the design of most of the existing work on trust for sensor networks that consider reputation in their design [208, 54, 227]. Once the architecture has been introduced, it is time to define where the trust entities should be located. That is: Which nodes need the trust values? In wireless sensor networks, all the sensor nodes do. All sensor nodes participate on the protocols that support the network, such as routing. The decisions regarding the execution of the protocols (e.g. who could be the next node in the routing path when transporting an “Out-of-Band” message) are usually made by the nodes on their own, and in exceptional situations with the help of its direct neighbourhood (e.g. when clustering a flat network, or when aggregating some data). Finally, faulty and/or malicious nodes may appear on any part of the network. As a result, the trust entities should be located either in every node of the network for distributed networks or in the cluster heads for the hierarchical networks. This is the same case as with the intrusion detection agents, which are also deployed in a distributed manner (cf. section 3.3.2). In addition, and as pointed out by Tanachaiwiwat [224], trust entities could also be implemented inside the base station. Due to its role as a network manager and data repository, the base station receives information from all the nodes in the network. As a result, its information asymmetry is reduced: it has a global point of view of the state of the network, whereas sensor nodes can only manage to observe their immediate surroundings. Although it cannot directly influence over the behaviour of the nodes, it can issue orders that those nodes 124 must fulfill. 3.4.2.2 Initialization and information gathering Before the entities in the nodes and the base station can start measuring the trust of their neighbourhood, it is necessary to initialize adequately the trust and reputation values. This, which could be seen as a problem, is not that important. Before deployment, sensor nodes are programmed in a controlled environment by the network manager, with similar tasks and services. Thus, at the beginning or their life they can be completely trusted: Their hardware is supposed to be tested for failures before deployment, and also at this stage any malicious adversary had neither the time nor the chance to influence or subvert a node. Reputation is built over time, using the behaviour of the nodes as a feedback. Initial reputation should not affect negatively both trust and the decisions taken by the nodes. Note that other systems tend to link initial reputation and trust values with authenticating the nodes. However, in a realistic sensor network setting, any node with no credentials should be expelled from the network, since the communication channel needs to be protected with cryptographic primitives due to its public nature. After the network starts functioning, the nodes will provide its services, and the trust management system will be able to start gathering “first-hand” and “secondhand” information from its direct neighbourhood. The monitoring process that gathers “first-hand information” must obtain general information from the behaviour of the nodes, but also specific information related to the particular instances of the protocols used in the network. Precisely, the situation awareness mechanisms introduced in section 3.2 can provide the trust entity with the information it needs about the neigbourhood. Regarding protocol-specific information gathering (e.g. aggregation by Zhang et. al. [227]), it can coexist with these situation awareness mechanisms, providing complementary information. A node should not only take into consideration this “first-hand information” while observing other nodes, but also the reports produced by its neighbouring nodes (“second-hand” information). Unfortunately, it is also possible to receive malicious reports from tampered nodes. For this reason, there should be a mechanism for assuring the correct management of the information. The inherent redundancy of sensor networks can help to develop this kind of mechanism, since the existence of a malicious report (e.g. a bad-mouthing attack) that is not coherent with the state of the neighbourhood can be an indicative of a malicious presence. On this information gathering process, it is important to note that a source of second-hand information can be a sensor node accusing itself of being malicious. Following the simile of the “living being”, this entire process is similar to the concept of apoptosis, when a cell suicides due to malfunctioning, virus infection, or other reasons [215]. Due to the embedded intelligence of a sensor node, it can detect whether its batteries are low, its readings are inconsistent with its neighbourhood, or its transceiver seems to not work. On discovering these issues, the sensor node can 125 try to alert its neighbourhood about its state. This situation can also be reported to the base station: A malfunctioning sensor node can be recovered and subsequently repaired by a human operator. As with all second-hand information, it is possible for a malicious adversary to try to take advantage of this apoptosis process. It can fake the message with the purpose of alerting that a healthy, trusted node, has an internal problem. However, if all these messages are sent using an authenticated channel (e.g. using techniques such as µTESLA [65] or public key cryptography [217]), the only option left to the adversary is to use its subverted nodes to accuse themselves of not functioning properly. Even if such case occurs, this is counterproductive for the adversary: it will alert the network and the base station about its existence. 3.4.2.3 Information modeling Once the information, either “first-hand” or “second-hand”, has been gathered, the trust entity can be able to output trust measurements based on existing reputation values. The task of calculating and storing the reputation of a node relies on the module known as reputation manager. Due to its memory constraints, a sensor node cannot store all the events that its neighbours produce during its lifetime. Therefore, it is necessary to create a lightweight reputation manager that could capture and efficiently store the behaviour of other entities in the previous interactions, while being able to update it with new information if possible. The other part of the trust entity, the trust manager, is in charge of calculating a certain trust measurement of a node using as an input its existing reputation, and providing the trustor with a measurement that can help it to take a decision over a certain trustee. This trust measurement should be obtained by taking into account the risk of the interaction between the trustor and the trustee, and according to the importance of the reputation value and that specific interaction. Risk and importance are significant factors in the calculation of trust, but they also influence the selection of a threshold. That is, when a certain trust value labels a trustee as “trusted” or “untrusted” for a certain operation. There are other, non-exclusive ways to use the trust values, such as when one trustor have to choose over a group of trustees. While calculating the reputation of a node and its trust measurements, it is essential to take into account the granularity of the trust management system. As aforementioned, the reputation of a certain node is built according to its behaviour and the events it triggers. Most systems simplify the reputation into one single set of values. However, the actions of the nodes are not reduced to the execution of one task. For example, a node can route information to the base station, and read the physical measurements of its environment using the sensors, amongst others. A node needs to maintain separate opinions about the existing actions of their peers, thus it needs a different set of reputation values. A consequence of this fact is the need of linking the existing events with the different reputation values they influence. The existence of different reputation values also implies the existence of different 126 trust values. A specific trust value (e.g. routing) will help the node to decide about the possible outcome of a specific interaction with another peer. On the other hand, that value cannot be used in most cases to deduce what the peer could do in a different task (e.g. sensing). For example, a node that loses data while forwarding packets cannot be trusted as a message forwarder, but it may be trusted as a possible source of data. The dimension of sensor networks as balanced “living beings”, that should have none or little deviation from its behavioral patterns, affects over the functionality of both trust and reputation manager. For example, a node that acts truly maliciously in the context of a sensor network will most surely keep such evil behaviour in further interactions. Therefore, “bad” reputation should not be forgotten easily while updating the reputation values. The evolution of the reputation on the aging process is also an important factor that a node cannot ignore: a trust entity should remember if a node achieved high “bad” reputation ratings on the past. Also, the occurrence of certain events (e.g. the existence of a blackhole) have a more direct impact on the reputation of a node. These events are a clear indicative of malicious or erroneous activities. As a consequence, a node exhibiting such behaviour should be flagged with a very low reputation value. In addition, the consistence of the trust readings is also significant. A normal sensor network environment should produce little or none reports regarding malicious activities. Therefore, the existence of different and contradictory reports should be evidence enough of malicious activity and source of mistrust. Finally, all the important decisions taken by the nodes, such as node exclusion, should be notified to the base station. It does not mean that the trust management system has to be centralized, but that the base station, as the user of the network, should know about the internal status of the network for logging, monitoring and maintenance purposes. Also, the existence of a strange situation can be the symptom of a greater problem, since sensor networks behaves satisfactorily by default. As a result, the trust entity that exists inside the base station can use this newly acquired information for the benefit of the whole network. 3.4.2.4 Existing computation models We have focused our efforts on uncovering certain issues of trust management systems that are highly dependent on the specific features of sensor networks, but have been neglected by the actual state of the art. As a result, we have not developed some specific aspects such as the computational model that derives reputation and trust values. Still, we include here a enumeration of these models for the sake of completeness. Usually, these methods are based in mathematical models such as statistics or probability theory. This is very similar to approaches for ad hoc networks. As these trust management systems are mainly behaviour-based, it is necessary to use mathematical tools in order to compute the trust or reputation values. 127 Sometimes the trust values are calculated via simple or weighted summations of the different data collected [221, 228]. Simple mathematical functions are also used in [224]. Linear functions are also used in [221]. In this approach the calculation of trust values is done in three different phases: at the node, at the cluster head and at the base station. In each of these phases the calculation is done, for instance, by functions such as (P Ix,y ) + P Rx,y T νx,y = 2 where T νx,y is the the trust value node x wants to calculate on node y. P Ix,y is the past interaction trust value and P Rx,y is the peer recommendation trust value of node y calculated by node x. These values are calculated using also similar linear functions. The approaches described above use simple mathematical functions such as summation or product. The exponential function can be also used, and this is the case in TIBFIT [211]. TIBFIT tries to combat failures in the reporting event, thus each node is assigned a T I, maintained at the cluster head. The T I is calculated as T I = e−λν where λ is a proportionality constant that is application dependent and ν is a variable for each node maintained by the cluster head. This variable is incremented every time the node makes a faulty report. The beta distribution of Jøsang [212] is used in some systems developed for ad hoc networks as well as for some systems for WSN [54, 227]. The advantage of using this model is that is supported by a robust mathematical tool. This method is based on the definition of an opinion that express the degree of belief in the truth of a statement. This model is very suitable for the problem of aggregation in sensor networks [227], as the aggregation of data problem is infiltrated with uncertainties due to the unavoidable sampling errors, false data injected by either compromised nodes or aggregators. Probability theory is used in [208]. As we mentioned in section 3.4.1.3 this approach uses a watchdog mechanism in order to gather first-hand information. This watchdog mechanism also records the outcomes of several events and classifies them into positive or negative events, < p, n >. According to the Bayes theorem the probability of a positive outcome, x, is defined as (p + n + 1)! p P (< p, n >, x|x)P (x) x (1 − x)n = P<p,n> (x) = P (x| < p, n >) = P p!n! P (< p, n >, x|x)P (x) This conditional probability is the posterior probability of reputation < p, n >. 128 CHAPTER 4 APPLICABILITY OF SECURITY SERVICES This chapter studies how the different application-aware security mechanisms of the “complete set” can i) be included inside an architecture and ii) used in the interactions with other networks. We present the vision and goals of the EU STREP Project ‘Secure Middleware for Embedded Peer-to-Peer systems’ (SMEPP), and how the ideas presented in this thesis, such as the transversality of security and the applicationoriented nature of the security mechanisms, are applied to an ongoing1 middleware architecture. Finally, we discover that the interactions between secure sensor networks and a secure Internet are not secure by default, thus we examine the security problems that may hinder the relationship between these two networks, and we propose some solutions while pointing out open problems in this area. 1 ‘Ongoing’ as of 2008. The SMEPP project will finish on October 2009. 129 130 4.1 Middleware The SMEPP project (Secure Middleware for Embedded Peer-to-Peer systems, FP6IST-033563) is an European STREP project funded by the European Union under the 6th Framework Programme. It began on October 2006 and will finish on October 2009. The main objective of this project is to develop a new middleware, based on a new network centric abstract model (embedded peer-2-peer), and trying to overcome the main problems of the currently existing domain specific middleware proposals. The middleware will be secure, generic and highly customizable, allowing for its adaptation to different devices and domains. Vision and goals of the SMEPP project Embedded Peer-to-Peer Systems (EP2P) represent a new challenge in the development of software for distributed systems. P2P systems have brought about an important revolution in distributed computing paradigms, now that the roles of client and server, which are the basis of the most widely used distributed computation models, are disappearing. This scenario consists of systems in which all the elements of the network are symmetrical and, in most cases, the mechanisms of communication are not based on pre-existing infrastructures, but rather on dynamic ad hoc networks among peers. At the same time, the recent technological advances in short distance wireless communications and embedded systems have opened up new areas of application, where small, low-powered, low-cost systems collaborate in the processing and management of information using wireless channels. These EP2P systems are flexible enough to be applied in diverse areas, such as: • Environmental monitoring: Monitoring of the effects of industrial plants on the environment is a key issue in different application domains and particularly in the field of nuclear energy. The use of EP2P opens up new fields that allow monitoring in the case of small leaks during inspection or even in the case of accidents where no other equipment is available. • Home systems: A ”smart house” is usually made up of several intelligent devices that can control home appliances or ”feel” its surroundings. EP2PS systems can help in both the unobtrusive management of the smart house (from anywhere, to anywhere) and the collaboration between the embedded devices of the house (e.g. ”nobody is in the room and the air conditioner is on. . . it should be off”). The SMEPP Middleware platform will have to comply with the following general EP2P objectives: adaptability, scalability, high availability, and ubiquity, as the model will be based on the possibility of incorporating and removing resources in a dynamic and adaptive way, and users can access those resources offered by the network anytime, anywhere. SMEPP applications will be covering and spanning over 131 a very heterogeneous terminal, gateway, sensor and device ecosystem (applications may run on different devices, from PCs, Laptops, mobile phones and PDAs to sensor nodes, with quite different network bandwidths, memory capacities and computing power). The networking and routing protocols used will have to support the important dynamicity of the network topology (the elements come into the system and go out in an independent way, involving frequent reorganization of the systems). The latter objectives represent important technological challenges to tackle in the project such as networking decentralization, network paths with transitory communications (connections and disconnections happen in an unpredictable and frequent manner) and a constantly changing topology. A key aspect in the success of SMEPP is the possibility of abstracting all these problems by means of the design of suitable middleware layers and blocks. Without such a middleware solution (including the tools and methodologies to support its use), the definition, creation and maintenance of an application would be a very complex task. The SMEPP middleware should hide the complexity of the underlying infrastructure while providing open interfaces to third parties for application development. The development of such a middleware is challenging, since besides the disappearance of the roles of client and server, which are the basis of the most extensively used current middleware (CORBA, J2EE, .NET), other critical requirements appear, which have to be supported by these infrastructures (mobility, enhanced security support for restricted computing power devices, node identification, service discovery, advanced routing mechanisms and localization protocols, new quality of software criteria, etc). 4.1.1 Security in the Middleware 4.1.1.1 Middleware architecture The SMEPP Middleware architecture is shown in Figure 4.12 . It is divided into three functional layers. The top layer consists of the Domain-specific Middleware services and the Service Model Support that provide the actual API for application developers for using the SMEPP Middleware. The second layer from the top is the Common Middleware Services that provides the actual functionality of the Middleware defined by the service model. Finally, the bottom layer is the distribution middleware that contains all the framework implementations needed by the Middleware services for providing the required functionalities. Regarding security, it is considered as a transversal layer that can be accessed by all the services of the middleware [260]. This point of view coincides with our approach presented in section 1.2.3. The principal security components in this architecture are the following: 2 The interactions with other middleware frameworks is not indicated in this figure due to lack of space. 132 Figure 4.1: An Overview of the SMEPP functional structure 133 • Group Security is concerned with the security related aspects of group establishment and maintenance. In SMEPP, the members of the network can join certain groups, and they can access to the services of other peers only if they belong to the same group. This component is responsible for the authentication of peers which want to join these groups. Peers which have been authenticated are either authorized to join the group or denied entry based on the group’s access policy. Group Security also provides facilities for the secure communication amongst group members. This component is designed having one the goals of this dissertation in mind: its mechanisms and algorithms are designed according to the requisites of the application that is going to use the SMEPP middleware. • Cryptographic Services provide common functionality which is required for the implementation of security-related components (e.g. Secure Topology Management, Group Security). This includes cryptographic primitives (encryption/decryption, digital signatures, Message Authentication Codes, unkeyed hash functions) as well as supporting functions (random number generation, key storage, certificate management). For the algorithms used in these services, the SMEPP project considered the analyses presented in section 2.1. • Infrastructure Security encompasses device-specific support for security functionality which facilitates the implementation of the security-related components. An important example are secure instruction sets (instruction set extensions for cryptography), which speed up cryptographic processing. These features can be used to realize the Cryptographic Services more efficiently, which in turn reduces the overhead incurred in all security-related components. As an example of the relationship between this Security layer and other services, we can mention the SMEPP Distribution Middleware. The components of this layer will use the security services to control the authentication and authorization of new peers, while protecting any routing-related information. Regarding the interaction between components inside the same security layer, the Cryptographic Services component will use the cryptography extensions located in the Infrastructure Security component if available. If the design is changed and new cryptographic extensions are available, there is no need to change the whole architecture: the Cryptographic Services component will simply use the new extensions. Note that the Situation Awareness mechanisms are not explicitly mentioned in this architecture. In fact, inside the SMEPP middleware, there are no services besides routing that need the situation awareness mechanisms. As a result, the self-awareness component exist as an independent component that only provides its services to the secure routing mechanisms (e.g. to know if one node in the routing path has disappeared). However, if in the future the self-awareness services are required by other middleware services, it is only a matter of locating them inside the transversal Security layer. 134 Figure 4.2: The three levels of security in SMEPP 4.1.1.2 Levels of security In SMEPP, the application developer can choose the level of security that better adapts to the scenario and the requirements of his/her application. These security levels have been jointly developed by the security researchers of the SMEPP consortium, including ourselves, and are detailed in Figure 4.2. As shown in this table, it is possible to configure what is the security credential used for entering a group, and also the level of protection offered by a session key. By using a shared secret as a security credential, the complexity of both the negotiation protocols and the security components is reduced. However, the use of a shared secret is not recommended in scenarios where a malicious attacker have chances to steal the information from the devices. In such a case, it is better to use public key cryptography for limiting the effects of those compromise attacks. Regarding the level of security offered by the session keys, the simplest level that offer protection just assures the integrity of the message and the authenticity of its source as a member of SMEPP. On the other hand, the highest level of security also protects the confidentiality of the message, dissuading any external devices from accessing the information flow. The customization of the security parameters in SMEPP does not end here. SMEPP features multiple security domains: one global domain (all the members of SMEPP belong to this domain) and various group domains (one for each group in a SMEPP application). Within SMEPP, it is possible to select different levels of security for every domain. The application designer can choose to protect the global domain and only allow the existence of authenticated peers, but it is also possible to create a public network that anyone can join. On the other hand, it is possible to modify the level of security of one particular group, allowing the coexistence of groups that can be accessed by any member of SMEPP and groups that can only be accessed with the right credentials (a simple shared key or a public key certificate). 135 The architecture of SMEPP follows a component-based model, thus it can be possible to adapt the middleware to the requirements and constraints of the application. For example, if some security mechanisms are not used (e.g. the security level that uses public key cryptography), then it is possible to just remove them from the architecture. By using components, it is also possible to optimize the architecture: one single component can provide services to different elements. For example, the Cryptographic Services component provide security primitives to both type of domains, group (managed in the Group Security component) and global (managed in the SMEPP Distribution Middleware components). As a final note, the use of public key cryptography in the highest level of security was taken into consideration by the SMEPP consortium partially because of the results presented in section 2.1. 4.2 4.2.1 Connectivity - Sensor Networks and the Internet Integrating WSN and the Internet The sensory cells of a living body need a brain that can react to the information coming from the physical world. This simile can also be applied to sensor networks: they need to interact with an external system in order to be useful. The simplest sensor network deployment consists on a collection of sensor nodes and a base station. Either a computer system or a human being will be connected to that base station, and will make use of the information coming from the sensor nodes. For example, a farmer can inspect the moisture of his crops just by looking at the data collected by the base station. The services of sensor networks could also be accessed by users located in external networks, either through the base station or directly accessing to the sensor nodes. Consequently, the flow of information produced by the networks could be retrieved and analyzed by different applications situated in diverse geographical locations. Furthermore, an operator could control a sensor network remotely, without physically accessing the deployment field. However, if those services were to be published by using standard interfaces in a public network infrastructure, their potential would be fully unleashed. Any interaction with sensor networks would go beyond the notion of ”remote access”, into the realm of ”collaboration”. Just as a living being’s brain pictures the state of its surroundings by receiving information from many different types of sensory cells, the flow of information provided by a single sensor network could be further combined with other data sources or even with other sensor networks to create increasingly complex services. Actual examples include coordinating patient’s health data with the bed occupancy at hospitals in case of disaster [235], and triggering imaging via satellite based on the input of different sensor networks measuring earthquake data 136 Front-End Proxy Solution Data Data S-Data Sensor Data TCP/IP TCP/IP S-Proto Sensor Protocol MAC MAC 802.15.4 IEEE 802.15.4 Data Gateway Solution TCP/IP Overlay Solution Data Data TCP/IP TCP/IP S-Proto Sensor Protocol MAC MAC 802.15.4 IEEE 802.15.4 Data Data Data TCP/IP TCP/IP TCP/IP MAC Internet Host MAC 802.15.4 Base Station IEEE 802.15.4 Sensor Node Figure 4.3: WSN-Internet integration strategies [19]. All these visions can become a reality if sensor networks are connected to the Internet. The operational challenges of a completely successful integration are enormous. For example, the vast number of data sources should be harnessed in order to undertake broad scientific studies. Also, there should be mechanisms to discover and tap into real-time data sources. In addition, query processing should also be distributed across the Internet, pushing the query logic into the infrastructure [246]. However, the immediate benefits of a basic integration between sensors and Internet hosts are sufficient enough: any Internet user or device from any geographical location in the world will be able to access to a sensor network services. There are many approaches that can be used to open the services of sensor networks to the worldwide community. Sensor networks can behave as adjacent ”capillary networks” [243] that are not fully integrated in the Internet but provide its services through a standard interface, or can behave as any other IP-based network whose nodes are able to establish direct connections with any other Internet host. Besides, there is a third option, where the sensor networks retain their independency but allow the establishment of direct connections. These three approaches are shown in Figure 4.3, and are discussed below. In a front-end proxy solution, the base station serves as an interface between the data acquisition network (sensor network) and the data dissemination network (the Internet). The base station collects and stores all the information coming from a sensor network, and also sends any control information to the sensor nodes. There is no direct connection between the Internet and a sensor node: all incoming and outgoing information will be parsed by the base station. As sensor networks are 137 completely independent from the Internet, they can implement their own protocols and algorithms. From a functional point of view, the base station can offer the services of its nodes (e.g. data streams) through standard mechanisms such as web services [236] or web streams [230]. In the gateway solution, the base station acts as an application layer gateway, in charge of translating the lower layer protocols from both networks (e.g. TCP/IP and proprietary). As a result, the sensor nodes and the Internet hosts can exchange information directly. In this approach, a sensor network can still maintain some of its infrastructural independence, although it is necessary to create a translation table that maps the sensor node addresses to IP addresses. Some web services solutions such as TinyREST [239] take advantage of this approach. There is a small variation of this solution, the Delay-Tolerant Network (DTN) gateway solution, where the base station can be able to store and forward packets between the networks. In this case, if the link between the base station and the sensor node is broken, the packet is not transmitted and is stored for future forwarding [237]. Finally, in the TCP/IP overlay solution, sensor nodes do communicate with other nodes using TCP/IP. Therefore, the main function of the base station is to behave as a router, forwarding the packets from and to the sensor nodes. These nodes must implement the protocols and standards used on the Internet, such as the TCP/IP stack and web services interfaces. Currently, there exist implementations and specifications for IPv4 [229] and IPv6 [240] in sensor nodes, although it is widely assumed that future deployments should be based on IPv6 [232]. Nodes can also provide web services, by reporting its interface using the web service description language (WSDL) and connecting to other hosts using HTTP [244]. While the advantages of connecting sensor networks with the Internet are obvious, it is not exactly clear whether sensor nodes should be completely integrated inside the Internet or should maintain its independency as part of a cloud of ”adjacent” networks. Some of the infrastructural issues that have to be considered when deploying sensor networks connected to the Internet are discussed below: • Addressing: In order to send a message to a specific sensor node in the frontend proxy solution, it is necessary to incorporate such functionality into the base station interface (e.g. as a web service). This is not the case of the other solutions, where a sensor node can be directly addressable using IP addresses. Nevertheless, it is not clear how IP addresses could be used in sensor networks that identify its nodes using location information or other data-centric protocols. • Protocols: By achieving interoperability at the network and application layers (TCP/IP and web services, respectively), it is possible to integrate sensor networks inside the Internet. Besides, this is also beneficial for achieving interoperability between different vendors. On the other hand, by using specific 138 protocols that are tailored to the requirements of the application and the scenario where a sensor network is deployed, such network may be able to react adequately and optimally to application-specific problems. • Data Availability: When a sensor node is not available, it cannot be possible to obtain neither data streams from its sensors nor historic values stored inside its flash memory. However, if the data stream is accessed through a proxy or a gateway, there can be specific network mechanisms that allow the provisioning of data regardless of the state of the node (e.g. by measuring data from nodes that are in the same context than the broken node). • Network-specific issues: Sensor networks have very specific features that differentiate them from other network paradigms. Their nodes are battery-powered, and in most scenarios they should provide their services for as much time as possible. Besides, in order to save energy, the data rate of the wireless channel is not high (i.e. 250kbps in the IEEE 802.15.4 standard). Therefore, both the sensor networks protocols and the applications that use their services should take into account these specific constraints. 4.2.2 Security challenges In this dissertation, we have presented and developed a “complete set” of security mechanisms whose sole purpose is to enforce the security properties that sensor networks must have. It could be assumed that, once we have the foundations of a secure sensor network, any interaction between a (secure) sensor network and the (secure) Internet will be secure. However, this is not the case. In this integration process, there will appear new, previously unidentified security challenges that need to be taken into account by both sides [247]. As the users of the network will connect remotely to the services provided by the nodes, there is the necessity of protecting the information flow. Besides, the aperture of sensor networks services to the whole world community will facilitate the existence of unauthorized users trying to access the networks. Therefore, there must exist some mechanisms for authenticating both nodes and users, for checking if an user is authorized to access the node, and for detecting any attacks coming from the outside network. Other factors such as availability and accountability need to be considered, as well. When a sensor node and an Internet host communicate, it is important to set up a secure channel that supports end-to-end integrity and confidentiality services. If the integrity of the sensory data is protected, attacks targeting the data stream will not be able to falsify any readings. In addition, once the confidentiality of the sensory data is assured, any adversary will not be able to read any sensitive information from the data stream. The creation of a secure communication channel requires of a common secret key between both peers, which should be negotiated using standard 139 Internet security protocols such as SSL/TLS [231]. Besides, it could be possible to use some of the KMS Protocols presented in section 2.2. Note that, in most cases, using pre-shared keys (e.g. as in TLS-PSK [233]) is not a feasible solution: it is not flexible to force the users to share a fixed security credential with sensor nodes in order to open a secure communication channel. It is also important to provide support for device authentication and user authentication. An Internet host should have the certainty that he is reading sensory data from the right node in the right network, while a sensor node should know that is providing its services to the right client. Again, standard security protocols such as SSL/TLS do provide authentication, although in most cases it requires the sensor nodes to manage digital certificates and to belong to a certain public key infrastructure (PKI). Nonetheless, authenticating the devices that are interacting may not be enough for specific scenarios, where the user that is trying to access the node should also present some credentials. The authorization problem is closely related to the authentication problem. Once any user of the network (being a human user or a machine) proves its identity, it may be necessary to check whether that user have the rights to access the sensory data. For example, public data such as the temperature of an university building may be accessed by everyone, while other data streams such as the radiation level of a nuclear power plant should only be accessed by those who have enough authority. Not only should the access to the data be controlled, but also the granularity of the data, as well. Beyond data, it is also necessary to watch over control operations: sensors should be remotely reprogrammed and retasked, and only authorized personnel should be able to do so. Other specific issues that may arise while integrating sensor networks in the Internet are accountability, intrusion detection, and availability. Since a heterogeneous set of users will be accessing the sensor networks services, it would be important to record the interactions with those users. By analyzing those interactions with an intrusion detection system, it could be possible to detect and react against possible attacks. Besides, by storing all interactions, we can be able to recreate security incidents and abnormal situations. However, unlike Internet servers, most sensor nodes have a limited amount of computational power and storage. Therefore, it is necessary to develop simple but efficient detection mechanisms, and also to devise an optimized way to store log data. Note that the detection mechanisms could be included inside the IDS architecture developed in section 3.3. Finally, as the main purpose of sensor networks is to provide sensory data to their users, the availability of this data is another sensible subject that must be analyzed in detail. If a sensor node is unavailable due to hardware error or any other malfunction, any external hosts will not be able to query it for data streams. Moreover, the node may be subject to external attacks by malicious hosts, and those attacks can affect the node in a variety of ways: from saturating its scarce resources to exhausting its battery. It is then vital to devise some mechanisms that can protect the nodes and 140 assure the availability of the data streams and other network services. While protecting the interactions between the sensor networks and the Internet, it is essential to have in mind the inherent limitations of the sensor node hardware. In most cases, constrained sensor nodes may not have the resources to implement full-fledged Internet protocols. Even more, sensor nodes should spend as less energy as possible during their normal operation, if they are deployed for long periods of time. Therefore, the protocols should be adapted to function optimally in these limited devices. Even more, it should be considered if a sensor network deployment allows the security tasks to be delegated to more powerful devices such as the base station. 4.2.3 Security achievements and open issues We have previously discussed that the secure integration of sensor networks and the Internet is an underdeveloped research subject, with many factors such as authentication and availability that must be taken into account. Nevertheless, it is actually possible to set up a sufficiently strong infrastructure where sensor networks can interact securely with Internet hosts. It is the purpose of this section to show these findings, together with some open issues [247]. • Front-end proxy solution. Although sensor networks must be sufficiently secure by themselves, it is necessary to protect the interactions between the networks and the Internet. In a front-end proxy solution, the base station acts as a representative of all the sensor nodes. By acting as any other Internet host, all the services of a sensor network can be accessed through it. Therefore, most protection mechanisms, such as key management or intrusion detection, can be implemented and deployed in the base station. As the Internet and sensor networks are logically separated, it can be possible to protect the information exchange between an Internet host and the base station by using any of the existing security standards, while any interaction between the base station and the sensor nodes can make use of simpler security approaches. Besides, the sensor networks can implement specific mechanisms (e.g. sensor redundancy) to optimize and improve the internal behaviour of the network. Note that, in this case, the base station becomes a single point of failure: if the base station is successfully attacked, an adversary may have access to all the information flow. Moreover, if the base station malfunctions, sensor networks will be completely inaccessible. A possible solution is to use multiple base stations with the purpose of improving the availability of the network in case of base station failure and including new features such as load balancing. However, new challenges such as maintaining the information consistency between all the base stations will need to be solved. 141 In this front-end proxy solution, Internet hosts can negotiate and establish secure end-to-end channels with the base station by using standard protocols such as TLS in the transport layer or WS-SecureConversation [242] in the application layer. In contrast, the base station and the sensor nodes can make use of simpler mechanisms such as pre-negotiated shared keys, or even public key cryptography if it is available. Regarding authentication, as all nodes are considered to be under control of the base station, such base station can authenticate itself (e.g. present its own digital certificate) on behalf of its sensor nodes. User authentication is also managed by the base station, either by using public key certificates or other authentication mechanisms such as (user, password) pairs or protocols like Kerberos [241]. About authorization, the base station can either analyze the credentials presented by the users (e.g. attribute certificates) or check whether the user is authorized to perform certain operations (e.g. by using access control lists ACL). Afterwards, the base station can change how the network services are provisioned: filtering the data provided by the sensor nodes, allowing the user to change only certain configuration values of the nodes, and so on. About accountability and intrusion detection, there can be a close collaboration between the sensor nodes and the base station to control and monitor the actual state of the network. The base station can store and analyze any interaction between the hosts and the nodes, and can also retrieve and analyze any behaviouralrelated information from the nodes themselves. Finally, the front-end proxy solution alleviates certain problems such as the storage of historic data and the availability of malfunctioning nodes. The base station can behave as a ”cache server” by storing the sensor nodes data, although it requires querying the sensor nodes even if there is no data requests from external hosts. Also, it can monitor whether a certain node is accessible or not, forwarding any control information if the node becomes available again. • TCP/IP overlay solution. By considering the Internet and the sensor networks as separate entities, it is not necessary to use the already limited resources of the sensor nodes to implement costly Internet standards. However, this situation changes in the TCP/IP overlay solution, where the sensor nodes become Internet hosts. As a result, sensor networks should be no longer considered as independent entities, and both the protocols and the security mechanisms that are used in the Internet hosts should also be supported by the sensor nodes. As of 2008, it is possible to send IPv6 packets through a IEEE 802.15.4 network by using the 6lowpan specification [240]. For link-layer security, 6lowpan recommends to make use of the security mechanisms defined at the link layer by the IEEE 802.15.4 standard. However, for network layer security, IPsec is currently not supported, and it is not clear whether sensor nodes will be able 142 to support the use of these low-level security mechanisms that have end-to-end properties. In fact, the use of a full-fledged IPsec implementation for sensor nodes is discouraged, and even some incoming standards such as ISA100.11a [234] defines only a simple transport level security above UDP. 6lowpan advises to identify the relevant security model and a preferred set of cipher suites that are appropriate given the constraints [238]. Even if there is no support for an end-to-end secure channel at the network layer, most applications still may need to create such channel to protect the information flow. This issue can be partially solved by providing security at the transport layer, using the TLS/SSL standard. A prototype known as Sizzle, developed at Sun Microsystems in 2005 [118], serves as a proof-of-concept. In order to save enough resources, Sizzle implements only a relatively small set of cryptographic algorithms. In addition, there is no certificate parsing code, thus clients may need to authenticate themselves using other mechanisms such as passwords. Note that in case of connecting sensor nodes from different networks, it may be possible to use those key management systems that allow node connectivity (cf. section 2.2.2), such as protocols in the mathematical framework or protocols based on public key cryptography. Regarding user authentication, it may not be feasible to store user credentials (i.e. user and password pairs) inside a sensor node. In this case, all the sensor nodes that belong to the same network should create a mechanism for storing and maintaining such credentials. The same problem applies to user authorization: it would be necessary to maintain the access control model in a distributed form, which is an extremely difficult task. A possible solution is to use Kerberos. For authentication, the sensor nodes just need to check the ticket provided by the ticket granting server. Kerberos can also pass authorization information generated by other services. Note that Kerberos requires continuous availability of a central server, and all devices must maintain their clocks loosely synchronized. Furthermore, PKC solutions (identity certificates, attribute certificates) can also be applied if supported. The low storage capacity of highly constrained nodes significantly hinders the accountability of the network. A possible solution could be to store only information regarding abnormal situations caused by hosts accessing to its services (cf. section 3.3.2). The IDS in charge of detecting these abnormal situations should include specific rules related to interactions with external devices, such as clients trying to continuously access the services of the node. In addition, storage capacity partially influences availability: a single node can only store its readings for a limited time, thus the historic data should be either stored elsewhere or summarized somehow. • Gateway solution. Some of the challenges that are associated with the TCP/IP overlay solution 143 can be partially solved using the gateway solution. The gateway (i.e. the base station) can take the role of analyzing and / or storing the accountability information regarding the interactions between hosts and nodes. It also can store the historic data of the nodes, if they have the risk of running out of storage space. In addition, it can improve the availability of the network acting as a ”cache server” or as an intelligent forwarder, like in the front-end proxy solution. On the other hand, if end-to-end secure channels are negotiated, it should be necessary to implement non-trivial mechanisms in the gateway to parse the information between an Internet host and a sensor node. It should be pointed out that, in the TCP/IP overlay solution, the router that connects the Internet and a sensor network must translate the IPv6 packets to 6lowpan packets. This translation can be performed within the base station, thus the base station can be able to carry out the same tasks of the gateway (e.g. accountability, availability). Another aspect that needs to be highlighted is that some sensor networks are composed by different types of nodes, where both cluster heads and certain special nodes that control external systems have higher computational capabilities (i.e. similar to class III nodes). Consequently, it should be studied how to implement full-fledged Internet protocols in these cluster heads and special nodes, and how they could be accessed. On a final note regarding the implementation of all these mechanisms and protocols, the computational capabilities of modern class II nodes may not be enough to support standard Internet protocols. Contemporary sensor nodes are either limited by low RAM (4kB) or low flash ROM (48kB). One of the 6lowpan stack implementations [245] needs 28kB of ROM. Also, Sizzle (SSL over nodes) requires 16kB of ROM without including certificate parsing code (i.e. managing client-side certificates) and 6lowpan support. Besides, the RAM usage of a basic Sizzle program is very near to 4kB. As a result, it may be necessary to improve the minimal memory capabilities of future class II nodes. 144 CHAPTER 5 CONCLUSIONS This chapter concludes this thesis. We explain how we have accomplished our goal of the feasibility of a “complete set” of applicationaware security mechanisms by highlighting our contributions to the field. We also introduce open problems that need to be solved and new lines of research where the concepts and solutions presented in this thesis could be applied. 145 146 5.1 Overview Wireless Sensor Networks are capable of behaving as a digital “sensory system”, obtaining and processing physical information through its “sensory cells”, the sensor nodes. Any kind of computer system can use this flow of information to interact with the real world, effectively creating a new dimension where the inanimate and the animate are able to cooperate in new and interesting applications. Nevertheless, it is essential to introduce security into this picture. Without security, the foundations of this new dimension would be so weak that any small problem would make it crumble, affecting both the abstract world and the real world. The research community has acknowledged the importance of creating secure sensor networks, and there are many solutions that try to protect these networks from their hardware layer to the logic of their applications. However, there is a factor that still has not been widely considered in the development of these security mechanisms: the influence of the applications. In fact, every aspect of a particular sensor network (e.g. its network architecture, its protocols, its functionality) is highly dependent on the requirements of the application and its context. In this thesis, we have considered the influence of the applications and their context in the development of a “complete set” of security mechanisms. This “complete set”, which should be located inside a transversal layer in the architecture of sensor networks, can be defined as a set of application-aware security mechanisms that are necessary to minimally enforce the security properties. In the course of this dissertation, We have shown that all these security mechanisms are feasible in a sensor network context. Besides, we have illustrated how the nature of the applications and their context influence over the development of the security mechanisms. All these accomplishments are described in more detail in the following paragraphs. Suitability of cryptographic primitives. Cryptographic primitives are the foundation to create confidentiality, integrity, authentication, and authorization services. In addition, they are also useful for developing more complex security services. Due to the existing constraints in the sensor node hardware and the different types of nodes can be found in the market, our purpose was to review the suitability of the actual state of the art in cryptographic algorithms for sensor nodes through their existing software and hardware implementations. The results are satisfactory: All sensor node devices (classes I, II, and III) can run symmetric key cryptography and hash functions, and the sensor nodes with higher capabilities (classes II, III) can run public key cryptography. If the application needs of optimized security primitives, such as fast public key cryptography, it can be possible to include specific cryptographic hardware modules inside the sensor node. Besides, highly constrained nodes (i.e. class I) can also use these hardware modules to implement the cryptographic primitives. 147 Relationship between the requirements of an application and the properties of a Key Management System. It is essential to take into account the requirements of an application in order to select an appropriate Key Management System (KMS) for such application. For example, if we are going to set up a small sensor network, we may not need a KMS protocol that is specifically designed to support network scalability. Also, if we are going to add new nodes during the lifetime of the network, then we surely need a KMS protocol that is extensible, that is, that allows the inclusion of new nodes. Our purpose was twofold: to specify the different properties of a Key Management System, and to analyze the relationship between those properties and the application requirements. Not only we have modelled the properties that define the features of a Key Management System, but also we have uncovered how the importance of every property can be measured given the requirements of a particular application and its context. Methodology for selecting and analyzing Key Management Systems. In order to study the viability of sensor-specific KMS protocols, we aimed to develop a methodology that could analyze how KMS protocols behave in specific applications. We pursued three goals: (1) provide a methodology that could allow network designers to select a suitable KMS protocol for his/her particular application, (2) to check whether the current state of the art in KMS can offer a viable solution to the key establishment problem in wireless sensor networks, and (3) to determine where researchers should focus their effort in order to create useful KMS protocols that could be used in real-world applications. We have met all these goals. We have created a methodology based on the relationship between protocol properties and application requirements. Not only the methodology can be useful for network designers, but also we have used it to analyze the state of the art in KMS protocols. As of 2008, it is perfectly possible to provide link-layer secret keys to almost any kind of sensor network if only the size of the network and the node mobility are considered. We have identified which are the areas that need more research: i) networks with mobile nodes that move at a high speed, ii) static networks of medium / large size where no nodes should be disconnected from the network, and iii) extensible networks with almost no communication overhead, that is, where the communication overhead is a main property (e.g. underwater sensor networks). Also, it is necessary to develop KMS protocols with superior Extensibility and Resilience properties. Support for Public Key Cryptography. Since Public Key Cryptography can be used in sensor networks, there is the need of a supporting infrastructure. That is, a Public Key Infrastructure (PKI) that can be able to establish a trusted identity, amongst other things such as defining the certificate format that is more suitable for sensor nodes. Therefore, we have shown how the different elements of sensor networks can behave as the different entities of a PKIX model. Besides, we have 148 used the X509v3 certificate format as a foundation to discover which fields are necessary in a sensor network context. Moreover, we have also studied how to apply to sensor networks other PKI functions such as Key Pair Recovery, Key Update, Cross Certification, and Key Revocation. Identity-based cryptography and Self-certified cryptography. Sensor networks can be viewed as key-escrowed systems, that is, there exists a trusted party (i.e. the base station) who computes the secret keys of the users. As a consequence, it is possible to study the applicability of different forms of key-escrowed public key paradigms, like identity-based cryptography or self-certified cryptography, for solving the Authenticated Key Exchange (AKE) problem. The results are encouraging: One hand, self-certified cryptography (e.g. SC-ECMQV) is more efficient in terms of communication and energy cost than other protocols based on classical public key cryptography (e.g. ECMQV). On the other hand, identity-based cryptography, quite inefficient in terms of speed, is extremely useful in underwater environments, exchanging less data than the other protocols and having a smaller energy cost. Development of lightweight awareness mechanisms. In order to be fully autonomous and self-capable, it is essential for the sensor nodes to be aware of their environment. This self-awareness can help to detect certain events that might affect the behaviour of the network. Our goal was to develop lightweight awareness mechanisms that could detect those abnormal events. For this purpose, we used the simile of “a sensor network as a living body”, and considered that the presence of certain symptoms (i.e. collateral effects) will be indicative of the existence of a disease (i.e. abnormal event). By analyzing the symptoms produced by node malfunctioning, external attacks, and internal attacks, we derived a set of situation awareness mechanisms. We also considered the fact that the symptoms associated to an specific illness depend not only on the illness itself, but also on the patient characteristics. Therefore, we also analyzed how the applications influence over our situation awareness mechanisms. Development of an Intrusion Detection System. Intrusion Detection Systems (IDS) are valuable tools for detecting possible attacks that could be launched against a network, as well as for preventing service interruption or loss of data that could happen as a consequence of such intrusion. In Wireless Sensor Networks, an IDS can detect which nodes are suspicious or malicious, and provide this information to other protocols of the node (e.g. routing, aggregation). Due to the gaps in the existing research, we focused on developing a blueprint of a distributed IDS architecture that could fulfill all the following properties: full network coverage (cover all the information flow of the network), simplicity (use mainly simple components, statistics and mechanisms), and adaptability (possibility to include new detection mechanisms and existing research, or to exclude those detection mechanisms that are not needed). In this architecture, we considered that the software detection elements (known as 149 agents) should be located in all the entities of a sensor network. We also defined three types of agents (node local agents, node global agents, and base station agents), and specified their internal architecture, their specific tasks, where they should be located, and when they should run their detection mechanisms. Furthermore, we also defined four support protocols for our IDS: Piggybacking Forwarded Messages (identifies the original sender of a forwarded message), Obfuscated Watchdog (protects the nodes against subversion), and Spontaneous Watchdogs (allows node global agents to choose whether to analyze the contents of a packet or not depending on the redundancy of the network). Trust Management Systems in WSN. Trust is a very important factor in the decision-making processes of any network, such as sensor networks, where uncertainty exists. That is, when the outcome of a certain situation cannot be clearly established or assured. Therefore, it should be necessary to develop certain trust mechanisms that help other services such as routing, aggregation and time synchronization to choose a certain partner according to its reputation. The existing state of the art is not complete, that is, it neglects certain aspects such as trust initialization that must be taken into account. In our analyses, we discovered that those aspects depended on the intrinsic nature of the sensor networks paradigm. We took into account such nature for defining the possible components of a trust management system, the initialization of trust, the nature of the “first-hand” and “second-hand” information sources, the information modeling processes, and many other factors. Security as a transversal layer: the SMEPP middleware. The SMEPP project (FP6-IST-033563) is an European STREP project funded by the European Union under the 6th Framework Programme. Its major goal is to develop a secure middleware for embedded peer-2-peer devices (EP2P), including sensor nodes. The ideas presented in this thesis have been successfully applied to the development of this middleware, which is still under development as of 2008. More specifically, security is considered as a transversal layer, where the security primitives benefitted from the analyses performed in this thesis, and the key management systems considered the requirements of the applications by defining different levels and dimensions (global and group-based) of security. Moreover, the situation awareness mechanisms will be used to help the routing services. Secure integration of wireless sensor networks and the Internet. The advantages of connecting sensor networks to the Internet are enormous: Not only any Internet user or device from any geographical location in the world would be able to access to the sensor networks services, but also they could collaborate in order to create complex services. Still, having a secure sensor network is not enough to protect this kind of interaction, because the security challenges that have to be solved are significant: It is necessary to protect the information flow, to create mechanisms for authenticating and authorizing both nodes and users, and to take into account 150 other factors such as availability and accountability need to be considered, as well. We defined and studied these security challenges, describing some open problems like the secure connection of networks by using TCP/IP protocols. We also pointed out where the mechanisms presented in this thesis (situation awareness, specific key management systems) could be of use. 5.2 Future work During the development of this thesis, we have identified some issues and areas in need of further research. One of those areas is related to the cryptographic primitives. It may be necessary to develop specific primitives which are specially designed for highly constrained devices such as sensor nodes. Also, the hardware prototypes have not been integrated into sensor nodes like the MICAz or the TelosB [85]. It can be interesting to analyze how the cryptographic chips will interact with the motes. Note that the stream ciphers developed in the ECRYPT Stream Cipher Project [82] could be very useful in a sensor network context, and the development process of a new hash function standard [83] may yield interesting results in both software and hardware implementations. Regarding the Key Management Systems, we have identified several important scenarios and properties that should be addressed by the research community. For example, the scenario where there should be no nodes disconnected from the network can be mapped to certain scenarios in Wireless Sensor and Actuator Networks, where it should be essential to assure that all the Actuators are connected to the network. Moreover, we have only specified the factors that a trust management system should take into account in a sensor network context. It is necessary to further develop this concept and create a fully functional and usable trust management system. One of the most interesting research lines that we have uncovered is the interaction between the Internet and the sensor networks. We have proposed some solutions to manage the security of front-end proxy configurations, and also suggested the use of Kerberos to manage use authentication and authorization, but the suitability of these solutions is yet to be completely proven. Besides, this research area has other interesting open problems, such as maintaining the information consistency between redundant base stations, open secure channels in a TCP/IP configuration, the management of the accountability of the events of the network and the maintenance of the historic data, the implementation of secure Internet services in constrained sensor nodes, etc. Note that most of the analyses have been done only considering the existence of a static network with very limited or no mobility. In fact, this is the network configuration used by most applications and research projects as of 2008. Still, the advent of cheaper nodes and better development tools will bring new applications with new requirements, and the mobility of the nodes will surely play an important role. While partial mobility has been considered in all the mechanisms (e.g. the 151 KMS protocols), certain mechanisms like Intrusion Detection Systems need to be refined to support the existence of mobile nodes. While it is important to provide security to wireless sensor networks, it is also crucial to consider that sensor networks can be further integrated inside the pervasive computing paradigm. For example, in Personal Area Networks, sensor nodes collaborate with other devices (e.g. RFIDs, wearable computing devices) to provide human-centric services. These networks have their own specific security challenges that need to be solved, such as the integration of different devices with different capabilities, the highly dynamic nature of the network, the mobility of the human user, and so on. Therefore, it will be necessary to develop both application-specific mechanisms and situation-specific mechanisms, such as selecting the level of security depending on the location of the user (e.g. home, office, urban space). The problems are here for us to uncover, and the challenges are here for us to solve, to bring security to the real world. 学海无涯 ...1 1 ‘The sea of learning is boundless...’ (Thanks to Ainhoa for this phrase) 152 APPENDIX A Proof of the Spontaneous Watchdog Equation The main purpose of equation (3.1) is to know the probability that α nodes have to activate their global agents at the same time in a neighborhood of n possible global agents, when the decision of a node cannot influence others. This problem can be abstracted into another one: We have n players (nodes) in a table, and every player has a dice with m sides (where m is usually equal to n). We want to know the probability of α players obtaining a “1” (i.e., activating the global agents) when all players have thrown their dices once. In this new problem, we want to solve: f 0 (α, n, m) f (α, n, m) = 00 f (α, n, m) (A.1) where f 0 (α, n, m) are all cases where n dices of m sides are thrown and α and only α dices have a result of 1; f 00 (α, n, m) are all cases where n dices of m sides are thrown. If a player throws a dice, the result can be within one of these two sets: {1} or {2..m}. The number of possible cases where α and only α dices fall in the {1} set is the number of permutations with repetition 1 of n elements (dices) where the value that α elements fall into the {1} set and n − α elements fall into the {2..m} set is n! (A.2) n − α! · α! With (A.2), we have obtained the number of cases where α and only α dices fall in the {1} set. For example, if we have n = 2 dices with m = 3 sides each, the P Rnn−α,α = 1 We use permutations here because the order of the dices is important, since every dice (node probability) is different and independent from the others. 153 154 number of cases where one and only one dice (α = 1) falls in the {1} set are equal to 2, i.e., {(1,[2..3]), ([2..3],1)}. For every case in the previous example, we have n−α dices that fall in the {2..m} set, with m − 1 elements inside. Therefore, it is possible to know the number of cases where α and only α dices have a result of 1, or f 0 (α, n, m), if we multiply (A.2) with (m − 1)n−α : f 0 (α, n, m) = P Rnn−α,α · (m − 1)n−α (A.3) because (m − 1)n−α are the ordered variations of m − 1 elements taken n − α times with repetition. In the previous example (n = 2, m = 3, α = 1), the number of cases where one and only one dice has a result of 1 are 2 · 2 = 4, i.e., {(1,2), (1,3), (2,1), (3,1)}. Finally, f 00 (α, n, m), or all cases where n dices of m sides are thrown, is the r-permutations with repetition of m elements taken n times: f 00 (α, n, m) = V Rm,n = mn (A.4) We can conclude that both (3.1) and (A.1) are equal, and both solve the same problem. APPENDIX B Resumen de la Tesis en Español B.1 Introducción Las redes inalámbricas de sensores (Wireless Sensor Networks [41]) se comportan como los sentidos ‘digitales’ de un sistema computacional, obteniendo y procesando información a través de sus ‘células nerviosas’: los nodos sensores. Cualquier sistema computacional puede beneficiarse de este flujo de información para poder interactuar con el mundo real, creando ası́ una nueva dimensión donde lo inanimado y lo animado cooperan en nuevas e interesantes aplicaciones. Sin embargo, es esencial introducir la seguridad dentro de las redes de sensores. Sin seguridad, los cimientos de esta nueva dimensión serı́an frágiles como el cristal, y cualquier problema lo destrozarı́a en pedazos, afectando posiblemente tanto al mundo lógico como al mundo real. La comunidad cientı́fica ha reconocido la importancia de proporcionar seguridad a las redes de sensores, y existen multitud de soluciones que tratan de proteger estas redes desde el hardware a los protocolos de la red. Sin embargo, existe un factor que no ha sido considerado en la mayorı́a de los desarrollos de los mecanismos de seguridad: la influencia de la naturaleza de las aplicaciones y del contexto donde éstas se ejecutan. Es más, todos los aspectos de una red de sensores (su arquitectura de red, sus protocolos, su funcionalidad) son altamente dependientes de los requerimientos de la aplicación y su contexto. En esta tesis, hemos considerado la influencia de las aplicaciones y su contexto en el desarrollo de un “conjunto integral” de mecanismos de seguridad. Este “conjunto integral”, el cual deberı́a estar localizado en una capa transversal dentro de la arquitectura de las redes de sensores, puede definirse como el conjunto de mecanismos de seguridad dependientes de la aplicación y su contexto que son necesarios para imponer de una forma mı́nima las propiedades de seguridad que una red de sensores deberı́a tener. Este resumen en Español se organiza de la siguiente forma: en la sección B.2, 155 156 Red de Diseminación de Datos Red de Adquisición de Datos Estación Base Nodos Sensores Figure B.1: Estructura de una red de sensores se explica el concepto de las redes de sensores y los problemas de seguridad asociados. En la sección B.3, se introducen los objetivos y resultados de la tesis. En las siguientes secciones se desarrollan las propuestas realizadas en esta tesis: análisis de primitivas de seguridad en la sección B.4, estudio del soporte ofrecido por mecanismos de administración de claves en la sección B.5, soporte para la existencia de mecanismos basados en clave pública en la sección B.6, desarrollo de mecanismos de autoinspección en la sección B.7, exposición de un sistema de detección de intrusiones en la sección B.8, especificación de sistemas de confianza en redes de sensores en la sección B.9, aplicación de la seguridad a un middleware seguro en la sección B.10, e integración de las redes de sensores en Internet en la sección B.11. Finalmente, las conclusiones se muestran en la sección B.12. B.2 B.2.1 Redes de Sensores y seguridad Redes de Sensores Definición y propiedades. La estructura de una red de sensores puede observarse en la figura B.1. En ella, una serie de dispositivos, los nodos sensores, se encargan de recoger y almacenar la información del entorno. Utilizando sus limitadas capacidades computacionales, la información se preprocesa para luego ser enviada a los nodos vecinos a través de un canal de comunicaciones inalámbrico. Normalmente, toda la información recogida se envı́a hacia la estación base, la cual suele servir de interfaz entre los servicios de la red de sensores (red de adquisición de datos) y sus usuarios (red de diseminación de datos). En cierta forma, una red de sensores puede ser abstraı́da a un cuerpo vivo, en el que ciertas “células” (los nodos sensores) colaboran entre sı́ para ofrecer una información del mundo fı́sico y enviarla al “cerebro”, la estación base. La estructura de la red de sensores puede ser puramente distribuida, de tal forma 157 que todos los nodos participan en los procesos de toma de decisiones y en los protocolos internos, como por ejemplo, el encaminamiento. Por otro lado, la red puede funcionar de forma jerárquica, con agrupación de nodos en clusters. Dentro de esos clusters, uno de los nodos, el lı́der del cluster, participa realmente en los procesos y protocolos internos de la red, mientras que los demás nodos funcionan de forma pasiva proporcionando únicamente información sobre el entorno. También es posible combinar las estructuras jerárquica y distribuida de tal forma que la red pueda seguir funcionando aún cuando parte de su espina dorsal (es decir, el conjunto de lı́deres de clúster) deje de estar operativa. La información que fluye por la red de sensores suele regirse por el tipo de comunicación muchos-a-uno, en la que todos los sensores envı́an sus lecturas a la estación base. No obstante, también es frecuente el tipo uno-a-muchos en caso de que la estación base envı́e información de control a un subconjunto de los sensores o a un clúster. Finalmente, la comunicación uno-a-uno no suele prodigarse, aunque sı́ existe la comunicación entre vecinos directos para poder resolver un problema de forma distribuida. En casos excepcionales, la estación base puede requerir una comunicación con un nodo especı́fico de la red. Con respecto a las funcionalidades de la red de sensores, la red puede monitorizar de forma continuada una caracterı́stica fı́sica del entorno, como el nivel de ruido, o bien puede detectar circunstancias especiales, como por ejemplo, un incendio forestal, y alertar al usuario. La red también puede funcionar como una base de datos distribuida, proporcionando información al usuario cuando éste lo requiera, e incluso puede influir sobre el funcionamiento de un sistema externo, como un sistema de irrigación, modificando su comportamiento, según el contexto, si fuera necesario. Aparte de sus capacidades de adquisición de información, estas redes poseen otras caracterı́sticas singulares. Por ejemplo, debido a su autonomı́a, la red puede operar sin la presencia de un operario humano, e incluso puede funcionar en situaciones en las que no exista un sistema de control centralizado. Además, puede autoconfigurarse para reaccionar ante situaciones adversas del entorno, siendo robusta ante problemas internos que puedan afectar a su funcionamiento general. Precisamente esta capacidad de autoconfiguración permite que la red pueda ser instalada fácilmente, activando sus elementos y dejando que éstos reconozcan su entorno. Respecto a la vida útil, una red de sensores puede optimizarse para funcionar durante largos periodos de tiempo (desde varios dı́as a años). Finalmente, la inteligencia embebida de la red le permite muchas tareas, desde el preprocesamiento de los datos (p. ej. agregar datos redundantes) hasta la propia reprogramación de los nodos a distancia. Todas estas caracterı́sticas singulares diferencian a las redes de sensores de otros paradigmas, como las redes ad hoc. Por consiguiente, existe una gran multitud de escenarios que podrı́an beneficiarse de los servicios y caracterı́sticas especiales que poseen las redes de sensores. Algunos de los que despiertan más interés son, por ejemplo: infraestructuras crı́ticas, reacción 158 en zonas catastróficas, control de medio ambiente y análisis de la biodiversidad, edificios y entornos inteligentes, mantenimiento de maquinaria, agricultura de precisión, cuidados médicos intensivos y de la tercera edad, logı́stica, etc. Clase I Clase II Clase III Velocidad 4 Mhz 4-8 Mhz 13-180 Mhz RAM 64-512 B 4-10 kB 256-512 kB ROM 1-4 kB 48-128 kB 4-32 MB Table B.1: Clases de nodos sensores Capacidades. Dado que los nodos sensores cumplen una función muy especı́fica, su estructura interna también lo es. Los tres componentes principales de un nodo sensor son: microcontrolador, placa sensorial, y transmisor/receptor. Las distintas caracterı́sticas de los nodos sensores en materia de velocidad, tamaño de memoria RAM, tamaño de memoria ROM, y energı́a, se encuentran detallados en la tabla B.1. Los nodos sensores más comunes, como MICAZ y TelosB [85], que pueden realizar tareas tanto de colección de información como de procesamiento distribuido y autoconfiguración, se encuadran dentro de la clase II. A pesar de que este tipo de nodos posee unas capacidades bastante restringidas, existen nodos con capacidades aún más restringidas, los de la clase I, que básicamente funcionan como dispositivos pasivos que únicamente envı́an la información obtenida de sus sensores. Por el contrario, los nodos de clase III, son mucho más potentes que el resto, y suelen utilizarse como lı́deres de cluster o como estaciones base móviles. Respecto a la capacidad de sus transceptores, la mayorı́a de los nodos sensores utiliza el estándar IEEE 802.15.4 para redes de área personal inalámbricas. Esta especificación funciona en unas frecuencias muy variadas. Concretamente, 2.4 GHz, 915 MHz y 868 MHz, transmitiendo a 250 Kbps, 40 Kbps y 20 Kbps, respectivamente. Hay que hacer notar que el consumo energético del envı́o de información es mucho mayor que el del procesamiento de datos en el microcontrolador, por lo que se aconseja maximizar el procesamiento de los datos dentro del nodo. B.2.2 Seguridad en Redes de Sensores Ataques en el contexto de las redes de sensores. Como en cualquier otro sistema de comunicaciones, dentro de una red de sensores es necesario garantizar la correcta funcionalidad de todos sus componentes para que la red pueda prestar sus servicios de una forma adecuada. Esto incluye el desempeño de una serie de propiedades de seguridad que se derivan de los requisitos del contexto de la aplicación: confidencialidad de la información, integridad de la comunicación y del funcionamiento general de la red, autenticación de los componentes, disponibilidad, capacidad de autoorganización, frescura de los datos, etc. 159 Sin embargo, alcanzar estos objetivos no es tarea fácil porque, debido a sus caracterı́sticas particulares, una red de sensores es especialmente vulnerable a ataques internos y externos[259, 263]. Como se vio con anterioridad, los nodos de la red tienen unas capacidades limitadas, lo que impide implementar de forma trivial mecanismos de seguridad. Además, estos nodos pueden ser fı́sicamente accesibles de manera fácil por cualquier adversario debido a que deben estar colocados cerca de los eventos que deben monitorizar. Más aún, el canal de comunicaciones inalámbrico no está protegido, por lo que resulta fácil para el atacante acceder y manipular el flujo de información. Como resultado, las redes de sensores pueden verse afectadas por los siguientes tipos de amenazas: • Ataques al flujo de información: – Eavesdropping, replay, manipulación de la información. • Denegación de servicio: – Colaboración, bloqueo de señal, agotamiento de baterı́a. • Compromiso de un nodo: • Suplantación de identidad: – Múltiples identidades (sybil), replicación de identidad. • Ataques especı́ficos a protocolos: – Selective forwarding, wormhole attack, sinkhole attack, spoofed routing, acknowledgement spoofing. Primitivas, mecanismos y servicios de seguridad. Dada la vulnerabilidad ante esta multitud de ataques, tanto internos como externos, es muy conveniente desarrollar diversas medidas de protección que puedan evitar o suavizar los efectos de dichos ataques. Por lo tanto, es indispensable proporcionar a los nodos sensores determinadas primitivas básicas (criptosistemas simétricos, los criptosistemas asimétricos, y las funciones hash) para ası́ proteger el flujo de información y asentar las bases de protocolos seguros. Además, dado que las primitivas de seguridad conllevan por lo general el uso de credenciales (p. ej. claves secretas) para poder funcionar adecuadamente, también son necesarios procedimientos y sistemas eficaces para la administración y gestión de tales credenciales. Estos mecanismos de seguridad subyacentes son determinantes para defender la red de posibles ataques, pero no son suficientes para protegerla frente a ataques internos. Como resultado, los protocolos esenciales de una red de sensores (encaminamiento, agregación, sincronización temporal) deben ser lo suficientemente robustos para soportar comportamientos maliciosos y fallos en la red. Otros protocolos como 160 Confidencialidad Integridad Atestación Detección de Intrusos Protocolos de Agregación Autenticación Autorización Administración de Claves Confianza Autoinspección Protocolos de Encaminamiento Figure B.2: “Conjunto Integral” de mecanismos de seguridad el agrupamiento dinámico (o clustering) y los algoritmos de localización también requieren un elevado grado de seguridad. Existen otros mecanismos de seguridad que deben ser tenidos en cuenta. Por ejemplo, un nodo sensor debe ser capaz de descubrir situaciones anormales que puedan estar ocurriendo a su alrededor. Además de para posibilitar la autoconfiguración, esta capacidad de autoinspección puede ser utilizada para crear servicios de seguridad más complejos, como la detección de intrusiones o sistemas de manejo de confianza. Finalmente, deberı́an también considerarse otros diversos aspectos como la gestión segura de nodos y estaciones base móviles, delegación de tareas, privacidad, creación de agentes seguros, programación remota segura, generación de números aleatorios, administración de confianza, etc. B.3 B.3.1 Objetivos y resultados de la tesis Objetivos de la tesis A pesar de los últimos avances en el campo de la seguridad en las redes de sensores, existe todavı́a una clara separación entre las soluciones de seguridad y los requisitos de las aplicaciones que se ejecutan dentro de esa red. Más concretamente, en la mayorı́a de las ocasiones, cuando se afronta el diseño de una solución de seguridad para una red de sensores, ésta se diseña sin tener en cuenta el contexto en el que tal solución se usará. Sin embargo, como hemos visto, las redes de sensores no son sistemas de propósito general, sino que proporcionan una funcionalidad especı́fica utilizando dispositivos cuyos recursos están altamente restringidos. Por lo tanto, y como parte esencial en la selección y desarrollo de cualquier mecanismo de seguridad, es absolutamente necesario, a nuestro parecer, considerar especialmente y con detalle las caracterı́sticas de las aplicaciones, ası́ como los requisitos particulares de cada una de ellas. Nuestra contribución consiste en la definición y desarrollo de lo que consideramos como un “conjunto integral” de servicios de seguridad, mostrado en la figura B.2. Es decir, unos servicios dependientes de la aplicación y su contexto que, utilizados de una forma completa y correcta, evitarı́an los ataques a una red de sensores explicados anteriormente, imponiendo de forma mı́nima las propiedades de seguridad que una 161 red de sensores deberı́a tener. De esta forma, para que la red funcione adecuadamente desde la perspectiva de seguridad, es necesario crear servicios de confidencialidad, integridad, autenticación, y autorización, los cuales ofrecen el soporte necesario para los protocolos básicos de la red, como por ejemplo, el encaminamiento. Tales servicios deben fundamentarse en determinados algoritmos criptográficos a los que se les suministran las claves necesarias a través del sistema de administración de claves. Por otro lado, los protocolos básicos de la red necesitan otros servicios que refuercen sus propios mecanismos de protección frente a ataques externos y/o internos, como por ejemplo servicios avanzados de detección y decisión: detección de intrusiones y mecanismos de confianza (trust). Otros refuerzos pueden provenir de un servicio de autoinspección (self-awareness), que analiza el funcionamiento del nodo y sus vecinos para reaccionar ante situaciones atı́picas que pueden darse en el contexto de la aplicación. De esta forma, los protocolos de la red pueden contar con mecanismos avanzados para facilitar su funcionamiento seguro. Por ejemplo, un servicio de autenticación puede llamar a un mecanismo de atestación de código (comprobación de la correctitud del código de un nodo vecino) en base a las salidas del sistema detector de intrusiones. Con respecto a la localización de este “conjunto integral” de servicios de seguridad dentro de la arquitectura de un nodo sensor, nuestra propuesta es distinguir la seguridad como una capa transversal que proporcionará tanto servicios como información especı́fica a las demás capas de la arquitectura, con independencia de cuál sea esa arquitectura (jerárquica o cross-layer). Los servicios de seguridad se localizan dentro de esta capa transversal y pueden interactuar tanto entre ellos como con el resto de capas de la arquitectura mediante interfaces bien definidas. B.3.2 Resultados de la tesis Las principales contribuciones de esta tesis al área de la seguridad en las redes de sensores se detallan a continuación: • Hemos definido un “conjunto integral” de mecanismos de seguridad, y los hemos localizado dentro de una capa transversal en la arquitectura de un nodo sensor (sección B.3 del resumen, sección 1.3 de la tesis). • Hemos descrito el estado del arte actual en primitivas criptográficas para redes de sensores, y revisado la idoneidad de éstas primitivas para las diferentes clases de nodos sensores (sección B.4 del resumen, sección 2.1 de la tesis). • Hemos analizado la relación entre los requerimientos de las aplicaciones y las propiedades de un sistema de administración de claves (KMS). También hemos desarrollado una metodologı́a que permite distinguir cuál protocolo KMS es más idoneo para el contexto en el que una red de sensores va a funcionar (sección B.5.1 del resumen, secciones 2.2.2 y 2.2.3 de la tesis). 162 • Hemos comprobado si el estado del arte en protocolos KMS ofrece una solución viable al problema del establecimiento de claves en redes de sensores, y hemos determinado en qué áreas deberı́a enfocar sus esfuerzos la comunidad cientı́fica dentro de este campo (sección B.5.2 del resumen, sección 2.2.4 de la tesis). • Hemos mostrado como la criptografı́a de clave pública puede ser utilizada dentro de una red de sensores, y hemos proporcionado soporte para una infraestructura de clave pública (PKI). Además, hemos mostrado como otros paradigmas de clave pública como la criptografı́a basada en identidad puede ser utilizada en entornos especı́ficos como las redes de sensores subacuáticas (sección B.6 del resumen, sección 2.3 de la tesis). • Hemos desarrollado mecanismos de conocimiento del entorno, los cuales permiten la capacidad de autoinspección: detectar la presencia de eventos anómalos basada en la existencia de efectos colaterales. Además, mostramos como la aplicación y su contexto influyen sobre estos mecanismos (sección B.7 del resumen, sección 3.2 de la tesis). • Hemos desarrollado un sistema de detección de intrusiones para redes de sensores que cumple todas las siguientes propiedades: cobertura total, simplicidad, y adaptabilidad (sección B.8 del resumen, sección 3.3 de la tesis). • Hemos analizado como las caracterı́sticas especiales de una red de sensores influyen sobre la definición de mecanismos de manejo de confianza (sección B.9 del resumen, sección 3.4 de la tesis). • Hemos mostrado como el concepto de un “conjunto integral” ha sido aplicado a una arquitectura real de middleware para redes de sensores (sección B.10 del resumen, sección 4.1 de la tesis). • Hemos analizado las interacciones seguras entre las redes de sensores e Internet, mostrando como dependen de la aplicación. Finalmente, describimos trabajos a realizar en este área (sección B.11 del resumen, sección 4.2 de la tesis). B.4 Soporte para primitivas criptográficas Para poder desarrollar mecanismos y protocolos de seguridad en una red de sensores, es necesario utilizar los elementos criptográficos más básicos. Estos elementos son las primitivas de Criptografı́a de Clave Simétrica (SKC), de funciones hash, y de Criptografı́a de Clave Pública (PKC). Estas primitivas aseguran confidencialidad e integridad en el canal (evitar que individuos sin permiso puedan realizar lecturas y/o alteraciones en los paquetes), y autentificación de ambas partes de la comunicación. No obstante, dado que los nodos sensores disponen de capacidades computacionales muy limitadas, es necesario realizar un análisis para comprobar que las primitivas 163 criptográficas pueden ser soportadas por los diversos dispositivos utilizados en una red de sensores [249, 251, 261]. B.4.1 Implementaciones software y hardware Software. El análisis del estado del arte para comprobar si existe sobrecarga en la ejecución de primitivas de clave simétrica y hash en microcontroladores ha demostrado la capacidad de los nodos sensores de ejecutar estas primitivas. Ganesan et. al. [53]. demostraron que cifrar un texto plano de 1 byte con RC5 requerı́a un tiempo de 26µs, con IDEA 21µs y con RC4 6µs. También, analizaron que a pesar de que la función hash SHA-1 necesitaba 7777µs para comprimir 64 bytes, el espacio reservado de memoria no superaba los 4000 bytes. Otros resultados realizados por Wei Law et. al. [74] y Jun Choi and Song [58] mostraron que tanto Twofish como AES alcanzan un tiempo de cifrado medio de 50µs, y Skipjack (optimizado) necesita 25µs. Con respecto al tamaño medio de memoria de instrucciones (ROM), RC4 es el algoritmo más optimizado al reservar tan sólo 428 bytes. En cambio, Skipjack necesita de 2600 bytes de ROM, y el resto de algoritmos alrededor de 8000 bytes. El consumo de RAM de todos los algoritmos es muy bajo, casi nunca superando los 100 bytes. Respecto a las primitivas de clave asimétrica, el trabajo en el área de la criptografı́a de curvas elı́pticas (ECC) de autores como Malan et. al. [102], Liu y Ning [62], y Wang y Li [73], han demostrado que la criptografı́a de clave pública es posible en el contexto de una red de sensores. Por ejemplo, para firmar un dato se necesitan entre 1.3 y 1.9 segundos, y para verificar un dato se necesitan entre 2 y 2.4 segundos. El programa que permita realizar la firma necesita de aproximadamente 25kB de memoria ROM y 1.6kB de memoria RAM. Además, gracias a la naturaleza orientada a componentes de los sistemas operativos de nodos sensores, pudimos mejorar el espacio ocupado en memoria de una de las implementaciones [73] en la plataforma TelosB [85]. Hardware. En el ámbito de la criptografı́a simétrica, los nodos sensores que utilizan el estándar de comunicaciones IEEE 802.15.4 [57] tienen un soporte hardware para la ejecución del estándar AES-128. Estas implementaciones hardware se caracterizan por ser rápidas en sus operaciones, por ejemplo, el transceptor CC2420 consigue cifrar un mensaje en 222µs con AES-CCM y en 14µs con un modo más simple. No obstante, existen algunos modos del estándar que no deben ser utilizados [68], y algunas implementaciones hardware especı́ficas tienen problemas (p. ej. las lista de control de acceso del transceptor CC2420 sólo tiene dos entradas, permitiendo únicamente dos vecinos seguros por nodo). Por otro lado, aquellos nodos sensores que posean soporte para ejecutar instrucciones MMX (aquellos con el microcontrolador PXA27X de Intel), pueden tratar de conseguir paralelismos en el procesamiento software de determinadas primitivas como AES, Twofish y SHA. 164 En el ámbito de la criptografı́a asimétrica, existen varios prototipos hardware, pero sin ser integrados dentro de un nodo sensor. La mejor implementación de curvas elı́pticas (ECC) [48] opera a 500kHz, con 8104 puertas bajo 0.13µm en tecnologı́a CMOS, computando una operación de multiplicación de punto (la operación base de las curvas elı́pticas) sobre F2131 en 115ms, y consumiendo menos de 30µW. Existen otras implementaciones de otros algoritmos de criptografı́a de clave pública, entre los que podemos destacar Rabin. Esta implementación cifra y verifica la firma de mensajes en 2.88ms y consumiendo una media de 148.18µW. B.4.2 Primitivas criptograficas en Redes de Sensores Para analizar si las implementaciones software de las primitivas de seguridad son adecuadas para los dispositivos de una red de sensores, es necesario evaluar su coste computacional y su consumo de memoria. Para no retrasar el envı́o de paquetes, es necesario que el tiempo que tarda una primitiva en ejecutarse sea menor que el tiempo que tarda el transceptor en enviar datos (420µs para 19.2kbps, 32µs para 250kbps). Respecto a las primitivas de clave simétrica, éstas suelen ejecutarse en menos de 33µs, pero las funciones hash son más lentas, procesando un byte en unos 122µs. No obstante, las redes de sensores no suelen utilizar todo el ancho de banda, por lo que las primitivas de seguridad no retrasarán las comunicaciones. Respecto al uso de memoria, un prototipo de un aplicación básica que disponga de todas las primitivas criptográficas ocupa unos 34kB1 de memoria ROM. Un nodo de clase I (1kB RAM, 16kB ROM) solo puede soportar el uso de criptografı́a simétrica y funciones hash, mientras que los nodos de clase II (4-8kB RAM, 48-128kB ROM) y clase III (256kB RAM, 4MB ROM) pueden incluir todas las primitivas, aunque serı́a interesante aumentar la memoria disponible en futuros modelos de la clase II. También serı́a importante el desarrollar nuevos algoritmos (p. ej. funciones de cifrado en flujo como las obtenidas del proyecto ECRYPT Stream Cipher [82]) que estuvieran adaptados a este tipo de dispositivos. Como resultado, consideramos que a fecha de la realización de esta tesis es posible utilizar cualquier tipo de primitiva criptográfica en redes de sensores, aunque serı́a importante desarrollar soporte hardware para nodos de clase I y clase II. Este soporte hardware ha sido desarrollado principalmente en forma de prototipos, pero es necesario que estos prototipos puedan ser incluidos dentro del diseño de los nodos sensores o en forma de extensiones criptográficas. Además, algunas de las caracterı́sticas de los prototipos hardware existentes pueden mejorarse. Por ejemplo, la seguridad del mejor prototipo de ECC se basa en el parámetro F2131 , cuando serı́a mejor utilizar el parámetro F2163 o mayor. No obstante, es posible aprovechar los recursos existentes para implementar una solución hı́brida en la que la implementación software se beneficie de los recursos 1 AES-128 consume 8kB, y ECC consume 26kB - incluyendo código de ejemplo y la función hash SHA-1 primitive (2kB). 165 hardware del nodo. Por ejemplo, si un nodo sensor esta equipado con un chip basado en el estándar IEEE 802.15.4, es posible utilizar el modo más simple de la primitiva AES-128 para implementar diversos modos de cifrado y / o integridad, como el CBC-MAC. Además, es posible aprovechar las instrucciones MMX en aquellos microcontroladores que dispongan de ellas. B.5 Sistemas de administración de claves en Redes de Sensores Como es sabido, los mecanismos de seguridad para redes de sensores basan su funcionamiento en la existencia y uso de credenciales en general, y claves (simétricas y/o asimétricas) en particular, con las que los nodos de una red de sensores pueden proteger de una u otra forma los flujos de información. Las claves han de ser distribuidas segura y eficientemente a los nodos involucrados en la comunicación de tal forma que sólo ellos sean capaces de, por ejemplo, leer el contenido de los paquetes de información transmitidos. Para lograr ese objetivo es esencial contar con un sistema de administración de claves (Key Management System, KMS), y de los protocolos asociados (protocolos KMS), que den soporte a la administración de las mismas para cada dispositivo, tarea ésta que no es trivial en ninguna red de comunicaciones, y menos aún en una red de sensores [117]. Precisamente, y debido a esas dificultades, una de las aportaciones de esta investigación es crear una metodologı́a base que ayude al usuario final de la red de sensores (como, por ejemplo, el diseñador de la red en unas ocasiones o el administrador de la misma en otras) a encontrar el o los protocolos de KMS que más se adecuen a sus necesidades [256]. La especificación de la metodologı́a tiene tres objetivos claros: 1. Facilitar la provisión de seguridad a la implantación de cualquier aplicación de redes de sensores del mundo real. La razón es que proporciona a los usuarios un catálogo simple y directo para puedan incluir fácilmente un soporte de administración de claves en cualquier red de sensores. El usuario podrá distinguir en cualquier situación qué protocolo es el más adecuado para el contexto en el que la red se va a implantar. El catálogo es fácil de actualizar, de tal forma que los usuarios puedan beneficiarse de nuevos protocolos diseñados por la comunidad de seguridad. 2. Comprobar cuáles son las soluciones que el estado de la investigación de KMS puede ofrecer a las aplicaciones existentes en redes de sensores. Agrupando las aplicaciones existentes en escenarios, de tal forma que las aplicaciones dentro de cada grupo compartan requisitos comunes, es posible aplicar la metodologı́a para descubrir cuáles de los KMS son más adecuados para cada escenario y para las aplicaciones que forman parte de ese grupo. 166 3. Determinar los nichos de aplicaciones del mundo real donde resulte más conveniente focalizar el esfuerzo de investigación para crear nuevos protocolos de KMS. Es decir, uno de los resultados de la metodologı́a es el mapeo de los protocolos actualmente existentes en la literatura con respecto a las aplicaciones o grupos de aplicaciones existentes. Ese mapeo ayudará a identificar en qué escenarios es necesario concentrar la investigación pues pondrá de manifiesto en cuáles de ellos o bien no existen soluciones hasta el momento, o bien las existentes no cubren adecuadamente los requisitos. B.5.1 Desarrollo de una metodologı́a de selección Nuestro primer paso para el desarrollo de la metodologı́a ha consistido en establecer una taxonomı́a de los protocolos KMS en cuatro bloques principales: Key Pool, basados en operaciones matemáticas, basados en procesos de negociación y basados en clave pública, que se diferencian entre sı́ por el tipo de mecanismo interno con los que han sido diseñados. La elaboración de esta taxonomı́a nos ha permitido comprender las razones por las cuales cada protocolo, incluso dentro de un mismo bloque, provee propiedades especı́ficas. Propiedad Descripción Memoria [Mem] Memoria ROM y RAM consumida por el protocolo Comunicación [Comm] Número de mensajes intercambiados entre los nodos Velocidad de procesamiento [Sp] Coste Computacional invertido en la ejecución del protocolo KMS Protección en Despliegue [Sec] Protección de las de claves durante el proceso de despliegue Resistencia [Res] Resistencia contra credenciales de seguridad robadas Global [GConn] Existencia de un camino de claves entre cualquier nodo Conectividad Local [LConn] Existencia de una clave compartida entre dos nodos vecinos Nodal [NConn] Existencia de una clave compartida entre cualquier nodo Escalabilidad [Sca] Capacidad para soportar redes grandes Extensibilidad [Ext] Capacidad de incluir nuevos nodos Energı́a [En] Coste energético invertido en las tareas de red y de computación Table B.2: Propiedades relevantes de un protocolo KMS Como segundo paso, es necesario analizar las propiedades de los protocolos KMS, descubriendo la relación entre estas propiedades y los requisitos de la aplicación. Para ello, no sólo se realizó un análisis de propiedades ya definidas en la literatura, sino también la definición de nuevas propiedades. Ası́, hacemos una clasificación original de nueve propiedades básicas de protocolos, siendo una de ellas desglosada en otras tres dado que consideramos otros tantos aspectos diferentes dentro de esa misma propiedad. Estas propiedades son descritas de forma resumida en la tabla B.2. Finalmente, es posible proceder a la elaboración de un catálogo (KMS Table) que ponga de manifiesto las caracterı́sticas especı́ficas de los diversos protocolos KMS. El catálogo enumera las ventajas y desventajas de cada protocolo, si la presencia de una propiedad depende de los criterios de diseño del protocolo, y si el protocolo necesita 167 de información adicional para su funcionamiento. Este catálogo (ver sección 2.2.5 de la memoria de la tesis), el cual puede ser suplementado con nuevos protocolos e incluso con nuevas propiedades, se utiliza como base para la especificación de la metodologı́a (detallada en la sección 2.2.3 de la memoria de la tesis) que nos permitirá obtener el o los protocolos KMS que más se adecuen a las necesidades de un usuario. B.5.2 Resultados del análisis Tras agrupar las aplicaciones existentes en escenarios, de tal forma que las aplicaciones dentro de cada grupo compartan requisitos comunes, se pueden analizar esos grupos utilizando la metodologı́a. Tras ese análisis, puede concluirse que el estado de la investigación actual en KMS es adecuado para casi la mayorı́a de escenarios estáticos si sólo se consideran aquellos aspectos relacionados con la movilidad y el tamaño de la red. Ası́, es posible proteger adecuadamente redes de un salto, redes simples de tamaño pequeño, mediano y grande, ası́ como redes con estaciones base móviles. Es importante hacer notar que la ejecución de la metodologı́a ha dejado patente la existencia de escenarios en los que es necesario desarrollar nuevos protocolos de administración de claves. Uno de estos escenarios son las redes donde los nodos son móviles, y especialmente aquellas redes en las que las claves deban negociarse rápidamente. Otros escenarios incluyen aquellas redes cuyo coste de comunicación debe ser mı́nimo pero que necesitan ser extensibles, y redes simples de gran tamaño en las que la conectividad global tiene que ser completa ya que ningún nodo deberı́a estar desconectado de la red. Con respecto al diseño de nuevos protocolos, es interesante nombrar algunas propiedades a las que debe darse más importancia, tales como la resistencia y la extensibilidad. Ambas están contempladas por casi la mayorı́a de protocolos que funcionan sobre redes pequeñas, pero no sobre redes grandes, con lo cual se hace indispensable desarrollar soluciones para estos tipos de escenarios. Por otro lado, aunque los protocolos basados en clave pública ofrecen algunos servicios muy interesantes como la firma digital o la autorización, pueden ser demasiados complejos para determinadas redes muy especı́ficas (p. ej. redes en las que las claves deben negociarse casi instantáneamente) en las que serı́a conveniente utilizar sólo criptografı́a de clave simétrica. B.6 Administración de claves con clave pública En esta tesis hemos mostrado como el estado del arte en implementaciones tanto software como hardware de curvas elı́pticas (ECC) permite que la criptografı́a de clave pública en redes de sensores sea una realidad. Esto permite la creación de sistemas de administración de claves con unas propiedades excelentes (escalabilidad, 168 conectividad, resistencia, protección en despliegue, comunicación), aunque con ciertas desventajas que no permiten su uso en escenarios muy especı́ficos (memoria, energı́a, velocidad de procesamiento) Sin embargo, para que estos mecanismos criptográficos puedan ser utilizados a través de certificados, es necesaria la presencia de una infraestructura de clave pública (PKI). Este ha sido nuestro objetivo [255], junto con probar como otros paradigmas de clave pública como la criptografı́a basada en identidades (identity-based cryptography) son también útiles en una red de sensores [250]. B.6.1 Especificación de una infraestructura de clave pública Para especificar una infraestructura de clave pública en redes de sensores, nos basamos en el modelo PKIX [143]. Dentro de este modelo, existen las siguientes entidades: los clientes, que son los usuarios de la PKI, la autoridad de certificación (CA), que genera los certificados, la autoridad de registro (RA), que es responsable del registro y la autenticación inicial de los clientes, y el repositorio, que almacena los certificados y las listas de revocación de certificados (CRL). En una red de sensores, la arquitectura de la PKI será jerárquica simple, en la que sólo existe una autoridad de certificación. Precisamente, la estación base hace el papel de autoridad de certificación y autoridad de registro. Esto es ası́ porque es la estación base quién se encarga de asignar las identidades a los nodos y de prepararlos antes de su distribución. Respecto al repositorio, los propios nodos sensores serán quienes almacenen tanto sus propios certificados como el de la CA. El formato del certificado está basado en el estándar X509v3. Para redes de sensores simples, en los que los nodos sensores únicamente se relacionan entre ellos y con la estación base, es posible simplificar el formato del certificado a los siguientes campos: • Periodo de Validez. Indica en qué periodo de tiempo el certificado es válido. En redes de sensores, este campo puede simplemente ser un valor numérico único para cada distribución de la red (p. ej. 0x00000000A para el control de ruidos en Málaga en invierno, y 0x00000000B para el control de ruidos en Málaga en verano). • Nombre. Identifica a un nodo sensor. Debe contener el identificador del nodo sensor. • Clave pública. Contiene la clave pública del nodo sensor. • Firma del certificado. Contiene una firma digital de la CA certificando de la validez de la clave pública contenida en este certificado. Como se supone que un nodo sensor tiene soporte para únicamente un tipo de algoritmo de firma (p. ej. SHA-1/ECDSA), no es necesario indicar explı́citamente cual es este tipo de algoritmo. 169 Otras funciones de una PKI son la recuperación de claves, la actualización de claves, certificados cruzados, y la revocación de claves. Como la estación base generó los certificados de los nodos, es posible utilizarla para recuperar claves perdidas. La actualización de claves simplemente puede realizarse mediante un operario humano o a distancia. La revocación de claves sigue un modelo “push”, puesto que es la estación base quien avisa a los nodos de la revocación de un certificado. Finalmente, la certificación cruzada no es necesaria, ya que ni estaciones base extra ni los lı́deres de cluster necesitan de certificados raı́z propios. B.6.2 Otros paradigmas de clave pública Puesto que en una red de sensores existe una tercera parte confiable que genera las claves secretas de los usuarios, serı́a posible utilizar otros paradigmas de clave pública como los basados en identidad (identity-based cryptography) o los basados en autocertificación (self-certified cryptography). Los mecanismos basados en identidad utilizan una primitiva criptográfica muy costosa en términos computacionales, denominada ‘pairing’. Por otro lado, los mecanismos basados en autocertificación no requieren de operaciones más complejas. Los gastos de un mecanismos de intercambio de claves “normal” (ECMQV), basado en identidad (SOK), y basado en autocertificación (SC-ECMQV) se muestran en la siguiente lista. • ECMQV. 2mexp(2) + 1exp + 2sqrt(+trans 1410 bits + recv 1410 bits) • SOK. 1expG + 1pairing(+trans 384 bits + recv 384 bits) • SC-ECMQV. 1mexp(3) + 1exp + 2sqrt(+trans 706 bits + recv 706 bits) MICA2 ECMQV SOK SC-ECMQV UWM2000 ECMQV SOK SC-ECMQV Comp. 107.26 309.39 77.25 Comp. 107.26 309.39 77.25 Comm. 7.95 2.16 3.98 Comm. 704.98 191.99 352.99 115.21 311.55 81.23 812.24 501.38 430.24 MICAz ECMQV SOK SC-ECMQV UWM4000 ECMQV SOK SC-ECMQV Comp. 107.26 309.39 77.25 Comp. 107.26 309.39 77.25 Comm. 0.61 0.166 0.306 Comm. 2291.23 623.99 1147.24 107.87 309.55 77.56 2398.49 933.38 1224.49 Table B.3: Gasto energético de un intercambio de claves autenticado (en mJ) Una comparativa del gasto energético de cada uno de los mecanismos de intercambio de claves se muestran en la tabla B.3. Como primer resultado, puede observarse que los mecanismos de autocertificación son mejores que ciertos mecanismos básicos como el ECMQV. Sin embargo, el segundo resultado es uno de los más interesantes. 170 En entornos de redes de sensores subacuáticas [37], donde hay que utilizar transceptores acústicos como el UWM2000 y el UWM4000, los mecanismos basados en identidad son mejores. Es más, debido a las caracterı́sticas especiales del medio subacuático (baja velocidad, alta tasa de fallos), es necesario enviar el menor número de bits posible, y en este aspecto los mecanismos basados en identidad son también óptimos. B.7 Servicio de autoinspección Dada la autonomı́a de procesamiento y comunicación de los nodos sensores, éstos deben ser capaces de autoconfigurarse antes y durante el tiempo de vida de la aplicación, adaptándose a las circunstancias adversas que pudieran surgir. Sin embargo, para conseguir esa capacidad de autoconfiguración es necesario que los nodos sensores sean capaces de conocer su entorno; es decir, que se percaten y reconozcan determinados eventos que puedan afectar a su funcionamiento y al de la red. Ası́, los nodos que se vean afectados por el malfuncionamiento de otro nodo vecino deben poder detectar esa situación, e incluso reaccionar ante ella. Tal tarea ha de ser realizada por el servicio de autoinspección. Puesto que el objetivo de este servicio es, entre otros, el descubrimiento de eventos anómalos que afecten a una red de sensores, es conveniente, a nuestro juicio, desarrollar un conjunto adecuado de mecanismos de conocimiento del entorno que se fundamenten en la investigación de los efectos producidos por tales eventos. La posibilidad existe dado que el conjunto de eventos anómalos que puede sufrir una red de sensores, tanto ataques como malfuncionamientos, está bien documentado (ver sección B.2.2). B.7.1 Mecanismos de conocimiento del entorno Relación entre eventos anormales y efectos colaterales. Para el desarrollo de los mecanismos de conocimiento del entorno, hemos planteado la utilización del sı́mil en el que consideramos a una red de sensores como un organismo vivo, a un nodo sensor como una célula, y a la estación base como el cerebro del organismo. Teniendo en cuenta este sı́mil, es posible pensar que la presencia de unos determinados sı́ntomas (o efectos colaterales) pueden indicar la existencia de una enfermedad (o evento anómalo). Por lo tanto, los mecanismos de conocimiento del entorno pueden detectar eventos anómalos basándose en la existencia de sus efectos colaterales asociados. Para realizar nuestra tarea, primero localizamos los diversos eventos anómalos que pueden ocurrir dentro de una red de sensores, sean provocados por el malfuncionamiento de un nodo sensor, por un ataque externo, o por un ataque interno. Una vez conocidos esos eventos, deducimos sus efectos colaterales asociados. Éstos pueden verse en la tabla B.4, y los explicamos parcialmente a continuación. 171 Evento anómalo (“enfermedad”) Efecto colateral (“sı́ntoma”) Interferencia de señal Datos no disponibles en una zona de la red Malfuncionamiento de un nodo Datos no disponibles en ese nodo Manipulación de un nodo Nodo temporalmente no disponible Manipulación de la placa sensorial Desviaciones, Inconsistencias Reenvı́o de mensajes Mensajes demasiado antiguo Falsificación de la identificación Nuevos vecinos, mensajes por nodo Cambios en la densidad de paquetes Creación de mensajes Alteración de mensajes Cambios en los mensajes broadcast Transmisión de caracterı́sticas Inconsistencias con los nodos vecinos Ataques de Tiempo Retrasos excesivos, desequilibrio del tráfico Table B.4: Relación entre eventos anómalos y sus efectos colaterales Los ataques de interferencia de señal siempre reducen el número de paquetes recibidos de la zona afectada. Un nodo que no funcione dejará de enviar y procesar paquetes. Además, si ese nodo vuelve a aparecer tras un periodo de tiempo significativo [49], es probable que haya sufrido una manipulación por un atacante. Las mediciones erróneas de los nodos sensores pueden detectarse debido a fluctuaciones anormales o valores fuera de lo común e inconsistentes con el entorno. Respecto a la falsificación de identidad, un nodo detectará mensajes que provienen de nuevos vecinos que anteriormente no existı́an, o detectará varios mensajes procedentes de un mismo origen si ha habido duplicación de identidades. En la creación de mensajes, los mensajes creados aumentarán la densidad de mensajes enviados por la red, y mensajes que envı́en alertas falsas pueden ser inconsistentes con su entorno. También es posible detectar ataques de alteración de mensajes y transmisión de caracterı́sticas si los mensajes se envı́an en broadcast a varios destinatarios. Respecto a ataques de tiempo (retraso de mensajes, descartar y / o ignorar mensajes), los ataques que retrasen mensajes pueden ser detectados ya que no es normal que durante el proceso de encaminamiento un mensaje se retrase en un nodo durante más tiempo del habitual. También, es obvio que los mensajes descartados no serán enviados por el nodo malicioso, por lo que sus vecinos pueden detectar un desequilibrio entre en número de paquetes que entran en el nodo y el número de paquetes que salen de ese nodo. Finalmente, respecto a los mensajes ignorados, un nodo que descarte todos los mensajes que le llegan (blackhole attack) será fácilmente detectado por sus vecinos. Influencia de la aplicación. Todos estos efectos colaterales ocurren siempre que exista un evento anómalo. Por ejemplo, cuando un nodo sensor deje de funcionar, sus vecinos detectarán que ni envı́a ni procesa mensajes. No obstante, la forma en la que los efectos colaterales pueden ser analizados por el servicio de autoinspección varı́a según la aplicación utilizada en la red de sensores. Siguiendo el ejemplo anterior, en una red de sensores en la que existan nodos móviles llevados por personas no 172 será posible considerar únicamente la inexistencia de mensajes como sı́ntoma de un nodo defectuoso, puesto que un nodo móvil que abandone una zona de la red de sensores podrı́a ser considerado como extinto por sus antiguos vecinos. Es necesario considerar entonces la influencia de la arquitectura de la red y de los requisitos de la aplicación a la hora de utilizar estos mecanismos de conocimiento del entorno. Por ejemplo, en una red de un solo salto (p.ej. aquellas que monitoricen una maquinaria industrial), los nodos no podrán detectar ciertos efectos colaterales debido a la falta de información (p. ej. interferencia de la señal) o a la inexistencia del evento anómalo. Para estas redes pequeñas, el descubrimiento de aquellos eventos indetectables por los nodos puede realizarse en la estación base. Otro factor que influye mucho sobre los mecanismos es la movilidad de los miembros de la red. En los casos en los que la estación base sea móvil (p. ej. en escenarios de rastreo de vehı́culos), la carga especı́fica de un nodo variará dependiendo de su localización respecto a la estación base. Si son los nodos los que tienen la capacidad de movimiento, existen varios efectos colaterales que o bien necesitan ser analizados en más profundidad (p. ej. la desaparición de paquetes) o bien no ofrecen información sobre el evento (aparición de nodos móviles en una zona de la red). Además de la estructura de la red existen otros aspectos que también influyen sobre el servicio de autoinspección. Dependiendo de la aplicación, la red de sensores ofrece una serie de funcionalidades a sus usuarios (monitorización del entorno, generación de alertas, ...). Los eventos que se pueden detectar y la forma de detectarlos están influenciados por esa funcionalidad. Por ejemplo, no es posible comprobar si existen alertas erróneas en caso de que esta funcionalidad no exista dentro de la red. Finalmente, la comprobación de ciertos eventos requiere del conocimiento de las caracterı́sticas de la aplicación utilizada en la red de sensores. Por ejemplo, eventos anómalos tales como la creación de mensajes, cuya detección dependen del número de paquetes existentes dentro de un periodo de muestreo, dependen de caracterı́sticas como la carga y la dimensión de la red. B.8 Detección de intrusiones y Redes de Sensores Como hemos argumentado, el servicio de autoinspección es esencial para monitorizar el comportamiento de los elementos de una red de sensores y para permitir que los nodos sensores se autoconfiguren. Además, es la piedra angular para el desarrollo de un servicio de detección de intrusiones (IDS). Conociendo la situación de su entorno un nodo sensor puede ser capaz, a través del servicio de IDS, de decidir cuándo un vecino está actuando de forma maliciosa y reaccionar de forma adecuada [248]. Anteriormente han sido estudiados determinados aspectos en el desarrollo de un IDS para redes de sensores, como la naturaleza de determinados mecanismos de detección. Sin embargo, no ha sido propuesto hasta el momento ningún esquema especı́fico de esta clase de sistemas que cumpla las siguientes propiedades de forma conjunta: 173 Sensores Conocimiento del Entorno Mensajes Análisis específicos de protocolos Otros ADQUISICIÓN DE DATOS - #paquetes - Números de Secuencia - Otros DETECCIÓN - Lecturas del sensor - Colisiones (“Backoffs”) - Información de Alertas ESTADÍSTICAS COLABORACIÓN Malicioso Sospechoso BBDD ALERTAS Figure B.3: Estructura de una arquitectura IDS para WSN • Cobertura total: cubrir todo el intercambio de información que fluye a través de la red. • Simplicidad: funcionar en un dispositivo de capacidades limitadas. • Adaptabilidad: posibilidad de incluir nuevos mecanismos de detección, o excluir aquellos mecanismos que no sean relevantes para la aplicación. B.8.1 Propuesta de un sistema de detección de intrusiones Nuestra propuesta de sistema que cubra esas propiedades de cobertura total, simplicidad y adaptabilidad se presenta en la figura B.3. Dado que los ataques pueden producirse en cualquier punto de la red, la cobertura total se consigue con una solución distribuida. Además, proveemos de dos sistemas de detección, adaptados a las capacidades de los dispositivos existentes en la red. Por un lado, el Agente Estación Base, localizado en la estación base, que se encarga de comprobar la información procedente de la red de sensores y de incluir mecanismos de detección que necesiten de datos globales de la red [188]. Por el otro, el Agente Nodo, del que existe una copia en todos los nodos de la red, y que se encarga de comprobar únicamente la información de sus nodos vecinos. Dentro de cada agente, existen unos componentes especializados en realizar las tareas del sistema de detección de intrusiones, ası́ como de ofrecer información a los demás servicios de la red. El componente Adquisición de Datos obtiene información de las fuentes de los sı́ntomas (p. ej. mensajes, lecturas de sensores), y los almacena en el componente Estadı́sticas, que proporciona información que puede ser utilizada por servicios similares al protocolo SNMP. Este último componente informa principalmente al componente Detección, que infiere la existencia de eventos anómalos procedentes de nodos maliciosos en base a los mecanismos de conocimiento del entorno y otros mecanismos de detección dependientes de los protocolos utilizados por la aplicación. Dentro de este componente se incluyen sólo aquellos mecanismos que 174 sean estrictamente necesarios para analizar el comportamiento de la aplicación. Todos los resultados se guardan en la base de datos de alertas, donde los nodos se clasifican en maliciosos o sospechosos. Esta BBDD puede servir de plataforma para lanzar servicios complejos de seguridad, como la atestación de código. Finalmente, existe un componente Colaboración para que el nodo comparta su información con sus vecinos o con la estación. Las limitaciones existentes en los nodos sensores imponen una división de las tareas a realizar por el Agente Nodo. Las tareas de análisis locales al nodo son realizadas por el Agente Nodo Local, mientras que los análisis de datos externos son realizados por el Agente Nodo Global. Más especı́ficamente, las tareas del Agente Nodo Local son las de detectar situaciones anómalas en los protocolos utilizados por la red y en las lecturas de los sensores. Sus mecanismos de detección se ejecutan cada vez que existan datos disponibles. Por otro lado, para poder ahorrar energı́a, los mecanismos de detección del Agente Nodo Global sólo se ejecutan cada cierto tiempo, por ejemplo al final de un periodo de muestreo. Estos mecanismos permiten descubrir la existencia de ataques de interferencia de señal, malfuncionamiento del hardware, mensajes retrasados, y mensajes ignorados. Además, ciertos mecanismos como el análisis de paquetes enviados en broadcast pueden ser temporalmente desconectados, en parte gracias a la redundancia de la red [258, 262]. Otros aspectos importantes que son gestionados por la estructura propuesta son el tiempo de ejecución de los mecanismos de detección periódicos y la distribución de los agentes (tanto locales como globales) en los diversos nodos de la red. Ambos aspectos dependen, de nuevo, de la naturaleza de la aplicación. La carga de la red (el número de mensajes enviados por unidad de tiempo), la importancia del tiempo de reacción en los procesos de detección, y el gasto de energı́a admisible en un nodo, influyen sobre la periodicidad de los procesos de detección. Respecto a la distribución de los nodos, en sistemas jerárquicos es posible activar el agente nodo global únicamente en lı́deres de cluster. También es posible utilizar ciertos protocolos de soporte que ayuden al sistema de detección de intrusiones a realizar su tarea. Por ejemplo, puede modificarse el formato de los mensajes para facilitar la detección de mensajes descartados. También es posible mejorar los mecanismos que comprueban el estado de otro nodo de la red. Finalmente, pueden desconectarse temporalmente ciertos mecanismos de detección en algunos nodos gracias a la redundancia de la red. B.9 Sistemas de confianza y Redes de Sensores El concepto de confianza (‘Esperanza firme que se tiene de alguien o algo’) deriva de entornos sociológicos y psicológicos. La confianza es un factor esencial en cualquier tipo de red, sea social o de ordenadores, ya que ayuda a los miembros de la red a abordar el problema del desconocimiento de las futuras acciones de los demás participantes de la red (incertidumbre). Como resultado, el manejo de la confianza 175 es muy importante en transacciones de Internet o en sistemas distribuidos. El término ‘sistema de manejo de confianza’ en sistemas computacionales fue descrito primero por Blaze et al. [205]. Los objetivos principales de estos sistemas son: i) determinar la confianza inicial en los participantes, ii) observar el comportamiento de los miembros de la red, iii) actualizar la confianza en los demás miembros de la red. En ciertos sistemas, también se tiene en cuenta la reputación (‘Opinión o consideración en que se tiene a alguien o algo; Prestigio o estima en que son tenidos alguien o algo’) a la hora de calcular la confianza que se tiene en otro miembro de la red. La confianza es un factor muy importante para la toma de decisiones en cualquier tipo de red computacional donde exista la incertidumbre. La incertidumbre se origina de dos fuentes [223]: la asimetrı́a de la información y el oportunismo. En un contexto de redes de sensores, los nodos sensores trabajan para el bien común de la red, ası́ que no son oportunistas. Sin embargo, un nodo sensor no conoce el comportamiento de sus vecinos a priori (p. ej. pueden fallar o ser maliciosos), por lo que existe asimetrı́a en la información. Por lo tanto, la confianza es un factor a considerar en una red de sensores. Por ejemplo, los algoritmos de encaminamiento pueden elegir al siguiente nodo que reenviará el paquete de datos en base a la confianza que tenga en sus vecinos. Actualmente, existen muchos sistemas de manejo de confianza para redes ad hoc, los cuales introducen ideas importantes (como el uso de la reputación) pero no pueden ser directamente aplicables a redes de sensores [254]. Respecto a la investigación de sistemas de manejo de confianza para redes de sensores, ésta se encuentra aún en sus inicios. La mayorı́a del estado del arte es capaz de resolver problemas puntuales, pero en la mayorı́a de los casos se han ignorado en el diseño de los sistemas aquellas caracterı́sticas que definen a una red de sensores [253]. Es entonces nuestro objetivo el especificar cómo un sistema de manejo de confianza puede incorporar esas caracterı́sticas especı́ficas para funcionar adecuadamente [252]. B.9.1 Especificación de la confianza en Redes de Sensores Arquitectura y componentes. En un sistema de manejo de confianza, debe existir una entidad que proporcione a los servicios de un nodo la capacidad de acceder a las mediciones de reputación y confianza de los demás nodos. Esta entidad tiene que componerse de los siguientes componentes: • Un componente de adquisición de datos, el cual obtenga información a través de dos fuentes: i) la observación del comportamiento de los demás nodos, y ii) compartir información con otros nodos. • Un componente de reputación, que almacene la reputación de los nodos de la red. 176 • Un componente de confianza, que proporcione a los servicios de un nodo la confianza que se tiene en los demás nodos para hacer determinadas operaciones en base a su reputación. Estas entidades deben localizarse en todos los miembros de una red de sensores (estación base y nodos), ya que todos participan en los servicios y protocolos de la red. Existe un caso excepcional a esta distribución: en las redes jerárquicas, los lı́deres de clúster serán los únicos nodos que tengan activa su entidad. Inicialización y adquisición de datos. Respecto a la inicialización de los valores de confianza y reputación, éstos suponen que, por defecto, todos los nodos son confiables. La explicación es sencilla: todos los nodos fueron programados en un entorno controlado y con la misión de llevar a cabo de forma conjunta los servicios de la red. Con respecto a la adquisición de datos, ésta puede realizarse utilizando los mecanismos de conocimiento del entorno vistos en la sección B.7.1, además de otros mecanismos dependientes de la aplicación que analicen los protocolos especı́ficos utilizados en la red [227]. Es más, en el contexto de una red de sensores, es posible utilizar el concepto de ‘apoptosis’. En términos médicos, la apoptosis ocurre cuando una célula se suicida debido a ataques vı́ricos u otras causas [215]. En un contexto computacional, un nodo sensor puede detectar su estado interno (p.ej. baterı́as bajas, malfuncionamiento de sus sensores) y avisar al resto de los nodos de cualquier anomalı́a. Modelado de la información. A la hora de modelar los valores de reputación y confianza, hay varios detalles especı́ficos de las redes de sensores que hay que tener en cuenta. Uno de ellos es la evolución de la reputación. Los nodos sensores no se comportan anormalmente por defecto, ası́ que cualquier comportamiento manifiestamente maligno debe tener un gran reflejo en su reputación. Además, si un nodo alcanza una reputación muy baja, este hecho deberı́a recordarse: un nodo que se haya comportado de forma maliciosa posiblemente lo volverá a hacer en un futuro. Otro aspecto es la granularidad: deben existir varios valores que modelen la reputación y la confianza en un nodo. Por ejemplo, un nodo cuyos sensores no funcionen correctamente puede tener a su vez una de las mejores rutas de encaminamiento. Otro aspecto a considerar es la influencia del riesgo y la importancia de la operación en la confianza. Ambas deciden cual es el lı́mite en el que un nodo puede considerarse o no adecuado para una tarea determinada. Por ejemplo, un paquete de datos puede ser encaminado por cualquier nodo, pero solo aquellos con máxima confianza deberı́a encaminar paquetes de alerta. Finalmente, otro aspecto menor es la necesidad de enviar notificaciones a la estación base, ya que la existencia de informes contradictorios con respecto a la confianza en un nodo ya puede ser indicativo suficiente de la existencia de problemas dentro de la red. 177 B.10 Redes de Sensores y middleware seguro El proyecto SMEPP (Secure Middleware for Embedded Peer-to-Peer systems, FP6IST-033563) es un proyecto STREP financiado por la Unión Europea dentro del 6o programa marco. Comenzó en octubre del 2006 y finalizará en octubre del 2009. El principal objetivo de este proyecto es el desarrollo de un middleware especialmente diseñado para redes peer-2-peer empotradas, que pueda solucionar los problemas de los middleware especı́ficos en este campo. El middleware desarrollado en este proyecto será seguro, genérico, y altamente configurable, permitiendo su adaptación a múltiples dispositivos y dominios de aplicación. La seguridad es un aspecto crucial para el funcionamiento adecuado de un sistema P2P basado en dispositivos embebidos, ya que estos sistemas se encuentran desprotegidos ante varios tipos de ataques externos e internos. Uno de los objetivos primordiales de nuestro trabajo en el proyecto SMEPP es la integración de mecanismos de seguridad dentro de la arquitectura del middleware. Ası́, estos mecanismos deberı́an estar disponibles al desarrollador de aplicaciones de SMEPP a través de una capa transversal dentro de la arquitectura [260]. En SMEPP, los servicios de seguridad (seguridad en grupos, servicios criptográficos, seguridad en la infraestructura) se localizan en una capa transversal, y son utilizados por los demás servicios de SMEPP (p. ej. encaminamiento, manejo de grupos). Su modularidad permite que se incluyan solamente aquellos mecanismos criptográficos que vayan a ser utilizados en una aplicación determinada. El uso de componentes también permite la reutilización de los mecanismos seguros para aquellos servicios que los necesiten. Es necesario hacer notar que la elección de los mecanismos criptográficos a utilizar dentro de SMEPP se benefició de la existencia del trabajo presentado en la sección B.4. Además, los servicios de autoinspección vistos en la sección B.7 están disponibles para que el servicio de encaminamiento pueda realizar mejor su tarea. Respecto a la adaptabilidad a las aplicaciones, la seguridad no viene impuesta al desarrollador, sino que le es posible elegir el nivel de seguridad que desea y que se adapte mejor a los requerimientos de su aplicación. Estos niveles de seguridad, desarrollados conjuntamente por los miembros del consorcio SMEPP, están detallados en la Figura B.4. SMEPP permite la configuración tanto del proceso de admisión en un grupo como de la protección ofrecida por las claves de sesión. Si se utiliza una clave secreta compartida como credencial de seguridad, se reduce la complejidad de la negociación y de los componentes de seguridad. Por otro lado, es peligroso utilizar claves compartidas si existe la posibilidad de que la información de un dispositivo caiga en manos de un atacante. En ese caso, es aconsejable utilizar criptografı́a de clave pública para limitar los efectos de posibles ataques. Respecto a la seguridad ofrecida por las claves de sesión, éstas pueden simplemente asegurar la integridad y la autenticidad de un mensaje como procedente de un miembro de un grupo SMEPP, o además pueden proteger la confidencialidad del mensaje, evitando ası́ que dispositivos 178 Admisión en grupo Seguridad de datos Protección clave de sesión 2 Criptografía de clave pública Autenticación y Cifrado Global y Local (Anti–SCA) 1 Clave secreta compartida Autenticación Global (Refresco de clave) 0 Nada Nada Nada Tipo Nivel Figure B.4: Los tres niveles de seguridad en SMEPP externos al grupo accedan al flujo de información procedente de ese grupo. SMEPP permite una granularidad extra a la hora de proteger las comunicaciones. Una red SMEPP dispone de múltiples dominios de seguridad: Un dominio global (comunicaciones entre los miembros de una red SMEPP) y varios dominios de grupo (comunicaciones entre los miembros de un mismo grupo). SMEPP permite ası́ elegir para cada dominio el nivel de seguridad que se desee. Mediante la protección del dominio global, es posible elegir si una red SMEPP es accesible por cualquier dispositivo o sólo accesible por aquellos dispositivos autorizados a hacerlo. Por otro lado, es posible modificar el nivel de seguridad utilizado por un dominio de grupo en particular, permitiendo la existencia de grupos cuyos servicios sean de acceso público y de grupos con un grado de protección variable. B.11 Integración de Redes de Sensores en Internet Para que las redes de sensores no fueran mundos cerrados y se pudiera incrementar su utilidad, serı́a necesario resolver los problemas de accesibilidad a los servicios proporcionados por las mismas. Esos servicios deberı́an ser fácilmente accesibles desde redes externas, bien a través de la estación base o bien accediendo directamente a los contenidos de un nodo sensor. Como consecuencia, el flujo de información producido por la red habrı́a de ser accedido y analizado por distintas aplicaciones situadas en diferentes localizaciones geográficas. Además, deberı́a ser posible que un operador controlara la red de forma remota. Por lo tanto, el verdadero potencial de las redes de sensores podrı́a ser aprovechado completamente si esos servicios fuesen publicados hacia fuera de la red utilizando 179 Front-End Proxy Datos Datos S- Datos S-Datos TCP/IP TCP/IP S-Proto Sensor Protocol MAC MAC 802.15.4 IEEE 802.15.4 Datos Gateway Capa TCP/IP Datos Datos TCP/IP TCP/IP S-Proto Sensor Protocol MAC MAC 802.15.4 IEEE 802.15.4 Datos Datos TCP/IP TCP/IP MAC Equipo de Internet MAC 802.15.4 Estación Base Datos TCP/IP IEEE 802.15.4 Nodo Sensor Figure B.5: Estrategias de integración WSN-Internet interfaces estándar en una infraestructura de red pública como Internet. Las interacciones con las redes de sensores irı́an más allá, pasando del acceso remoto al universo de la colaboración. Existen varias estrategias de integración que pueden ser utilizadas para interconectar las redes de sensores con otros sistemas pertenecientes a la comunidad Internet. Por un lado, las redes de sensores pueden funcionar sin estar completamente integradas en la infraestructura de Internet pero proporcionando sus servicios a través de interfaces estándar. Esta solución se denomina basada en proxy. Por otro lado, las redes pueden también comportarse como cualquier otra red basada en IP, de tal forma que sus nodos puedan establecer conexiones directas con otros equipos de Internet. En este caso, la solución pasa por crear especı́ficamente una capa TCP/IP. Finalmente, en una tercera opción, basada en gateway, la red mantiene su independencia estructural pero permite el establecimiento de conexiones directas entre equipos. Todas estas alternativas se muestran en la figura B.5. Sea cual sea el mecanismo de integración, al conectar una red de sensores a Internet surgen muchos e interesantes desafı́os nuevos de seguridad, aún cuando la red de sensores tenga un funcionamiento seguro por si sola [247]. Ya que los usuarios de Internet se conectarı́an de forma remota a los servicios proporcionados por la red, serı́a necesario desarrollar mecanismos especı́ficos para proteger el flujo de información. Además, el acceso de la comunidad Internet a los servicios de la red harı́a crecer exponencialmente el número de potenciales usuarios maliciosos o no autorizados que tratarı́an de manipular la red. Es entonces necesario crear mecanismos que puedan tanto autenticar a los usuarios y a los nodos sensores, como verificar si se dispone de 180 los permisos necesarios para acceder a la red. Además, habrán de detectar posibles ataques que se realicen desde el exterior. Otros factores como la disponibilidad y la trazabilidad también deben ser tenidos en cuenta. B.11.1 Problemas abiertos y propuestas de soluciones • Solución basada en proxy. En esta solución, la estación base actúa como un representante de todos los nodos sensores, proporcionando la funcionalidad de la red mientras está conectada a Internet como un equipo más. Ası́, proponemos que los mecanismos de protección, tales como la negociación de claves o la detección de intrusiones, sean implementados e incorporados dentro de la estación base. Al estar las infraestructuras de Internet y la red de sensores completamente separadas, el intercambio de información entre un equipo de Internet y la estación base se protegerá utilizando protocolos estándar, mientras que las comunicaciones entre la estación base y los diversos nodos utilizarán mecanismos de seguridad más sencillos y adaptados al entorno. Además, la red de sensores incorporará mecanismos propios (p. ej. redundancia en las fuentes de información) para aprovechar las capacidades de la red al máximo. Una desventaja de nuestra solución es que la estación base se convierte automáticamente en un punto débil de la red: si se consigue atacar o impedir el acceso a la estación base, toda la red de sensores se verá afectada (p. ej. un atacante podrá ver todo el flujo de información). Esta desventaja se puede paliar mediante el uso de múltiples estaciones base, que evitarı́an problemas como la no disponibilidad de la red en caso de fallos, e incluso introducirı́an ventajas como el balanceo de carga. De hecho, el uso de múltiples estaciones conlleva interesantes desafı́os como el mantenimiento de la coherencia de la información entre todas las estaciones base. • Solución basada en capa TCP/IP. Resolver los problemas de seguridad en la integración total de las infraestructuras de las redes de sensores e Internet no es trivial. Es posible enviar paquetes IPv6 a través de una red de sensores (utilizando la especificación 6lowpan), pero no existe una especificación definida de mecanismos de protección en la capa de red. Aún cuando no exista esa capacidad de crear un canal seguro de comunicación extremo a extremo, las aplicaciones necesitan de este servicio. Serı́a posible utilizar estándares como TLS/SSL, o utilizar protocolos de distribución de claves basados en operaciones matemáticas. La autenticación y autorización de usuarios es otro problema a resolver, aunque proponemos que puede solucionarse utilizando Kerberos [241]. También es necesario resolver problemas tales como conservar los datos de trazabilidad de la red, o permitir la disponibilidad tanto de los servicios del nodo como de los datos históricos producidos por el nodo. Posibles soluciones consistirı́an 181 en almacenar únicamente información respecto a incidentes detectados por un IDS (trazabilidad), y comprimir y / o almacenar los datos históricos en otro lugar (disponibilidad). • Solución basada en gateway. Algunos de los problemas asociados al uso de TCP/IP pueden ser parcialmente resueltos utilizando una solución basada en gateways. La estación base puede analizar y/o almacenar todas las interacciones entre los nodos y equipos remotos, guardar los datos históricos de los nodos, mejorar la disponibilidad de la red, etc. Es más, ya que para enviar paquetes IPv6 a una red de sensores es necesario traducir los paquetes a 6lowpan, la estación base puede realizar estos roles de análisis. Sin embargo, si se utilizan mecanismos que proporcionen una canal seguro extremo a extremo, será entonces necesario implementar soluciones no triviales. B.12 Conclusiones En el transcurso de esta tesis, hemos demostrado como los mecanismos de seguridad mostrados en el “conjunto integral” son posibles dentro de una red de sensores. Además, también hemos mostrado como la naturaleza de las aplicaciones y su contexto influyen sobre el desarrollo de los mecanismos de seguridad. Todas las contribuciones realizadas en el ámbito de esta tesis están resumidas en la sección B.3, y se encuentran en más detalle dentro de las secciones que forman parte de este capı́tulo. Además, en el marco de esta tesis se han descubierto y definido diversas áreas de investigación que quedan abiertas para ser resueltas en un futuro. Estas son la adecuación de los mecanismos de seguridad a los entornos móviles, la definición de primitivas adaptadas a dispositivos de baja capacidad, el desarrollo de mecanismos especı́ficos de administración de claves, la interacción segura entre las redes de sensores e Internet, y la utilización segura de las redes de sensores con otros paradigmas como el de las redes de área personal. 182 Bibliography 183 184 [1] G. Witzany. The Logos of the Bios 2. Bio-Communication. Helsinki, Umweb (2007). ISBN 952-5576-04-7 [2] A. H. Maslow. A Theory of Human Motivation. Psychological Review, no. 50, pp. 370-396, 1943. [3] M. A. Max-Neef, A. Elizalde, M. Hopenhayn. Human scale development : conception, application and further reflections. New York : The Apex Press. ISBN 094525735X, 1991. [4] European Organization for Nuclear Research (CERN). LHC - The Large Hadron Collider. http://lhc.web.cern.ch, 2008. [5] M.G. Rubinstein, I.M. Moraes, M. Elias, M. Campista, L.H.M.K. Costa, O.C.M.B. Duarte. A Survey on Wireless Ad Hoc Networks. In Mobile and Wireless Communication Networks, pp. 1-33, August 2006. Springer-Verlag, ISBN: 0387346341. [6] C. Chong and S.P. Kumar, Sensor Networks: Evolution, Opportunities, and Challenges. Proceedings of the IEEE, vol. 91, no. 8, pp. 1247-1256, 2003. [7] C. E. Nishimura, D. M. Conlon. IUSS dual use: Monitoring whales and earthquakes using SOSUS. Mar. Technol. Soc. Journal, vol. 27, no. 4, pp. 13–21, 1994. [8] Proceedings of the Distributed Sensor Nets Workshop. Pittsburgh, (USA), Carnegie Mellon University, 1978. [9] R. Rashid, G. Robertson. Accent: A communication oriented network operating system kernel. ACM SIGOPS Operating Systems Review, vol. 15, no. 5, December 1981. [10] R. T. Lacoss. Distributed mixed sensor aircraft tracking. Proceedings of the 6th American Control Conference, pp. 1827-1830, Minneapolis (USA), June 1987. [11] V.R. Lesser, D.D. Corkill. The distributed vehicle monitoring testbed: A tool for investigating distributed problem solving networks. Readings from the AI magazine, pp. 69–85, ISBN: 0-929280-01-6, 1989. [12] C.Y. Chong, K.C. Chang, S. Mori. Distributed tracking in distributed sensor networks. Proceedings of the American Control Conference, 1982. [13] DARPA. SensIT - Sensor Information Technology. http://www.sainc.com/sensit/goals.htm 185 [14] Smart-Its Consortium. The Smart-Its Project. http://www.smart-its.org/ [15] D. Culler, D. Estrin, M. Srivastava. Overview of Sensor Networks. IEEE Computer, vol. 37, no. 8, pp. 41-49, August 2004. [16] Sensor Nets / RFID. Intel Corporation. http://www.intel.com/research/exploratory/wireless_sensors.htm [17] Gregory J. Millman, Accenture. Virtual Vineyard. http://www.accenture.com/Global/Research_and_Insights/Outlook/ By_Alphabet/VirtualVineyard.htm [18] K. Martinez, P. Padhy, A. Elsaify, G. Zou, A. Riddoch, J.K. Hart, H.L.R. Ong. Deploying a Sensor Network in an Extreme Environment. Proceedings of Sensor Networks, Ubiquitous and Trustworthy Computing (SUTC 2006), pp. 186-193, Taichung (Taiwan), June 2006. [19] J.M. Lees, J.B. Johnson, M. Ruiz, L. Troncoso, M. Welsh. Reventador Volcano 2005: Eruptive Activity Inferred from Seismo-Acoustic Observation. Journal of Volcanology and Geothermal Research, in press. [20] R. Szewczyk, J. Polastre, A. Mainwaring and D. Culler. Lessons from a Sensor Network Expedition. Proceedings of the 1st European Workshop on Wireless Sensor Networks (EWSN 2004), pp. 307-322, Berlin (Germany), January 2004. [21] Wired and Wireless Intelligent Networked Systems (WINES) - Smart Infrastructure Project. http://www.winesinfrastructure.org/ [22] T. He, S. Krishnamurthy, L. Luo, T. Yan, L. Gu, R. Stoleru, G. Zhou, Q. Cao, P. Vicaire, J. A. Stankovic, T. F. Abdelzaher, J. Hui, B. Krogh. VigilNet: An integrated sensor network system for energy-efficient surveillance. ACM Transactions on Sensor Networks, vol. 2, no. 1, pp 1-38, February 2006. [23] Harvard University. The CodeBlue Project. http://www.eecs.harvard.edu/~mdw/proj/codeblue [24] A. Wood, G. Virone, T. Doan, Q. Cao, L. Selavo, Y. Wu, L. Fang, Z. He, S. Lin, J. Stankovic. ALARM-NET: Wireless Sensor Networks for Assisted-Living and Residential Monitoring. Technical Report CS-2006-11, Department of Computer Science, University of Virginia, 2006. 186 [25] D. Minder, P. J. Marrón, A. Lachenmann, K. Rothermel. Experimental construction of a meeting model for smart office environments. Proceedings of the First Workshop on Real-World Wireless Sensor Networks (REALWSN 2005), Stockholm (Sweden), June 2005. [26] Cadi Scientific Pte Ltd. CADI SmartSenseTM . http://www.cadi.com.sg [27] Nordic Collaboration Project. Biomedical Wireless Sensor Network Project. http://www.bwsn.net [28] N. Ramanathan, L. Balzano, D. Estrin, M. Hansen, T. Harmon, J. Jay, W. J. Kaiser, G. Sukhatme. Designing Wireless Sensor Networks as a Shared Resource for Sustainable Development. Proceedings of the International Conference on Information and Communication Technologies and Development (ICTD 2006), pp. 256-265, Berkeley (USA), May 2006. [29] University of California, http://fire.me.berkeley.edu/ Berkeley. FIRE Project. [30] A. Krishnamurthy, B. Kamasi, C. McCoy, K. Mallela. Project Laund-re-mote. [31] W. Watts, M. Koplow, A. Redfern, P. Wright. Application of Multizone HVAC Control Using Wireless Sensor Networks and Actuating Vent Registers. Texas University A&M Repository, 2007. [32] Crossbow Technology, Inc. eKo Pro – Precision Agriculture. http://www.xbow.com/eko/, 2008 [33] M. Weiser. The Computer for the Twenty-First Century. Scientific American, Vol 265 no 3, pp. 94-104, September 1991. [34] M. Satyanarayanan. Pervasive Computing: Vision and Challenges. IEEE Personal Communication, Vol 8 no 4, pp. 10-17, August 2001. [35] F. Calabrese, K. Kloeckl, C. Ratti, M. Bilandzic, M. Foth, A. Button, H. Klaebe, L. Forlano, S. White, P. Morozov, S. Feiner, F. Girardin, J. Blat, N. Nova, M.P. Pieniazek, R. Tieben, K. van Boerdonk, S. Klooster, E. van den Hoven, J. Martı́n Serrano, J. Serrat, D. Michelis, E. Kabisch. Urban Computing and Mobile Devices. IEEE Pervasive Computing, vol. 6, no. 3, pp. 52-57, Jul-Sept 2007. [36] International Telecommunication Union. The Internet of Things. ITU Internet Reports 2005. 187 [37] I.F. Akyildiz, E.P. Stuntebeck. Wireless Underground Sensor Networks: Research Challenges. Ad Hoc Networks Journal, vol. 4, no. 6, pp. 669-686, November 2006. [38] V. Shnayder, M. Hempstead, B. Chen, G. Werner Allen, M. Welsh. Simulating the Power Consumption of Large-Scale Sensor Network Applications. Proceedings of the 2nd international conference on Embedded networked sensor systems (SenSys’04), pp. 188-200, Baltimore (USA), November 2004. [39] V. Kawadia, P.R. Kumar. A cautionary perspective on cross-layer design. IEEE Wireless Communications, vol. 12, no. 1, pp. 3-11, February 2005. [40] V. Srivastava, M. Motani. Cross-Layer Design: A Survey and the Road Ahead. IEEE Communications Magazine, vol. 43, no. 12, pp. 112-119, December 2005. [41] I.F. Akyildiz, M.C. Vuran, O.B. Akan. A Cross-Layer Protocol for Wireless Sensor Networks. Proceedings of the 40th Annual Conference on Information Sciences and Systems, pp. 1102-1107, Princeton (USA), March 2006. [42] P.J. Marrón, D. Minder, A. Lachenmann, K.Rothermel. TinyCubus: An Adaptive Cross-Layer Framework for Sensor Networks. it – Information Technology journal, vol. 47, no. 2, pp. 87-97. 2005. [43] D. Culler, P. Dutta, C. Tien Ee, R. Fonseca, J. Hui, P. Levis, J. Polastre, S. Shenker, I. Stoica, G. Tolle, J. Zhao. Towards a Sensor Network Architecture: Lowering the Waistline. Proceedings of the 10th Workshop on Hot Topics in Operating Systems (HotOS X), pp. 139-144, Santa Fe (USA), 2005. [44] R. Kumar. Adaptable Protocol Stack Architecture for Future Sensor Networks. PhD Thesis, Georgia Institute of Technology, 2006. [45] ZigBee Alliance. ZigBee Specification http://www.zigbee.org/ [46] I. F. Akyildiz, W. Su, Y. Sankarasubramaniam, E. Cayirci. Wireless sensor networks: a survey. Computer Networks: The International Journal of Computer and Telecommunications Networking, vol. 38, no. 4, pp. 393-422, March 2002. [47] A. Alarifi, W. Du. Diversifying Sensor Nodes to Improve Resilience Against Node Compromise. Proceedings of the 4th ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN 2006), pp. 101-112, Alexandria (USA), October 2006. 188 [48] L. Batina, N. Mentens, K. Sakiyama, B. Preneel, I. Verbauwhede. Low-Cost Elliptic Curve Cryptography for Wireless Sensor Networks. Proceedings of the 3rd European Workshop on Security and Privacy in Ad hoc and Sensor Networks (ESAS 2006), pp. 6-17, Hamburg (Germany), September 2006. [49] A. Becher, Z. Benenson, M. Dornseif. Tampering with Motes: Real-World Physical Attacks on Wireless Sensor Networks. Proceedings of the 3rd International Conference on Security in Pervasive Computing (SPC’06), pp. 104-118, York (United Kingdom), April 2006. [50] D. Malan, T. Fulford-Jones, M. Welsh, S. Moulton. CodeBlue: An Ad Hoc Sensor Network Infrastructure for Emergency Medical Care. Proceedings of the International Workshop on Wearable and Implantable Body Sensor Networks, London (United Kingdom), April 2004. [51] W. Du, J. Deng, Y. S. Han, P. K. Varshney. A witness-based approach for data fusion assurance in wireless sensor networks. Proceedings of the IEEE 2003 Global Communications Conference (GLOBECOM’03), pp. 1435-1439, San Francisco (USA), December 2003. [52] P. K. Dutta, J. W. Hui, D. C. Chu, D. Culler. Securing the Deluge Network Programming System. Proceedings of the 5th International Conference on Information Processing in Sensor Networks (IPSN’06), pp. 326-333, Nashville (USA), April 2006. [53] P. Ganesan, R. Venugopalan, P. Peddabachagari, A. Dean, F. Mueller, M. Sichitiu. Analyzing and Modeling Encryption Overhead for Sensor Network Nodes. Proceedings of the 2nd ACM International Conference on Wireless Sensor Networks and Applications (WSNA 2003), pp. 151-159, San Diego (USA), September 2003. [54] S. Ganeriwal and M. B. Srivastava. Reputation-Based Framework for High Integrity Sensor Networks. Proceedings of the 2nd ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN’04), pp. 66-77, Washington DC (USA), 2004. [55] G. Gaubatz, J.-P. Kaps, E. Öztürk, B. Sunar. State of the Art in Ultra-Low Power Public Key Cryptography for Wireless Sensor Networks. Proceedings of the 2nd IEEE International Workshop on Pervasive Computing and Communication Security (PerSec 2005), pp. 146-150, Hawaii (USA), March 2005. 189 [56] J. W. Hui, D. Culler. The Dynamic Behavior of a Data Dissemination Protocol for Network Programming at Scale. Proceedings of 2nd International Conference on Embedded Networked Sensor Systems (SenSys’04), pp. 81-94, Baltimore (USA), November 2004. [57] IEEE Standard, 802.15.4-2006. Wireless medium access control and physical layer specifications for low-rate wireless personal area networks. ISBN 0-73814997-7, 2006. [58] K. Jun Choi, J.-I. Song. Investigation of Feasible Cryptographic Algorithms for Wireless Sensor Network. Proceedings of the 8th International Conference on Advanced Communication Technology (ICACT 2006), Phoenix Park (Korea), February 2006. [59] I. Krontiris, T. Dimitriou. Authenticated In-Network Programming for Wireless Sensor Networks. Proceedings of the 5th International Conference on AD-HOC Networks & Wireless (ADHOC-NOW 2006), pp. 390-403, Ottawa (Canada), August 2006. [60] A. Francillon, C. Castelluccia. TinyRNG: A Cryptographic Random Number Generator for Wireless Sensors Network Nodes. Proceedings of the 5th International Symposium on Modelling and Optimization in Mobile, Ad Hoc and Wireless Networks (WiOpt 2007), pp. 1-7, Limassol (Cyprus), April 2007. [61] P. Levis, D. Culler. Maté: A Tiny Virtual Machine for Sensor Networks. ACM SIGOPS Operating Systems Review, vol. 36, no. 5, pp. 85-95, December 2002. [62] A. Liu, P. Ning. TinyECC: A Configurable Library for Elliptic Curve Cryptography in Wireless Sensor Networks. Technical Report TR-2007-36, North Carolina State University, Department of Computer Science, November 2007. [63] J. Newsome, E. Shi, D. Song, A Perrig. The Sybil Attack in Sensor Networks: Analysis & Defenses. Proceedings of the IEEE 3nd International Workshop on Information Processing in Sensor Networks (IPSN’04), pp. 259-268, Berkeley (USA), April 2004. [64] C. Ozturk, Y. Zhang, W. Trappe, M. Ott. Source-location privacy for networks of energy-constrained sensors. Proceedings of 2nd IEEE Workshop on Software Technologies for Future Embedded and Ubiquitous Systems (WSTFEUS’04), pp. 68-72, Vienna (Austria), May 2004. 190 [65] A. Perrig, R. Szewczyk, V. Wen, D. Cullar, J. D. Tygar. SPINS: Security protocols for sensor networks. Proceedings of 7th International Conference on Mobile Computing and Networking (MOBICOM’01), pp. 521-534, Rome (Italy), July 2001. [66] B. Przydatek, D. Song, A. Perrig. SIA: Secure information aggregation in sensor networks. Proceedings of 1st International Conference on Embedded Networked Sensor Systems (SenSys’03), pp. 255-265, Los Angeles (USA), November 2003. [67] R. Bace. Intrusion Detection. New Riders, 2000. ISBN 1-57870-185-6. [68] N. Sastry, D. Wagner. Security considerations for IEEE 802.15.4 networks. Proceedings of 2004 ACM Workshop on Wireless security (Wise’04), pp. 32-42, Philadelphia (USA), October 2004. [69] A. Seshadri, A. Perrig, L. van Doorn, P. Khosla. SWATT: SoftWare-based ATTestation for Embedded Devices. Proceedings of the 2004 IEEE Symposium on Security and Privacy, pp. 272-282, Oakland (USA), May 2004. [70] M. Shaneck, K. Mahadevan, V. Kher, Y. Kim. Remote Software-Based Attestation for Wireless Sensors. Proceedings of the 2nd European Workshop on Security in Ad-hoc and Sensor Networks (ESAS 2005), pp. 27-41, Visegrad (Hungary), July 2005. [71] B. Sundararaman, U. Buy, A. D. Kshemkalyani. Clock synchronization for wireless sensor networks: a survey. Ad-Hoc Networks, vol. 3, no. 3, pp. 281-323, Elsevier, May 2005. [72] D. Wagner. Resilient aggregation in sensor networks. Proceedings of 2nd ACM workshop on Security of Ad Hoc and Sensor Networks (SASN’04), pp. 78-87, Washington DC (USA), October 2004. [73] H. Wang, B. Sheng, C. C. Tan, Q. Li. WM-ECC: an Elliptic Curve Cryptography Suite on Sensor Motes. Technical Report WMCS-2007-11, College of William & Mary, October 2007. [74] Y. W. Law, J. Doumen, P. Hartel. Survey and Benchmark of Block Ciphers for Wireless Sensor Networks. ACM Transactions on Sensor Networks, vol. 2, no. 1, pp 65-93, February 2006. 191 [75] B.-Y. Yang, C.-M. Cheng, B.-R. Chen, J.-M. Chen. Implementing Minimized Multivariate Public-Key Cryptosystems on Low-Resource Embedded Systems. Proceedings of the 3rd International Conference on Security in Pervasive Computing (SPC 2006), York (UK), April 2006. [76] F. Ye, H. Luo, S. Lu, L. Zhang. Statistical en-route filtering of injected false data in sensor networks. IEEE Journal on Selected Areas in Communications, vol. 23, no. 4, pp. 839-850, April 2005. [77] J. Flora. Tiny15Four, An IEEE 802.15.4 implementation in TinyOS. Master Thesis, Department of Computer Science, University of Copenhagen, Denmark, 2007. [78] P. Levis, S. Madden, J. Polastre, R. Szewczyk, K. Whitehouse, A. Woo, D. Gay, J. Hill, M. Welsh, E. Brewer, D. Culler. TinyOS: An Operating System for Sensor Networks. On Ambient Intelligence, Springer-Verlag, ISBN 978-3-54023867-6, 2005. [79] A. Dunkels, B. Gronvall, T. Voigt. Contiki - a lightweight and flexible operating system for tiny networked sensors. Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks, pp. 455-462, Tampa (USA), November 2004. [80] C.-C. Han, R. Kumar, R. Shea, E. Kohler, M. Srivastava. SOS - A Dynamic operating system for Sensor Networks. Proceedings of the 3rd International Conference on Mobile Systems, Applications, and Services (Mobisys 2005), Seattle (Washington), 2005. [81] F. Olusola. The Evaluation of TinyOS with Wireless Sensor Node Operative Systems. Halmstad University, Technical Report IDE0711, January 2007. [82] ECRYPT Network of Excellence. eSTREAM, the ECRYPT Stream Cipher Project. http://www.ecrypt.eu.org/stream/ [83] NIST. Plan for New Cryptographic Hash Functions. http://www.nist.gov/hash-function [84] Arduino developer team. Open hardware: Arduino Mini node. http://www.arduino.cc/ [85] Crossbow Technology, Inc. http://www.xbow.com/ 192 [86] Art of Technology AG. http://www.btnode.ethz.ch [87] Sentilla Corporation. TMote Sky Datasheet. http://www.sentilla.com/pdf/eol/tmote-sky-datasheet.pdf [88] Particle Computer GmbH. http://www.particle-computer.de [89] Scatterweb GmbH. MSB Datasheet. http://www.scatterweb.com/downloads/MSB-datasheet-doc1.0-en.pdf [90] Sun Microsystems, Inc. Sun Small Programmable Object Technology. http://www.sunspotworld.com/products/ [91] C. Karlof, N. Sastry, D. Wagner. TinySec: a link layer security architecture for wireless sensor networks. Proceedings of 2nd International Conference on Embedded Networked Sensor Systems (SenSys 2004), pp. 162-175, Baltimore (USA), November 2004. [92] K. Sun, P. Ning, C. Wang, A. Liu, Y. Zhou. TinySeRSync: Secure and Resilient Time Synchronization in Wireless Sensor Networks. Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS’06), pp. 264-277, Alexandria (USA), November 2006. [93] K.Aoki and H. Lipmaa. Fast implementations of the AES candidates. Proceedings of 3rd AES conference, New York (USA), pp. 106-120, April 2000. [94] J. Wolkerstorfer. Scaling ECC Hardware to a Minimum. In ECRYPT workshop - Cryptographic Advances in Secure Hardware - CRASH 2005. Leuven (Belgium), September 2005. Invited Talk. [95] S. Kumar, C. Paar. Are standards compliant elliptic curve cryptosystems feasible on RFID?. Proceedings of Workshop on RFID Security, Graz (Austria), July 2006. [96] B. Schneier. Applied Cryptography, 2nd edition. Wiley, ISBN 0-471-12845-7, 1996. [97] S. Fluhrer, I. Mantin, A. Shamir. Weaknesses in the Key Scheduling Algorithm of RC4. proceedings of the 8th Annual Workshop on Selected Areas in Cryptography (SAC 2001), pp. 1-24,Toronto (Canada), August 2001. 193 [98] J. Daemen, V. Rijmen. The Design of Rijndael. Springer, ISBN 3-540-42580-2, 2002. [99] NIST-CSRC. SKIPJACK and KEA Algorithm Specifications, version 2, May 1998. http://csrc.nist.gov/CryptoToolkit/ [100] I. Blake, G. Seroussi, N. P. Smart. Elliptic Curves in Cryptography. Cambridge University Press, ISBN 0-521-65374-6, 2000. [101] N. Gura, A. Patel, A. Wander. Comparing elliptic curve cryptography and RSA on 8-bit CPUs. Proceedings of the 2004 Workshop on Cryptographic Hardware and Embedded Systems (CHES 2004), pp. 119-132, Cambridge (USA), August 2004. [102] D. J. Malan, M. Welsh, M. D. Smith. A Public-key Infrastructure for Key Distribution in TinyOS Based on Elliptic Curve Cryptography. Proceedings of 1st IEEE Communications Society Conference on Sensor and Ad Hoc Communications and Networks (SECON 2004), pp. 71-80, Santa Clara (USA), October 2004. [103] C. Wolf, B. Preneel. Taxonomy of Public Key Schemes Based on the Problem of Multivariate Quadratic Equations. Cryptology ePrint Archive, Report 2005/077. [104] Junko Nakajima, Mitsuru Matsui. Performance Analysis and Parallel Implementation of Dedicated Hash Functions. Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques: Advances in Cryptology (Eurocrypt 2002), pp. 165-180, Amsterdam (Holland), April-May 2002. [105] J. Hoffstein, J. Pipher, J. H. Silverman. NTRU: a Ring based Public Key Cryptosystem. Proceedings of the 3rd Algorithmic Number Theory Symposium (ANTS 1998), Portland (USA), June 1998. [106] M. O. Rabin. Digitalized Signatures and Public Key Functions as Intractable as Factorization. Technical Report MIT/LCS/TR-212, Massachusetts Institute of Technology (1979). [107] R. L. Rivest. The RC5 Encryption Algorithm. Proceedings of the 2nd International Workshop on Fast Software Encryption (FSE 1994), pp. 86-96, Leuven (Belgium), December 1994. 194 [108] R. L. Rivest, M. J. B. Robshaw, R. Sidney, Y. L. Yin. The RC6 Block Cipher, v1.1. August 1998, http://theory.lcs.mit.edu/~rivest/ [109] X. Wang, Y. Lisa Yin, H. Yu. Finding Collisions in the Full SHA-1. Proceedings of the 25th Annual International Cryptology Conference (CRYPTO 2005), pp. 17-36, California (USA), August 2005. [110] M. Cochran. Notes on the Wang et al. 263 SHA-1 Differential Path. Cryptology ePrint Archive: Report 2007/474. [111] H. Dobbertin, A. Bosselaers, B. Preneel. RIPEMD-160, a strengthened version of RIPEMD. Proceedings of the 3rd International Workshop on Fast Software Encryption (FSE 1996), pp. 71-82, Cambridge (UK), February 1996. [112] R. Rivest, A. Shamir, L. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, vol. 21, no. 2, pp. 120-126, 1978. [113] SECG - Standards for Efficient Cryptography Group. http://www.secg.org/ [114] X. Wang, A. Yao, F. Yao. New Collision search for SHA-1. Rump Session of the 25th Annual International Cryptology Conference (CRYPTO 2005), Santa Barbara (USA), August 2005. [115] B. Schneier, J. Kelsey, D. Whiting, D. Wagner, C. Hall, N. Ferguson. The Twofish Encryption Algorithm: A 128-Bit Block Cipher. Wiley, ISBN 0-47135381-7, 1999. [116] G. Meiser. Efficient Implementation of Stream Ciphers on Embedded Processors. Master Thesis, Ruhr-University Bochum (Germany), May 2007. [117] A. Camtepe, B. Yener. Key distribution mechanisms for wireless sensor networks: a survey. Rensselaer Polytechnic Institute, Computer Science Department, Tech. Rep. 05-07, March 2005. [118] V. Gupta, M. Wurm, Y. Zhu, M. Millard, S. Fung, N. Gura, H. Eberle, S. Chang Shantz. Sizzle: A Standards-based end-to-end Security Architecture for the Embedded Internet. Pervasive and Mobile Computing Journal (special issue on selected papers from PerCom 2005), vol. 1, no. 4, pp. 425-445, December 2005. 195 [119] R.J. Anderson, H. Chan, A. Perrig. Key Infection: Smart Trust for Smart Dust. Proceedings of the 12th IEEE International Conference on Network Protocols (ICNP 2004), pp 206-215, Berlin (Germany), October 2004. [120] S. A. Camtepe, B. Yener. Combinatorial Design of Key Distribution Mechanisms for Wireless Sensor Networks. IEEE/ACM Transactions on Networking, vol. 15, no. 2, pp. 346-358, April 2007. [121] H. Chan, A. Perrig, D. Song. Random Key Predistribution Schemes for Sensor Networks. Proceedings of the 2003 IEEE Symposium on Security and Privacy, pp. 197-213, May 2003. [122] L. Eschenauer, V.D. Gligor. A key-management scheme for distributed sensor networks. Proceedings of the 9th ACM conference on Computer and communications security (CCS ’02), pp 41-47, Washington (USA), November 2002. [123] B. Charles Lai, D.D. Hwang, S. Pete Kim, I. Verbauwhede. Reducing Radio Energy Consumption of Key Management Protocols for Wireless Sensor Networks. Proceedings of the ACM/IEEE International Symposium on Low Power Electronics and Design (ISLPED 2004), pp. 351-356, Newport (USA), August 2004. [124] D.D. Hwang, B. Charles Lai, I. Verbauwhede. Energy-Memory-Security Tradeoffs in Distributed Sensor Networks. Proceedings of the 3rd International Conference on Ad-hoc Networks and Wireless (ADHOC-NOW 2004), pp. 70-81, Vancouver (Canada), July 2004. [125] R.D. Pietro, L.V. Mancini, A. Mei. Random key-assignment for secure Wireless Sensor Networks. Proceedings of the 1st ACM workshop on Security of ad hoc and sensor networks (SASN ’03), pp 62-71, Fairfax (USA), October 2003, . [126] W. Du, J. Deng, Y. S. Han, P. Varshney, J. Katz, A. Khalili. A Pairwise Key Pre-distribution Scheme for Wireless Sensor Networks. ACM Transactions on Information and System Security (TISSEC), vol. 8, no. 2, pp 228-258, May 2005. [127] B. Dutertre, S. Cheung, J. Levy. Lightweight Key Management in Wireless Sensor Networks by Leveraging Initial Trust. Technical Report SRI-SDL-04-02, System Design Laboratory, SRI International, April 2004. [128] W. Du, J. Deng, Y. S. Han, P. Varshney. A Key Predistribution Scheme for Sensor Networks Using Deployment Knowledge. IEEE Transactions on Dependable and Secure Computing, Vol. 3, No. 2, pp 62-77, January-March 2006. 196 [129] J. Hwang, Y. Kim. Revisiting Random Key Pre-distribution Schemes for Wireless Sensor Networks. Proceedings of the 2nd ACM workshop on Security of Ad Hoc and Sensor Networks (SASN ’04), pp 43-52, Washington (USA), October 2004. [130] J. Lee, D.R. Stinson. Deterministic Key Predistribution Schemes for Distributed Networks. 11th International Workshop on Selected Areas in Cryptography (SAC 2004). Canada, August 2004. Revised Selected Papers published in Lecture Notes in Computer Science 3357 (2005), pp 294-307. [131] D. Liu, P. Ning. Improving Key Pre-Distribution with Deployment Knowledge in Static Sensor Networks. ACM Transactions on Sensor Networks (TOSN), vol. 1, no. 2, pp. 204-239, November 2005. [132] D. Liu, P. Ning, R. Li. Establishing Pairwise Keys in Distributed Sensor Networks. ACM Transactions on Information and System Security, vol. 8, no. 1, pp. 41-77, February 2005. [133] S. Zhu, S. Xu, S. Setia, S. Jajodia. Establishing Pairwise Keys for Secure Communication in Ad hoc Networks: A Probabilistic Approach. Proceedings of the 11th IEEE International Conference on Network Protocols (ICNP’03), pp. 326-335, Atlanta (USA), November 2003. [134] Y. H. Kim, M. H. Kim, D. H. Lee, C. Kim. A Key Management Scheme for Commodity Sensor Networks. Proceedings of the 4th International Conference on Ad-Hoc, Mobile, and Wireless Networks (ADHOC-NOW’05), pp 113-126, Cancun (Mexico), October 2005. [135] Z. Yu, Y. Guan. A key pre-distribution scheme using deployment knowledge for wireless sensor networks. Proceedings of the 4th International Symposium on Information Processing in Sensor Networks (IPSN’05), pp. 261-268, Los Angeles (USA), April 2005. [136] Y. Zhou, Y. Zhang, Y. Fang. LLK: a link-layer key establishment scheme for wireless sensor networks. Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC’05), pp. 1921-1926 (vol. 4), New Orleans (USA), March 2005. [137] M. Mehta, D. Huang, L. Harn. RINK-RKP: A Scheme for Key Predistribution and Shared-Key Discovery in Sensor Networks. Proceedings of the 24th IEEE International Performance Computing and Communications Conference (IPCCC’05), pp. 193-197, Phoenix (USA), April 2005. 197 [138] H. Chan, A. Perrig. PIKE: Peer Intermediaries for Key Establishment in Sensor Networks. Proceedings of the 24th Conference of the IEEE Communications Society (Infocom’05), pp. 524-535 (vol. 1), Miami (USA), March 2005. [139] T. Ito, H. Ohta, N. Matsuda, T. Yoneda. A key pre-distribution scheme for secure sensor networks using probability density function of node deployment. Proceedings of the 3rd ACM workshop on Security of ad hoc and sensor networks (SASN’05), pp. 69-75, November 2005. [140] S. Zhu, S. Setia, S. Jajodia. LEAP: Efficient Security Mechanisms for LargeScale Distributed Sensor Networks. Proceedings of the ACM Conference on Computer and Communications Security (CCS ’03), pp. 62-72, Washington (USA), October 2003. [141] X. Huang, M. Yang. Secure Key Management Protocol for Wireless Sensor Network Based on Dynamic Cluster. Proceedings of the 49th Annual IEEE GLOBECOM 2006, pp. 1-6, San Francisco (USA), Nov.-Dec. 2006. [142] B. Panja, S. Madria, B. Bhargava. Energy and Communication Efficient Group Key Management Protocol for Hierarchical Sensor Networks. Proceedings of the IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (SUTC’06), pp. 384-393, Taichung (Taiwan), June 2006. [143] Public-Key Infrastructure (X.509) (pkix) Charter. http://www.ietf.org/html.charters/pkix-charter.html [144] R. Housley, W. Polk, W. Ford, D. Solo. RFC 3280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, Request for Comments, April 2002. [145] I. Akyildiz, D. Pompili and T. Melodia. Underwater acoustic sensor networks: Research challenges. Ad Hoc Networks Jounal (Elsevier), vol. 3, no. 3, pp. 257279, May 2005. [146] Atmega128L Datasheet. http://www.atmel.com/dyn/resources/prod_documents/2467S.pdf. [147] R. Brent. Some integer factorization algorithms using elliptic curves. Australian Computer Science Communications (8), pp. 149-163, 1986. [148] B.B. Brumley. Efficient three-term simultaneous elliptic scalar multiplication with applications. Proceedings of the 11th Nordic Workshop on Secure IT Systems (NordSec ’06), pp. 105-116, Linköping (Sweden), October 2006. 198 [149] L. Chen, Z. Cheng, N.P. Smart. Identity-based key agreement protocols from pairings. Int. J. Inf. Sec., vol. 6, no. 4, pp. 213-241, 2007. [150] R. Dupont, A. Enge. Provably secure non-interactive key distribution based on pairings. Discrete Applied Mathematics, vol. 154, no. 2, pp. 270-276, 2006. [151] A. Menezes, D. Hankerson, S. Vanstone. Guide to Elliptic Curve Cryptography. Springer-Verlag, 2004. [152] M. Girault. Self-certified public keys. In EUROCRYPT, vol. 574, pp. 490-497, 1991. [153] S.D. Galbraith, K.G. Paterson, N.P. Smart. Pairings for cryptographers. Cryptology ePrint Archive, Report 2006/165, 2006. http://eprint.iacr.org/. [154] IEEE P802.15 Working Group for Wireless Personal Area Networks. Mandatory ECC Security Algorithm Suite. http://ieee802.org/15/index.html [155] LinkQuest Inc. Underwater acoustic modems. http://www.link-quest.com/, 2007. [156] D. H. Lehmer. Euclids algorithm for large numbers. Amer. Math. Monthly, vol. 45, no. 4, pp. 227-233, April 1938. [157] L. Law, A. Menezes, M. Qu, J. Solinas, S.A. Vanstone. An efficient protocol for authenticated key agreement. Des. Codes Cryptography, vol. 28, no. 2, pp. 119-134, 2003. [158] A. Menezes, M. Qu, S. Vanstone. Some new key agreement protocols providing mutual implicit authentication. Proceedings of the 2nd Workshop on Selected Areas in Cryptography (SAC 95), 1995. [159] A. Menezes, P. van Oorschot, S. Vanstone. Handbook of Applied Cryptography. Discrete Mathematics and its Applications. CRC Press, 1997. Available at http://www.cacr.math.uwaterloo.ca/hac/. [160] H. Petersen, P. Horster. Self-certified keysconcepts and applications. Proceedings of Communications and Multimedia Security’97, pp. 102-116, 1997. [161] M. Scott. Deterministic hashing to points on IBE-friendly elliptic curves, 2005. [162] A. Shamir. Identity-based cryptosystems and signature schemes. Proceedings of CRYPTO 84 on Advances in cryptology, pp. 47-53, Santa Barbara (California), 1985. 199 [163] R. Sakai, K. Ohgishi and M. Kasahara. Cryptosystems based on pairing over elliptic curve (in japanese). Proceedings of the 2001 Symposium on Cryptography and Information Security, Oiso (Japan), 2001. [164] P. Szczechowiak, L.B. Oliveira, M. Scott, M. Collier and R. Dahab. Nanoecc: Testing the limits of elliptic curve cryptography in sensor networks. Proceedings of the European conference on Wireless Sensor Networks (EWSN’08), pp. 305320, Bologna (Italy), January-February 2008. [165] Strauss. Addition chains of vectors. American Mathematical Monthly, vol. 71, no. 7, pp. 806-808, Aug.-Sept. 1964. [166] Accredited Standards Committee X9. American national standard x9.62-2005, public key cryptography for the financial services industry, the elliptic curve digital signature algorithm (ecdsa), 2005. [167] J. N. Al-Karaki, A. E. Kamal. Routing Techniques in Wireless Sensor Networks: A Survey. IEEE Wireless Communications, vol. 11, no. 6, pp. 6-28, December 2004. [168] K. Akkaya, M. Younis. A Survey on Routing Protocols for Wireless Sensor Networks. Ad Hoc Networks Journal (Elsevier), vol. 3, no. 3, pp. 325-349, May 2005. [169] E. Fasoloy, M. Rossiy, J. Widmer, M. Zorziy. In-network Aggregation Techniques for Wireless Sensor Networks: A Survey. IEEE Wireless Communications, vol. 14, no. 2, pp. 70-87, April 2007. [170] H. Luo, Y. Liu, S.K. Das. Routing Correlated Data in Wireless Sensor Networks: A Survey. IEEE Network, vol. 21, no. 6, pp. 40-47, Nov.-Dec. 2007. [171] R. Rajagopalan, P.K. Varshney Data Aggregation Techniques in Sensor Networks: A Survey. IEEE Communications Survey, vol. 8, no. 4, 4th quarter 2006. [172] B. Sundararaman, U. Buy, A.D. Kshemkalyani. Clock Synchronization for Wireless Sensor Networks: A Survey. Ad hoc Networks Journal (Elsevier), vol. 3, no. 3, pp. 281-323, May 2005. [173] Ya. R. Faizulkhakov. Time Synchronization Methods for Wireless Sensor Networks: A Survey. Programming and Computer Software (Pleiades), vol. 33, no. 4, pp. 214-226, 2007. 200 [174] C. Karlof, D. Wagner. Secure Routing in Wireless Sensor Networks: Attacks and Countermeasure. Ad-Hoc Networks, vol. 1, no. 2-3, pp. 293-315, Elsevier, September 2003. [175] G. Ács, L. Buttyán. Secure Routing in Wireless Sensor Networks. On Wireless Sensor Network Security, IOS Press. ISBN: 978-1-58603-813-7. [176] Y. Sang, H. Shen, Y. Inoguchi, Y. Tan, N. Xiong. Secure Data Aggregation in Wireless Sensor Networks: A Survey. Proceedings of the 7th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT 2006), pp. 315-320, Taipei (Taiwan), December 2006. [177] H. Alzaid, E. Foo, J.G. Nieto. Secure Data Aggregation in Wireless Sensor Network: a Survey. Proceedings of the Australasian Information Security Conference 2008: Conferences in Research and Practice in Information Technology (CRPIT). March 2008. [178] M. Manzo, T. Roosta, S. Sastry. Time Synchronization Attacks in Sensor Networks. Proceedings of the 3th ACM Workshop on Security of Ad Hoc and Sensor Networks (SASN 2005), pp. 107-116, Alexandria, (USA), November 2005. [179] A. Boukerche, D. Turgut. Secure time synchronization protocols for wireless sensor networks. IEEE Wireless Communications, vol. 14, no. 5, pp. 64-69, October 2007. [180] R.J. Goldberg, C. O’Donnell, J. Yarzebski, et al. Sex differences in symptom presentation associated with acute myocardial infarction: a population-based perspective. Am Heart Journal, vol. 136, no. 2, pp 189-195, 1998. [181] C. Hsin, M. Liu. A distributed monitoring mechanism for wireless sensor networks. Proceedings of the 3rd ACM workshop on Wireless Security (WiSe 2002), pp. 57-66, Atlanta (USA), September 2002. [182] S. Rost, H. Balakrishnan. Memento: A Health Monitoring System for Wireless Sensor Networks. Proceedings of the 3rd IEEE Conference on Sensor, Mesh, and Ad Hoc Communications and Networks (SECON 2006), pp. 575-584, Reston (USA), September 2006. [183] A. Patwardhan, J. Parker, A. Joshi, M. Iorga, T. Karygiannis. Secure Routing and Intrusion Detection in Ad Hoc Networks. Proceedings of the 3rd IEEE International Conference on Pervasive Computing and Communications (PerCom’05), pp. 191-199, Hawaii (USA), March 2005. 201 [184] I. Onat, A. Miri. An Intrusion Detection System for Wireless Sensor Networks. Proceedings of the IEEE International Conference on Wireless and Mobile Computing, Networking and Communicatons (WiMOB 2005), pp. 253-259, Montreal (Canada), August 2005. [185] P. Inverardi, L. Mostarda, A. Navarra. Distributed IDS for enhancing Security in Mobile Wireless Sensor Networks. Proceedings of the 20th International Conference on Advanced Information Networking and Applications (AINA 2006), pp. 116-120 (vol. 2), Vienna (Austria), April 2006. [186] W. Xu, W. Trappe, Y. Zhang, T. Wood. The Feasibility of Launching and Detecting Jamming Attacks in Wireless Networks. Proceedings of the 6th ACM international symposium on Mobile ad hoc networking and computing (MOBIHOC’06), pp. 46-57, Urbana-Champaign (USA), 2005. [187] C. C. Su, K. M. Chang, Y. H. Kuo, M. F. Horng. The New Intrusion Prevention and Detection Approaches for Clustering-based Sensor Networks. Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC 2005), pp. 1924-1932 (vol. 4), New Orleans (USA), March 2005. [188] C. Basile, M. Gupta, Z. Kalbarczyk, R. K. Iyer. An Approach for Detecting and Distinguishing Errors versus Attacks in Sensor Networks. Proceedings of the 2006 International Conference on Dependable Systems and Networks (DSN 2006), pp. 473-484, Philadelphia (USA), June 2006. [189] J. Pincus, B. Baker. Beyond Stack Smashing: Recent Advances in Exploiting Buffer Overruns. IEEE Security & Privacy, vol. 2, no. 4, July 2004. [190] J. Regehr, N. Cooprider, W. Archer, E. Eide. Efficient Type and Memory Safety for Tiny Embedded Systems. Proceedings of the 3rd Workshop on Programming Languages and Operating Systems (PLOS 2006), San Jose (USA), October 2006. [191] S. Kaplantzis, N. Mani. A Study on Classification Techniques for Network Intrusion Detection. Proceedings of the IASTED International Conference on Networks and Communication Systems (NCS 2006), Chiang Mai (Thailand), March 2006. [192] J. Beale. the Snort Development Team. Snort 2.1, Intrusion Detection, 2nd Edition. Syngress Publishing, May 2004. [193] F. Stajano, R. Anderson. The Resurrecting Duckling: security issues for ubiquitous computing. IEEE Computer, vol. 35, no. 4, April 2002. 202 [194] T. Anantvalee and J. Wu. A Survey on Intrusion Detection in Mobile Ad Hoc Networks. Wireless/Mobile Network Security. Y. Xiao, X. Shen, and D.Z. Du (eds.), Springer, December 2006. [195] F. Anjum, D. Subhadrabandhu, S. Sarkar, R. Shetty. On Optimal Placement of Intrusion Detection Modules in Sensor Networks. Proceedings of the 1st International Conference on Broadband Networks (BROADNETS 2004), pp. 690-699, San Jose (USA), October 2004. [196] S. Cheung, B. Dutertre, U. Lindqvist. Detecting Disruptive Routers in Wireless Sensor Networks. In Proceedings of the 5th International Conference on AD-HOC Networks & Wireless (ADHOC-NOW 2006), pp. 19-31, Ottawa (Canada), August 2006. [197] S. S. Doumit, D. P. Agrawal. Self-Organized Criticality & Stochastic Learning based Intrusion Detection System for Wireless Sensor Networks. In Proceedings of the IEEE Military Communications Conference (MILCOM 2003), Cincinatti (USA), October 2003. [198] W. Du, L. Fang, P. Ning. LAD: Localization Anomaly Detection for Wireless Sensor Networks. Journal of Parallel and Distributed Computing (JPDC), vol. 66, no. 7, pp 874-886, July 2006. [199] I. Khalil, S. Bagchi, C. Nina-Rotaru. DICAS: Detection, Diagnosis, and Isolation of Control Attacks in Sensor Networks. Proceedings of the 1st International Conference on Security and Privacy for Emerging Areas in Communication Networks (SecureComm 2005), pp. 89-100, Athens (Greece), September 2005. [200] A.P.R. da Silva, M.H.T. Martins, B.P.S. Rocha, A.A.F. Loureiro, L.B. Ruiz, H.C. Wong. Decentralized Intrusion Detection in Wireless Sensor Networks. Proceedings of the 1st ACM International Workshop on Quality of Service & Security in Wireless and Mobile Networks (Q2SWinet 2005), pp. 16-23, Montreal (Canada), October 2005. [201] Q. Zhang, T. Yu, P. Ning. A Framework for Identifying Compromised Nodes in Sensor Networks. Proceedings of the 2nd International Conference on Security and Privacy in Communication Networks (SECURECOMM’06), pp. 1-10, Baltimore (USA), Aug.-Sept. 2006. [202] Y. Zhang and W. Lee. Intrusion Detection Techniques for Mobile Wireless Networks. ACM/Kluwer Wireless Networks Journal, vol. 9, no. 5, pp. 545-556, September 2003. 203 [203] B. Bloom. Space/Time Trade-offs in Hash Coding with Allowable Errors. Communications of the ACM, vol. 13, no. 7, pp. 422-426, July 1970. [204] A. Abdul-Rahman, S. Hailes. Supporting Trust in Virtual Communities. Proceedings of the 33rd Hawaii International Conference on System Sciences, pp. 9, Hawaii (USA), January 2000. [205] M. Blaze, J. Feigenbaum, J. Lacy. Decentralized Trust Management. Proceedings of the 1996 IEEE Symposium on Security and Privacy, p. 164, 1996. [206] M. Blaze, J. Feigenbaum, A. D. Keromytis. KeyNote: Trust Management for Public-Key Infrastructures (position paper). Proceedings of the 6th International Workshop on Security Protocols, p. 625, Cambridge (UK), April 1998. [207] S. Ruohomaa, L. Kutvonen. Trust Management Survey. Proceedings of the 3rd International Conference on Trust Management (iTrust’05), pp. 77-92, Paris (France), May 2005. [208] H. Chen, H. Wu, X. Zhou, C. Gao. Reputation-based Trust in Wireless Sensor Networks. Proceedings of the 2007 International Conference on Multimedia and Ubiquitous Engineering (MUE’07), pp. 603-607, Seoul (Korea), April 2007. [209] Y.-H. Chu, J. Feigenbaum, B. LaMacchia, P. Resnick, M. Strauss. REFEREE: Trust Management for Web Applications. Computer Networks and ISDN Systems, vol. 29, pp. 953-964, 1997. [210] G. V. Crosby, N. Pissinou, J. Gadze. A Framework for Trust-based Cluster Head Election in Wireless Sensor Networks. Proceedings of the Second IEEE Workshop on Dependability in Sensor Networks and Systems (DSSNS’06), 2006. [211] M. Krasniewski, P. Varadharajan, B. Rabeler, S. Bagchi, Y. Charlie Hu. Tibfit: Trust index based fault tolerance for arbitrary data faults in sensor networks. Proceedings of the International Conference on Dependable Systems and Networks (DSN’05), pp. 672-681, Los Alamitos (USA), 2005. [212] A. Jøsang, R. Ismail. The beta reputation system. Proceedings of the 15th Bled Electronic Commerce Conference e-Reality: Constructing the e-Economy, Bled (Slovenia), June 2002. [213] A. Jøsang, R. Ismail, C. Boyd. A Survey of Trust and Reputation Systems for Online Service Provision. Decision Support Systems, vol. 43, no. 2, 2006. 204 [214] S. D. Kamwar, M. T. Schlosser, H. Garcia-Molina. The eigentrust algorithm for reputation management in p2p networks. Proceedings of the 12th International Conference on World Wide Web (WWW’03), pp. 640-651, Budapest (Hungary), 2003. [215] A. Lawen. Apoptosis - An Introduction. BioEssays, vol. 25, no. 9, pp 888-896, 2003. [216] Z. Liu, A. W. Joy, and R. A. Thompson. A Dynamic Trust Model for Mobile Adhoc Networks. Proceedings of the 10th IEEE International Workshop on Future Trends of Distributed Computing Systems, pp. 80-85, Suzhou (China), May 2004. [217] J. Lopez. Unleashing public-key cryptography in wireless sensor networks. Journal of Computer Security, vol. 14, no. 5, pp. 469-482, 2006. [218] Y. Rebahi, V. E. Mujica-V, D. Sisalem. A Reputation-Based Trust Mechanism for Ad-hoc Networks. Proceedings of the 10th IEEE Symposium on Computers and Communications (ISCC 2005), pp. 37-42, La Manga del Mar Menor (Spain), June 2005. [219] H. Zhu, F. Bao, K. Kim. Computing of Trust in Wireless Networks. Proceedings of the 60th IEEE Vehicular Technology Conference, pp. 2621-2624 (vol. 4), Los Angeles (California), September 2004. [220] J. Sabater, C. Sierra. REGRET: A Reputation Model for Gregarious Societies. Proceedings of the 4th Workshop on Deception Fraud and Trust in Agent Societies, ACM Press, 2001. [221] R. A. Shaik, H. Jameel, S. Lee, S. Rajput, Y.J. Song. Trust Management Problem in Distributed Wireless Sensor Networks. Proceedings of the 12th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’06), pp. 411-414, Sydney (Australia), 2006. [222] R. Sherwood, L. Seungjoon, B. Bhattacharjee. Cooperative peer groups in nice. Computer Networks, vol. 50, no. 4, pp. 523-544, 2006. [223] A. Srinivasan, J. Teitelbaum, H. Liang, J. Wu, and M. Cardei. Reputation and Trust-based Systems for Ad Hoc and Sensor Networks. In A. Boukerche, editor, On Trust Establishment in Mobile Ad-Hoc Networks. Wiley & Sons, 2007. [224] S. Tanachaiwiwat, P. Dave, R. Bhindwale, and A. Helmy. Location-centric Isolation of Misbehavior and Trust Routing in Energy-Constrained Sensor Networks. 205 Proceedings of the IEEE Conference on Performance, Computing and Communications (IPCCC’04), pp. 463-469, Phoenix (USA), April 2004. [225] Z. Yan, P. Zhang, and T. Virtanen. Trust Evaluation Based Security Solutions in Ad-hoc Networks. Proceedings of the Seventh Nordic Workshop on Security IT Systems (NordSec’03), 2003. [226] G. Zacharia and P. Maes. Trust management through reputation mechanisms. Applied Artificial Intelligence, vol. 14, no. 9, pp. 881-907, 2000. [227] W. Zhang, S. Das, and Y. Liu. A Trust Based Framework for Secure Data Aggregation in Wireless Sensor Networks. Proceedings of the IEEE SECON 2006, pp. 60-69, Reston (USA), September 2006. [228] Z.Yao, D. Kim, I. Lee, K. Kim, and J. Jang. A Security Framework with Trust Management for Sensor Networks. Proceedings of the Workshop of the 1st International Conference on Security and Privacy for Emerging Areas in Communication Networks (SECURECOMM’05), pp. 190-198, Athens (Greece), 2005. [229] T. Braun, T. Voigt, A. Dunkels. TCP support for sensor networks. Proceedings of the Fourth Annual Conference on Wireless on Demand Network Systems and Services (WONS 2007), pp. 162-169, Obergurgl (Austria), January 2007. [230] R. Dickerson, J. Lu, J. Lu, K. Whitehouse. Stream Feeds: an Abstraction for the World Wide Sensor Web. Proceedings of the Conference on the Internet of Things (IOT 2008), pp. 360-375, Zurich (Switzerland), March 2008. [231] T. Dierks, E. Rescorla. RFC 4346: The Transport Layer Security (TLS) Protocol Version 1.1, Request for Comments, April 2006. [232] M. Domingues, C. Friaças, and P. Veiga. Is global IPv6 deployment on track?, Internet Research, vol. 17, no. 5, pp. 505-518, 2007. [233] P. Eronen, H. Tschofenig. RFC 4279: Pre-Shared Key Ciphersuites for Transport Layer Security (TLS), Request for Comments, December 2005. [234] ISA. ISA100.11a, Release 1. Available at: http://www.isa.org/isa100/ [235] G. Kambourakis, E. Klaoudatou, S. Gritzalis. Securing Medical Sensor Environments: The CodeBlue Framework Case. Proceedings of the Second International Conference on Availability, Reliability and Security (ARES 2007), pp. 637-643, Vienna (Austria), April 2007. 206 [236] A. Kansal, S. Nath, J. Liu, F. Zhao. SenseWeb: An Infrastructure for Shared Sensing, IEEE Multimedia, vol. 14, no. 4, pp. 8-13, 2007. [237] M.R. Kosanovic, M.K. Stojcev. Implementation of TCP/IP Protocols in Wireless Sensor Networks. Proceedings of the XLII International Scientific Conference on Information, Communication and Energy Systems and Technologies, (ICEST 2007), pp. 143-146, Ohrid (Macedonia), 2007. [238] N. Kushalnagar, G. Montenegro, C. Schumacher. RFC 4919: IPv6 over LowPower Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals. Request for Comments, August 2007. [239] T. Luckenbach, P. Gober, S. Arbanowski, A. Kotsopoulos, K. Kim. TinyREST - a Protocol for Integrating Sensor Networks into the Internet. Proceedings of the First Workshop on Real-World Wireless Sensor Networks (REALWSN 2005), Stockholm, Sweden. [240] G. Montenegro, N. Kushalnagar, J. Hui, D. Culler. RFC 4944: Transmission of IPv6 Packets over IEEE 802.15.4 Networks. Request for Comments, September 2007. [241] C. Neuman, T. Yu, S. Hartman, K. Raeburn. RFC 4129: The Kerberos Network Authentication Service (V5). Request for Comments, July 2005. [242] OASIS Web Services Secure Exchange TC (2007). OASIS Standard: WSSecureConversation 1.3. Available at: http://www.oasis-open.org/committees/ws-sx/ [243] G. Privat (2006). From Smart Devices to Ambient Communication. Workshop ’From RFID to the Internet of Things’, Brussels, Belgium. Available at: http://cordis.europa.eu/ist/audiovisual/neweve/e/conf6-70306/conf6-70306.htm [244] B. Priyantha, A. Kansal, M. Goraczko, F. Zhao. Tiny Web Services for Sensor Device Interoperability. Proceedings of the ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN 2008), St. Louis, USA. [245] Sensinode Ltd. (2008). Nanostack, a 6lowpan implementation. Available at: http://www.sensinode.com [246] M. Welsh. Extending the Internet Architecture to Sensor Networks: Some Open Questions. Microsoft Research Sensor Networks Workshop 2005. Available at: http://www.eecs.harvard.edu/~mdw/ 207 [247] R. Roman, J. Lopez. Integrating Wireless Sensor Networks and the Internet: A Security Analysis. Internet Research. Submitted for evaluation. [248] R. Roman, J. Lopez, S. Gritzalis. Situation Awareness Mechanisms for Wireless Sensor Networks. IEEE Communications Magazine. Vol. 46, no. 4 (2008), pp 102107. [249] R. Roman, C. Alcaraz, J. Lopez. A Survey of Cryptographic Primitives and Implementations for Hardware-Constrained Sensor Network Nodes. Mobile, Networks and Applications (MONET) Journal, Springer. Vol. 12, no 4 (2007), pp 231-244. [250] D. Galindo, R. Roman, J. Lopez. An Evaluation of the Energy Cost of Authenticated Key Agreement in Wireless Sensor Networks. Proceedings of the X Spanish Meeting on Cryptology and Information Security (RECSI’08), Salamanca, Spain. [251] R. Roman, C. Alcaraz, N. Sklavos. On the Hardware Implementation Efficiency of Cryptographic Primitives. On Wireless Sensor Network Security, IOS Press. ISBN: 978-1-58603-813-7. [252] R. Roman, M.C. Fernandez-Gago, J. Lopez, H.H. Chen. Trust and Reputation Systems for Wireless Sensor Networks. On Security and Privacy in Mobile and Wireless Networking, Troubador Publishing Ltd. ISBN: 978-1905886-906. [253] R. Roman, M.C. Fernandez-Gago, J. Lopez. Featuring Trust and Reputation Management Systems for Constrained Hardware Devices. Proceedings of the 1st International Conference on Autonomic Computing and Communication Systems (Autonomics 2007), Rome (Italy), October 2007. [254] M.C. Fernandez-Gago, R. Roman, J. Lopez. A Survey on the Applicability of Trust Management Systems for Wireless Sensor Networks. Proceedings of the 3rd International Workshop on Security, Privacy and Trust in Pervasive and Ubiquitous Computing (SecPerU 2007), pp. 25-30, Istanbul (Turkey), July 2007. [255] R. Roman, C. Alcaraz. Applicability of Public Key Infrastructures in Wireless Sensor Networks. Proceedings of the 2007 European PKI Workshop: Theory and Practice (EuroPKI’07), pp. 313-320, Mallorca (Spain), June 2007. [256] C. Alcaraz, R. Roman. Applying Key Infrastructures for Sensor Networks in CIP/CIIP Scenarios. Proceedings of the 1st International Workshop on Critical Information Infrastructures Security (CRITIS 2006), pp. 166-178, Samos (Greece), August-September 2006. 208 [257] J. Lopez, J.A. Montenegro, R. Roman. Service-Oriented Security Architecture for CII based on Sensor Networks. 2nd International Workshop on Security, Privacy and Trust in Pervasive and Ubiquitous Computing (SecPerU 2006), pp. 1-6, Lyon (France), June 2006. [258] R. Roman, J. Zhou, J. Lopez. Applying Intrusion Detection Systems to Wireless Sensor Networks. Proceedings of the 3rd IEEE Consumer Communications and Networking Conference (CCNC 2006), pp. 640-644, Las Vegas (USA), January 2006. [259] R. Roman, J. Zhou, J. Lopez. On the Security of Wireless Sensor Networks. Proceedings of 2005 ICCSA Workshop on Internet Communications Security, pp 681-690, LNCS 3482, Singapur, May 2005. [260] D. Garrido-Marquez, P. Plaza-Tron, R. Roman, N. Sanz-Martin, J.L. SerranoMartin. Middleware seguro P2P para dispositivos de baja capacidad. Telecom I+D 2008, Submitted for evaluation. [261] C. Alcaraz, R. Roman. Análisis de Primitivas Criptográficas para Redes de Sensores. VI Jornadas de Ingenierı́a Telemática (JITEL’07), Malaga, Septiembre 2007. [262] R. Roman, J. Lopez, J. Zhou. Aplicación de Sistemas de Detección de Intrusiones en Redes de Sensores. Simposio sobre Computación Ubicua e Inteligencia Ambiental (UCAmI’05), pp 113-120, Granada, Septiembre 2005. [263] R. Roman, J. Lopez, J. Zhou. Análisis de seguridad en redes inalámbricas de sensores. V Jornadas de Ingenierı́a Telemática (JITEL’05), pp 335-342, Vigo, Septiembre 2005.