Pr. Lyes Pr Ken Chen

Pr Ahmed Khoukhi

Pr Pascal Mehaoua

Dr Ahmad Fadlallah Lorenz

Keywords: power WAN technologies [12], platforms, results, 5, 3 Mutual authentication scenario -Experimentation results, 5, 4 Experimentation VM feature

During my thesis, I really enjoyed working with Dr. Badis Hammi and I hope that we will continue to collaborate in the future. He

Résumé

L'interconnexion de ressources privées sur une infrastructure publique, la mobilité des utilisateurs et l'émergence des nouvelles technologies (réseaux véhiculaires, réseaux de capteurs, Internet des objets, etc) ont ajouté des nouvelles exigences en terme de sécurité du côté serveur et celui du client. L'Internet des objets ou IoT (Internet of Things) semble répondre à des usages bien accueillis par le grand public. On trouve ainsi les applications de l'IoT dans tous les domaines de la vie du quotidien. Les objets Internet sont ainsi prévus en très grand nombre et ceci à une très grande échelle.

La sécurité est l'élément majeur qui renforcera d'une manière certaine une acceptation encore plus grande des IoT par les citoyens et les entreprises. Par ailleurs, le déploiement à grande échelle des objets connectés, sera convoité par les attaques de tout bord. Les cyberattaques opérationnelles sur les réseaux traditionnels seront projetées vers l'internet des objets. La sécurité est ainsi critique dans ce contexte au vu les enjeux sous-jacents.

Objectifs et Contributions

Les objectifs de cette thèse sont de concevoir de nouvelles méthodes sécurisées pour assurer le service d'authentification des objets connectés. La motivation pour mener cette recherche est en fait le manque de solutions d'authentification adaptatives pour l'IoT dans le contexte des différentes normes, technologies, infrastructures et plateformes pour l'IoT, et les différentes faiblesses et problèmes ouverts identifiés dans la littérature étudiée, qui étaient abordées dans les différentes contributions de cette thèse. La première contribution s'appuie sur la cryptographie sur les courbes elliptiques (ECC) et les mots de passe à usage unique (OTP). Le mot de passe à usage unique est une méthode d'authentification dans laquelle un nouveau mot de passe est généré pour chaque session d'authentification et la réutilisation de ce mot de passe n'est pas possible. OTP est l'une des solutions les plus prometteuses pour l'authentification viii Contents dans l'IoT et en particulier dans de nombreux scénarios de ville intelligente tel que le contrôle à distance. Cependant, très peu de travaux ont adapté les schémas OTP à l'IoT [1] [2]. Les deuxième et troisième contributions sont basées sur des blockchains. Une blockchain est définie comme une base de données distribuée (registre) qui conserve un enregistrement permanent et infalsifiable des données transactionnelles. Une blockchain est complètement décentralisée en s'appuyant sur un réseau pair-àpair. Plus précisément, chaque noeud du réseau conserve une copie du registre pour éviter un seul point de défaillance. Toutes les copies sont mises à jour et validées simultanément [3]. Nous pensons que les blockchains représentent une technologie très prometteuse pour répondre aux exigences de sécurité dans le contexte de l'IoT, qui sont encore loin d'être résolues par les architectures centralisées classiques qui ont atteint leurs limites en terme d'évolutivité surtout lorsque des milliers ou des dizaines de milliers d'IoT les appareils sont connectés au même réseau.

Les contributions peuvent être résumées comme suit:

1. Concevoir, mettre en oeuvre et évaluer une nouvelle méthode d'authentification légère pour l'Internet des objets: l'approche proposée est une méthode d'authentification par mot de passe unique (OTP) basée sur la cryptographie à courbe elliptique (ECC) et un schéma d'établissement de clés pour l'IoT. Dans le schéma proposé, OTP n'est pas seulement utilisé pour l'authentification, mais également pour générer une clé à usage unique (OTK) qui sera utilisée dans différents services de sécurité tels que le chiffrement et l'intégrité des données. Nous évaluons l'efficacité de notre approche avec une implémentation réelle et comparons ses performances à deux autres approches à savoir, Hash Message Authentication Code (HMAC-based) One Time Password (HOTP) [4] et mot de passe à usage unique basé sur le temps (TOTP) [5]. Les résultats de performance obtenus démontrent l'efficience et l'efficacité de notre approche en termes de sécurité et de performance.

2. Concevoir, implémenter et évaluer une solution d'authentification simple et légère basée sur la blockchain pour les systèmes IoT: Nous avons fourni une implémentation réelle de notre méthode proposée en nous appuyant sur la blockchain Ethereum et en utilisant différents appareils afin de confirmer sa faisabilité et d'évaluer ses performances. Les résultats obtenus confirment son adéquation à de tels environnements.

3. Proposer un mécanisme d'authentification décentralisé efficace et léger pour les appareils IoT pour résoudre les limites de l'utilisation des passerelles telles que la non-prise en charge de l'hétérogénéité des approches d'authentification, la non-mobilité des noeuds et la nécessité d'une intervention physique en phase d'initialisation. Le mécanisme proposé s'adapte à des techniques d'authentification hétérogènes afin de garantir une sécurité flexible et plus résiliente. L'approche est une solution de sécurité évolutive qui permet la mobilité des noeuds tout Contents ix en assurant leur authentification au niveau de la passerelle avec une intégration aisée de nouveaux appareils ainsi que de nouveaux services. Nous fournissons une véritable implémentation basée sur Java de notre approche. L'évaluation approfondie fournie montre clairement la capacité de notre système à répondre aux différentes exigences, avec un coût très léger.

Conclusion

La première contribution est une méthode d'authentification légère pour les objets IoT basée sur ECC et Isogenie offrant deux services de sécurité: l'authentification et la génération de clés. Notre méthode repose sur One Time Password (OTP), une solution très prometteuse pour l'IoT compte tenu de sa robustesse et de sa simplicité. Fondamentalement, la méthode OTP est utilisée pour garantir l'authentification sans avoir à utiliser un serveur tiers. La méthode n'utilise pas l'OTP uniquement pour l'authentification, mais également pour générer une clé à usage unique (OTK) dérivée d'OTP afin d'être utilisée par des algorithmes de chiffrement. Ainsi, notre méthode améliore la confidentialité des données en plus d'assurer l'authentification tout en étant plus efficace en terme de calcul que les solutions existantes. De plus, cette approche a l'originalité de ne pas s'appuyer sur un compteur ou un horodatage comme pour les approches de type OTP synchrones, ni sur une génération et une gestion de challenge côté serveur comme pour les solutions de type OTP asynchrones. De plus, une attention particulière a été accordée au compromis entre les performances et les ressources disponibles sur les appareils IoT. Des évaluations approfondies par le biais de la mise en oeuvre ont montré des résultats prometteurs faisant du nouveau système un bon candidat pour une méthode d'authentification légère pour les applications IoT.

La deuxième contribution et la troisième contribution de cette thèse sont basées sur la blockchain. Ce choix est basé sur les caractéristiques inhérentes à la blockchain (par exemple, l'évolutivité, la robustesse, la résilience) pour répondre aux exigences des solutions d'authentification ainsi qu'aux limites de certaines solutions existantes. La deuxième contribution est une méthode d'authentification légère, prenant en charge des scénarios d'authentification simples et mutuels, sans nécessiter un matériel spécifique, ce qui la rend applicable dans une multitude de cas d'utilisation de l'IoT. La méthode proposée a été évaluée à travers une implémentation réelle s'appuyant sur la blockchain Ethereum et utilisant différents dispositifs afin de confirmer sa faisabilité et d'évaluer ses performances initiales. Les résultats obtenus confirment son adéquation à de tels environnements. La troisième contribution a fourni l'authentification et l'autorisation pour les appareils IoT. Elle présente un avantage important d'être adaptatif en ce sens qu'elle s'adapte à des techniques d'authentification hétérogènes afin d'assurer une sécurité plus flexible et plus résiliente. La sécurité de la solution proposée a été évaluée

Context and motivation

Internet of Things (IoT) is actually a broad area of interest and research. It will change the way we live and work by making different aspects of life smart. According to IoT Analytics estimates [START_REF] Lasse | Iot 2019 in review: The 10 most relevant iot developments of the year[END_REF], there were roughly 9.5 billion connected IoT devices at the end of 2019. This number is significantly larger than the forecast of 8.3B devices. The three main drivers of such growth:

• An explosion of consumer (particularly Smart Home) devices • Much stronger than expected cellular IoT/M2M connections • Particularly strong device connectivity growth in China.

The number of total connected IoT devices is now expected to reach 28B by 2025 [START_REF] Lasse | Iot 2019 in review: The 10 most relevant iot developments of the year[END_REF]. IoT enables the interconnection of smart physical and virtual objects that are managed by various types of hardware, software, and communication technologies. The large-scale deployment of IoT is actually enabling smart cities, smart factories, smart health and many other applications and initiatives all over the world.

IoT introduces new opportunities such as the capability to monitor and manage devices remotely, analyze and take actions based on the information received from various real-time traffic data streams. Consequently, with the advent of smart cities concept [START_REF] Khatoun | Smart cities: concepts, architectures, research opportunities[END_REF], IoT products are changing habits and cities by enhancing infrastructures, creating more effective and cost-efficient municipal services, improving transportation services by decreasing road traffic congestion, improving citizens' safety and providing smart health services [START_REF] Hammi | Internet of Things (IoT) Technologies for Smart Cities[END_REF]. However, IoT technologies also open up multiple risks and privacy issues. Due to hardware limitations of IoT objects, implementing and deploying robust and efficient security and privacy solutions for the IoT environment remain a significant challenge.

In addition, there are vulnerabilities and bugs in IoT networks, services and protocols. This makes it possible to carry out attacks at all levels. Hence, many stakeholders are increasingly focusing on the security aspects in IoT. On the other hand, standards for IoT networks have been proposed and used. However, they are not mature yet. With thousands or tens of thousands of devices simultaneously communicating with both users and among themselves, the security implications are of high significance. In this context, Smart cities [START_REF] Khatoun | Smart cities: concepts, architectures, research opportunities[END_REF] are the ideal target for hackers to create IoT bot networks. An IoT botnet consists of devices compromised and used to perform different tasks without the knowledge of their legitimate users. In 2016, Dyn firm1 suffered from a denial of service attack caused by tens of thousands of connected objects (they were mostly connected cameras) to saturate its infrastructure [START_REF]Hacked cameras, dvrs powered today's massive internet outage[END_REF]. The attack resulted in Dyn's inability to provide the DNS service. Some of connected objects involved in the attack were infected by Mirai malware [START_REF] Biggs | Hackers release source code for a powerful DDoS app called Mirai[END_REF]. This tool exploits authentication vulnerabilities present in some connected objects such as the use of default passwords that are not been changed by users. This demonstrates how IoT networks are increasingly being used as an attack platform by malicious attackers, and proves that authentication of devices is a key success factor for the Internet of Things. In order to ensure security services (confidentiality, integrity and authentication) in IoT, the security has to be implemented at the different IoT layers: application layer, network layer (network capabilities and transport capabilities) and physical layer (or Perception layer). Each layer has its "own" protocols with their related security challenges. For instance, the following protocols (among many others) operate at the application layer:

• Message Queue Telemetry Transport (MQTT) [START_REF] Borgendale | Mqtt version 5.0[END_REF]: developed by IBM and standardized by Organization for the Advancement of Structured Information (OASIS) on 2016.

• Constrained Application Protocol (CoAP) [START_REF] Shelby | Constrained application protocol (coap). RFC 7252[END_REF] running over UDP

• Extensible Messaging and Presence Protocol (XMPP) [START_REF] Saint-Andre | Extensible Messaging and Presence Protocol (XMPP): Core[END_REF] running over TCP.

One of the biggest challenges of IoT is to support heterogeneity and to be secure at the same time, with some additional constraints/ requirements related to the limited resources of the IoT devices, the dynamic change of the topology, and the distributed structure of the IoT system(s). Such complex environment makes the IoT systems vulnerable to a large spectrum of threats such as: physical attacks, denial of service attacks, brute force attacks, virus infections, Man-In-The-Middle (MITM) attacks, use of fake certificates, etc. With the increasing and large-scale integration of IoT in many aspects of our lives (cars, appliances, thermostats, airplanes, etc.) and even in some critical infrastructures, IoT threats can become life-threatening.

Problem Statement

It is important to mention that security issues constitute major obstacles to the worldwide adoption and deployment of IoT. In other words, users will not fully adopt IoT as long as IoT devices make security and privacy risks. IoT remains highly vulnerable to attacks for multiple reasons such as:

• Most of the communications are wireless, which makes the system more vulnerable to numerous attacks such as identity spoofing, messages eavesdropping, messages tampering and other security issues.

• Multiple types of devices have limited resources in terms of energy, memory and processing capacity, which prevent them from implementing advanced security solutions [3].

• Device holders think that IoT data is not that important so that attackers would not be motivated to make attacks.

• IoT is not a collection of independent devices but it is a broad and complex ecosystem that includes devices, communications, interfaces and people.

• Manufacturers often ignore security in order to guarantee a low price for IoT devices.

IoT relies on the cooperation of nodes. Multiple scenarios require that only trusted users can use the offered services. Thus, conventional security requirements such as authentication, data integrity, and sometimes confidentiality are critical to IoT objects, networks, and applications. Despite the maturity of security solutions for traditional networked environment, the resource constraints and heterogeneity of IoT objects' resources make existing security solutions not fully adapted (even completely in-adapted in some cases) to the IoT ecosystem. Indeed, due to devices limits in energy and computational resources, IoT devices cannot adopt the most reliable authentication techniques such as Public Key Infrastructures (PKI), since the devices cannot handle certificates. Moreover, the majority of the existing techniques such as PKI are centralized, which cannot support IoT environments scalability. From the other hand, symmetric cryptography-based solutions are well suited for the IoT devices. However, these solutions also cannot handle the scalability of IoT environments [15][3][21].

This led to intensive research efforts to address the security requirements of IoT while considering the resource-constrained aspect of IoT objects. In particular, the authentication (and the subsequent authorization) have been at the center of interest. Such requirements are inherent in the nature of IoT system. Indeed, the idea behind IoT is the ubiquity of a variety of objects, where they are able to interact and cooperate with each other in order to provide a wide range of services. IoT includes a large number of heterogeneous networked objects. Each object should be reachable and produce content that can be retrieved by any authorized user regardless of his/her location. It is important that only authenticated and authorized users (objects or people) can access IoT objects. Otherwise, they will be prone to numerous security risks such as information and identity theft.

In a related topic, in most IoT systems and use cases, the architecture relies on a key element, the gateway, to ensure the majority of its activity. IoT gateways play a pivotal role in IoT deployments to collect and aggregate sensor data from various devices. An IoT gateway bridges the communication gap between IoT devices, sensors, equipment, systems and the cloud. IoT gateway devices offer local processing and storage solutions, as well as the ability to autonomously control devices based on data input by sensors. For example, Figure 1.1 describes three IoT use cases:

1. In a Wireless Sensor Network (WSN), all the sensors upload some requested data (e.g. temperature, water level, etc.) to a gateway (also called sink).

2. In a Wireless Body Area Network (WBAN), all the monitoring sensors and motion detectors send and upload their data to a gateway (also called, sink or personal server).

3. In a smart home scenario, all the house components interact with a gateway which also manages the users remote access.

Figure 1.1 -IoT use cases

There are numerous other IoT use cases where a gateway is in the heart of the architecture. Thus, the authentication and authorization functions are performed at the gateway level [22] [23]. This research interest in IoT authentication has -naturally -led to a large number of IoT authentication schemes which aim to either adapt the existing "traditional" authentication solutions to the IoT context or to propose new schemes and protocols that are by-design oriented for IoT systems.

The first step in our research was to perform an in-depth literature review of the existing IoT authentication schemes (e.g., [START_REF] Sicari | Security, privacy and trust in internet of things: The road ahead[END_REF][25] [START_REF] Granjal | Security for the internet of things: a survey of existing protocols and open research issues[END_REF][27] [3]) Such solutions can be classified according to different criteria, such as2 [28]:

1. IoT layer: on which authentication is performed; Perception, Network or application layer.

2. Authentication factor: whether the authentication is based on the context (physical or behavior) or the identity.

3. Architecture: whether the architecture of the authentication scheme is centralized or distributed, flat or hierarchical.

4. Hardware support: some authentication solutions rely on hardware and others don't.

5. Authentication procedure: one-way, two-way or three-way (including trusted third party).

The analysis of the existing schemes, led to the identification of a number of open-issues that need to be addressed. Note that some of these issues might be addressed partially in the literature. The open issues can be summarized as follow:

1. IoT systems often have different security requirements (Confidentiality, Integrity and Authentication). Most of the existing authentication schemes do not consider the additional requirements (e.g., confidentiality) and thus a combination of multiple security technologies and solutions is needed which leads to high computational costs. For instance, an IoT system might need one solution for authentication and integrity where at least one key sharing technique is applied, and another solution for confidentiality where another key sharing technique is applied.

2. The lack of support of heterogeneity of authentication approaches: In general, all the nodes related to a gateway use the same authentication method. For example in WSNs a Pre-Shared Key (PSK) is used to authenticate the sensors.

In other use cases, if the gateway uses certificate-based authentication, all the nodes must implement this same method. However, in numerous cases, the network is composed of different types of devices, each with its computation and energy capacities. For example in a smart home, if some objects, such as heat sensors, can only use PSK-based authentication, since symmetric cryptography is less costly than other methods [START_REF] Wang | Comparing symmetrickey and public-key based security schemes in sensor networks: A case study of user access control[END_REF], other more powerful objects, such as smart fridges and TVs can easily use public key cryptography based methods, nonetheless, they still use PSK, since the gateway imposes it to satisfy all the existing objects' types.

3. The lack of node mobility support: Each device is often associated to one gateway. However, in some use cases, some nodes can have mobility features (a sensor whose location is changed or any other mobility case). To the best of our knowledge, nodes that have mobility features from a gateway to another are not authenticated at this gateway level but using a central server/service accessible through Internet (e.g., Intelligent Transportation Systems). Nevertheless, realizing authentication at the gateway level can be less time consuming. Moreover, relying on centralized services in an environment such as IoT where the number of devices is exploding (countable in billions) can represent a real bottleneck.

4. Initialization phase: in the majority of systems, if a new device is added, a physical intervention on the gateway is needed to set up and configure the credentials of this new device (e.g., adding the PSK of a new sensor on the gateway). However, knowing that the number of objects is exploding, this feature represent a real brake.

5

. Architecture-specific nature: Most of the schemes in the literature are dependent on a specific architecture of the IoT system, which makes them inadaptable to other IoT architectures.

6. Key storage issues: Many schemes require local key management and need infrastructure for storing keys, which makes them vulnerable to key thefts [START_REF] Parikshit N Mahalle | Identity authentication and capability based access control (iacac) for the internet of things[END_REF] [1] [START_REF] Liu | The novel authentication scheme based on theory of quadratic residues for wireless sensor networks[END_REF].

7. One factor authentication: Several solutions rely on a one-factor authentication scheme which can be a security risk in such an environment.

Thesis objectives and Contributions

The objectives of this thesis are to design new secure scheme(s) to ensure the authentication service for the connected objects. The second and third contributions are based on blockchains. A blockchain is defined as a distributed database (ledger) that maintains a permanent and tamper-proof record of transactional data. A blockchain is completely decentralized by relying on a peer-to-peer network. More precisely, each node of the network maintains a copy of the ledger to prevent a single point of failure. All copies are updated and validated simultaneously [3]. We believe, that blockchains represent a very promising technology to meet security requirements in IoT context, which are still far from being solved by the classical centralized architectures which reached their limits in term of scalability especially when thousands or tens of thousands of IoT devices are connected in the same network.

The contributions can be summarized as follow:

1. Design, implement and evaluate a new lightweight authentication method for Internet of Things: The new approach is a novel Elliptic Curve Cryptography (ECC) based One Time Password (OTP) authentication method and key establishment scheme for IoT. In the proposed scheme, OTP is not only used for authentication, but also to generate a One Time Key (OTK) which will be used in different security services such as Data encryption and integrity.

We evaluate the efficiency of our approach with a real implementation and compared its performance with two other approaches namely, Hash Message Authentication Code (HMAC-based) One Time Password (HOTP) [4] and Time-based One Time Password (TOTP) [5]. The performance results obtained demonstrate the efficiency and effectiveness of our approach in terms of security and performance.

2. Design, implement and evaluate a simple and lightweight blockchain-based authentication solution for IoT systems: We provided a real implementation of our proposed scheme relying on Ethereum blockchain and using different devices in order to confirm its feasibility and evaluate its initial performances. The results obtained confirm its suitability for such environments.

3. Propose an efficient and lightweight decentralized authentication mechanism for IoT devices to resolve the limitations of using gateways like the non-support of heterogeneity of authentication approaches, the non-mobility of nodes and the need of physical intervention in initialization phase. The proposed mechanism adapts to heterogeneous authentication techniques in order to ensure flexible and more resilient security. The approach is a scalable security solution that allows the mobility of nodes while ensuring their authentication at the gateway level with an easy integration of new devices as well as new ser-vices. We provide a real Java-based implementation of our approach. The extensive evaluation provided, clearly shows the ability of our scheme to meet the different requirements, with a very lightweight cost.

Manuscript organization

The rest of this manuscript is organized as follows:

• Chapter 2 presents a general overview of the Internet of Things (IoT) domain, including the architecture, standards, technologies, applications and current challenges for IoT-based systems.

• Chapter 3 introduces the IoT security context and challenges with special emphasis on the authentication field and a review of the research literature in this field, and concludes with the requirements of strong IoT authentication schemes

• Chapter 4 presents the first contribution of the thesis: ECC-based One-Time Password (OTP) Authentication for Internet of Things (IoT). It provides the necessary technical cryptography background, then presents how the proposed solution combines ECC with Isogeny to generate One-Time Keys (OTKs) in order to ensure authentication. This chapter also evaluates the proposed solution based on a real implementation.

• Chapter 5 presents the second and third contributions of this thesis which are based on the blockchain distributed ledger. After providing a condensed overview on blockchains, it details two scalable authentication schemes, that have the flexibility to adapt to multitude IoT use cases, the robustness to resist to different attacks, and the lightweightness proven by their experimental evaluation to adapt to the special constrained nature of IoT systems.

• Chapter 6 concludes this manuscript and gives an overview of the future works.

Introduction to the Internet of Things (IoT)

Introduction

Internet of Things (IoT) concept is evolving exponentially and covers more areas everyday. For example, numerous activities and habits of our daily lives rely on IoT systems. Indeed, IoT has the potential to introduce and develop a smart world by the development of new applications in different domains like smart homes, smart health, smart cities, industry 4.0, Wireless Sensor Networks (WSN), smart agriculture, etc. [START_REF] Hammi | Internet of Things (IoT) Technologies for Smart Cities[END_REF]. The IoT ecosystem contains platforms, networks, devices 1 , applications, which require potential security measures on each layer, as well as analysis and control capabilities on all data and information in order to establish trusted connections.

In order to understand the security issues and challenges of the IoT ecosystem, a first step is obviously to understand the ecosystem itself. This chapter provides a comprehensive overview of the Internet of Things (IoT), which includes:

• The general architecture(s) of such system.

• The research and development efforts and their outcomes in terms of standards, protocols and software.

• The commonly used technologies in the IoT industry.

• A quick analysis and comparison of the IoT platforms.

• The key application domains of IoT.

• The current challenges of IoT-based systems.

IoT overview

An IoT ecosystem brings together different heterogeneous IoT components in a managed way to build an efficient system [START_REF] Bansal | Iot ecosystem: A survey on devices, gateways, operating systems, middleware and communication[END_REF]. It integrates different types of nodes (e.g., sensors, actuators, gateways, etc.) which are connected using different types of protocols and interfaces. The sensors and actuators are the leaf nodes of the ecosystem. The sensors (also called perceptors) collect information from the environment (e.g., temperature, pressure, etc.) and send data to the gateway. The actuators receives instructions from the gateway and act accordingly on their surroundings. The gateway plays a key role in the IoT ecosystem. It is in general responsible of the management of large number of sensors/ actuators, as well as the flow of data between such devices. It has also the responsibility of filtering, aggregating and formatting the data received from the sensors before sending them to the cloud, where a high level processing of the data collected from the different gateways is done, in order to be later provided to the IoT applications which give the complete IoT view to the user [START_REF] Bansal | Iot ecosystem: A survey on devices, gateways, operating systems, middleware and communication[END_REF].

The above-mentioned view of the IoT ecosystem can be projected in a layered architecture, which in its basic form, consists of three layers and can be extended to five layers (Figure 2.1) [START_REF] Wu | Research on the architecture of internet of things[END_REF].

A three-layer architecture consists of the following layers:

1. Perception Layer: also known as the physical layer. It consists of sensors and actuators that collect information (sensors) from the environment or act on this environment (actuators).

2. Network/Transport Layer: responsible for transmitting and processing the information collected at the perception layer.

3. Application Layer: responsible for providing users with application-specific services.

The five-layer architecture gives more abstraction to the IoT architecture by introducing two additional layers. It consists of the following layers: Perception, Transport, Processing, Application, Business. The Perception and Application Layers are the same of the three-layer architecture. The Transport layer has the same functionalities of the network layer. The two additional layers are:

1. Processing Layer: stores, analyses and processes the information collected from the objects received from the transport layer.

2. Business Layer: This layer manages the IoT system and its applications, business model, and services. It utilizes data received from the application layer to build business models, graphs, flowcharts, etc. It is also responsible of ensuring user's privacy [START_REF] Mashal | Choices for interaction with things on internet and underlying issues[END_REF].

Another Five-layer architecture maintains the first three layers of the abovementioned architecture, and puts on top of them a middleware layer and an application layer. The middleware layer is responsible to perform different logical and analytical operations on the data and process it to meaningful information. Other IoT architectures are proposed in the literature. Examples include Service-Oriented (SOA) based architecture and fog-based architecture. In SOA-based architecture, the IoT functionalities are abstracted and exposed through interfaces. Objects and applications use these functionalities through services [START_REF] Chen | Trust management for soa-based iot and its application to service composition[END_REF]. The fogbased architecture consists of six layers; the physical (perception) layer being on the bottom and the application layer on the top. Four layers are present in between: monitoring, pre-processing, storage and security [START_REF] Khanna | Internet of things: Architectures, protocols, and applications[END_REF].

Standards, Protocols and Software

The deployment of IoT needs communication standards that seamlessly operate among the various objects. Several worldwide organizations are involved in standardizing such communications. These include the International Telecommunication Union (ITU), the Institute of Electrical and Electronics Engineers (IEEE), the Internet Engineering Task Force (IETF), Global Standard1 (GS1), the Organization for the Advancement of Structured Information Standards (OASIS), the Industrial Internet Consortium (IIC), and several others. We briefly present some of these IoT standards and initiatives in Table 2.1. For example, the Internet of Things Standard Global Initiative (IoT-GSI) supported by ITU made two recommendations: the ITU-T Y.2060 [START_REF]Next Generation Networks -Frameworks and functional architecture models[END_REF], which provides an overview of the IoT concepts and ITU-T Y.2061 [START_REF]Next Generation Networks -Frameworks and functional architecture models[END_REF], which describes the conditions for the machine interface oriented towards applications. Various standards were proposed by IEEE and IETF at different levels for sensor networks based on the Internet Protocol (IP). For example, at the link layer, the IEEE 802. 15.4 Chapter 2. Introduction to the Internet of Things (IoT) standard is more suitable than Ethernet in industrial environments. At the network level, the IPv6 over Low power Wireless Personal Area Networks (6LoWPAN) standard can adapt the IPv6 protocol for wireless communications [START_REF] Bello | Network layer interoperation of device-to-device communication technologies in internet of things (iot)[END_REF]. In 2011, the IETF published the IPv6 Routing Protocol (RPL) standard for Low-power Networks. IETF has also launched a Working Group to standardize an application layer-oriented protocol for connected objects. The reference protocol is called the Constrained Application Protocol (CoAP). CoAP [START_REF] Shelby | Constrained application protocol (coap). RFC 7252[END_REF] provides methods and commands (such as, HTTP Get) to query an object and change its status. CoAP relies on UDP and can optionally use Datagram Transport Layer Security (DTLS), to provide communication security. Operating systems [START_REF] Okkonen | Internet-of-things market, value networks, and business models: state of the art report[END_REF] used in IoT are various; examples are: TinyOS, Contiki OS, MantisOS, Nano-RK, Android, Brillo (Google), Windows 10 IoT Core, LiteOS (Huawei), Mbed OS (ARM). In addition, several platforms [START_REF] Okkonen | Internet-of-things market, value networks, and business models: state of the art report[END_REF] have been developed for IoT, such as Arrayent, Californium CoAP Java framework, Erbium, CoAP framework for Contiki, and XMesh networking stack. At the application layer, a large number of applications have been developed [START_REF] Okkonen | Internet-of-things market, value networks, and business models: state of the art report[END_REF] like Iobridge Thingspeak, Nimbits, Evrythng, Open.Sen.se, NanoService, exosite One, HP supposed, Isidorey, SensorCloud, Manybots, and so on.

The Electronic Product Code Global (EPC Global) initiative of the organization Global Standard 1(GS1)2 defines a unique individual identifier for identifying an electronic product and the overall EPC network architecture that defines the organization of information systems designed to ensure the exchange of information in an EPC network [START_REF] Li | Tmsrfid: Temporal management of large-scale rfid applications[END_REF] [START_REF] Quan Z Sheng | Enabling next-generation rfid applications: Solutions and challenges[END_REF]. One of its main components is the Object Naming Service (ONS) which is based on the Domain Name System (DNS). In fact, in 1970 the European Article Numbering (EAN) standard emerged for product identification. However, this EAN barcode is actually used to identify a class of

IoT Technologies

IoT technologies are expected to be part of large scale networks, with the number of devices in the thousands and areas spanning several kilometers. In this section, we focus primarily on the LoRa Ultra-Narrow Band (UNB) technology developed by Semtech and SigFox .

LoRa

LoRa is a wireless technology designed to provide the low-power within wide-area networks (LPWANs) required for IoT services [START_REF]Wide Area Networks For IoT[END_REF]. The technology offers a mix of long range, low power consumption and secure data transmission. The LoRa standard [START_REF]Lorawan 1.1 specification. Online[END_REF] has been developed for IoT-type devices in regional or global networks. This technology provides seamless interoperability among devices without requiring any complex installations. The services targeted include home energy monitoring, alarm systems, remote health monitoring, transportation, environment protection, and so on. This specification defines the communication protocol and system architecture for the underlying network. It supports frequencies in the 433, 868 or 915 MHz ISM bands, depending on the area where it is deployed. In Europe, it uses either Gaussian Frequency Shift Keying (GFSK) or the proprietary LoRa modulation system, which works with a version of Chirp Spread Spectrum using 125 KHz channel bandwidth [START_REF]LoRa Technology[END_REF]. LoRa architecture is describes in Figure 2.4

The hierarchical star-based topology is used by LoRa networks. IoT devices in such networks can be servers, end-points, or gateways. Data rates can range, in Europe, from 0.3 Kbps up to 50 Kbps when channel aggregation is employed. In North America, the minimum data rate is 0.9 Kbps because of Federal Communications Commission (FCC) requirements. The payload for this technology can range from 2 to 255 bytes [START_REF] Keith E Nolan | An evaluation of low power wide area network technologies for the Internet of Things[END_REF]. This standard is optimized for low cost and battery operated sensors. The devices are asynchronous and communicate only when they have data ready to send whether event-driven or scheduled. Power consumption is proportional to the time devices spent while in the listening mode.

LoRa is gaining significant attention in IoT networks that are being deployed by wireless network operators. It can be deployed with minimum upfront infrastructure investments and operating costs. When increased network capacity is required, further Gateways can be added. It has been estimated that the deployment cost of this technology in unlicensed bands needs much less capital than even a 3G software upgrade [START_REF] Keith E Nolan | An evaluation of low power wide area network technologies for the Internet of Things[END_REF]. Major Telecom operators (e.g., Swisscom, NKE Electronics, and others) are deploying this technology for nationwide networks because of its benefits over competing technologies. These benefits include bi-directional communications, mobility for asset tracking, security, and accurate localization [START_REF] Lorawan | What is it. A Technical Overview of LoRa and LoRaWAN[END_REF].

SigFox

SigFox5 created an ultra-narrow band IoT communication system designed to support IoT deployments over long ranges, e.g. in excess of 20 km between a client device and a base station. SigFox uses license-exempt spectrum for its product, namely the 868 MHz band in Europe and 915 MHz band in the US, to transmit data over a narrow spectrum to and from connected objects. The ultra-narrow band operation is achieved using bandwidth channels lower than 1 KHz transmitting data payloads of 12 bytes uplink and 8 bytes downlink with a protocol overhead of 26 bytes [START_REF] Keith E Nolan | An evaluation of low power wide area network technologies for the Internet of Things[END_REF].

One of the advantages of SigFox devices is their resource efficiency. The power demand is negligible because devices are only "on" when they are transmitting; this means that the power demand is a fraction of that for a device operating on cellular networks. SigFox technology allows deploying very efficient, low throughput communications by limiting the number of antennas (base stations). For the same level of coverage, SigFox requires around 1,000 times less antennas and base stations, compared with some cellular networks [START_REF] Atmel | [END_REF]. This technology offers access to a service management interface, which can enable the control of main communication parameters such as battery and temperature settings, signal quality, volume of exchanged data, and others. Networks based on SigFox technology have already connected thousands of devices in several international cities. They are currently operational in 14 countries, covering an area of more than 1.

Platforms and Deployment

The significant growth in IoT deployment has led to the emergence of IoT platforms which support:

• Easy integration of new devices and services.

• Communication between devices (objects and servers).

• Management of different devices and communication protocols.

• Transmission of data flows and the creation of new applications.

• Interoperability among components, objects, gateway, cloud data, and software applications.

• Scalability of the IoT infrastructure.

According to the level of services provided, IoT platforms can be divided into:

1. Infrastructure-as-a-service platforms: they provide hosting space and processing power for applications and services, e.g. IBM Bluemix7 .

2. M2M connectivity platforms: they focus only on the connectivity of IoT objects through telecommunication networks and protocols, e.g. Comarch8 and AirVantage9 .

3. Hardware-specific software platforms: numerous companies sell their proprietary technology which includes the hardware and the software back-end, e.g Google Nest 10 .

4. Enterprise software extensions: some software and operating system companies such as Windows and Apple are increasingly allowing the integration of IoT devices such as smartphones, connected watches and home devices.

According to [47] [48], the main features an IoT platform must achieve are:

• Device integration

• Networking

• Device management

• Security

• Protocols for data collection

• Analytics

• Support for visualization

Based on these features, the authors in [START_REF] Scully | 5 Things To Know About The IoT Platform Ecosystem[END_REF] have proposed a stack for the IoT platform architecture as shown in Figure 2.5.

As we mentioned earlier, the number of IoT platforms is growing at a fast pace. According to [START_REF]IoT Analytics Insights for the Internet of Things[END_REF], this market will reach $1 billion in 2019. Table 2.3 provide a comparison of different platforms, describing their offered services, advantages and limitations.

IoT Applications

The IoT facilitates the development of a large range industry-oriented and userspecific IoT applications in different fields, such as domain industry applications, smart agriculture, smart logistics, intelligent transportation, smart grids, smart environmental protection, smart safety, smart healthcare, smart home, etc. [ [62]. In other words, IoT applications will have the role to add smartness to most aspects of today's life.

In this section, we present a number of IoT applications with a special emphasis on smart city domain, given the increasing interest of government and industry to invest in such field and most importantly the direct and growing impact such applications will have on both people and the planet. Indeed, the IoT concept leverages several ubiquitous services to enable Smart City deployments all over the world. IoT introduces new opportunities such as the capability to monitor and manage devices remotely, analyze and take actions based on the information received from various real-time traffic data streams. As a result, IoT products are changing cities by enhancing infrastructures, creating more effective and cost-efficient municipal services, improving transportation services by decreasing road traffic congestion, and improving citizens' safety. To achieve the full potential of IoT, smart city architects and providers recognize that cities must not offer a separate smart city feature, but rather deliver scalable and secure IoT solutions that include efficient IoT systems.

Health of Buildings

To properly maintain the historical buildings of a city we need to: (1) continuously monitor the actual conditions of each building and (2) to identify the most affected areas due to various external agents [START_REF] Zanella | Internet of things for smart cities[END_REF]. The city contains multiple structures, which have different sizes and different ages. It is different from one city to another, but, generally, most of the structures are very old (such as buildings, dams, or bridges [START_REF] Yick | Wireless sensor network survey[END_REF]). To assess the conditions of a building, passive IoT sensors can be embedded within a concrete structure, and periodically send a radio signal of suitable amplitude and phase characteristic to inform about the structure's state [START_REF] Jin | An information framework for creating a smart city through internet of things[END_REF].

Environmental Monitoring

IoT processes, analyzes, and disseminates information collected from multiple environments [START_REF] Yick | Wireless sensor network survey[END_REF]. The various parameters measured by sensors [START_REF] Lazarescu | Design of a wsn platform for long-term environmental monitoring for iot applications[END_REF] are:

• Water level for lakes, streams, sewages.

• Gas concentration in the air for cities, laboratories, and deposits.

• Soil humidity and other characteristics.

• Inclination for static structures (e.g., bridges, dams).

• Position changes (e.g., for landslides).

• Lighting conditions either as part of combined sensing or standalone (e.g., to detect intrusions in dark places).

• Infrared radiation for heat (fire) or animal detection.

Waste Management

Waste management becomes an increasing problem in urban living. It is related to many aspects including socioeconomic and environmental ones. One important feature in waste management is environmental sustainability [START_REF] Bogatinoska | Advanced sensing and internet of things in smart cities[END_REF]. A major benefit of global IoT infrastructures is that they provide us with the ability to collect data and, further help in improving effective management for various issues. Nowadays, the garbage-truck needs to pick-up all garbage cans even when they are empty [START_REF] Fujdiak | Using genetic algorithm for advanced municipal waste collection in smart city[END_REF]. By using IoT devices inside the garbage can, these devices will be connected to the computing server using one of LPWAN technologies. The computing server can collect the information and optimize the way to garbage-collection is performed by the garbage trucks.

Smart Parking

In this use case, there is a wireless sensor (or connected object) at each parking spot. If a vehicle parks, or if a parked vehicle leaves a parking spot, the sensor at the parking spot sends a notification to a management server. By collecting information regarding the parking bay occupancy, the server can provide parking vacancy information to drivers through visualization platforms such as smart-phones, vehicles' Human Machine Interfaces (HMIs) or advertisement boards. These information will also enable the city council to apply fines in case of parking infringements [START_REF] Jin | An information framework for creating a smart city through internet of things[END_REF].

Radio Frequency IDentification (RFID) technology is automated and can be very useful to vehicle identification systems. Vehicles are identified and parking-lot fees are collected automatically via this system [START_REF] Pala | Smart parking applications using rfid technology[END_REF].

As for the hardware requirements, by utilizing RFID readers, barriers, parkinglot check-in and check-out controls can be achieved. In this way, in contrast to personnel-controlled traditional parking-lot operations, an unmanned, automated vehicle control and identification system can be developed as described in [START_REF] Pala | Smart parking applications using rfid technology[END_REF]. The development of Vehicle Ad Hoc Networks (VANETs) [START_REF] Sherali Zeadally | Vehicular ad hoc networks (vanets): status, results, and challenges[END_REF] along with the advances and wide deployments of wireless communication technologies, many major car manufactories and telecommunication industries are increasingly fitting their cars with On Board Unit (OBU) communication device. This allows different cars to communicate with each other as well as with the roadside infrastructure. Thus, applications that provide information on parking space occupancy or guide drivers to empty parking spaces, are made possible through vehicular communications [START_REF] Lu | Spark: A new vanet-based smart parking scheme for large parking lots[END_REF].

Smart Health

A Wireless Body Area Network (WBAN) which is based on a low-cost wireless sensor network technology could greatly benefit patient monitoring systems in hospitals, residential and work environments [START_REF] Poon | A novel biometrics method to secure wireless body area sensor networks for telemedicine and m-health[END_REF]. The miniature sensors can be embedded inside the body or mounted on the surface of the body. The sensors communicate with medical devices using different technologies of WPAN (ZigBee, 6LowPAN, CoAP, etc.). The sensors are also capable of measuring various physiological parameters information (e.g., blood flow, respiratory rate, blood pressure, blood PH, body temperature, and so on), which are collected and analyzed by remote servers (see Figure 2.6). The wearability requirement poses physical limitations on the design of these sensors. The sensors must be light, small, and should not hinder patient' movements and mobility. Moreover, because the sensors need to operate on small batteries included in the wearable package, they need to be highly energy-efficient [10].

Navigation System for Urban Bus Riders

Urban Bus Navigator (UBN) is based on an IoT architecture which uses a set of distributed software and hardware components that are tightly integrated with the bus system. The UBN system deployed in Madrid, Spain is composed of three key components [START_REF] Handte | An Internet-of-Things Enabled Connected Navigation System for Urban Bus Riders[END_REF]:

1. The network-enabled urban bus system with WiFi equipped buses 2. The UBN navigation application for bus riders 3. The bus crowd information server which collects real-time occupancy information from buses operating on different routes in Madrid

Smart Grid

The smart grid uses new technologies such as intelligent and autonomous controllers, advanced software for data management, and two-way communication between power utilities and consumers, to create an automated and distributed advanced energy delivery network (see Figure 2.7) [START_REF] Fang | Smart grid -the new and improved power grid: A survey[END_REF]. Deployed as an infrastructure for sensing and transmitting information for the smart grid, the IoT technology, when applied to the power network, will play a significant role in cost-effective power generation, distribution, transmission and consumption [START_REF] Liu | Applications of internet of things on smart grid in china[END_REF].

Autonomous driving

In a smart city, autonomous driving technologies will be synonymous to saving time for the user. This technology would help speed up the flow of traffic in a city and save almost 60% [START_REF]Urban Mobility System Upgrade How shared self-driving cars could change city traffic[END_REF] of parking space by parking the cars closer to each other. Through a combination of radar, cameras and ultrasonic sensors located around the car, an autonomous car can detect anomalies all around and trigger an alert that automatically activates the emergency brakes to prevent accidents or collisions. The Intelligent Transport System (ITS) could enable us to calculate the best route in real-time by connecting different transport modes to save time and reduce carbon emissions.

Challenges and Open Issues

IoT systems rely on multiple technologies. Thus, the challenges and issues of IoT could be divided into two categories:

1. Issues related to the technologies on which IoT is based on.

2. New issues that emerge with IoT deployments.

This section presents the general IoT-related challenges and issues. For consistency purposes, the examples are mainly related to the smart city IoT applications (section 2.6). The main challenges for IoT systems are (

IoT Resource-constrained Nature

One of the key characteristics of IoT nodes is their limitations in terms of processing, memory and energy. This intuitively implies that any "viable" IoT-based solution, should consider these constraints by-design. This also makes the performance and energy consumption analysis of such solutions critical elements for their acceptability at a first stage and their deployment in a later stage.

Networking and Transport

IoT includes a huge number of objects that should be reachable. Besides, each object will produce content that can be retrieved by any authorized user regardless of his/her location. To achieve this goal, effective addressing policies should be implemented. Currently, IPv4 is the most predominant protocol. However, it is well-known that the number of available IPv4 addresses is decreasing rapidly and IPv4 will soon become inadequate in providing new addresses, hence, the need to use other addressing policies. IPv6 addressing represents the best alternative to IPv4. Many works that aim to integrate IPv6 with IoT have been undertaken recently. For example, 6LowPAN [START_REF] Shelby | 6LoWPAN: The wireless embedded Internet[END_REF] describes how to implement IPv6 protocol in a WSN context. However, since RFID tags use identifiers rather than MAC addresses (as standardized by EPC global [START_REF] Traub | The EPCglobal architecture framework[END_REF]), it is necessary to propose new solutions in order to enable the addressing of RFID tags in IPv6-based networks. Recently, multiple studies that intend to integrate RFID tags into IPv6 networks have been investigated and multiple approaches aimed at integrating RFID identifiers and IPv6 addresses have been proposed [START_REF] Lee | EPC vs. IPv6 mapping mechanism[END_REF][79] [START_REF] Jain | RFID and wireless sensor networks[END_REF]. However, results in this area are not completely mature and in particular there are no standards that currently describe how this integration should be done. It is also important to note that RFID mobility is not supported and still represents an open research issue. In traditional networks, IP addresses are resolved through the Domain Name System (DNS). In IoT, communications occur between objects. Thus, the concept of Object Name Service (ONS) must be introduced and supported [START_REF] Epcglobal | Ratified Standard Specification with Approved, Fixed Errata[END_REF] [82] [START_REF] Atzori | The internet of things: A survey[END_REF]. The difficulty of ONS arises especially in the case where the object is an RFID tag. In this case, the tag identifier (or IP address) is mapped onto an Internet Uniform Reference Locator (URL), which points to the relevant information of the object. In other cases, the ONS must have the capacity to associate the object's description with a given RFID tag identifier (or IP address). However, the design and standardization of such a system are still being investigated by researchers and designers of such systems [START_REF] Atzori | The internet of things: A survey[END_REF]. The main goals of the transport layer reside in guaranteeing end-to-end reliability and in performing congestion control. In traditional networks, the Transmission Control Protocol (TCP) supports these goals. However, it is known that TCP is not adapted to IoT environments [START_REF] Atzori | The internet of things: A survey[END_REF] [84] for many reasons:

1. Connection setup: in TCP, each session begins with a connection phase procedure called the three-way handshake. Within the IoT ecosystem, a small amount of data will be exchanged. Therefore, the setup phase would last for a large part of the session time. This may lead to additional consumption of resources and energy.

2. Congestion control: TCP ensures end-to-end congestion control. In the IoT context, it can generate performance problems as most of the communications are wireless. Indeed, such an environment is not well optimized for TCP [START_REF] Tv Lakshman | The performance of tcp/ip for networks with high bandwidth-delay products and random loss[END_REF].

Besides, the exchanged data amount within a single session, is in general, very small. Finally, TCP congestion control is not very adapted to the IoT environment because the whole TCP session includes just the transmission of the first segment and the reception of subsequent acknowledgements [83] [38].

3. Data buffering: TCP stores data in a memory buffer at both source and destination: (1) at the source for re-transmission needs and (2) at the destination for ordered delivery purposes. The management and allocation of such buffers may be too costly for objects.

As a result, TCP cannot be used efficiently for the end-to-end transmission control in IoT and new transport layer protocol solutions are required [START_REF] Bello | Network layer interoperation of device-to-device communication technologies in internet of things (iot)[END_REF]. The transport layer plays an essential role in IoT. Indeed, attacks towards this layer and its underlying routing protocol will seriously affect the network's operation. Therefore, the design of secure and effective routing protocols is an important research area in the IoT context. Due to typical characteristics of IoT objects, existing solutions that have been previously applied to adhoc and sensor networks do not completely address the needs of IoT. For example, Denial of Service (DoS) attacks could be more easily achieved on multiple IoT systems. The consequences of such attacks would be disastrous to the systems and their end-users. The best way to detect and stop DoS and DDoS attacks is by using Intrusion Detection Systems (IDSs). However, the implementation of such systems in an IoT infrastructure appears to be a very challenging task because of the specific characteristics of the objects and their capabilities. Another important issue is traffic characterization. Indeed, in IoT, highly heterogeneous objects lead to different scenarios. The characteristics of the related traffic flows generated by these scenarios have not really been studied extensively [START_REF] Atzori | The internet of things: A survey[END_REF]. The traffic's characterization represents a very important step, because it helps network providers to plan the expansion of their infrastructures when it is needed, and to develop appropriate solutions for Quality of Service (QoS) support when needed.

Heterogeneity

Often, in IoT scenarios, data is collected from large number of objects which are widely distributed. However, the data collected in different ways using different protocols typically have different formats. Thus, it is not possible to effectively analyze, process, store such data without some standard format. This lack of standard also makes the integration of data obtained from heterogeneous sources difficult. Thus, it is necessary to develop 1. Standards regarding unified data encoding 2. Information exchange protocols that will enable efficient and seamless data collection among heterogeneous IoT objects

Scalability

The huge number of Internet objects that need to be deployed in the different applications (section 2.6) pose a scalability challenge for any IoT-based solution.

The scalability can be directly linked to a critical issue/ threat which is the denial of service. Indeed, scalability issues arise often with centralized solutions which exhibit single point (or few points) of failure.

Big Data Management

As the number of devices grows exponentially, IoT-based solutions become a source of huge amounts of data often referred to as big data [86] [87]. Indeed, according to the literature [START_REF] Kitchin | The real-time city? big data and smart urbanism[END_REF] [86] [START_REF] Chen | Big data: A survey[END_REF], big data is characterized by specific characteristics:

• Volume: the huge number of devices continuously generate large amounts of data.

• Dynamicity : for many applications data is created and used in real or near real-time. For example, traffic data must be used in real time to inform users and to guide them [START_REF] Guerrero-Ibanez | Integration challenges of intelligent transportation systems with connected vehicle, cloud computing, and internet of things technologies[END_REF]. Another example is social media, where, sometimes messages, tweets, status updates, and so on which are only a few seconds old may no longer be of interest to users.

• Variety: there are multiple types of devices, parts of different applications that are communicating through various protocols that generate a lot of heterogeneous data.

An efficient use, mashing and correlation of these different types of data can enhance multiple applications and tasks such as:

• Facilitating decision making in order to enhance the quality of service offered to end-users.

• Visualization and simulation of events and use cases.

• Modeling new use case scenarios.

• Accidents and disaster management.

For example, if an accident occurs, it will be reported to the management infrastructure (center) through traffic information. Then, the management center sends the nearest police cars (having lower task priorities according to their transmitted information) and requests for ambulances. Besides, the center sends accident warnings to car drivers in the accident area through car's Human Machine Interfaces (HMI) and road advertisement boards, and recommends journey modifications to cars going through the accident area. It can also modify traffic flows and lights to facilitate ambulances' tasks. The same scenario is possible in case of fire where the management center will be informed through dedicated devices. However, none of the aforementioned benefits can be achieved without an efficient way to manage and leverage such large quantities of data generated and large-scale infrastructures. Currently, the most popular technology is cloud computing [START_REF] Kitchin | The real-time city? big data and smart urbanism[END_REF] [START_REF] Batty | Big data, smart cities and city planning[END_REF] [92] [START_REF] Simmhan | Cloud-based software platform for big data analytics in smart grids[END_REF]. Indeed, cloud computing solutions help in the storage, visualization, and processing of the data collected in order to make timely inferences and decisions [START_REF] Khan | Cloud based big data analytics for smart future cities[END_REF].

Security

The rapid integration of IoT in various aspects of our daily lives and their use in critical infrastructures makes the security of IoT crucial and even critical given that its insecurity can be life-threatening. The IoT systems are becoming a primary choice for attackers whether as a target or even as an attacking tool. The latter is no more a hypothetical threat model since IoT systems are becoming the ideal target for hackers to create IoT bot networks. An IoT botnet consists of devices compromised and used to perform different tasks without the knowledge of their legitimate users. In 2016, Dyn firm11 suffered from a denial of service attack caused by tens of thousands of connected objects (they were mostly connected cameras) to saturate its infrastructure 12 . The attack resulted in Dyn's inability to provide the DNS service. Some of connected objects involved in the attack were caused by Mirai malware [START_REF] Biggs | Hackers release source code for a powerful DDoS app called Mirai[END_REF]. This tool exploits vulnerabilities present in some connected objects such as the use of default passwords that have not been changed by users. Hence, IoT networks are increasingly being used as an attack platform by malicious attackers. The security challenges, issues and requirements will be extensively detailed in chapter 3.

Conclusion

This chapter provided a comprehensive overview of the Internet of Things (IoT) including the proposed architectures in the literature, the advances of research and development efforts, the main IoT technologies and platforms used and deployed in the market and finally the different IoT use case applications. The chapter concluded with a presentation of the main challenges facing the IoT systems related to their resource-constrained nature, the networking and transport, the heterogeneity of devices, the scalability of the IoT solutions, the management of the huge data generated and stored in the IoT systems and finally and most importantly the security of such systems. The latter challenge is the field of interest of this thesis, in particular the authentication of the "things" in IoT which will be further discussed in the next chapter.

Chapter 3

IoT Authentication Schemes

Introduction

The security of IoT is a major challenge for the sustainability and competitiveness of companies and administrations. The US Federal Trade Commission (FTC) pointed out in a report [START_REF]Internet of Things: Privacy and Security in a Connected World[END_REF] that the planned deployment of IoT technology will open up various security and privacy issues for IoT users, which need to be well addressed or resolved. For many of these critical IoT applications, the use of incorrect or maliciously corrupted data can have serious consequences. Conventional security objectives such as authentication, confidentiality, and data integrity are critical to IoT objects, networks, and applications. Moreover, the IoT security context is more complex due to the inherent nature of IoT systems. Indeed, objects are most of the time unattended, which makes physical attacks on them relatively easy. In addition, Most of the communications are wireless, which makes the system more exposed to attacks; exchanged messages may be subject to eavesdropping, malicious routing, message tampering and other security issues which can affect the security of the entire IoT system. Also, Multiple types of objects such as RFID tags have limited resources in terms of energy and computation power, which prevents them from implementing well-established traditional security solutions. The IoT security "scene" becomes more complex, when considering the current security context of IoT devices. There is a clearly identifiable gap in the security standards for such objects. Indeed, according to the European Union Agency for Cybersecurity (ENISA), "standards are not treated holistically so it is possible to deliver a device to the market that can authenticate its user, that can encrypt data it transmits, that can decrypt data it receives, that can deliver or verify the proof of integrity, but which will still be insecure. Similarly, the organisation developing the IoT product or service may have the development processes defined in management guidelines such as those of ISO-27000 but still delivers an insecure product" [START_REF]Iot security standards gap analysis[END_REF]. Moreover, Various types of operating systems are used by the connected objects, which are not always well known or validated in term of security. The code of an operating system is usually in the order of tens of thousands or millions of code lines. Hence, the likelihood of having vulnerabilities is high. In addition, the software integrity update of connected objects is not guaranteed.

If IoT objects have enough memory and processing power, existing security protocols and algorithms might have been applicable, but because of the resource constraints of IoT objects, these existing security solutions are too costly for the objects in IoT. Security issues remain major obstacles to the worldwide adoption and deployment of IoT. In other words, users will not fully adopt IoT if there is no guarantee about the related security concerns. This chapter examines the general security context of IoT systems with particular emphasis on authentication-related issues and solutions. It starts with a presentation of the IoT security objectives and issues. Then, it gives a particular attention to the research efforts done to address the authentication problem, where a classification of the existing solutions is provided as well as an analysis of the most-known solutions in the literature. The chapter concludes with a list of requirements for a strong authentication scheme.

IoT Security Objectives and Issues

IoT systems like any other information system have their own security objectives and related security issues. However, the ubiquitousness of such systems and their widespread range of applications make these issues more alarming and hence, the security objectives become more critical in the IoT context.

IoT Security Objectives

Depending on the intended application, an IoT system can have one or more of the following security objectives. Also, the type of the application dictates how critical a security objective can be.

Confidentiality

The property that sensitive information is not disclosed to unauthorized individuals, entities, or processes [START_REF]Computer security resource center -online glossary[END_REF]. The confidentiality might be of high concern for IoT systems especially when connected objects are used for transmitting confidential data. This obviously depends on the nature of the IoT system; the confidentiality level for securing smart water sprinklers will definitely not be the same as that required to secure patient records stored in or exchanged between devices in healthcare IoT systems.

Integrity

The data stored in and transmitted by IoT devices might be sensitive; whether it was related to the users (e.g., bank details, social security number), the manufacturers or the network service providers (e.g., billing/ payment records, usage statistics, business secrets, cryptographic keys). Such data should be protected against intentional or unintentional alteration or deletion, which can have irrecoverable damages, where comes the importance of protecting the integrity of data/information. Data and system integrity deals with consistency and reliability issues associated with the different components of IoT systems and their data and software resources [START_REF]Computer security resource center -online glossary[END_REF]. In the IoT context, integrity can be defined as "maintaining the accuracy, consistency and trustworthiness of data in transit or stored on any IoT device" [START_REF] Musa | Security Challenges of the Internet of Things[END_REF]. Protecting the integrity results in the assurance that information can only be altered (or deleted) by authorized entities. Integrity of IoT systems not only considers protecting the IoT devices from tampering but also detecting any attempt to tamper with these devices whether logically or physically, especially that large number of IoT devices (e.g., sensors) are deployed in open environments without sufficient physical protection, allowing attackers to have direct contact with them. measures to guarantee the persistence of the connectivity of devices and services despite of any link failure, carrying out a regular preventive maintenance and update of all hardware and software, maintaining an immediate and adaptive recovery in worst case scenarios, storing back-up copies of data, etc. [START_REF] Musa | Security Challenges of the Internet of Things[END_REF]. Availability is a default security requirement for all the IoT applications and at the different architectural layers (Perception, Transport and Application). However, the availability percentage might vary depending on the IoT applications and its criticality.

Authentication

Authentication can be defined as the verification of the identity of a user, process, or device [START_REF]Computer security resource center -online glossary[END_REF]. The verification is based on a proof, called authentication factor, that can be based on [START_REF] Ometov | Challenges of multi-factor authentication for securing advanced iot applications[END_REF][START_REF] Dasgupta | Multi-Factor Authentication[END_REF]:

1. Knowledge: Something the user (or any entity to authenticate) knows (e.g., passwords, pre-shared keys)

2. Ownership: Something the user has, i.e. the items that he/she possesses (e.g., smart cards)

3. Biometric: Something the user is; i.e. user's physiological and biometric traits (e.g., face, fingerprint, and voice) 4. Behavior: Something the user do; a type of authentication which proves identities by observing actions (e.g., gestures or touches).

5. Location: Somewhere the user is; i.e. the user's location information (e.g., GPS, IP address)

In an IoT context, all IoT devices must be able to prove their identity in order to be granted certain privileges of operation (e.g., send/receive information), or be allowed to access resources in an information system. The proof of identity (credentials) can be one or more of the previously mentioned authentication factors, and is often based on identical credentials stored in a safe location. Authentication (and thus identity proof) can be done for the device as a whole, but can also be done for device parts, in order to ensure that no third party components with potential security risks are connected to the system [START_REF] Musa | Security Challenges of the Internet of Things[END_REF]. Authentication concerns and existing solutions will be further detailed in section 3.4.

Authorization

Authorization can be defined as the right or a permission that is granted to a system entity to access a system resource. In the IoT context, an authorization scheme provides a mechanism to bind an IoT specific device to a number of permissions; e.g., accessing a resource such as sensor data or a file. This limits the privileges of devices, users, applications and components so that they can only access resources necessary for their normal operations [START_REF] Musa | Security Challenges of the Internet of Things[END_REF]. Authorization is often linked to access control; the two concepts are closely related and even used interchangeably sometimes.

Privacy

A general definition of privacy can be obtained from [START_REF]Computer security resource center -online glossary[END_REF] as "the right of a party to maintain control over and confidentiality of information about itself". With regards to IoT, privacy concerns are on the rise with the technology becoming increasingly intrusive in our personal lives. Many companies/businesses collected (and are still collecting) huge amounts of data about IoT users. The sources of the collection can be any node of the system (e.g., web cookies, video cameras, RFID bracelets, etc). The data collected and stored contain for sure a considerable amount of personal and sensitive information. Privacy protection can be obtained either by trusting third parties not to abuse the data generated by IoT systems or by controlling the collection and use of such data. More specifically, in order to ensure privacy in the IoT domain, a user should have the capability (among other) to [100]:

• Find out what information is collected and shared, when, with whom and for how long.

• Control how the data/information is collected and shared with third parties.

• Determine (and control) how identifiable he/she is while using the IoT system.

These privacy aspects have thus strong implications of trust, transparency and control for IoT systems, and therefore introduce a number of privacy-related requirements, such as (un)linkability, (un)traceability and anonymity.

Unlinkability

From an attacker's perspective, "unlinkability of two or more items of interest (IOIs, e.g., subjects, messages, actions, ...) means that within the system (comprising these and possibly other items), the attacker cannot sufficiently distinguish whether these IOIs are related or not" [START_REF] Pfitzmann | A terminology for talking about privacy by data minimization: Anonymity, unlinkability, undetectability, unobservability, pseudonymity, and identity management[END_REF]. This requirement takes additional importance in the healthcare domain or in vehicular-related applications.

(Un)Traceability

A brief definition for the untraceability is to ensure that "no one knows content inside that data and no one knows where it is sent to" [START_REF] Vu Tuan | Context-aware mobility based on pi-calculus in internet of thing: A survey[END_REF]. While untraceability can be a principal privacy-related requirement, traceability can be an application-related requirement such as in supply chain, food management, etc. [START_REF] Lomotey | Wearable iot data stream traceability in a distributed health information system[END_REF][START_REF] Furdik | Food traceability chain supported by the ebbits iot middleware[END_REF][START_REF] Dasaklis | Defining granularity levels for supply chain traceability based on iot and blockchain[END_REF][START_REF] Caro | Blockchain-based traceability in agri-food supply chain management: A practical implementation[END_REF].

Anonymity

Anonymity of a subject means that "the subject is not identifiable within a set of subjects, the anonymity set" [START_REF] Pfitzmann | A terminology for talking about privacy by data minimization: Anonymity, unlinkability, undetectability, unobservability, pseudonymity, and identity management[END_REF]. Anonymity can be a critical requirement in some healthcare IoT applications to conceal the identity of the patient and thus to ensure the privacy of his/her health information.

Non-Repudiation

Non-Repudiation is defined as "the assurance the sender of data is provided with proof of delivery and the recipient is provided with proof of the sender's identity, so neither can later deny having processed the data" [START_REF]Computer security resource center -online glossary[END_REF].

A simpler definition can be to prevent any user or device from denying an action, by providing evidence of such actions. For many IoT applications, non-repudiation is not considered as a primary security requirement. However, it becomes of critical nature for business applications that include financial transactions.

IoT Security Issues and Challenges

The security requirements presented in the previous section can be ensured using cryptographic algorithms. Confidentiality in particular (among other requirements) can be achieved throughout data encryption. Data encryption algorithms are divided into two categories: symmetric algorithms, and asymmetric or public-key algorithms. The latter are known to consume more resources which make them difficult to implement on objects with limited power and energy resources. In contrast, symmetric algorithms are suitable for such devices and are widely used in this context [START_REF] Jing | Security of the internet of things: Perspectives and challenges[END_REF]. However, they suffer from several drawbacks: first, the symmetric key exchange protocols of such cryptosystems are too complex which limits infrastructure scalability [START_REF] He | An analysis of rfid authentication schemes for internet of things in healthcare environment using elliptic curve cryptography[END_REF], and second, they suffer from the confidentiality problem for shared keys. Indeed, the higher the number of objects is, the bigger is the security risk. If one key is compromised, all system communications are compromised also. As a solution, the system can be divided into multiple groups and a different symmetric key is used within each group. However, the risk remains, since if one key is compromised, the communications with the group are also compromised. To address this problem, researchers have considered public-key encryption algorithms. In this solution, each object owns a pair of public and private keys. Each object keeps its private key, while sharing its public key with corresponding entities with which it needs to communicate securely. Actually, the main proposals [START_REF] Han | Algorithm design for data communications in duty-cycled wireless sensor networks: A survey[END_REF] [109] [START_REF] Li | A survey on topology control in wireless sensor networks: Taxonomy, comparative study, and open issues[END_REF] of public key encryption algorithms suitable for IoT [START_REF] Jing | Security of the internet of things: Perspectives and challenges[END_REF] include Rabin's Scheme [START_REF] Alfred J Menezes | Handbook of applied cryptography[END_REF], NtruEncrypt [START_REF] Hoffstein | NTRUEncrypt and NTRUSign: efficient public key algorithms for a postquantum world[END_REF] and Elliptic Curve Cryptography (ECC) [START_REF] Hankerson | Guide to elliptic curve cryptography[END_REF]. ECC offers good scalability, without complex key management protocol. However, the application of these algorithms to the IoT environment is still being investigated. In addition, they are not applicable to all types of objects especially RFID tags, where the problem of limited resources remains a challenging issue. Furthermore, public key encryption solutions suffer from trust issues. Indeed, a node that owns public keys cannot prove that the objects are really what they pretend to be.

Key management is another important issue in IoT. It plays a vital role in the implementation of various security solutions. Key management includes multiple steps that include key generation, distribution, storage, update and destruction. An important component of the key management cycle is key distribution which includes secure transmission and distribution to legitimate users of (1) public keys and shared secrets in the case of asymmetric cryptography, and (2) secret keys in the case of symmetric cryptography. Numerous works [START_REF] Eschenauer | A key-management scheme for distributed sensor networks[END_REF] [115] [START_REF] Perrig | SPINS: Security protocols for sensor networks[END_REF] have proposed key management schemes adapted to technologies making up the IoT ecosystem, and more specifically for Wireless Sensor Networks (WSNs) in recent years. They use symmetric key management, public keys, abbreviated (a shortened certificate where some fields are removed) [START_REF] Arvinderpal S Wander | Energy analysis of public-key cryptography for wireless sensor networks[END_REF] or implicit certificates. However, these solutions were designed for WSNs primarily, and are not suited for all object types. Consequently, the design of lightweight key management schemes adapted to the IoT environment and its application scenarios remains a key issue that needs to be solved in the future.

IoT trust management mechanisms are also a challenging key element to be developed and implemented. Indeed, in numerous scenarios, the network relies on the cooperation of all nodes. The vulnerability of a single node can have serious consequences on the entire network. Indeed, if an attacker succeeds to compromise or add one or multiple objects in the network, the attacker can provide fake or erroneous information, which can subsequently affect the cooperation of nodes, data treatment and the result provided to the final user. Thus, the credibility of each single node is key to ensuring accurate and reliable network service delivery. Current trust management schemes like those proposed in [START_REF] Eschenauer | A key-management scheme for distributed sensor networks[END_REF] [START_REF] Tv Landegem | Anywhere, anytime, immersive communications [j[END_REF] only provide verification of data consistency and validity, but cannot guarantee object authentication. Furthermore, these previously proposed schemes are not completely adaptable to the IoT context. Consequently, more research is needed to develop lightweight trust management techniques and protocols that are specifically well suited for IoT scenarios in the future.

Finally, security issues and threats can arise from any of the security objectives previously presented in section 3.2.1, which can be further associated to the IoT architectural view. Table 3.1 summarizes the most common IoT issues that arise from the the three-layered IoT architecture as presented in section 2.2.

Issues

Classification of IoT Authentication Solutions

A quick examination of Table 3.1 clearly shows that authentication is a security requirement at all the IoT layers. Authentication plays a central role in the overall security of IoT systems. A secure IoT device authentication scheme ensures that these devices can be trusted to be what they claim to be. Such scheme provides each IoT device a unique identity (can be dynamic in time) that can be verified when this device attempts to connect to the IoT network. This gives the possibility, among other things, to track each device throughout its lifecycle (whenever applicable), to exchange securely with it, to prevent it from running malicious code, and even though it happened that an IoT device exhibited a suspicious unexpected behavior, its privileges can simply be revoked.

In this section, we present a general taxonomy of IoT authentication schemes based on the surveyed literature [START_REF] Amine Ferrag | Authentication protocols for internet of things: a comprehensive survey[END_REF] [120] [START_REF] Agrawal | A survey on the authentication techniques in internet of things[END_REF] as illustrated in Figure 3.1.

• IoT layer: It depends on the layer where the authentication method is implemented. In this classification, we consider the most common IoT architecture which consists in three layers • Authentication factor: Depending on the number of factors considered for authenticating a device (section 3.2.1), a solution can be classified as a singlefactor authentication (SFA), a two-factor (2FA) or a multi-factor authentication (MFA). For example, if only the user password is used, the authentication scheme is called single-factor scheme. A two-factor authentication scheme might use user password and smart card to authenticate users. A Multi-factor authentication might use additional factors such as location information, biometric, etc. [START_REF] Kumar Das | Taxonomy and analysis of security protocols for internet of things[END_REF] • User Access: Different methods are used for user access; Some use the public key cryptography and can be either based on the use of digital certificates (Certificate-based) or only relying on the public/private key pair (Certificate-Less), other solutions rely on the use of Pre-Shared keys. Hybrid solutions mixing both uses also exist.

• Cryptographic algorithms: The cryptographic algorithms used during the authentication phase can also be used as a classification criterion. Some authentication mechanisms rely solely on symmetric algorithms given their lowoverhead compared to asymmetric algorithms. Within this category of solutions, one can distinguish between authentication schemes using traditional symmetric algorithms and those using lightweight symmetric algorithms which were introduced for constrained devices such as IoT objects. Another category of solutions relies only on asymmetric cryptography during the authentication phase, and can be further divided into those using traditional algorithms (e.g., RSA) and those relying on Elliptic-Curve Cryptography (ECC). A third category of solutions rely on the use of hash functions given their lightweight nature. Finally, hybrid solutions mixing two or all the above mentioned methods also exist.

• Authentication procedure: The authentication procedure can be one-way, two-way or tripartite three-way authentication. In one-way authentication, only one of the two entities wishing to communicate will authenticate itself to the other entity. In a two-way authentication, the two entities wishing to communicate will verify each other. This type of authentication is also called mutual authentication. In three-way authentication, the two communicating entities are authenticated using a third entity called central authentication.

The central entity authenticates the two entities using mutual authentication.

• Authentication architecture: Two Authentication architectures are used to process the authentication procedure, centralized and distributed (decentralized) architecture. In a distributed architecture, the two communicating entities are authenticated using a straight authentication. In a centralized architecture, the communicating entities are authenticated using a third trusted centralized entity, which shares and manages the credentials between the entities for the authentication procedure. In both architectures, the structure can be hierarchical or flat. Hierarchical used different levels and flat has no level structure. [START_REF] Agrawal | A survey on the authentication techniques in internet of things[END_REF]

Analysis of IoT Authentication Schemes

Given the high importance of authentication in the IoT general security context, it was extensively addressed in the recent years [START_REF] Zhao | A survey on the internet of things security[END_REF][START_REF] Amine Ferrag | Authentication protocols for internet of things: a comprehensive survey[END_REF][START_REF] Atwady | A survey on authentication techniques for the internet of things[END_REF][START_REF] Wazid | Authentication in cloud-driven iot-based big data environment: Survey and outlook[END_REF]28] . This section provides a survey of the most known IoT authentication schemes in the literature.

IoT

Centralized authentication schemes

As they name indicates, centralized authentication schemes allow the devices information to be stored on one host, minimizing the risk of security loopholes.

The authors in [START_REF] Kothmayr | Dtls based security and two-way authentication for the internet of things[END_REF] proposed an implementation of two-way authentication security scheme for the Internet of Things (IoT) based on existing Internet standards, Datagram Transport Layer Security (DTLS), with IEEE 802.15.4 used for the physical and Media Access Control layer, and UDP for the Transport layer. In this approach, authors considered three security goals, authenticity, integrity and confidentiality. The authentication is performed during a fully authenticated DTLS handshake and based on an exchange of X.509 certificates containing RSA keys. One of the main limitations of such solutions is the use of "heavy" X.509 certificates and their overhead in the context of IoT.

In [START_REF] Jan | A robust authentication scheme for observing resources in the internet of things environment[END_REF], authors proposed a lightweight mutual authentication scheme which validates the identities of the participating devices before engaging them in communication for the resource observation. The proposed scheme had less connection overhead and provides a robust defense solution to combat various types of attacks. The authors chose the Constrained Application Protocol (CoAP) [START_REF] Shelby | Constrained application protocol (coap). RFC 7252[END_REF] as the underlying application layer protocol for enabling communication among various physical objects, which is based on the conditional resource observation. Authors also proposed to add security features for the authentication in the CoAP. The proposed authentication scheme is based on DTLS, which was not designed to be implemented in constrained environments. Moreover, DTLS use UDP as a transport protocol which is considered as unreliable, and using certificate is not apt for constrained devices. Finally, although the proposed scheme is an effective solution against eavesdropping, key fabrication, resource exhaustion and denial of service attacks. However, it is not efficient against Sybil attack.

A secure and efficient authentication and authorization architecture for IoTbased health-care systems, is proposed in [START_REF] Sanaz | Sea : A secure and efficient authentication and authorization architecture for iotbased healthcare using smart gateways[END_REF]. The authors proposed an architecture relying on the certificate-based DTLS handshake protocol. This architecture exploits distributed smart e-health gateways to perform authentication and authorization of remote end-users securely and efficiently on behalf of medical sensors. A gateway supports different wireless protocols and inter-device communication and has a local database, where it can temporarily store medical sensors' information and provide local processing of medical sensors'. The smart e-health gateway and the remote end-user must have sufficient resources in order to perform various heavyweight security protocols as well as certificate validation efficiently. The proposed architecture has one major drawback, which is inherent in the centralized nature of the architecture: the denial of service attacks. The server can be compromised easily in a DoS attack, which allows an attacker to access and retrieve all available stored data in the constrained medical domains. Another drawback is the issue of privacy in IoT-based healthcare applications [START_REF] Fadele Ayotunde Alaba | Internet of things security: A survey[END_REF]. In [START_REF] Kalra | Secure authentication scheme for iot and cloud servers[END_REF], the authors proposed a secure Elliptic Curve Cryptography (ECC) based mutual authentication protocol for secure communication of embedded devices and cloud servers, using Hyper Text Transfer Protocol (HTTP) cookies. ECC-based algorithms give better security solutions in comparison to other Public Key Cryptography(PKC) algorithms due to small key sizes and efficient computations. Although the authors claimed a low computation cost, but the embedded device needs to be configured with TCP/IP protocol stack in order to act as a HTTP client, with HTTP being a heavy protocol to be used for the constrained devices. Moreover, the proposed scheme is susceptible to offline password guessing and insider attacks and it does not achieve device anonymity, session key agreement, and mutual authentication [START_REF] Kumari | A secure authentication scheme based on elliptic curve cryptography for iot and cloud servers[END_REF].

The authors of [START_REF] Schmitt | Chapter 13 -tinyto: two-way authentication for constrained devices in the internet of things[END_REF] proposed a protocol , called TinyTo, to ensure the endto-end security with two-way authentication based on Public Key infrastructure (PKI). In the authentication phase, a number of handshake messages are exchanged between the end device and the server, for generating a session key to be used for upcoming communication. The main drawback of the proposed solution is the high memory consumption for certificate authority (and other PKI-related) operations. Moreover, the authors did not address the security of their scheme against replay and denial of service attacks [28]. in [START_REF] Hernández-Ramos | Toward a lightweight authentication and authorization framework for smart objects[END_REF], the authors proposed set of lightweight authentication and authorization mechanisms in order to support smart objects during their life cycle. During the authentication phase, the device authenticates using Extensible Authentication Protocol (EAP) with a Remote Authentication Dial-In User Service (RADIUS) server, and an authorization server which takes authorisation decisions, to generate authorisation token for the device.The proposed authentication approach is based on EAP over LAN (EAPOL) for security bootstrapping in order to establish keys for DTLS. This constitutes an overload for the constrained device with the necessity to implement and execute the EAPOL protocol in addition to DTLS, an approach which seems to be not well adapted to constrained devices [START_REF] Raza | S3k: Scalable security with symmetric keys-dtls key establishment for the internet of things[END_REF]. The authors of [START_REF] Khemissa | A lightweight authentication scheme for ehealth applications in the context of internet of things[END_REF] proposed a lightweight authentication scheme based on nonces and Keyed-Hash message authentication (HMAC) function to check the integrity of authentication exchanges in healthcare IoT systems. This scheme propose a mutual-authentication between sensors and base station (BS). In [START_REF] Esfahani | A lightweight authentication mechanism for m2m communications in industrial iot environment[END_REF], the authors proposed a lightweight authentication mechanism, based only on hash and XOR operations, for M2M communications in Industrial IoT environment. The proposed mechanism is characterized by low computational cost, communication and storage overhead, while achieving mutual authentication, session key agreement and device's identity confidentiality.

The One Time Password (OTP) mechanisms took a lot of attention in the applied cryptography literature [START_REF] Aravindhan | One time password: A survey[END_REF][START_REF] Mulliner | Sms-based one-time passwords: attacks and defense[END_REF]. Multiple works highlighted the different strengths and weaknesses of the different schemes used for OTP. The authors of [START_REF] Boneh | Twenty years of attacks on the rsa cryptosystem[END_REF] showed how RSA based cryptosystems were broken. They also proved that RSA-based OTP systems and SecureID token algorithms are vulnerable to numerous attacks. Florencio et al. [START_REF] Florêncio | One-time password access to any server without changing the server[END_REF] proposed an approach which allows OTP access to any web account, without any change to the server or the client, and without storing user credentials in the cloud. However, their solution relies on a set of pre-shared keys and its implementation is very complex, which makes it suitable only for limited contexts. Lee et al. [START_REF] Lee | Insider attack-resistant otp (one-time password) based on bilinear maps[END_REF] proposed an insider attack-resistant OTP scheme based on bi-linear pairing operation. However, this approach is also computationally complex and it is not suited for the IoT environment. In [START_REF] Goyal | The n/r one time password system[END_REF] the authors proposed an OTP scheme that calculates an OTP by relying on the previous OTP. However, this scheme suffers from initialization problems. Although OTP has been extensively studied over the years, there are only few studies that have investigated the integration and usage of OTP in IoT due to objects' constraints. Nonetheless, currently, the objects are becoming increasingly powerful in terms of their resources thereby removing some of the limitations associated with OTP use. In [START_REF] Kumar | Secure seed-based sturdy otp via convenient carry-on device[END_REF], the authors proposed Sturdy OTP (S-OTP), a connection-less authentication mechanism for mobile devices which does not rely on SMS. S-OTP's operation incurs high overheads because it requires a large number of communication exchanges. Furthermore, it is adapted only for smart phones. Shivraj et al. [1] proposed an efficient lightweight OTP scheme based on Identity Based Elliptic Curve Cryptography (IBE-ECC). However, this approach relies on a simple Diffie-Hellman key exchange and pre-shared keys. Moreover, during the key generation, the problem of the point at infinity can occur because there is no method that can prevent it. In [2] [153], the authors proposed a robust and lightweight mutual authentication protocol, designed especially for IoT limited capacity devices. Their personalization mechanism limits damages if one device is corrupted thereby protecting the rest of the device's cluster. However, their approach is based on an asynchronous OTP type, which requires challenge/response management operations by the server.

Decentralized authentication schemes

There have been numerous works that tackled authentication and authorization in IoT in a decentralized way. In particular, in the last years, many works aimed the proposal of IoT security systems that rely on blockchains. Indeed, blockchain usage provides a decentralized architecture, anonymity of users if wished, tamperproof record of data transactions and highly trusted data verification [START_REF] Dorri | Blockchain for iot security and privacy: The case study of a smart home[END_REF].

Dorri et al. [START_REF] Dorri | Blockchain for iot security and privacy: The case study of a smart home[END_REF][155] propose a blockchain based architecture for IoT. Their approach relies on three interconnected blockchains: a local blockchain (private) for each use case, a shared blockchain (private) and an overlay blockchain (public).

Even if the solution resolved the problem of identification, it still has multiple shortcomings like (1) each operation requires at least 8 network communications which can flood quickly the whole communication medium in case of high activity of nodes; and (2) the local blockchains are not distributed but centralized which is contrary to its principle because it can limit its power and availability.

Hardjono et al. [START_REF] Hardjono | Cloud-based commissioning of constrained devices using permissioned blockchains[END_REF] propose ChainAnchor, a privacy-preserving method for commissioning an IoT device into a cloud ecosystem. ChainAnchor supports device-owners being remunerated for selling their device sensor-data to service providers, and allow device-owners and service providers to share sensor-data in a privacy-preserving manner. However, Its goal is the full anonymity of the participating devices and is not adapted to numerous IoT use cases where the identification is needed. In [START_REF] Hammi | BCTrust: A decentralized authentication blockchain-based mechanism[END_REF], the authors propose a robust, lightweight and energy-efficient security protocol for the WSN systems that rely on blockchains. However, this work was proposed for OCARI [2], a very specific WSN architecture. The authors of [START_REF] Khalid | A decentralized lightweight blockchainbased authentication mechanism for iot systems[END_REF] propose a decentralized authentication and access control mechanism for lightweight IoT devices, which can be applicable to a large number of scenarios. The proposed mechanism is based on the technology of the fog computing and the concept of the public Blockchain. The main limitation of the proposed scheme is the huge amount of energy consumption required by the Proof of Work (PoW) consensus mechanism to verify each block. The authors of [START_REF] Mohanta | Decauth: Decentralized authentication scheme for iot device using ethereum blockchain[END_REF] proposed a distributed authentication system named DecAuth (Decentralized Authentication) using the Blockchain technology The implementation of the proposed authentication is done on Ethereum platform. The authors also provided an analytical security evaluation (no formal security analysis has been done). In [START_REF] Won | Decentralized public key infrastructure for internet-of-things[END_REF], the authors proposed a decentralized Public Key Infrastructure (PKI) for IoT, called IoT-PKI, which utilizes distributed nodes in a blockchain network instead of Certification Authorities, in order to addresses scalability issues of traditional PKIs. IoT-PKI protects against key leakages at device manufacturers since it allows the owners of IoT devices to manage the certificates of their IoT devices. A blockchain-based Trust and Reputation System (TRS) for IoT access control is proposed in [START_REF] Dharma Putra | Trust management in decentralized iot access control system[END_REF]. The proposed system progressively evaluates and calculates the trust and reputation score of each participating node to achieve a self-adaptive and trustworthy access control system. Trust and reputation are explicitly incorporated in the attribute-based access control policy, so that different nodes can be assigned to different access right levels, resulting in dynamic access control policies. The authentication of the different IoT nodes is achieved in the proposed system through the use of public key cryptography (i.e. digital signature). The solution was implemented in a private Ethereum blockchain, and benchmarked using various performance metrics to highlight its applicability for IoT contexts.

A decentralized blockchain-based security framework for administering security in WSN-IoT communications is presented in [START_REF] Febin Sheron | A decentralized scalable security framework for end-to-end authentication of future iot communication[END_REF]. The framework achieved both device and network level of security through device verification and message authentication. It uses tree-based hash along with conventional cryptography to retain communication security. It also use hash pruning to reduce the computation complexity during the message authentication process, in order to adapt to the resource constraint of the IoT devices/nodes. The authors in [START_REF] Dwivedi | A decentralized privacy-preserving healthcare blockchain for iot[END_REF] presented the main issues related to the use of blockchain with IoT devices (computation and bandwidth overhead). They proposed a framework of modified blockchain models suitable for IoT devices that rely on their distributed nature and other additional privacy and security properties of the network. The framework, mainly addressing healthcare applications, uses a hybrid approach that combines public key cryptography, blockchain and many other lightweight cryptographic primitives. It aims to develop a patient-centric access control for electronic medical records, capable of providing security and privacy.

A fully decentralized anonymous authentication protocol is presented in [START_REF] Alcaide | Anonymous authentication for privacy-preserving iot target-driven applications[END_REF], which aims at encouraging the implementation of privacy-preserving IoT target-driven applications. The system is set up by an adhoc group of decentralized founding nodes. It does not rely on any central organization, not even for the set-up phase, which means that the parameters required by the system are not generated centrally but cooperatively amongst all the nodes in the system. The authors of [START_REF] Xu | Blendcac: A blockchain-enabled decentralized capability-based access control for iots[END_REF] proposed BlendCAC, a blockchain-enabled decentralized capability-based Access Control for IoT security. The BlendCAC aims at an effective access control processes to devices, services and information in large scale IoT systems. The authentication part of the framework relies on public key cryptography. During a registration phase, all entities must create at least one main account defined by a pair of keys to join the blockchain network. Each account is indexed by its address that is derived from his/her own public key. Account address (which is unique) serves as a virtual identity for the identity authentication and management.

The authors of [START_REF] Angin | A blockchain-based decentralized security architecture for iot[END_REF] proposed a blockchain-based data security architecture for IoT networks. Their work differs from other blockchain-based solutions in that it proposes a hierarchical structure of blockchain (blockchain of blockchains) to overcome the resource problems in IoT. Nevertheless, the computational complexity is still high regarding the consensus algorithms and other blockchain-related operations. Another blockchain-based solution is presented in [START_REF] Moinet | Blockchain based trust & authentication for decentralized sensor networks[END_REF], to ensure validity and integrity of cryptographic authentication data and associate peer trust level, from the beginning to the end of the sensor network lifetime. The model uses the blockchain to store decentralized authentication and node trust information. This model is evolutive, adaptative and ensure reliability over time. The authors of [START_REF] Zoubir Ourad | Using blockchain for iot access control and authentication management[END_REF] proposed a blockchain-based solution for authentication and secure communication to IOT devices. The authentication module is based on the Ethereum smart contracts. The proposed solution is promising regarding its resistance against different types of attack but it is still not evaluated in terms of scalability especially with regard to the computational overhead related to blockchain operations. The authors of [3] proposed bubbles of Trust, an efficient decentralized authentication mechanism. The scheme creates secure virtual zones (bubbles) where things can identify and trust each other. The communication (transactions) between different objects is controlled and validated by the public blockchain implemented using Ethereum.

IoT Authentication Challenges and Open Issues

The literature review led to the identification of a number of open-issues that need to be addressed to fill the gaps in the existing authentication schemes; some of these issues might have been addressed in the literature but in an incomplete way:

1. Most of the existing authentication schemes do not consider the additional requirements of the IoT systems (e.g., confidentiality); their role "stops" once the authentication is achieved and thus require additional solutions and technologies to be deployed, which introduces in some cases high computational costs. A clear example is the exchange of keys for confidentiality and integrity reasons; the existing authentication schemes which includes some key exchange don't help in exchanging the additional keys (confidentiality or integrity) and thus the key exchange for such keys needs to start from zero.

2. In general, the gateway and its related nodes must use the same authentication method (e.g., user access, specific algorithms, etc.). This lack of support for heterogeneous systems is a main limitation since, in numerous cases, the network is composed of different types of devices, each with its computation and energy capacities. For example in a smart home, if some objects, such as heat sensors, can only use PSK-based authentication, since symmetric cryptography is less costly than other methods [START_REF] Wang | Comparing symmetrickey and public-key based security schemes in sensor networks: A case study of user access control[END_REF], other more powerful objects, can easily use public key cryptography based methods. Nonetheless, they still have to use PSK based on the homogeneity constraint imposed by the gateway.

3. Each device is often associated to one gateway. However, in some use cases, some nodes can have mobility features (a sensor whose location is changed or any other mobility case). To the best of our knowledge, nodes that have mobility features from a gateway to another are not authenticated at this gateway level but using a central server/service accessible through Internet (e.g., Intelligent Transportation Systems). This lack of efficient mobility support in authentication schemes costs in term of performance, since (1) realizing authentication at the gateway level can be less time consuming, and (2) relying on centralized services in a large and continuously expanding environment such as IoT constitutes a real bottleneck.

4. Many of the authentication schemes includes a compulsory initialization phase for newly added devices where a physical intervention on the gateway is needed to set up and configure the credentials of these devices (e.g., installing PSKs, public keys) which is not a scalable choice.

5.

The architecture-dependent nature of authentication schemes which makes them in-adaptable to other IoT architectures.

6. The centralized nature of some authentication systems which creates single or few points of failure and makes the scheme not scalable.

7. The use of traditional asymmetric algorithms or X.509 certificates which requires high computational cost for resource-constrained IoT objects.

Conclusion

This chapter drew the general IoT security context and shed the light in particular on the IoT authentication field. It analyzed the general security objectives, issues and challenges for the Internet of things, and focused on those related to the authentication objective through a comprehensive survey of the most important research works in the literature. The literature review led to the identification of a number of open-issues that need to be addressed to fill the existing gaps in the literature.

The next chapter presents the first contribution of the thesis which is a lightweight IoT Authentication Scheme based on Elliptic Curve Cryptography (ECC).

Introduction

The previous chapter shed the light on the multiple risks and privacy issues raised by the increasing deployment of IoT technologies. Due to hardware limitations of IoT objects, implementing and deploying robust and efficient security and privacy solutions for the IoT environment remain a significant challenge. One-Time Password (OTP) is an authentication scheme that represents a promising solution for IoT and smart cities environments. In the first contribution of the thesis, we extend the OTP principle and propose a novel approach of OTP generation that relies on Elliptic Curve Cryptography (ECC) and Isogeny in order to ensure IoT security. We evaluate the efficacy of our approach with a real implementation and compare its performance with two other approaches namely, Hash Message Authentication Code (HMAC-based) One Time Password (HOTP) and Time-based One Time Password (TOTP). The performance results obtained demonstrate the efficiency and effectiveness of our approach in terms of security and performance. This chapter provides the background information needed for understanding the contribution by introducing the cryptographic elements used in the proposed scheme (Elliptic Curves, Isogeny, OTP and its variants). Then, it provides an overview of the proposed authentication protocol. In addition, it describes in details the performance evaluation framework and presents and analyzes the obtained results with a comparison to related works.

Cryptography Elements

This section presents the cryptography background needed for the rest of this thesis. In particular, it focuses on the Elliptic Curve Cryptography (ECC), a technique based on elliptic curve theory that aims to create faster, smaller, and more efficient cryptographic keys. The second part of this section introduces the concept of One-Time Password (OTP), which is as its name indicate a password to be used once (e.g., one login session or one transaction) on a digital system. The advantage of OTP is that it avoids a number of shortcomings that are associated with traditional (static) password-based authentication. Two OTP-generation algorithms are presented: HMAC-based OTP (HOTP) and Time-based OTP (TOTP). The understanding of ECC and OTP is necessary to understand our first contribution.

Elliptic Curve Cryptography (ECC)

Cryptographic System (also known as cryptosystem) can be classified into symmetric (or secret-key) and asymmetric (or public-key) cryptosystem. In symmetric cryptosystem, the same key is used for encryption and decryption of the messages. This key needs to be shared and kept secret between the communicating parties. This constitutes the main issue for symmetric cryptosystem: the key distribution over an insecure channel. In addition, the number of keys to be shared increases quadratically with the number of users in the system. In asymmetric cryptosystem, each communicating party owns a pair of keys; one private only known by the owner and a public key that is made public. This solves the problem of key distribution and management for symmetric cryptosystem. One of the main issues for asymmetric cryptography is the large key sizes needed to achieve a certain security level1 compared to symmetric algorithm. For instance, the famous Rivest-Shamir-Adleman (RSA) asymmetric algorithm needs to work with keys of 3072 bit length to offer the same security level of the Advanced Encryption Standard (AES) symmetric algorithm operating with 128-bit keys. Elliptic Curve Cryptography (ECC) is a member of the family of established publickey cryptographic algorithms. ECC provides the same level of security as RSA with considerably smaller key sizes (approximately 160-256 bits vs. 1024-3072 bits) [START_REF] Paar | Understanding Cryptography -A Textbook for Students and Practitioners[END_REF]. This means that, for the same level of security, significantly smaller parameters can be used in ECC than RSA [START_REF] Mahto | Rsa and ecc: A comparative analysis[END_REF]. For example, to achieve 112 bits of security level, RSA algorithm needs a key size of 2048 bits, while ECC needs a key size of 224 bits [START_REF] Barker | Nist special publication 800-57 part 1[END_REF] as shown in Table 4.1. The importance of ECC, particularly in IoT context, is that the smaller key size (with high security level) is synonymous to lower computing power and battery resource usage, which is inline with the challenges for IoT-based solutions.

y 2 = x 3 + ax + bmodp (4.1)
along with an imaginary point at infinity, denoted O2 , where a, b denoted as the coefficients of the curve ∈ Z p , and 4a3 + 27b 2 = 0 mod p

E = {(x, y) : y 2 = x 3 + ax + b} ∪ {O}
The following operations are defined for the elements (points) of the elliptic curve:

1. Addition: Given P , R two points on the EC. To find a point Q/ P + R = Q, draw a line joining P & R on the EC, this line cuts the curve in a point Q (also denoted as -Q). Q is the symmetric of Q with respect to the x-axis (Figure 4.1 3 ).

2. Point doubling: Given P , point doubling means finding the point Q = 2P = P + P . In this case, the same "geometrical" operation is done but the secant becomes a tangent ( • The prime number p that indicates the order of the field F p .

• The value a used in the curve equation.

• The value b used in the curve equation.

• The generator G of the subgroup.

• The order n of the subgroup generated by G.

An additional domain parameter h can also be used to define an elliptic curve which represents the number of points on the elliptic curve divided by n. Hence, the EC is generally represented by the following tuple (p, a, b, G, n, h) The elliptic curves commonly used in cryptographic applications are those recommended by the National Institute of Standard and Technology (NIST) [START_REF] Chen | Sp 800-186-draft: Recommendations for discrete logarithm-based cryptography: Elliptic curve domain parameters[END_REF].

The security of the Elliptic curve cryptography is based on their Discrete Logarithmic Problem (DLP) called ECDLP.

Cryptographic Operations and Protocols using Elliptic Curves

The generation of key pair on Elliptic curve is simple: The private key is a random number (d ≤ n). The public key is a point in the elliptic curve, obtained by multiplying the private key d with the generator point G in the curve. "Traditional" cryptographic algorithms were also "adapted" to be used for Elliptic Curves. A typical example is the Elliptic Curve Diffie-Hellman (ECDH) key exchange protocol. The ECDH protocol works as follows (Figure 4.2):

1. Sender and receiver agree on parameters (p, a, b, G, n, h).

2. Sender and receiver generate their private key d S and d R , which are random integers less than n.

3. The public keys for sender and receiver are respectively e S = d S G and e R = d R G.

4. Sender and receiver exchange their private keys.

5. Sender computes the point K on the EC with coordinates (x K , y K ) = d S e R .

6. Receiver computes the point L on the EC with coordinates

(x L , y L ) = d R e S . 7. Given d S e R = d S d R G = d R d S G = d R e S , Hence, K = L and x K = x L .
8. The shared secret is x K .

Additional EC-based cryptographic schemes include Elliptic Curve Digital Signature (ECDSA) Algorithm [START_REF] Johnson | The elliptic curve digital signature algorithm (ecdsa)[END_REF], Elliptic Curve Integrated Encryption Scheme (ECIES) [176], Edwards-curve Digital Signature Algorithm (EdDSA) [START_REF] Josefsson | Edwards-Curve Digital Signature Algorithm (EdDSA)[END_REF], etc.

Isogeny on Elliptic Curves

To define an Isogeny, one has first to define morphism between Elliptic Curves and some properties: Definition 3. Let E 1 and E 2 be two Elliptic Curves defined on the same field. A morphism [START_REF] Guillot | Courbes elliptiques: une présentation élémentaire pour la cryptographie[END_REF] or a rational application of E 1 toward E 2 is an application t:

t : E 1 -→ E 2 P -→ t(P) = (r(P); s(P)) (4.3)
where r and s are rational functions4 . Property 1: every Isogeny is a morphism of algebraic groups. which means that for every point P and Q of E 1 , we have:

ϕ(P + Q) = ϕ(P ) + ϕ(Q) and ϕ(-P ) = -ϕ(P ) (4.4)
An Isogeny can always be reduced to the form described by Equation 4.5.

ϕ(x, y) = (r(x), ys(x)) (4.5)

There are numerous types of Isogeny such as Isogeny of Translation and Isogeny of Frobenius and others. In this work, we consider the Isogeny of Translation, which can be defined by the Equation 4.6.

[n] :

E -→ E K -→ nK = (r n (x), ys n (x)) (4.6)
By considering F (x) as the equation of the Elliptic Curve (Equation 4.1), we obtain r n and s n as described by Equation 4.7.

                     r 2 (x) = F (x) 2 4F (x) -2x s 2 (x) = -F (x) 2F (x) (r 2 (x) -x) -1 = -F (x) 2F (x) ( F (x) 2 4F (x) -3x) -1 r n+1 (x) = F (x)[ sn(x)-1 rx(x)-x ] 2 -r n (x) -x s n+1 (x) = -[ sn(x)-1 rx(x)-x ](r n+1 (x) -x) -1 (4.7)

One Time Password (OTP)

A One-Time Password (OTP), as its name indicates, is a password that is used only once and then "thrown away"; in that sense, it is a password valid for only session. OTP is mostly used for multi-factor authentication. Its main advantage is that it avoids the shortcomings commonly associated with traditional (static) password-based authentication. This section presents two OTP-generation algorithms: HMAC-based OTP (HOTP) and Time-based OTP (TOTP). Both algorithms require the use of tokens (hardware-or software-based) capable to generate the OTP, which can be verified by a validation service based on a shared secret.

HMAC-Based One-Time Password (HOTP)

HMAC-Based One-Time Password [4], is an algorithm to generate one-time password values, based on Hashed Message Authentication Code (HMAC). HOTP is one of the standards developed by the Initiative for Open AuTHentication (OATH), an international collaboration group which aims to promote strong authentication in open-source. The HOTP algorithm is based on:

• an increasing counter value

• a static symmetric key known only to the token and the validation service

As the output of the HMAC-SHA-1 [START_REF] Dr | HMAC: Keyed-Hashing for Message Authentication[END_REF] calculation is 160 bits, this value must be truncated to something that can be easily entered by a user.

HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))

Where:

• Truncate represents the function that converts an HMAC-SHA-1 value into an HOTP value.

• The Key (K), the Counter (C), and Data values are hashed high-order byte first.

Time-Based One-Time Password (TOTP)

Time-Based One-Time Password (TOTP) [5] appeared in 2011. It is also part of the standards developed by OATH. It is based on HOTP, with the only difference that the factor of change is time and not a counter. It is based on the "POSIX" time. Indeed, all processors have an internal clock implementing directly or indirectly "POSIX time". This avoids the synchronization problem because all the clocks (that of the OTP generator and the server) are synchronized with perhaps a tiny offset. The initial sharing of the "secret" between the two entities remains the same. However, the generation of the OTP will be done with the couple "secret" and time (or more precisely a "timestamp") over a defined period (generally 30 to 60 seconds). This means that TOTP uses time incrementally and that each OTP is valid for the duration of the time interval. Basically, we define TOTP as TOTP = HOTP(K, T), where T is an integer and represents the number of time steps between the initial counter time T 0 and the current Unix time. More specifically, T=(Current Unix time -T 0 )/X, where the default floor function is used in the computation. For example, with T 0 = 0 and Time Step X = 30, T = 1 if the current Unix time is 59 seconds, and T = 2 if the current Unix time is 60 seconds.

Scheme Overview

This section presents the ECC-based authentication scheme, which consists of two main phases: (1) the initialization phase or pre-authentication phase in which the parameters of the authentication protocol are agreed upon between the object (denoted as Obj ) and the management server (detoted as S ), and (2) the operation phase in which the protocol is "in action". The algorithm of the proposed authentication scheme is described in Algorithm 1 and illustrated in Figure 4.3.

Initialization Phase

When a new object Obj is added to the system, Obj and S agree on a Pre-Shared Key (P SK), and on P; a generator point of the Elliptic Curve E, as defined in Equation 4.2. We assume that objects are protected against physical attacks, where an attacker can retrieve some/all of the object's secrets such as private or shared keys. Numerous methods exist to protect them from such attacks by making these information readable only by the device itself [180] [START_REF] Bong | Securing the Smart Grid with Hardware Security Modules[END_REF]. Although these techniques are more expensive compared with traditional methods but they guarantee the protection of keys. Consequently, our approach is resilient against PSK theft that can be achieved through: (1) network communication cryptanalysis (since a new key is used for each communication) and ( 2) physical attacks by using dedicated methods as described above.

Q i = n i P.
3. Obj and S agree on the secret K = n 1 n 2 P. We recall that K is a point of the curve E, which coordinates are denoted as x k and y k ; K(x k , y k )

For each communication session only one ECDH is needed. The next step is to derive the OTP from K. This is done by transforming K, while ensuring that K will not have the point at infinity of E as image after this transformation. This is done using Isogeny and in particular, the Isogeny of Translation for its simplicity. Other Isogeny applications will be considered in future works. The isogeny of translation will provide the values of r n and s n as indicated in equation 4.7. The next step is to compute an intermediate value that we denote Z 2 as described by Equation 4.8, for n = 2

Z n = r n ⊕ s n (4.8)
Then, an HMAC-SHA5 algorithm is applied to Z using the PSK as described by Equation 4.9, for n = 2

OT P = F irstBytes(HM AC -SHA(Z n ), P SK) (4.9)
The function HMAC-SHA() can be replaced by any known hash function. Finally, the first bytes of the hash function's result are retrieved according to the OTP or key size needs. For instance, if 8 digits are needed for the OTP then the first 4 bytes are used. The first OTP (OT P ) is dedicated to the authentication. Indeed, Obj sends OT P to S. In turn, S repeats the same steps and computes the OT P using K for n = 2. It compares the computed OT P and the received one. If they match, then, it sends an authentication success result to Obj.

Once Obj is authenticated, it generates a new key for each communication (for signature or encryption) by applying the Isogeny on incremented values of n i.e. n = 3, 4, ... as described by Equation 4.7. After getting the values of r n and s n , Z n is computed (as for OT P ) according to Equation 4.8 and then a new OTP named OT K is computed according to Equation 4.9. According to the needs of the cryptographic operation's key size (signature or encryption according to the used algorithm), the first bytes of the generated OT K are used to compose the new key.

Performance Evaluation

The performance evaluation of the proposed scheme is done as follow:

1. Evaluation of the performance for different scheme parameters namely, the Elliptic Curve type and the HMAC algorithm. This is important to tune the parameters of the proposed protocol.

2. Evaluation of the performance on different types of devices using the parameters showing the best performance results.

3. Comparison of the performance with other existing approaches.

Evaluation Framework

During the experiments, we used different types of devices: a Raspberry Pi and a Laptop as potential objects (Obj ) and another machine as a server (S ). We implemented our OTP-based protocol in Java using BouncyCastle6 library for Elliptic Curve functions. We are aware about the fact that the results obtained depend partially on the used language (Java) and will be different when using other languages (C for example). However, the goal of our study is to compare the performance of our protocol for different parameters with other existing works implemented in the same way to achieve fair comparison. We evaluate only the OTP generation time, and not the signature or encryption time. More precisely, each evaluation covers the following scenarios:

1. Obj generates OT P and sends it to S. 5. S checks if the received OT K matches with the calculated OT K .

6. The last three steps (3, 4 and 5) are repeated continuously until the required number of OT Ks (from 10 3 to 10 6 , according to the experiment) is reached.

Tuning the protocol parameters

To find which parameters are best suited for our protocol, we conducted multiple experimental tests where we varied the HMAC algorithm and the Elliptic Curve used. We used the following Elliptic Curves: Secp192r1, Secp256r1, secp521r1 [START_REF] Turner | RFC 5480: Elliptic Curve Cryptography Subject Public Key Information[END_REF] [183], BrainpoolP192r1, brainpoolP256r1 and brainpoolP512r1 [START_REF] Lochter | RFC 5639: Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation[END_REF]. Our experiments used Secp and Brainpool curves because they are the most popular in security standards 7 . For each Elliptic Curve used, we evaluate the connection time for the following three HMAC algorithms: HMAC-SHA18 , HMAC-SHA256 and HMAC-SHA512.

We present the different results obtained from the evaluation tests that cover the average generation time of an OTP. For each chosen Elliptic Curve and hash algorithm, we performed five experimental tests where we vary the number of connections from 10 2 to 10 6 . Each result is the average of at least 15 experimental tests. In other words, if we consider the case of 10 2 connections, in order to obtain the point present on the plot (Figure 4.4 and Figure 4.5):

1. Conduct an experiment where 10 2 connections are made.

2. Compute the average generation time.

3. Repeat the same test 14 times where the average connection time is computed for each test.

4. Compute an average value over the 15 results obtained. The latter represents the final result for this case. The same procedure is repeated for the other experimental tests (from 10 3 to 10 6 ).

Figure 4.4 represents the results obtained for the Secp evaluated curves 9 . The results describe the OTP average generation time without considering the time needed for the ECDH exchange. For all the experimental tests, the average connection time decreases when the number of connections increases and begins to stabilize from 10 5 connections. This is due to caching and computation optimization techniques used by Java (as most of the programming languages). We make the following observations based on the results obtained:

• For all the tests conducted, HMAC-SHA512 always gives the worst performance.

• For the test with Secp521r1 curve (Figure 4.4.c), HMAC-SHA256 yields the best performance results.

• The results obtained with HMAC-SHA1 and HMAC-SHA256 are very close with the difference being about is less than 10 microseconds (µs).

• For Secp192r1 (Figure 4.4.a), HMAC-SHA256 yields better performance results for the experimental tests conducted on [10 2 ..10 3 ] connections, but HMAC-SHA1 yields better results for the rest.

• For Secp256r1 (Figure 4.4.b), HMAC-SHA256 yields better performances for the tests conducted on 10 2 connections, but HMAC-SHA1 realizes better results for the rest. To compare the different curves, we considered the tests involving 10 6 connections and we used HMAC-SHA1 as the hash algorithm. We note that Secp192r1 gives the best performances with an average generation time of 45.95 µs. Secp256r1 yields 58.26 µs whereas Secp521r1 yields the worst result with 157 µs. As for the last case, to compare results obtained with the different curves we considered the case of 10 6 connections using the HMAC-SHA1 algorithm. We note that Brainpoolp192r1 gives the best performances with 46 µs, Brainpoolp256r1 yields 58 µs and Brainpoolp512r1 gives the worst case with 148.33µs.

The time taken for the ECDH exchange also depends on the curve used. Table 4.3 presents the average times of ECDH exchanges obtained where we note the following ranking:

1. Secp192r1 with an average time of 576020 µs; 2. Secp256r1 with 0.577100 sec 3. Brainpool192r1 with 0.580653 sec 4. Brainpool256 with 0.586569 sec 5. Secp521r1 having 0.606800 sec, and 6. Brainpool512 with 0.630071 sec.

Curve

Secp Brainpool 192r1 256r1 521r1 p192 p256 p512 Time (sec) 0.576020 0.577100 0.606800 0.580653 0.586569 0.630071

Table 4.3 -Average time of ECDH exchange

To compare the overall performance of our proposed protocol regarding both curves Secp and Brainpool, we note that both EC families achieve almost similar results. The time needed for the ECDH exchange is more important than the connection time, which makes the curve choice the first factor to consider. Thus, the Secp192r1 curve is best suited for our proposed protocol. For the rest of this chapter, all the results presented have been obtained through experiments using Secp192r1 and HMAC-SHA256 as parameters because of their better performances in comparison to other parameters.

Performance evaluation

Table 4.4 shows the average and standard deviation (SD) of the obtained results over 10 3 realized experimentations using Secp192r1 and HMAC-SHA256 as parameters.

The average time needed to compute an OTP is 108.75 µs for the Laptop. The Raspberry Pi needs more time with 1130 µs. However, in both cases the standard deviations are low which demonstrates the stability of the computations. For energy consumption, the CPU of the Raspberry Pi consumes 52.57 mW to compute an OTP whereas the Laptop consumes only 10.86 mW. Besides, the Network Interface Controller (NIC) of the Raspberry Pi requires 9.17 mW, while the Laptop needs 3.70 mW. Our proposal needs 2 messages for each communication part (total of 4 messages) to perform a full authentication. Then, it does not need any message to generate OT Ks, which reduces the processing time and energy consumption. This feature, along with its ease of deployment, make our approach well suited for various use case scenarios in the IoT context. Figure 4.6 shows the impact of OTP computation and the transmission of messages on the CPU and the Dynamic Random Access Memory (DRAM) energy consumption. The figures show three phases of the system's operation: (1) an idle phase, (2) the execution of a loop that generates and sends 50 messages with a break of 500 milliseconds between each message, and (3) the return to the idle phase. The measurements were obtained using RAPL 10 measurement tool 11 . Figure 4.6.a shows the Laptop's results where the loop is executed in the interval [START_REF] Saint-Andre | Extensible Messaging and Presence Protocol (XMPP): Core[END_REF][START_REF] Atmel | [END_REF] seconds. Figure 4.6.b describes the Server's results where the application server was executed at the 15 th second. Then, the requests began at the 20 th second until the 46 th second. In both cases, we note that the impact of the loop is almost negligible. The other existing peaks are related to the operating system activity.

10 https://github.com/kentcz/rapl-tools 11 RAPL measures the total CPU and DRAM activity and cannot isolate the measurements by a selected process

Comparison with related works

In this section we compare the performance of our approach with the following algorithms:

• HMAC-based One Time Password (HOTP) [4] • Time-based One Time password (TOTP) [5] We choose to compare our approach with these two algorithms because they are the most well-known OTP standards. The comparison covers :

• Time required to generate OT P s • CPU power needed to generate OT P s • NIC power needed to generate OT P s For our experiments, we used a Java implementation of each algorithm that is available in each RFC 12 .

If we consider a comparison based on the results obtained for only one OTP generation, the differences will be very hard to evaluate because of the small values and their similarity. Thus, we compare the results obtained for the generation of 100 OTPs. In our approach, Figure 4.7 shows that the time needed for the OTP generation is only 35956.70 µs (SD = 877.70 µs) which represents almost half of the time taken by the other algorithms. These results demonstrate that Isogeny is not costly in computation time. However, an ECDH key sharing phase is needed before these OTPs generation which needs time (576020 µs) compared with the OTP generation time, which results in our approach having the worst time considering the whole process of the generation of 100 OTPs. However, this time waste (due to the network communication) is also present for the challenge-response in asynchronous OTP-type approaches. Figure 4.8.a shows the average CPU power consumption needed to generate 100 OTPs. The worst result is obtained by HOTP which needs 1511.94 mW (190 mW SD). The second position is for TOTP which consumes 1297.08 mW (61.52 mW SD). Our approach consumes only 990.61 mW (10.82 mW SD) thereby achieving the best result. This value also considers the ECDH exchange. To summarize the comparison with HOTP and TOTP, our approach:

• Consumes less power and energy for computation.

• Has a similar NIC consumption as the standards we studied.

• Has the worst result in terms of execution time.

Conclusion

In this chapter, we have proposed an original approach for OTP generation that relies on Elliptic Curve Cryptography and Isogeny. We have extended the concept of OTP and used it to generate a new key to be used for each exchange between the IoT device and the server. Furthermore, our approach has the advantage of not relying on a counter or a timestamp as in synchronous OTP-type approaches.

In addition, it does not need challenge/response management as in asynchronous OTP-type approaches.

To evaluate our protocol, we deployed a real implementation using Java. The extensive evaluation that we conducted has demonstrated its efficiency. The next chapter presents the second and third contribution of the thesis: Blockchain-based Authentication protocols.

Chapter 5

Blockchain-based Lightweight IoT Authentication Schemes

Introduction

The IoT security issues are among the main obstacles for its adoption. In particular authentication and authorization methods hold a golden place in priority rank.

The existing approaches suffer from numerous limitations mainly related to their inappropriateness (partially or fully) with the special nature of IoT systems which requires flexible, scalable, lightweight and robust solutions. Such requirements cannot be satisfied by centralized architectures which although have proved their robustness (in traditional networked systems) but cannot meet the high scalability needs of IoT systems especially when thousands or tens of thousands of IoT devices are connected in the same network.

The second and third contributions of this thesis, presented in this chapter, attempt to remedy this architectural issue by relying on Blockchains which are considered as a very promising technology for the development of decentralized and resilient security solutions in IoT context. This chapter consists of three main parts:

• The first part provides an introduction to Blockchain which builds the minimum background information needed to understand the two contributions.

• The second part proposes a simple and lightweight blockchain-based authentication solution for IoT systems with two possible authentication scenarios and an evaluation based on real implementation.

• The last part proposes an adaptive approach that ensures the authentication and the authorization for IoT devices, that addresses in particular some main deployment issues not sufficiently tackled by current approaches. It also presents the results of the performance and security evaluation of the proposed scheme.

Blockchain -an overview

Blockchain, as a decentralized and distributed public ledger technology in peer-topeer networks, has received considerable attention recently. Blockchain was introduced in October 2008 [START_REF] Nakamoto | Bitcoin: A peer-to-peer electronic cash system[END_REF] as part of a proposal for bitcoin, a virtual currency system that eschewed a central authority for issuing currency, transferring ownership, and confirming transactions. Additionally, blockchain technology is becoming one of the most promising technologies for the next generation of internet interaction systems, such as smart contracts, public services , internet of things (IoT) , reputation systems and security services [START_REF] Zheng | Blockchain challenges and opportunities: A survey[END_REF].

The ledger is composed of a set of blocks. Each block contains two parts:

• The first part represents the body of the block. It contains the transactions, also called facts, which the database must record. These facts can be monetary transactions, medical data, industrial information, logs systems, etc.

• The second part is the header of the block. It contains information about the block such as timestamp, transaction hash, etc, as well as the hash of the previous block.

As a result, all the existing blocks form a chain of linked and ordered blocks. The longer the chain, the harder it is to falsify it. Indeed, if a malicious user wants to modify or exchange a transaction on a block, (1) it must modify all the following blocks, since they are bound by their hashes. (2) Next, it must change the version of the blockchain that each participating object stores. Figure 5.1 illustrates a simplified example of a blockchain.

Architecture

There are several types of nodes in a Blockchain [START_REF] Beedham | All you need to know about bitcoin network nodes[END_REF]: Full Nodes, Lightweight Nodes and Mining Nodes 1. Full nodes: full nodes are responsible for holding and distributing copies of the entire blockchain ledger. In that sense, full nodes download every block and transaction and check them against consensus rules (section 5.2.4); a full node is able to validate transactions all the way back to the genesis block1 .

2. Lightweight nodes: Lightweight nodes (some times referred to as light nodes) do not download the complete Blockchain; they just download the block headers, only to validate the authenticity of the transactions.

3. Mining nodes: Also known as "Miners", they can be simply defined as the nodes that produce the blocks for the blockchain. They confirm the blocks to add to the blockchain in a process called "mining".

Key characteristics

Blockchain has the following key characteristics [START_REF] Zheng | Blockchain challenges and opportunities: A survey[END_REF] :

• Decentralisation: In conventional centralised transaction systems, each transaction needs to be validated through the central trusted agency (e.g., the central bank)inevitably resulting in the cost and the performance bottlenecks at the central servers. Differently, a transaction in the blockchain network can be conducted between any two peers (Peer-to-Peer) without the authentication by the central agency. In this manner, blockchain can significantly reduce the server costs (including the development cost and the operation cost) and mitigate the performance bottlenecks at the central server

• Persistence: Since each of the transactions spreading across the network needs to be confirmed and recorded in blocks distributed in the whole network, it is nearly impossible to tamper. Additionally, each broadcasted block would be validated by other nodes and transactions would be checked. So any falsification could be detected easily.

• Anonymity: Each user can interact with the blockchain network with a generated address. Further, a user could generate many addresses to avoid identity exposure. There is no longer any central party keeping users' private information. This mechanism preserves a certain amount of privacy on the transactions included in the blockchain. Note that blockchain cannot guarantee the perfect privacy preservation due to the intrinsic constraint.

• Auditability: Since each of the transactions on the blockchain is validated and recorded with a timestamp, users can easily verify and trace the previous records through accessing any node in the distributed network. In Bitcoin blockchain, each transaction could be traced to previous transactions iteratively. It improves the traceability and the transparency of the data stored in the blockchain.

How Blockchain works?

To add a new block to the blockchain, one have to follow the following steps:

1. A transaction is grouped with other transactions in a block 2. The miners verify that the block transactions comply with the defined rules 3. The miners execute a consensus mechanism to validate the added block 4. A reward is given to miners who validate the block 5. The verified transactions are stored in the blockchain.

The steps to run the network are as follow [START_REF] Nakamoto | Bitcoin: A peer-to-peer electronic cash system[END_REF]:

1. New transactions are broadcast to all nodes.

2. Each node collects new transactions into a block.

3. Each node works, according to the consensus algorithm of the blockchain, to validate and add a new block into the blockchain.

4. Nodes accept the block only if all transactions in it are valid and not already spent.

5. Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash

Consensus Algorithms

Blockchain platforms use a range of consensus protocols to prove the honest validation of a block. There are three main properties that determine the applicability and efficiency of a consensus protocol [START_REF] Baliga | Understanding blockchain consensus models[END_REF]:

1. Safety: A consensus protocol is considered safe if all nodes produce the same valid output; the validity of the outputs is determined according to the rules set for the model. This is also referred to as consistency of the shared state.

Liveness:

The liveness of a consensus protocol is ensured if all non-faulty nodes participating in consensus eventually produce a value.

3. Fault Tolerance: Fault tolerance of a consensus protocol is provided if it can recover from failure of any node participating in the consensus.

There are many mechanisms for validation; the most used are the Proof-of-Work (PoW) and Proof of Stake (PoS).

Proof of Work is a consensus protocol used in the Bitcoin network [START_REF] Nakamoto | Bitcoin: A peer-to-peer electronic cash system[END_REF]. In POW, each node of the network is calculating a hash value of the block header (which is constantly changing upon addition of new transactions). The consensus requires that the calculated value must be equal to or smaller than a certain given value. All miners participating in the consensus have to calculate the hash value continuously by using different nonces until the target is reached. When one node obtains the relevant value, all other nodes must mutually confirm the correctness of the value. This allows to validate transactions in the new block in case of frauds.

Then, the collection of transactions used for the calculations is approved to be the authenticated result, which is denoted by a new block in the blockchain. Given the time and thus the power consumption needed for the calculation process, an incentive mechanism (e.g., granting a small portion of Bitcoin to the miner) is also proposed [START_REF] Nakamoto | Bitcoin: A peer-to-peer electronic cash system[END_REF] [187] [START_REF] Baliga | Understanding blockchain consensus models[END_REF] Proof of Stake is a method by which a blockchain of a cryptocurrency aims to reach a distributed consensus. Proof of Stake is a consensus method by which a network node is randomly selected to add a new block to the blockchain. In order to be able to claim to add a new block, the node must provide proof of possession of the cryptocurrency associated with the blockchain. The random selection of the node is then weighted by the amount of cryptocurrency owned by each node of the network. The main advantage of the Proof-of-stake is that it avoids the phenomenal energy expenditure of Proof-of-Work. On the other hand, many believe that the blockchain thus forged does not have the same robustness and the same level of immutability of Bitcoin Proof-of-Work. POS is an energy-saving alternative to POW, some research efforts focus on hybrid PoW/PoS mechanisms.

Other consensus algorithms have different advantages and disadvantages : Delegated proof of stake (DPOS) was developed by Daniel Larimer, in 2014, [191], similarly to POS, miners get their priority to generate the blocks according to their stake. There are other kinds of consensus mechanism algorithms using the variants of Byzantine Fault Tolerance (BFT): Practical Byzantine Fault Tolerance (PBFT) [START_REF] Castro | Practical byzantine fault tolerance[END_REF], is the first practical solution to the achieving consensus in the face of Byzantine failures, PBFT is a consensus algorithms used in HyperLedger Fabric. Cross-Fault Tolerance (XFT) [START_REF] Liu | Xft: Practical fault tolerance beyond crashes[END_REF] is a protocol that simplifies the attack model and make Byzantine Fault tolerance feasible and efficient for practical scenarios. Ripple and Stellar are two blockchain based platforms and payment protocols that use variations of the Byzantine Fault Tolerance consensus models by making them open-ended with respect to node participation. Ripple and Stellar use respectively Ripple Consensus Protocol Algorithm [START_REF] Schwartz | The ripple protocol consensus algorithm[END_REF] and Stellar Consensus Protocol [START_REF] Mazières | The stellar consensus protocol: A federated model for internet-level consensus[END_REF].

Blockchain Platforms

The list of blockchain platforms in in continuous growth; the most important are: Bitcoin, Ethereum and Hyperledger Fabric. Bitcoin [START_REF] Nakamoto | Bitcoin: A peer-to-peer electronic cash system[END_REF] [186] is a money transfer and verification system. It uses a totally decentralized Peer-to-Peer (P2P) network and does not depend, in fact, on any central authority.The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work. The Bitcoin protocol originally aims to provide an experimental alternative electronic payment system based on cryptographic proof instead of trust. Its unit of account has eight decimal places and it is written bitcoin. It works with software that allows users to create payment email addresses that can send or receive bitcoins. Its code is completely open source.

Ethereum is considered as the most promising blockchain besides Bitcoin. It is considered by its creators as the "first true global computer" [START_REF] Vitalik Buterin | Ethereum: A next-generation smart contract and decentralized application platform[END_REF]. It allows to provide a cryptocurrency called Ether (ETH). This blockchain is used to perform financial transactions as well as processing other types of data. In addition to block validation, Ethereum miners deal with programs called Smart Contracts. A smart contract is a computer program consists of a set of rules run on the blockchain [START_REF] Mohanta | An overview of smart contract and use cases in blockchain technology[END_REF]. This is why Ethereum represents a platform for decentralized applications. Smart contracts are executed by participating objects using an operating system called Ethereum Virtual Machine (EVM).

Hyperledger Fabric [START_REF] Cachin | Architecture of the hyperledger blockchain fabric[END_REF] is a platform for distributed ledger solutions underpinned by a modular architecture delivering high degrees of confidentiality, resiliency, flexibility and scalability. It is designed to support pluggable implementations of different components and accommodate the complexity and intricacies that exist across the economic ecosystem. Hyperledger Fabric delivers a uniquely elastic and extensible architecture, distinguishing it from alternative blockchain solutions. Planning for the future of enterprise blockchain requires building on top of a fully vetted, open-source architecture. The validating peers run a byzantine fault tolerance (BFT) consensus protocol for executing a replicated state machine.

A Blockchain-based Authentication Scheme for IoT systems

The authentication between nodes is essential to the functioning of the majority of IoT use cases. Currently, using a PKI represents the most reliable authentication method. However, this approach is centralized and cannot handle the future evolution of IoT scenarios especially considering the huge number of devices. In this context, we propose a decentralized and lightweight blockchain-based authenticated approach, that does not require a special hardware which makes it suitable for numerous IoT use case scenarios. This section describes the different details related to the design and the functioning of the proposed approach.

it downloads, from the blockchain, the parameters related to that requester object. Then, O 2 generates a random challenge R and sends it to O 1 . When the challenge is received by O 1 , the latter provides a signature (using its private key), then, sends the challenge signed to O 2 . Finally, O 2 verifies the signature using the public key it downloaded from the blockchain and if the signature is verified, than it means that O 1 is authenticated. Afterwards, a Session Establishment Response (SERep) is sent to the device to inform it whether it is successfully authenticated or not. Finally, if there is a successful authentication, then, the session establishment can be set up. For signature scheme, we used the Elliptic Curve Digital Signature Algorithm (ECDSA), given its multiple advantages over traditional signature algorithms (e.g., RSA) especially concerning key sizes and signature times, which makes it more adapted to IoT contexts [199] [200][3]. Our ECDSA implementation relies on the SecP256k1 elliptic curve. Regarding the simple authentication scenario, our approach has an average time of 0.227 s. The standard deviation obtained is low with 0.037 s which demonstrates the approach stability. For the mutual authentication scenario, our approach realized an average time of 0.450 s. The standard deviation obtained is always low with 0.058 s. We are aware that the results obtained by our approach can be out- performed by some of the existing centralized authentication methods. However, the obtained values are fully adapted to such environment. Moreover, our approach is completely decentralized. Furthermore, it ensures a fully mobility of the nodes. In other words, if a node moves to any location, any other node can obtain its authentication parameters without any initialization phase since all the authentication parameters are accessible through the public blockchain used.

An adaptive authentication and authorization scheme for IoT's gateways

The third contribution of the thesis is an adaptive authentication and authorization scheme for IoT's gateways. It was designed to satisfy a number of requirements/needs presented in section 1.2, which can be summarized as follow:

1. Adaptability to heterogeneous authentication techniques in order to ensure flexible and more resilient security.

2. High scalability to allow the mobility of nodes while ensuring their authentication at the gateway level 3. Easy integration of new devices as well as new services.

In that sense, in the proposed blockchain-based authentication and authorization approach:

1. Any device can be added without any physical intervention 2. Can move freely and still be authenticated and authorized at the gateway level

It meets the IoT scalability requirements

The proposed scheme can be applied to a huge number of IoT use cases and does not require special hardware. In this section, we describe the different details related to the design and the functioning of the proposed approach.

Initialization phase

When a new device is added to the network, the user that adds it must register it. This is provided by sending a transaction to the blockchain, which contains the following information about the added object: (1) Object ID; (2) Authentication method (e.g., PSK, One Time Password (OTP), Certificate, etc.); (3) Authentication parameters (e.g, the PSK, the object's public key, the object's certificate, etc.); (4) Authorization list (e.g., only upload to server IP on P ort, upload/download to/from All, upload data of maximum 10 bytes per session, etc.). Except the object ID, all the parameters are encrypted as shown in the example of the block content below. Within the scope of our work, we focus mainly on the protocol exchanges between the objects and the gateways. The details regarding: (1) how the information are encrypted in the Blockchain and which encryption type is used, (2) the blockchain type and choice, (3) how the gateways downloads safely the blocks and decipher them, are outside the scope and will be subject of a future work.

=========================================

Authentication Approach

First, when a device wants to establish a communication session with the gateway, it sends it a Session Establishment Request (SEReq) that contains the object ID and its authentication parameters (e.g., PSK). When the gateway receives the request, and based on the Object ID, it downloads from the blockchain, the block containing the parameters related to that requester object. Then, the gateway decrypts the block and according to the retrieved parameters, it triggers the authentication operation. Afterwards, a Session Establishment Response (SERep) is sent to the device to inform it whether it is successfully authenticated or not. Finally, if there is a successful authentication, then, the session establishment can be set up.

Once the device successfully authenticated and the session established, the gateway controls each exchange and communication of the object relying on the list of authorization downloaded within the block. Indeed, since the gateway represents Figure 5.5 -Adaptive authentication approach: PSK use case the sole link between the object and all its surroundings, it can control each action outgoing/coming from/to the object.

In our approach, any existing authentication method can be used as it is designed. Thus, the SEReq parameters are secured as it is the case in the method's classical use. Nonetheless, If the authentication method requires the usage of secret information like PSK, as highlighted in Figure 5.5, we propose a customized SEReq format to protect against man in the middle combined to cryptanalysis attacks as below:

================================================================ SEReq = [ID, HMAC{PSK || Nonce || Authentication Method}, Nonce] ================================================================

Once the gateway receives this type of request, it retrieves the needed authentication parameters from the blockchain according to the received object ID. Then, it computes HMAC(PSK || Nonce || Authentication Method) using the received Nonce and the deciphered data. If the obtained HMAC3 matches the received one, it successfully authenticates the requester device.

Context and use case scenarios

As described earlier, the main advantage of our proposed approach relies in its suitability to the majority of IoT scenarios, all within ensuring an easy integration of new devices and services. In this section, we evaluate our approach regarding its execution time as well as its financial cost. For this evaluation, we choose two different use cases of the authentication between a gateway and an object:

1. PSK-based authentication

Mutual Certificate-based authentication

Knowing that the usage of the blockchain induces an additional cost, for both scenarios, we measure the time needed for the authentication: (1) in a classical scenario, without relying on our approach, and (2) using our adaptive approach. Also, knowing that the operation of searching a block in the blockchain is feasible in a sequential method (block by block). To verify if the position of the block that owns the parameters needed for the authentication may induce to a additional cost, we use a blockchain having 1000 blocks and for both scenarios, we measure the time needed for the authentication in the following cases: (1) the parameters needed for the authentication are in the first block of the blockchain; (2) the parameters needed for the authentication are in the block 500 of the blockchain; and (3) the parameters needed for the authentication are in the last block of the blockchain (1000).

Evaluation framework

In order to evaluate the time consumption of our approach, we used two Virtual Machines (VMs) as end nodes. The first VM was designed as the gateway that hosts the blockchain and the second as a smart object. Table 5 We are aware about the difference of performance between VMs and some of the common smart objects. We are also aware about the fact that the obtained results depends on the used language (Java) and are different when using other languages (e.g., C/C++). Nonetheless, the goal of our evaluation is the evaluation of our approach's additional cost in comparison to classical methods. Consequently, the comparison is fair since all the protocol's operations are realized on the same basis, language and material.

Performance and Security Evaluation

Qualitative Evaluation

Our approach is an adaptive scheme that allows the usage of other authentication methods. Thus, some of the security features and robustness such as integrity, confidentiality, non-repudiation, robustness against replay and spoofing attack, protection against Sybil attacks, etc. depend only on the chosen scheme. Therefore, in this section we focus on the evaluation of the security and performance features, that must be satisfied by an adaptive authentication approach:

Scalability: our scheme relies on a blockchain, which, in turn, relies on a P2P network, which is of the best solutions to meet large scalability requirement [3][201].

Mobility of nodes: in our approach, the parameters related to the authentication and the authorization are stored in a blockchain. Since the blockchain is a decentralized system, all the gateways which are the peers that host the blockchain, host an updated version of the latter, which contains all the parameters needed to the authentication. Thus the nodes' mobility does not represent any obstacle, since any gateway can read the blockchain.

Heterogeneity of supported approaches: our scheme represents a way to extract and send the parameters needed and used by other schemes. Any method parameters can be stored, thus, our approach supports the use of a multitude of schemes.

Initialization phase: in order to add a new device, the user needs only to add the parameters needed for the authentication and authorization in the blockchain, which does not require any physical intervention on the gateways. Hence, we propose a very lightweight initialization approach, that brings numerous savings in comparison to other methods.

Robustness against cryptanalysis attacks: our scheme uses the other methods as they are designed. Thus, the robustness to cryptanalysis attacks are exactly the same as in classical cases. Nevertheless, we proposed a customized SAReq (described in Section 5.4.2) where only a hash (HMAC) on the parameters is sent. Therefore, an attacker that intercepts this data, cannot reconstruct the original data, since hash algorithms are injective functions.

Quantitative Evaluation

In this section, we present the numerical results obtained upon the time consumption evaluation of our approach. As described in Section 5.4.3, for each use case (authentication with PSK and mutual authentication with certificate) we measured 4 values of the authentication time:

1. Without our approach, which we present as Classical case in the results 2. The parameters needed for the authentication are in the first block of the blockchain, presented as B-1 The Figure 5.6a exhibits the results obtained from the experimentation of the first use case (authentication using PSK). Each result describes the average obtained through the execution of the same scenario 200 times. Without surprise, the Classical method realizes the best authentication time with 13.13 milliseconds (ms) and a standard deviation of 0.88 ms. Then, closer is the needed block in the blockchain, better is the time needed for the authentication, getting the following times: 13.23 ms, 13.39 ms and 13.43 ms, respectively for the scenarios B-1, B-500 and B-1000. Also, the standard deviations obtained are very narrow with respectively 1.17 ms, 1.56 ms and 1.52 ms. One can note that the additional cost caused by our approach is negligible.

The Figure 5.6b describes the results of the second use case: mutual authentication using certificates. As in the last experimentation, each result represents the average obtained through the execution of the same scenario 200 times. We obtained the same ranking of the last experimentation for the needed time to realize the mutual authentication with 188.60 ms, 191.37 ms, 192.15 ms and 193.62 ms, respectively for the Classical, B-1, B-500 and B-1000 scenarios. Similarly to the last use case, the standard deviations obtained are very narrow with respectively 10.51 ms, 15.84 ms, 17.11 ms and 18.87 ms. In this case also, the additional cost caused by our approach is insignificant.

Finally, the time needed to find the block in the blockchain depends on the blockchain used. For example, the time needed to look for a transaction in Bitcoin is not the same as for another blockchain less used, due to the number of blocks and transactions stored. However, optimization approaches can still be applied.

Regarding the financial cost related to the blockchain use, there are two cases: (1) if a private blockchain is used, then, there is no need for transaction payment.

(2) if a public blockchain is used than, for each device, only one transaction is needed during the initialization phase and which contains the parameters that must be stored in the blockchain. Then, during the system functioning, the gateways do only reading operations from the blockchain, which are free-cost operations. The cost of one transaction depends on the blockchain used. However, it remains, generally, an insignificant cost. Moreover, according to studies like [START_REF] Saito | How to Make a Digital Currency on a Blockchain Stable[END_REF] and [START_REF] Jacques | Cryptocurrencies, Monetary Stability and regulation[END_REF], the evolution of the cryptocurrencies rates will get more stable over time. Even better, Ethereum developers and community are working on regulating and stabilizing the amounts of fees related to smart contracts use4 [3].

Consequently, considering these experimentations and results, one can conclude about the lightness and the low cost of our approach, while bringing more flexibility to the authentication system.

Conclusion

This chapter presented two blockchain-based authentication solutions for IoT systems. The proposed solutions take advantage of the inherent blockchain features to satisfy the IoT requirements imposed by the special nature and constraints of IoT systems. The first proposed scheme is a lightweight authentication method, that does not require a special hardware, and thus is suitable for numerous IoT use case scenarios. This scheme was implemented in Java, tested and evaluated for two authentication scenarios: simple and mutual authentication. The results obtained confirmed its lightweightness and thus appropriateness for IoT devices. The second proposed scheme is an adaptive approach that ensures the authentication and the authorization for IoT devices. In addition to meeting the general IoT requirements, this scheme addresses some practical limitations of existing solutions related to their deployment and usage in real use case scenarios. The performance and security evaluation of this scheme showed clearly its lightweightness and low cost. The next chapter summarizes the research work done in this thesis and presents the directions for our future works.

Chapter 6

General Conclusion and Future Directions

The penetration of Internet of Things (IoT) in the different aspects of our daily lives has significantly increased in the last years. Although the estimations might differ between the different studies [START_REF] Stamford | more than half of major new business processes and systems will incorporate some element of the internet of things[END_REF] [START_REF] Lasse | Iot 2019 in review: The 10 most relevant iot developments of the year[END_REF], but they all agree that the growth is exponential, and is expected to continue in the same manner for the upcoming years. The idea behind IoT is the omnipresence of a variety of objects, where they are able to interact and cooperate with each other in order to provide a wide range of services. Thus, IoT introduces new opportunities such as the capability to monitor and manage devices remotely, analyze and take actions based on the information received from various real-time traffic data streams. Consequently, with the advent of smart cities concept [START_REF] Khatoun | Smart cities: concepts, architectures, research opportunities[END_REF], IoT products are changing habits and cities by enhancing infrastructures, creating more effective and costefficient municipal services, improving transportation services by decreasing road traffic congestion, improving citizens' safety and providing smart health services [START_REF] Hammi | Internet of Things (IoT) Technologies for Smart Cities[END_REF]. IoT includes a large number of heterogeneous networked objects. Each object should be reachable and produce content that can be retrieved by any authorized user regardless of his/her location. It is important that only authenticated and authorized users (objects or people) can access IoT objects. Otherwise, they will be prone to numerous security risks such as information theft and identity spoofing. For these reasons and others, the security of IoT is a major challenge for the sustainability and competitiveness of companies and administrations. Indeed, security issues remain major obstacles to the worldwide adoption and deployment of IoT. In other words, users will not fully adopt IoT as long as IoT devices pose security and privacy risks. In fact, IoT is highly vulnerable to attacks for numerous reasons, such as:

1. Devices spend most of their time unattended in general, which makes them fairly easy to physically attack 2. Most of the communications are wireless, which makes Man-in-the-Middle attack, one of the most common attacks on such a system. Consequently, exchanged messages may be subject to eavesdropping, malicious routing, message tampering and other attacks which affect the security of the entire IoT 3. Multiple types of things (e.g., RFID tags) have limited resources in terms of energy and computation power, which prevent them from implementing advanced security solutions

IoT relies on the cooperation of nodes and multiple scenarios require that only trusted users can use the offered services. Thus, conventional security requirements such as authentication, data integrity, and sometimes confidentiality are critical to IoT objects, networks, and applications functioning. However, due to limitations and heterogeneity of objects' resources, existing security solutions are not fully adapted to IoT ecosystem. Furthermore, in order to ensure these security requirements, the combination of multiple security technologies and solutions is needed which leads to high computation costs (in general one solution for authentication and integrity where at least one key sharing technique is applied, and another solution for confidentiality where another key sharing technique is applied). Consequently, it is necessary to propose new lightweight security solutions or to adapt existing ones to meet the requirements of IoT.

This thesis consisted of two main parts: the literature review and the thesis contributions.

The first part (chapters 2 and 3) surveyed the literature of Internet of Things in general with a focus on the security and special emphasis on the authentication in IoT systems. This in-depth survey established in its first part, the necessary technical background for the IoT, their proposed architecture(s), the advances of research and development efforts, the technologies and platforms available for the market and the core IoT application domains. In addition, it allowed to identify the main challenges facing the IoT systems such as their resource-constrained nature, the heterogeneity of devices, scalability, big data management and most importantly the security of such systems. The security challenges constituted the general domain of this research work, and thus, the second part of the literature review has drawn the general IoT security context with special emphasis on the IoT authentication field; the specific domain of this research work. This has been done by analyzing the general IoT security objectives, issues, and challenges, and then shedding the light on those related to the authentication security goal through a comprehensive survey of the research works in such field. This led the identification of a number of open-issues that need to be addressed to fill the existing gaps in this domain .

The second part of this thesis built on the outcomes of the first part, in a sense that it addresses issues that are still unsolved (partially or completely) in the state of the art, especially from a practical (i.e. deployment) perspective (lightweightness, heterogeneity of IoT systems, scalability, node mobility support, etc.), and proposes three contributions to advance the literature in this research field. The first contribution is a lightweight authentication scheme for IoT objects based on ECC and Isogeny offering two security services: authentication and keys generation. Our scheme relies on One Time Password (OTP), a very promising solution for IoT given its robustness and simplicity. Basically, OTP method is used to ensure authentication without having to use a third party server. The scheme did not use OTP only for authentication, but, also to generate a One Time Key (OTK) derived from OTP in order to be used by encryption algorithms. Hence, our scheme enhances data confidentiality in addition to ensuring the authentication while being more efficient in terms of computation than existing solutions. Furthermore, this approach has the originality of not relying on a Counter or a Timestamp as for synchronous OTP-type approaches, neither on a challenge generation and management from the server side as for the asynchronous OTP-type solutions. Furthermore, a special attention was given to the trade-off between the performance and the resources available on IoT devices. Extensive evaluations through implementation showed promising results making the new scheme as a good candidate for a lightweight authentication method for IoT applications.

The second and third contributions of the thesis are based on blockchain; the decentralized distributed ledger. This choice is based on the inherent features of blockchain (e.g., scalability, robustness, resilience) to address the requirements of authentication solutions as well as the limitations of some existing solutions. The second contribution is a lightweight authentication scheme, supporting simple and mutual authentication scenarios, without the need for specific hardware which makes it applicable in a multitude of IoT use cases. The proposed scheme was evaluated through a real implementation relying on Ethereum blockchain and using different devices in order to confirm its feasibility and evaluate its initial performances. The results obtained confirm its suitability to such environments. The third contribution provided the authentication and the authorization for IoT devices. It has an important advantage of being adaptive in a sense that it adapts to heterogeneous authentication techniques in order to ensure flexible and more resilient security. The security of the proposed solution was evaluated analytically, while the performance evaluation was done experimentally through a real implementation. The results of its evaluation showed clearly its lightness and low cost.

Figure 2 .

 2 2 compares the 6lowPAN communication stack with other popular communication stacks.

Figure 2 . 2 -

 22 Figure 2.2 -Comparison of 6LowPAN's stack with other stacks[START_REF] Christie | IoT Standards -Why So Many?[END_REF]

Figure 2 .

 2 3 summarizes some IoT protocols and standards.

Figure 2 . 3 -

 23 Figure 2.3 -Internet of Things protocol stack[START_REF] Wordpress | The Internet of Things Protocol stack -from sensors to business value[END_REF]

Figure 2 . 4 -

 24 Figure 2.4 -LoRa architecture [8]

Figure 2 . 5 -

 25 Figure 2.5 -Main components of an IoT Application Enablement Platform [9]

Figure 2 . 6 -

 26 Figure 2.6 -Remote patient monitoring system based on IoT-Cloud architecture [10]

Figure 2 . 7 -

 27 Figure 2.7 -Smart Grid architecture[START_REF] Fang | Smart grid -the new and improved power grid: A survey[END_REF]

Figure 2 Figure 2 . 8 -

 228 Figure 2.8 -IoT Challenges and Issues

( 1 )•

 1 Perception layer, (2) Network layer or (3) Application layer. However, this classification can be adapted to any layered architecture for IoT (Section 2.2) Application domain: Different authentication schemes are used for the different application domain or IoT environment[119]: Machine to Machine (M2M), Internet of Vehicles (IoV), Internet of Energy (IoE), Internet of Sensors (IoS) and Internet of Medical Things (IoMT) • Hardware-based: Hardware-based authentication uses the physical characteristics of the hardware to process the authentication. Based on this criterion, one can distinguish between (1) Implicit hardware-based solutions which use the "existing" hardware during the authentication (e.g., Physical Unclonable Function (PUF)[122] [123] or True Random Number Generator (TRNG)[124] [125]) and, (1) Explicit hardware-based solutions which require the use of additional component dedicated for the operations (cryptographic or other) performed during authentication (e.g., Trusted Platform Module (TPM)[126] [127], Trusted Execution Environment (TEE)[128] [129] [130] ).

Figure 3 . 1 -

 31 Schemes

Figure 4 . 1 ) 3 .. 2 )Figure 4 . 1 -

 413241 Figure 4.1 -ECC Point Addition and Doubling

Definition 2 .

 2 Given an Elliptic Curve E, a point P and another point T . The Discrete Log problem is finding the integer d where 1 ≤ d ≤ #E such that P + P + • • • + P dtimes = dP = T

Figure 4 . 2 -

 42 Figure 4.2 -ECDH Key Exchange Protocol

Figure 4 . 3 -Authentication Protocol 2 .

 432 Figure 4.3 -Authentication Protocol

2 . 3 . 4 .

 234 S verifies the received OT P . If the verification is successful, it sends an authentication success result to Obj Obj generates a new OT K relying on the same K(x k , y k ) used to generate the first OT P . Obj sends the new OT K to S.

Figure 4 . 4 -

 44 Figure 4.4 -Average OTP generation time -Secp Curves

Figure 4 . 5 -

 45 Figure 4.5 -Average OTP generation time -Brainpool Curves

Figure 4 .

 4 Figure 4.5 shows the results obtained with Brainpool curves. As for Secp curves, HMAC-SHA512 always yields the worst performance for all tests. Furthermore, HMAC-SHA1 and HMAC-SHA256 yield almost the same generation times.

Figure 4 . 6 -

 46 Figure 4.6 -Impact of OTP generation and message transmission processing

Figure 4 . 7 -

 47 Figure 4.7 -Generation time of 100 OTPs -Average and SD

Figure 4 . 8 -

 48 Figure 4.8 -Generation of 100 OTPs -Power Consumption

Figure 4 .

 4 Figure 4.7 shows the average time needed to generate 100 OTPs. HOTP needs 60089.85 µs with a standard deviation of 2899 µs while TOTP needs 56795.22 µs (SD = 6349.28 µs).In our approach, Figure4.7 shows that the time needed for the OTP generation is only 35956.70 µs (SD = 877.70 µs) which represents almost half of the time taken by the other algorithms. These results demonstrate that Isogeny is not costly in computation time. However, an ECDH key sharing phase is needed before these OTPs generation which needs time (576020 µs) compared with the OTP generation time, which results in our approach having the worst time considering the whole process of the generation of 100 OTPs. However, this time waste (due to the network communication) is also present for the challenge-response in asynchronous OTP-type approaches. Figure4.8.a shows the average CPU power consumption needed to generate 100 OTPs. The worst result is obtained by HOTP which needs 1511.94 mW (190 mW SD). The second position is for TOTP which consumes 1297.08 mW (61.52 mW SD). Our approach consumes only 990.61 mW (10.82 mW SD) thereby achieving the best result. This value also considers the ECDH exchange. Figure 4.8.b shows the NIC power consumption needed to generate and send 100 OTPs. The set of obtained results are very close to each other. Our approach consumes more power because of the ECDH exchange. It consumes 333.54 mW

Figure 4 .

 4 Figure 4.7 shows the average time needed to generate 100 OTPs. HOTP needs 60089.85 µs with a standard deviation of 2899 µs while TOTP needs 56795.22 µs (SD = 6349.28 µs).In our approach, Figure4.7 shows that the time needed for the OTP generation is only 35956.70 µs (SD = 877.70 µs) which represents almost half of the time taken by the other algorithms. These results demonstrate that Isogeny is not costly in computation time. However, an ECDH key sharing phase is needed before these OTPs generation which needs time (576020 µs) compared with the OTP generation time, which results in our approach having the worst time considering the whole process of the generation of 100 OTPs. However, this time waste (due to the network communication) is also present for the challenge-response in asynchronous OTP-type approaches. Figure4.8.a shows the average CPU power consumption needed to generate 100 OTPs. The worst result is obtained by HOTP which needs 1511.94 mW (190 mW SD). The second position is for TOTP which consumes 1297.08 mW (61.52 mW SD). Our approach consumes only 990.61 mW (10.82 mW SD) thereby achieving the best result. This value also considers the ECDH exchange. Figure 4.8.b shows the NIC power consumption needed to generate and send 100 OTPs. The set of obtained results are very close to each other. Our approach consumes more power because of the ECDH exchange. It consumes 333.54 mW

Figure 5 . 1 -

 51 Figure 5.1 -Simplified example of a blockchain

Figure 5 .

 5 2 exhibits the authentication steps such as detailed by Algorithm 3.

Figure 5 . 2 -

 52 Figure 5.2 -Simple authentication use case scenario

Figure 5 . 3 -

 53 Figure 5.3 -Mutual authentication use case scenario

Figure 5 . 4 -

 54 Figure 5.4 -Evaluation framework

3 .Figure 5 . 6 -

 356 Figure 5.6 -Authentication time

  The motivation for conducting this research is in fact the lack of adaptive authentication solutions for IoT in context of different standards, technologies, infrastructures and platforms for IoT, and the different gaps and open issues identified in the surveyed literature, which were addressed in the different contributions of this thesis.

The first contribution relies on Elliptic-Curve Cryptography (ECC) and One-Time Password (OTP) techniques. One-Time Password is an authentication scheme in which a new password is generated for each authentication session and the reuse of a password is not possible. OTP is one of the most promising solutions for authentication in IoT and specifically in numerous smart city scenarios such as remote control. However, there are very few works that have adapted OTP schemes to IoT

[1]

[2]

.

Table 2 .

 2 1 -Main communication standards within IoT products, not individual instances within this class. Furthermore, in IoT, a unique IP address for each connection is required. This is why EPC was proposed by GS1 as a new standard. Meanwhile, OASIS 3 issued various recommendations on network technologies in IoT and messaging technologies such as Message Queue Telemetry Transport (MQTT), Advanced Message Queuing Protocol (AMQP) and the Data Distribution Service for Real-Time Systems (DDS). In 2014, a new Industrial Internet Consortium (ICC 4 ) was launched in order to coordinate and establish the priorities and enabling technologies of the Industrial Internet. There are thousands of founding and contributing members of ICC and they include: Bosh, Intel, IBM, Schneider, Huawei, Cisco, and several others. There are currently 19 Working Groups and teams working on different areas: Business Strategy and Solution Lifecycle, Legal, Liaison, Security, Technology Testbeds, Marketing and Membership, and so on.

	NFC	Point-to-Point	2011	-	424 Kbps	13.56 Mhz	0.2 m		Manschester	and	Modified Miller
	802.15.6	WBAN	2011	250	10 Mbps	402-405 MHz	2-5 m
	802.15.4	WPAN	2007	65535	250 Kbps	868-915 MHz	2.4 GHz	75 m		ASK	DSSS	PSSS	ZigBee
	802.15.1 802.15.3	WPAN WPAN	2003 2002/2005	245 7	55 Mbps 3 Mbps	2.4 GHz 2.4 GHz	100 m 100 m	QPSK 8DPSK	DQPSK DQPSK	16-QAM PIDQPSK	32-QAM GFSK	64-QAM AFM	Bluetooth
	802.11 ad	WLAN	2012		≥ 7Gbps	2.4/5/60GHz	5 m			QAM-256
	802.11 ac	WLAN	2014		3.2 Gbps	5 GHz	30 m			OFDM
	802.11n	WLAN	2009	30	248 Mbps	2.4/5 GHz	50 m indoor	250 m outdoor			OFDM		WiFi
	802.11a 802.11b 802.11g	WLAN WLAN WLAN	1999 1999 2003	30 30 30	54 Mbps 11Mbps 54 Mbps	5 GHz 2.4 GHz 2.4 GHz	120 m 140 m 140 m	BPSK, DBPSK QPSK DQPSK 16-QAM CCK 64-QAM DSSS OFDM DBPSK DQPSK 16-QAM 64-QAM OFDM	WiFi WiFi WiFi
		Network Type	Date	Network Size	Bit Rate	Frequency	Range			Modulation		Application

  2 million km 2

	Standard	Frequency Band		Range
	SigFox	868 MHz/902 MHz ISM	30-50km (rural)
				3-10km (urban)
				1000km LoS
	LoRaWAN	868 MHz/902 MHz ISM	2-5k (urban)
				15k (rural)
	LTE-M	Cellular		2.5-5km
	IEEE P802.11ah	License-exempt	bands	Up to 1Km (outdoor)
	(low power WiFi)	below 1 GHz, excluding
		the TV White Spaces
	Dash7 Alliance Protocol	433, 868, 915 MHz		0.5 km
	1.0
	Ingenu RPMA	2.4 GHz ISM		500 km LoS
	nWave	Sub-GHz ISM		10km (urban)
				20-30km (rural)
	Table 2.2 -Comparison of low power WAN technologies [12]
	and reach 223 million people 6 .
	Table 2.2 compares different low power WAN technologies used in IoT use case
	scenarios.

Table 2 .

 2 [START_REF] Lee | The internet of things (iot): Applications, investments, and challenges for enterprises[END_REF]

	Platform	Services	Advantages	Disadvantages
		Visualization, monitoring, and
		analyzing data received from wired or	Data transactions
	AWS IoT [50]	wireless sensors	security	Private platform
			Support millions of
			device endpoints,
	Oracle IoT	Real-time data capture, M2M	heterogeneous	No support for open
	cloud [51]	platform	connectivity	source based devices
			HomeOS source code
	Microsoft		(platform, drivers,	Available only for
	Research Lab		apps) is available for	Microsoft based
	of Things [52] Smart home services	academic research	products
			Variety of supported
	Open remote	Buildings, home automation,	protocols
	[53]	healthcare and smart cities services	Cloud services	High cost
		Multi-domain open source platform :
		agriculture, healthcare, industrial IoT,	Open IoT cloud
		applications for consumer electronics	platform	Limited hardware
	KAA [54]	and smart home	Big data support	modules supported
		Open-source IoT platform: data
		collection, processing, visualization,		Relatively new
		and device management	Data confidentiality	platform and not
	ThingsBoard	Support IoT protocols : MQTT,	and device	tested in large scale
	[55]	CoAP and HTTP	authentication	use
		Data visualization, Interactive charts	Excellent visualization	Offers only
	Plotly [56]	and dashboards	tools	visualization services
			Single Sign-On (SSO)
			authentication,
	IBM IoT [57] Cognitive IoT	IDentity as a Service	Network latency
		Mobile back-end as a service (MBaaS)	API specification is	Communication
		: user management, data management	open to the public	latency between the
		and push notification functionality,	Load balancing and	mobile app and
	Kii [58]	numerous services in multiple areas	security	devices
			autonomous control
			and security
		Industrial platform for different use	Integration of
		cases: area and street lighting,	multi-vendor devices
		building automation, transportation	in extensible	High cost
	Echelon [59]	systems	architecture	proprietary technology
			Highly secure
		Cloud-based software for managing	communications,	Integration of third
	Axeda [60]	IoT	M2M learning	party systems

3 -Comparison of the main IoT platforms

Table 3 .

 3 1 -Overview of main IoT issues

	C on fid en ti al it y	In te gr it y	A ut he nt ic at io n	A ut ho ri za ti on	U nl in ka bi lit y	A no ny m it y	Tr ac ea bi lit y	N on -R ep ud ia ti on

Table 4 .

 4 2 presents the specifications of the different devices.

	Node type	CPU Architecture	CPU Operation Mode	CPU Max. Speed	RAM	Operating System
	Raspberry Pi	armv6l	32-bits	700 MHz 450 MB Raspbian 4.9.41
	HP laptop	x86_4	64-bits	2600 MHz	8 GB	Ubuntu 16.04
	Dell Precision (S)	x86_4	32-bits	3100 MHz	8 GB	Ubuntu 14.04

Table 4 .

 4 2 -Features of nodes used in our experiments

Table 5 .

 5

1 -Experimentation node Specifications

Table 5 .

 5 2 and Table5.3 describe the results obtained following our experimentation set. The results presented represent the average and standard deviation of the 100 experimentations realized in order to measure the time needed to perform an authentication for both scenarios.

		O 1		O 2
		Signature	Verification	Time to get	Total Authentication
		Time (s)	Time (s)	transaction (s)	time (s)
	Average	0.046	0.025	0.151	0.227
	SD	0.002	0.010	0.029	0.037
	Table 5.2 -Simple authentication scenario -Experimentation results

  .4 describes the VM features. The authentication scheme was implemented in Java.

	CPU	CPU max speed	RAM	Operating System
	x86_4, 32 bits	2 GHz	256 MB	Debian 7.8
		Table 5.4 -Experimentation VM feature

Dyn is one of the companies providing DNS service

The detailed taxonomy is provided in section

3.3

In the rest of this thesis the terms thing, object, device and node are used interchangeably to refer to a connected smart thing.

http://www.gs1.org

http://www.oasis-open.org

http://www.iiconsortium.org

http://www.sigfox.com

http://www.iotglobalnetwork.com

https://www.ibm.com/cloud-computing/bluemix/fr

http://www.comarch.com/telecommunications/solutions/m2m-platform/

https://airvantage.net

https://nest.com/

Dyn is one of the companies providing DNS service

https://krebsonsecurity.com/2016/10/hacked-cameras-dvrs-powered-todays-massive-internetoutage/

Definition: "a cryptographic system offers security level λ if a successful general attack can be expected to require effort approximately

λ "[START_REF] Arjen | Key lengths[END_REF]

sometimes denoted ∞

https://www.smalsresearch.be

A rational function is any function which can be written as the ratio of two polynomial functions.

e.g HMAC-SHA256, HMAC-SHA512, ...

https://www.bouncycastle.org

ISO standards use both of them, and European Telecommunications Standards Institute (ETSI) use Secp curves.

It is not advised to use SHA1 because of its vulnerability to collisions[START_REF] Wang | Finding collisions in the full sha-1[END_REF]. We have used SHA1 for performance comparison only.

Herein, the experiments were realized using the Laptop as Obj.

Java implementation of HOTP is described in[4] on page 27. TOTP Java implementation is described[5] on page 8.

A genesis block is the first block of a Blockchain.

When the challenge is received by O 1 , it signs R 1 , and downloads from the blockchain, the parameters related to O 2 based on T ransaction ID 2 . Then, it generates a random challenge R 2 , and sends the signature of R 1 as well as the challenge generated (R 2 ) to O 2 .

O 2 verifies the received signature of R 1 using the public key related to O 1 that was extracted from the blockchain. If the signature verification fails then, the authentication fails and no session is established. If the signature is verified, then, O 2 signs the received challenge R 2 and sends the authentication success notification as well as the challenge R 2 signed.

O 1 verifies the received signature of the challenge R 2 . If the signature verification fails then, the authentication fails and no session is established. If the signature is verified, then, O 1 sends an authentication success notification to O 2 , the communication session is established.

https://infura.io

Any other hash algorithm can be used, and this according to the hosting system's requirements, needs and capacity

https://smartereum.com/6777/buterin-expresses-concern-over-stabilizing-ethereum/.

Acknowledgments

Availability

Availability can be defined as "timely, reliable access to data and information services for authorized users" [START_REF]Computer security resource center -online glossary[END_REF]. Availability in an IoT context requires implementing

Authentication Protocol

For each communication session between an object Obj and the server S, first, a new OTP is generated for Obj authentication. Then, a new key (OTK) is needed for each message (for authentication or confidentiality). To do so, for each communication session, an Elliptic Curve Diffie-Hellman (ECDH) exchange is established as follows:

1. Obj and S generate two natural numbers denoted n 1 and n 2 respectively

Authentication Scenarios

Our approach relies mainly on the usage of a blockchain. Thus, when a new device is added to the network, the user that adds it must register it (initialization phase). This is provided by sending a transaction to the blockchain, which contains: (1) the object's identifier (Object ID) and ( 2) the object's public key. When the transaction is treated and stored in the blockchain, the device obtains the transaction identifier (Transaction ID).

Let O 1 and O 2 be two objects. In order to establish a communication session between these two objects, the authentication is a mandatory requirement and there are two defined scenarios: (1) simple authentication or (2) mutual authentication. We assume that each node provides basic protocol primitives to send and receive messages as well as other functions such as signature provision, signature verification and so on. Algorithm 2 depicts such an Application Programming Interface (API).

Algorithm 2: Basic operations of a node

Evaluation and Discussion

In this section, we describe the evaluation of our approach regarding its execution time. We evaluated the needed time for the whole authentication mechanism, that is to say, we measured the authentication process from the moment where a node sends an SEReq until the moment when it receives an SERep. The evaluation was performed through a real implementation.

Context and evaluation framework

We developed and deployed our approach on two devices: two Raspberry Pi 3 that implements a Python3 version of our approach. Table 5.1 describes the features of

Future research directions

The future research directions can be seen as the continuity in the research works done in the three contribution of this thesis:

1. First contribution:

(a) The use of Isogeny is a key element that improves the security and robustness of the first contribution. In the proposed scheme, we have used the Isogeny of Translation as a Proof-of-Concept. Other types of Isogeny shall be considered and evaluated.

(b) The definition of a mechanism for the retransmission of lost and nonauthenticated messages (c) The security of the proposed protocol especially against Denial of Service attacks that attempt to saturate the server's CPU by sending fake OTPs that the server must verify.

Second Contribution:

(a) The development of the proposed approach in order to support the authorization management.

(b) The comparison of the performance of this approach with existing approaches.

Third Contribution:

(a) The design and specification of the storage of protocol data elements in the blockchain and the related operations with special emphasis on the security of such data.

Publications

Journal articles

Abstract :

The interconnection of private resources on public infrastructure, the user mobility and the emergence of new technologies (vehicular networks, sensor networks, Internet of Things (IoT), etc.) have added new requirements in term of security on the server side as well as the client side. Examples include the processing time, mutual authentication, client participation in the choice of security settings and protection against traffic analysis. IoT is in widespread use and its applications cover many aspects of today's life, which results in a huge and continuously increasing number of objects distributed everywhere. Security is no doubt the element that will improve and strengthen the acceptability of IoT, especially that this large scale deployment of IoT systems will attract the appetite of the attackers. The current cyber-attacks that are operational on traditional networks will be projected towards the Internet of Things. Security is so critical in this context given the underlying stakes ; in particular, authentication has a critical importance given the impact of the presence of malicious nodes within the IoT systems and the harm they can cause to the overall system.

The research works in this thesis aim to advance the literature on IoT authentication by proposing three authentication schemes that satisfy the needs of IoT systems in terms of security and performance. One-Time Password (OTP) is an authentication scheme that represents a promising solution for IoT and smart cities environments. This research work extends the OTP principle and proposes a new approach to generate OTP based on Elliptic Curve Cryptography (ECC) and Isogeny to guarantee the security of such protocol. The performance results obtained demonstrate the efficiency and effectiveness of our approach in terms of security and performance. We also rely on blockchains in order to propose two authentication solutions : first, a lightweight blockchain-based authentication scheme for IoT systems based on Ethereum, and second, an adaptive blockchain-based authentication and authorization approach for IoT use cases. We provided a real implementation of our proposed solutions. The extensive evaluation provided, clearly shows the ability of our schemes to meet the different security requirements with a lightweight cost in term of performance.

Institut Polytechnique de Paris 91120 Palaiseau, France